summaryrefslogtreecommitdiffhomepage
path: root/bin/copilot-auth
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-04 21:21:20 +0900
committerAdam Malczewski <[email protected]>2026-06-04 21:21:20 +0900
commit394f1ed37ce860da6fdc385769bf29f9737105cd (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /bin/copilot-auth
parent81a9cdbadf8c9d940d4fe9a2a0de607dee1f5f1a (diff)
downloaddispatch-394f1ed37ce860da6fdc385769bf29f9737105cd.tar.gz
dispatch-394f1ed37ce860da6fdc385769bf29f9737105cd.zip
chore: genesis — remove all files to rebuild from scratch (arch rewrite)
Diffstat (limited to 'bin/copilot-auth')
-rwxr-xr-xbin/copilot-auth84
1 files changed, 0 insertions, 84 deletions
diff --git a/bin/copilot-auth b/bin/copilot-auth
deleted file mode 100755
index 28d08a1..0000000
--- a/bin/copilot-auth
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env bash
-set -euo pipefail
-
-CLIENT_ID="Ov23li8tweQw6odWQebz"
-ENV_FILE="$(cd "$(dirname "$0")/.." && pwd)/.env.dispatch"
-
-# Parse form-encoded key=value pairs
-parse() {
- local key="$1" data="$2"
- local val
- val=$(echo "$data" | sed -n "s/.*${key}=\([^&]*\).*/\1/p")
- python3 -c "import sys,urllib.parse; print(urllib.parse.unquote(sys.stdin.read().strip()))" <<< "$val"
-}
-
-echo "=== GitHub Copilot OAuth ==="
-echo ""
-
-# Step 1: Request device code
-echo "Requesting device code..."
-RESP=$(curl -s https://github.com/login/device/code \
- -d "client_id=$CLIENT_ID" \
- -d "scope=read:user")
-
-DEVICE_CODE=$(parse "device_code" "$RESP")
-
-if [ -z "$DEVICE_CODE" ]; then
- echo "Failed to get device code: $RESP"
- exit 1
-fi
-
-USER_CODE=$(parse "user_code" "$RESP")
-VERIF_URI=$(parse "verification_uri" "$RESP")
-INTERVAL=$(parse "interval" "$RESP")
-INTERVAL=${INTERVAL:-5}
-
-echo ""
-echo "Open this URL and enter the code:"
-echo " $VERIF_URI"
-echo " Code: $USER_CODE"
-echo ""
-echo "Waiting for you to authorize..."
-
-# Step 2: Poll for access token
-TOKEN=""
-ATTEMPTS=0
-while [ -z "$TOKEN" ] && [ $ATTEMPTS -lt 60 ]; do
- sleep "$INTERVAL"
- ATTEMPTS=$((ATTEMPTS + 1))
-
- TOKEN_RESP=$(curl -s https://github.com/login/oauth/access_token \
- -d "client_id=$CLIENT_ID" \
- -d "device_code=$DEVICE_CODE" \
- -d "grant_type=urn:ietf:params:oauth:grant-type:device_code")
-
- TOKEN=$(parse "access_token" "$TOKEN_RESP" || true)
- ERROR=$(parse "error" "$TOKEN_RESP" || true)
-
- if [ "$ERROR" = "authorization_pending" ]; then
- continue
- elif [ "$ERROR" = "slow_down" ]; then
- INTERVAL=$((INTERVAL + 5))
- continue
- elif [ -n "$ERROR" ]; then
- echo "Error: $ERROR"
- exit 1
- fi
-done
-
-if [ -z "$TOKEN" ]; then
- echo "Timed out waiting for authorization."
- exit 1
-fi
-
-# Step 3: Write to .env.dispatch
-mkdir -p "$(dirname "$ENV_FILE")"
-if [ -f "$ENV_FILE" ] && grep -q "^COPILOT_TOKEN=" "$ENV_FILE" 2>/dev/null; then
- sed -i "s/^COPILOT_TOKEN=.*/COPILOT_TOKEN=$TOKEN/" "$ENV_FILE"
-else
- echo "COPILOT_TOKEN=$TOKEN" >> "$ENV_FILE"
-fi
-
-echo ""
-echo "Token saved to .env.dispatch"
-echo "Ready — run: docker compose up"