mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
The update bot recognised an open PR as a duplicate by hashing the blobs of the files its commit changed, read at the PR head. A follow-up commit that edits one of those files changes the hash, so the next run opened a second PR with the identical bump: PR #778 next to PR #775 for web-svc-collabora, after a fix had edited the bumped services.yml. The branch name of a bot PR ends in the first seven characters of the fingerprint of the change the bot proposed. An open PR whose branch ends in the fingerprint of the fresh proposal now counts as a duplicate before its head is compared. The head comparison stays as the second criterion. The test runs pr.sh in a throwaway repository against a stubbed gh. It fails on the previous script with exit 1, because that one goes on to push. Closes #780 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
GitHub Workflow Helpers 🔧
This directory holds the shell helpers that GitHub Actions workflows under .github/workflows/ call. Helpers are grouped by responsibility into subfolders so each workflow file pulls only from the clusters it actually needs.
Subfolders 🗂️
| Subfolder | Responsibility |
|---|---|
| runner/ | Host-runner hygiene around image builds and deploys (disk, swap, Docker daemon, diagnostics). |
| cancel/ | Cancellation of in-progress workflow runs on PR-close and branch-delete events. |
| cleanup/ | Scheduled repository maintenance that prunes stale GitHub resources. |
| resolve/ | Derivation of structured workflow inputs and outputs from repository state. |
| update/ | The scheduled 🔄 Update versions pipeline (version bumps and PR open/refresh). |
| release/ | Release-time gates that decide whether a tagged commit may be released. |
A new helper MUST live in the subfolder that matches its responsibility. New responsibilities MAY motivate a new subfolder, but MUST NOT flatten back into the top level.
For the workflow catalog see workflows.md. For the repository Make target index see make.md.