Release failure Slack notice never shows the release triggerer
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 2.2k
- Forks
- 300
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 184
Description
What
releaser.yml line 354, in the notify-release-failure job's Slack payload:
"text": "*Triggered by:*\n${{ needs.extract-release-actor.outputs.triggered_by || github.actor }}"
There is no extract-release-actor job in releaser.yml, and it is not in that job's needs: list either. The expression resolves to null, falls through to || github.actor, and the notice always reports the actor rather than the person who actually triggered the release.
actionlint reports it:
releaser.yml:354: property "extract-release-actor" is not defined in object type
{compute-build-flags: ..., image-build-and-push: ..., publish-helm: ...,
release-binaries: ..., skills-build-and-push: ...}
Why it matters
create-release-tag.yml goes to real trouble to preserve this. It extracts a Release-Triggered-By trailer from the release commit, and passes it forward as an HTML comment in the release body specifically so downstream workflows can recover who started the release:
# Include actor metadata as HTML comment if available (parsed by releaser.yml)
--notes "<!-- Release-Triggered-By: $TRIGGERED_BY -->"
Nothing in releaser.yml parses it. On a release: published event github.actor is whoever created the release — which for our flow is the release GitHub App, not a person. So the failure notification names a bot in exactly the situation where you want to know which human to talk to.
Fix
Either add the job that parses the trailer out of github.event.release.body and declare it in notify-release-failure's needs:, or drop the dead reference and the trailer plumbing in create-release-tag.yml along with it. Worth deciding which, rather than leaving a half-wired path.
Notes
Found while working through #6253; not fixed there because it changes release-notification behaviour in a workflow that no pull request can exercise, and that work was scoped to permissions and quoting.
actionlint is not currently in CI — see #6253 — which is why this has gone unnoticed.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in releaser.yml around line 354 and inspect the notify-release-failure job and its needs list, then compare the metadata flow with create-release-tag.yml. Run actionlint against the workflows and determine whether the release trailer should be parsed or the unused plumbing removed. Done means the workflow has no undefined job reference and the failure notice reports the intended release triggerer.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions
- Domain
- ci-cd, release
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100