Blue’s PRs target the agents release-train branch, not main (the
default branch). GitHub’s native Closes #N auto-close only fires when
a PR merges into the repository’s default branch, so issues stayed
open after automerge to agents on this repo specifically — most
recently #818, which PR #825 merged via automerge without closing the
issue. This is a repeat of #779, which requested the identical fix and
was closed by hand without a PR ever landing; krill-agents#52 filed
the redo that produced this issue.
krill-oss and krill-agents both already carry
.github/workflows/close-issues-on-merge.yml (added via
krill-oss#190 / krill-agents#47), but krill never got the
corresponding workflow — krill#779 asked for it and was closed
manually instead of via a merged PR, so the fix silently never shipped
on this repo.
Added .github/workflows/close-issues-on-merge.yml to krill,
identical in shape to the version already live on krill-oss and
krill-agents: a pull_request: closed workflow triggered on both
agents and main that parses the merged PR body for closing keywords
(closes, fixes, resolves and variants) and calls issues.update
to close each matched issue with state_reason: completed.
No test is added — this is a GitHub Actions workflow with no unit-test
seam in this repo’s Gradle-based test suites; the earlier krill-oss
lesson for the same fix also shipped without an automated test, relying
on live PR-merge behavior to verify.
When a fix requested in an issue is closed without a merged PR
referencing it, treat the fix as not landed, regardless of the
issue’s closed state — a manual close is not evidence of a shipped
change. When a workflow or config fix is confirmed working on one repo
in a fleet of near-identical repos (krill / krill-oss /
krill-agents), proactively check the other repos for the same gap
rather than waiting for a duplicate issue to surface it again.