Repository navigation
Move the danielridgebot workflows off secrets.DR_PAT onto the org GitHub App #223
Copy link
Copy link
Open
Labels
complexity: mediumfeature: securityrole: DevOps Engineeraka Infrastructure Engineeraka Infrastructure Engineersize: 3ptCan be done in 13-18 hoursCan be done in 13-18 hours
Milestone
Description
Overview
We need the danielridgebot workflows to create issues with a token minted from the org's GitHub App instead of secrets.DR_PAT, because that PAT is a personal access token on a recurring expiry cycle with nothing warning us when it lapses. Its failure mode is silence — a missed GitHub Pages version bump rather than an alert — so we would not find out until someone noticed the bot had gone quiet.
Action Items
- Confirm first that the
HFLA_WORKFLOW_APP_*App is installed onhackforla/devopswith Issues: write, and that it has organization Projects: write. The bot creates its issues onhackforla/devopsand adds them to board 73, so an installation scoped only to the bot repo is not enough. If the App cannot write to projects, that is the finding — record it on this issue rather than shipping something that silently stops adding board cards. - In
check-gh-pages-version.ymlandcheck-ruby-version.yml, mint a token withactions/create-github-app-tokenfromsecrets.HFLA_WORKFLOW_APP_ID/secrets.HFLA_WORKFLOW_APP_PRIVATE_KEYand pass it asGH_TOKENto the "Create issue…" step, in place ofsecrets.DR_PAT. Both org secrets are already readable by this repo — verified 2026-09-07. - Leave the
git pushsteps alone. They commit the new version file using the checkout-persistedGITHUB_TOKEN, notDR_PAT, so they are unaffected by this change. - Decide what happens to
test-issue-labels.yml, the third and last user ofDR_PAT: switch it too, or delete it. It isworkflow_dispatch-only, it opens issues on the bot repo itself, and the one it left behind — check-ghpages-versions#22, open since May 2024 — is that repo's only open issue, so nothing sweeps what it creates. - Test before relying on it. On a throwaway branch, set
release-versions/github-pages-gem.txtto an older value and rungh workflow run check-gh-pages-version.yml --ref <branch>. The workflow commits the real version back, so the file self-restores — but it opens a real issue onhackforla/devopswith a board card, so close that issue and delete its card afterwards. - Check the test issue carries its labels, its milestone and a card on board 73. The board card is both the most likely thing to fail and the one that fails quietly.
- Once both check workflows are confirmed working on App tokens, delete the
DR_PATrepo secret. Decide separately what happens to thedanielridgebotuser account itself — with the PAT retired it has no remaining job. - Note that the issue author changes from
danielridgebotto the App's bot identity. Nothing we know of filters on the author, but the weekly label check and anyone reading the board will see a different name — confirm that is acceptable before merging rather than after.
Resources/Instructions
- The change is a PR on hackforla/check-ghpages-versions. This issue lives on
devopsbecause that is where the bot's issues land, where it is documented, and because the bot repo is not on board 73 and has almost no label vocabulary of its own. - The bot's documentation: @danielridgebot-DevOps-Wiki
DR_PATwas last rotated 2025-10-26 and confirmed working 2026-08-24, so it is currently valid. This is not urgent — it removes a recurring liability rather than fixing an outage.- Org secrets already visible to the bot repo, verified 2026-09-07:
HFLA_WORKFLOW_APP_ID,HFLA_WORKFLOW_APP_PRIVATE_KEY,HFLA_GRAPHQL_APP_ID,HFLA_GRAPHQL_APP_PRIVATE_KEY. - Do not "fix" the issue templates' frontmatter while you are in there.
update-gh-pages-version.mdandupdate-ruby-version.mdcarryprojects:as a board title andmilestones:plural. GitHub never renders these files — the bot's own parser,github-actions/utils/parse-issue-template.js, reads the frontmatter and feeds it togh issue create --project "$PROJECTS", where a board title is exactly what is wanted. Changing them tohackforla/73would break the bot. - Do not delete
keepalive.yml. It looks like dead code and is load-bearing: GitHub disables scheduled workflows after 60 days with no repository commits, which is what silently killed both checks between 2026-01-07 and 2026-08-24. It is hand-rolled because the action the wiki recommends for this has been blocked by GitHub since 2025-04-21.
Metadata
Metadata
Assignees
Labels
complexity: mediumfeature: securityrole: DevOps Engineeraka Infrastructure Engineeraka Infrastructure Engineersize: 3ptCan be done in 13-18 hoursCan be done in 13-18 hours
Type
Projects
- StatusShow more project fieldsPrioritized Backlog
Activity