@@ -113,23 +113,37 @@ jobs:
113113
114114 echo ""
115115 echo "=== Testing OIDC Token Exchange (Step 2: Exchange for NPM token) ==="
116- PACKAGE_NAME=$(jq -r '.name' package.json | sed 's/^@/%40/')
117- EXCHANGE_URL="https://registry.npmjs.org/-/npm/v1/oidc/token/exchange/package/${PACKAGE_NAME}"
118- echo "Exchange URL: $EXCHANGE_URL"
116+ RAW_NAME=$(jq -r '.name' package.json)
117+ echo "Testing with Yarn's URL encoding (@reforge-com -> %40reforge-com)"
118+ YARN_ENCODED=$(echo "$RAW_NAME" | sed 's/^@/%40/')
119+ EXCHANGE_URL_YARN="https://registry.npmjs.org/-/npm/v1/oidc/token/exchange/package/${YARN_ENCODED}"
120+ echo "Yarn URL: $EXCHANGE_URL_YARN"
119121
120122 EXCHANGE_RESPONSE=$(curl -sSL -w "\nHTTP_STATUS:%{http_code}" \
121123 -H "Authorization: Bearer $ID_TOKEN" \
122- -X POST "$EXCHANGE_URL " 2>&1)
124+ -X POST "$EXCHANGE_URL_YARN " 2>&1)
123125 HTTP_STATUS=$(echo "$EXCHANGE_RESPONSE" | grep "HTTP_STATUS:" | cut -d: -f2)
124126 BODY=$(echo "$EXCHANGE_RESPONSE" | sed '/HTTP_STATUS:/d')
127+ echo "Yarn encoding - HTTP Status: $HTTP_STATUS"
128+ if [[ "$HTTP_STATUS" != "200" ]]; then
129+ echo "Response: $BODY"
130+ fi
131+
132+ echo ""
133+ echo "Testing with alternate encoding (@reforge-com/cli as-is)"
134+ EXCHANGE_URL_ALT="https://registry.npmjs.org/-/npm/v1/oidc/token/exchange/package/${RAW_NAME}"
135+ echo "Alternate URL: $EXCHANGE_URL_ALT"
125136
126- echo "HTTP Status: $HTTP_STATUS"
127- if [[ "$HTTP_STATUS" == "200" ]]; then
128- echo "✓ Token exchange successful!"
129- echo "Response has 'token' field: $(echo "$BODY" | jq -r 'has("token")')"
137+ EXCHANGE_RESPONSE2=$(curl -sSL -w "\nHTTP_STATUS:%{http_code}" \
138+ -H "Authorization: Bearer $ID_TOKEN" \
139+ -X POST "$EXCHANGE_URL_ALT" 2>&1)
140+ HTTP_STATUS2=$(echo "$EXCHANGE_RESPONSE2" | grep "HTTP_STATUS:" | cut -d: -f2)
141+ BODY2=$(echo "$EXCHANGE_RESPONSE2" | sed '/HTTP_STATUS:/d')
142+ echo "Alternate encoding - HTTP Status: $HTTP_STATUS2"
143+ if [[ "$HTTP_STATUS2" == "200" ]]; then
144+ echo "✓ Token exchange successful with alternate encoding!"
130145 else
131- echo "✗ Token exchange FAILED!"
132- echo "Response: $BODY"
146+ echo "Response: $BODY2"
133147 fi
134148 else
135149 echo "✗ No ID token in response!"
0 commit comments