ci: watch DFHack releases and file a Copilot-assigned update issue - #2
Merged
Conversation
Adds a daily scheduled workflow that polls DFHack/dfhack for new stable releases. On a new tag with no existing tracking issue, it files one scoped to re-syncing the vendored proto/*.proto files (build + test), then assigns the Copilot coding agent so it opens a PR. Existing issues are the dedup state, so the job is safe to re-run with no external storage. Issue creation uses the built-in GITHUB_TOKEN; the Copilot-assign step uses COPILOT_ASSIGN_TOKEN and degrades to a notice (issue still filed) when the secret is absent. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds a scheduled GitHub Actions workflow that polls DFHack’s upstream releases, files a per-release tracking issue in this repo when a new stable tag appears, and (optionally) assigns the Copilot coding agent to kick off the update PR loop.
Changes:
- Add a daily cron + manual
workflow_dispatchworkflow to detect the latest non-draft, non-prerelease DFHack release. - Deduplicate by exact issue title and create a new tracking issue with embedded upstream release notes (with
@mentionsneutralized). - If
COPILOT_ASSIGN_TOKENis present, use GraphQL to assign the Copilot coding agent to the created issue.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Comment on lines
+63
to
+65
| # Exact-title match across open + closed issues (issues are the state). | ||
| found=$(gh issue list --state all --limit 200 --json title \ | ||
| --jq "[.[].title] | index(\"Update for DFHack $TAG\")") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
Adds
.github/workflows/dfhack-release-watch.yml— a daily scheduled workflow that watchesDFHack/dfhackfor new stable releases and kicks off the update loop.Flow
workflow_dispatch— polls DFHack's releases API, picks the latest non-prerelease, non-draft tag.proto/*.protofrom the new tag →npm run build→typecheck/lint→npm test. Upstream release notes are folded in with@mentionsneutralized so filing can't ping anyone.Auth
GITHUB_TOKEN— no secret.COPILOT_ASSIGN_TOKEN(a fine-grained PAT with Issues: read/write, owned by a coding-agent seat holder). The automatic token can't assign the agent —github-actions[bot]has no seat.::notice::and exits 0 — the issue is still filed for manual assignment.Testing
After merge: Actions → DFHack release watch → Run workflow. Delete the resulting test issue, or pre-create one titled
Update for DFHack 53.15-r2so dedup no-ops.Cadence rationale
DFHack shipped ~23 stable releases over ~8 months (avg ~11 days apart), in bursts of several per week with occasional multi-week gaps. Daily polling catches each release within 24h without burning Actions minutes on a project that never releases faster than a couple per day.
🤖 Generated with Claude Code