Bug report
When a workflow is triggered by a pull request, the footer comment reads:
Generated by Workflow Name for issue #
It should read:
Generated by Workflow Name for PR #
Reproduction
Trigger any safe-outputs workflow (e.g. add-comment) from a pull request. The appended footer line always says "for issue #N" regardless of whether the trigger was an issue, a PR, or a discussion.
Root cause
In actions/setup/js/messages_footer.cjs, function generateFooterWithMessages (around the "Determine triggering number" comment):
let triggeringNumber;
if (triggeringIssueNumber) {
triggeringNumber = triggeringIssueNumber;
} else if (triggeringPRNumber) {
triggeringNumber = triggeringPRNumber; // ← type info lost
} else if (triggeringDiscussionNumber) {
triggeringNumber = `discussion #${triggeringDiscussionNumber}`; // ← mangled
}
The type information (issue vs. PR vs. discussion) is discarded. Then getFooterMessage unconditionally appends:
footer += ` for issue #{triggering_number}`.replace(…);
…emitting "for issue #N" for every trigger type.
The discussion branch tried to encode the type as a string ("discussion #N"), but this produces the double-prefix "for issue #discussion #N".
Proposed fix
Introduce a triggeringLabel field alongside triggeringNumber. The label carries the full human-readable reference:
let triggeringNumber;
let triggeringLabel;
if (triggeringIssueNumber) {
triggeringNumber = triggeringIssueNumber;
triggeringLabel = `issue #${triggeringIssueNumber}`;
} else if (triggeringPRNumber) {
triggeringNumber = triggeringPRNumber;
triggeringLabel = `PR #${triggeringPRNumber}`;
} else if (triggeringDiscussionNumber) {
triggeringNumber = triggeringDiscussionNumber;
triggeringLabel = `discussion #${triggeringDiscussionNumber}`;
}
const ctx = { …, triggeringNumber, triggeringLabel };
In getFooterMessage, use the label when present and fall back to the old form (backwards-compatible for callers that supply triggeringNumber directly):
if (ctx.triggeringNumber) {
footer += ctx.triggeringLabel
? ` for ${ctx.triggeringLabel}`
: ` for issue #{triggering_number}`.replace("{triggering_number}", String(ctx.triggeringNumber));
}
Two test assertions in messages.test.cjs must also be updated:
"for issue #99" → "for PR #99" (PR-triggered test)
"for issue #discussion #7" → "for discussion #7" (discussion-triggered test)
Bug report
When a workflow is triggered by a pull request, the footer comment reads:
It should read:
Reproduction
Trigger any safe-outputs workflow (e.g.
add-comment) from a pull request. The appended footer line always says "for issue #N" regardless of whether the trigger was an issue, a PR, or a discussion.Root cause
In
actions/setup/js/messages_footer.cjs, functiongenerateFooterWithMessages(around the "Determine triggering number" comment):The type information (issue vs. PR vs. discussion) is discarded. Then
getFooterMessageunconditionally appends:…emitting "for issue #N" for every trigger type.
The discussion branch tried to encode the type as a string (
"discussion #N"), but this produces the double-prefix"for issue #discussion #N".Proposed fix
Introduce a
triggeringLabelfield alongsidetriggeringNumber. The label carries the full human-readable reference:In
getFooterMessage, use the label when present and fall back to the old form (backwards-compatible for callers that supplytriggeringNumberdirectly):Two test assertions in
messages.test.cjsmust also be updated:"for issue #99"→"for PR #99"(PR-triggered test)"for issue #discussion #7"→"for discussion #7"(discussion-triggered test)