This commit is contained in:
Garrett Delfosse
2024-04-30 16:37:28 +00:00
parent 428f386c4c
commit 5a33af28ac
3 changed files with 29 additions and 26 deletions

View File

@@ -18,9 +18,9 @@ resource "coder_script" "github_upload_public_key" {
agent_id = var.agent_id agent_id = var.agent_id
script = templatefile("${path.module}/run.sh", { script = templatefile("${path.module}/run.sh", {
CODER_OWNER_SESSION_TOKEN : data.coder_workspace.me.owner_session_token, CODER_OWNER_SESSION_TOKEN : data.coder_workspace.me.owner_session_token,
CODER_ACCESS_URL : data.coder_workspace.me.access_url, CODER_ACCESS_URL : data.coder_workspace.me.access_url,
}) })
display_name = "Github Upload Public Key" display_name = "Github Upload Public Key"
icon = "/icon/github.svg" icon = "/icon/github.svg"
run_on_start = true run_on_start = true
} }

View File

@@ -28,11 +28,12 @@ fi
echo "GitHub token found!" echo "GitHub token found!"
echo "Fetching Coder public SSH key..." echo "Fetching Coder public SSH key..."
PUBLIC_KEY_RESPONSE=$(curl -L -s \ PUBLIC_KEY_RESPONSE=$(
-w "%{http_code}" \ curl -L -s \
-H 'accept: application/json' \ -w "%{http_code}" \
-H "cookie: coder_session_token=$CODER_OWNER_SESSION_TOKEN" \ -H 'accept: application/json' \
"$CODER_ACCESS_URL/api/v2/users/me/gitsshkey" -H "cookie: coder_session_token=$CODER_OWNER_SESSION_TOKEN" \
"$CODER_ACCESS_URL/api/v2/users/me/gitsshkey"
) )
PUBLIC_KEY_RESPONSE_STATUS=$(tail -n1 <<< "$PUBLIC_KEY_RESPONSE") PUBLIC_KEY_RESPONSE_STATUS=$(tail -n1 <<< "$PUBLIC_KEY_RESPONSE")
PUBLIC_KEY_BODY=$(sed \$d <<< "$PUBLIC_KEY_RESPONSE") PUBLIC_KEY_BODY=$(sed \$d <<< "$PUBLIC_KEY_RESPONSE")
@@ -52,12 +53,13 @@ if [ -z "$PUBLIC_KEY" ]; then
fi fi
echo "Fetching GitHub public SSH keys..." echo "Fetching GitHub public SSH keys..."
GITHUB_KEYS_RESPONSE=$(curl -L -s \ GITHUB_KEYS_RESPONSE=$(
-w "%{http_code}" \ curl -L -s \
-H "Accept: application/vnd.github+json" \ -w "%{http_code}" \
-H "Authorization: Bearer $GITHUB_TOKEN" \ -H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \ -H "Authorization: Bearer $GITHUB_TOKEN" \
https://api.github.com/user/keys -H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/user/keys
) )
GITHUB_KEYS_RESPONSE_STATUS=$(tail -n1 <<< "$GITHUB_KEYS_RESPONSE") GITHUB_KEYS_RESPONSE_STATUS=$(tail -n1 <<< "$GITHUB_KEYS_RESPONSE")
GITHUB_KEYS_RESPONSE_BODY=$(sed \$d <<< "$GITHUB_KEYS_RESPONSE") GITHUB_KEYS_RESPONSE_BODY=$(sed \$d <<< "$GITHUB_KEYS_RESPONSE")
@@ -78,14 +80,15 @@ fi
echo "Coder public SSH key not found in GitHub keys!" echo "Coder public SSH key not found in GitHub keys!"
echo "Uploading Coder public SSH key to GitHub..." echo "Uploading Coder public SSH key to GitHub..."
CODER_PUBLIC_KEY_NAME="$CODER_ACCESS_URL Workspaces" CODER_PUBLIC_KEY_NAME="$CODER_ACCESS_URL Workspaces"
UPLOAD_RESPONSE=$(curl -L -s \ UPLOAD_RESPONSE=$(
-X POST \ curl -L -s \
-w "%{http_code}" \ -X POST \
-H "Accept: application/vnd.github+json" \ -w "%{http_code}" \
-H "Authorization: Bearer $GITHUB_TOKEN" \ -H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \ -H "Authorization: Bearer $GITHUB_TOKEN" \
https://api.github.com/user/keys \ -H "X-GitHub-Api-Version: 2022-11-28" \
-d "{\"title\":\"$CODER_PUBLIC_KEY_NAME\",\"key\":\"$PUBLIC_KEY\"}" https://api.github.com/user/keys \
-d "{\"title\":\"$CODER_PUBLIC_KEY_NAME\",\"key\":\"$PUBLIC_KEY\"}"
) )
UPLOAD_RESPONSE_STATUS=$(tail -n1 <<< "$UPLOAD_RESPONSE") UPLOAD_RESPONSE_STATUS=$(tail -n1 <<< "$UPLOAD_RESPONSE")
UPLOAD_RESPONSE_BODY=$(sed \$d <<< "$UPLOAD_RESPONSE") UPLOAD_RESPONSE_BODY=$(sed \$d <<< "$UPLOAD_RESPONSE")