Skip to content

Commit 7bf88b7

Browse files
committed
Re-add token.
1 parent 690d866 commit 7bf88b7

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

.github/workflows/commit-built-file-changes.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ jobs:
2424
# - Attempts to download the artifact containing the PR diff.
2525
# - Checks for the existence of an artifact.
2626
# - Unzips the artifact.
27+
# - Generates a token for authenticating with the GitHub App.
2728
# - Checks out the repository.
2829
# - Applies the patch file.
2930
# - Displays the result of git diff.
@@ -83,6 +84,42 @@ jobs:
8384
if: ${{ steps.artifact-check.outputs.exists == 'true' }}
8485
run: unzip pr-built-file-changes.zip
8586

87+
- name: Generate Installation Token
88+
id: generate_token
89+
if: ${{ steps.artifact-check.outputs.exists == 'true' }}
90+
env:
91+
GH_APP_ID: ${{ secrets.GH_APP_ID }}
92+
GH_APP_PRIVATE_KEY: ${{ secrets.GH_APP_PRIVATE_KEY }}
93+
run: |
94+
echo "$GH_APP_PRIVATE_KEY" > private-key.pem
95+
96+
# Generate JWT
97+
JWT=$(python3 - <<EOF
98+
import jwt, time
99+
private_key = open("private-key.pem", "r").read()
100+
payload = {
101+
"iat": int(time.time()),
102+
"exp": int(time.time()) + 600, # 10-minute expiration
103+
"iss": $GH_APP_ID
104+
}
105+
print(jwt.encode(payload, private_key, algorithm="RS256"))
106+
EOF
107+
)
108+
109+
# Get Installation ID
110+
INSTALLATION_ID=$(curl -s -X GET -H "Authorization: Bearer $JWT" \
111+
-H "Accept: application/vnd.github.v3+json" \
112+
https://api.github.com/app/installations | jq -r '.[0].id')
113+
114+
# Request Installation Access Token
115+
ACCESS_TOKEN=$(curl -s -X POST -H "Authorization: Bearer $JWT" \
116+
-H "Accept: application/vnd.github.v3+json" \
117+
"https://api.github.com/app/installations/$INSTALLATION_ID/access_tokens" | jq -r '.token')
118+
119+
echo "ACCESS_TOKEN=$ACCESS_TOKEN" >> "$GITHUB_ENV"
120+
121+
rm -f private-key.pem
122+
86123
- name: Checkout repository
87124
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
88125
if: ${{ steps.artifact-check.outputs.exists == 'true' }}

0 commit comments

Comments
 (0)