Repository navigation
ci(release): mint the release token from a GitHub App - #8359
Conversation
The release workflow checked out etherpad and ether.github.com with the ETHER_RELEASE_TOKEN PAT. PATs expire, and when it did the 3.3.9 release failed at the first checkout with 'Bad credentials'. Prefer a short-lived installation token from a GitHub App (credentials don't expire), falling back to the PAT until the RELEASE_APP_ID variable is set. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y5YroE8t1VhXCVTjJhx2kU
|
ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
PR Summary by QodoUse a GitHub App token for release checkouts
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
Code Review by Qodo
1.
|
ether/etherpad-lite is a rename redirect. Use the canonical name so it matches the repository the app token is scoped to. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y5YroE8t1VhXCVTjJhx2kU
The release workflow checks out
etherpadandether.github.comwith theETHER_RELEASE_TOKENPAT. That PAT expired, and the 3.3.9 release (run 39124316513) failed at the first checkout withBad credentials. Rotating a PAT every month isn't sustainable.This adds an
actions/create-github-app-tokenstep. It mints a short-lived installation token from an "Etherpad Release Bot" GitHub App, and both checkouts use that token. App credentials don't expire. Until theRELEASE_APP_IDrepo variable exists, the step is skipped and the checkouts fall back to the PAT, so merging this changes nothing on its own.The built-in
GITHUB_TOKENisn't an option. Tags pushed with it don't triggerhandleRelease, Docker, .deb or snap.One-off setup (an org owner):
RELEASE_APP_ID= the App ID, and the secretRELEASE_APP_PRIVATE_KEY= the full .pem contents.develop: required backend checksruleset. The release pushes straight to develop.After that,
ETHER_RELEASE_TOKENcan be deleted.Tests: the YAML parses. The app path only runs on a release dispatch, so it gets exercised on the first release after setup. The PAT fallback keeps behaviour unchanged until then.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Y5YroE8t1VhXCVTjJhx2kU