chore(ci): migrate all workflows from PAT to GitHub App token [SEC-58] #287
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.



Summary
Files Changed
.github/workflows/draft-new-release.yml- Migrated to GitHub App Token + Signed Commits.github/workflows/publish-new-release.yml- Migrated to GitHub App Token + Signed Commits (updated with additional fix)Migration Details
- Moved permissions to job level
- Used App Token for checkout and all git operations
- Replaced
git pushwithryancyq/github-signed-commitaction- PR creation will now trigger CI
- Moved permissions to job level
- Fixed template-injection vulnerability by moving untrusted input to env var
- Used App Token for all operations
- Replaced
git push --deletewith GitHub API call and signed commit action- PR creation will now trigger CI
Latest Fix (January 29, 2026)
publish-new-release.yml additional improvements:
git push --delete origin $TAGwith GitHub API call (gh api DELETE /repos/.../git/refs/tags/...)Signed Commits Implementation
Both workflows now use
ryancyq/github-signed-commit@e9f3b28c80da7be66d24b8f501a5abe82a6b855f # v1.2.0to ensure all pushes are signed and verified:publish-new-release.yml:
git tag -a && git pushwith signed commit action for tag pushesgit push --deletewith GitHub API for tag deletiondraft-new-release.yml:
git push --set-upstream originwith signed commit action for branch creationgit push origin --tagsandgit push --follow-tagswith signed commit actionSecurity Improvements
Test plan
🤖 Generated with Claude Code