2020 create-tag :
2121 runs-on : ubuntu-latest
2222 steps :
23+ - name : Generate release app token
24+ id : app-token
25+ uses : actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
26+ with :
27+ client-id : ${{ vars.RELEASE_APP_CLIENT_ID }}
28+ private-key : ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
29+
2330 - name : Checkout
2431 uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
2532 with :
@@ -134,7 +141,7 @@ jobs:
134141 git push https://x-access-token:${GH_TOKEN}@github.com/${{ github.repository }}.git "$TAG"
135142 echo "Created and pushed tag: $TAG"
136143 env :
137- GH_TOKEN : ${{ secrets.RELEASE_TOKEN }}
144+ GH_TOKEN : ${{ steps.app-token.outputs.token }}
138145
139146 - name : Check if GitHub Release exists
140147 id : check-release
@@ -148,7 +155,7 @@ jobs:
148155 echo "exists=false" >> $GITHUB_OUTPUT
149156 fi
150157 env :
151- GH_TOKEN : ${{ secrets.RELEASE_TOKEN }}
158+ GH_TOKEN : ${{ steps.app-token.outputs.token }}
152159
153160 - name : Create GitHub Release
154161 if : steps.check-release.outputs.exists == 'false'
@@ -157,7 +164,8 @@ jobs:
157164 TRIGGERED_BY="${{ steps.actor.outputs.triggered_by }}"
158165
159166 # Create GitHub Release (triggers releaser.yml via release event)
160- # Note: Must use PAT (GH_TOKEN) because GITHUB_TOKEN cannot trigger other workflows
167+ # Note: Uses a GitHub App installation token rather than GITHUB_TOKEN,
168+ # because events from GITHUB_TOKEN cannot trigger downstream workflows.
161169 # Include actor metadata as HTML comment if available (parsed by releaser.yml)
162170 if [ -n "$TRIGGERED_BY" ]; then
163171 gh release create "$TAG" \
@@ -171,7 +179,7 @@ jobs:
171179 fi
172180 echo "Created GitHub Release: $TAG"
173181 env :
174- GH_TOKEN : ${{ secrets.RELEASE_TOKEN }}
182+ GH_TOKEN : ${{ steps.app-token.outputs.token }}
175183
176184 - name : Summary
177185 run : |
0 commit comments