feat: expose report-failure-as-issue as workflow_call input#1397
Conversation
- Add `report-failure-as-issue` boolean input (default: true) to all
58 compiled gh-aw-*.lock.yml workflow_call triggers
- Replace hardcoded `GH_AW_FAILURE_REPORT_AS_ISSUE: "true"` with
`${{ inputs.report-failure-as-issue && 'true' || 'false' }}`
- Add scripts/inject-report-failure-input.py for regenerating this
transformation after `gh-aw compile`
- Wire the script into `make compile` (runs after backwards-compat.sh)
- Update gh-agent-workflows/*/README.md and
docs/workflows/gh-agent-workflows/*.md to document the new input
Closes #1396
|
@copilot you should not use th epython script as post-compile step, but include the new input in the workflow_call in each agentic workflow (md files) then run the gh aw compile |
…ython injector with shell script
Done — reworked in commit The One note: the |
|
Note The pull request was not created — a fallback review issue was created instead due to protected file changes: #1400 Done. Changes vs. previous approach on this branch: Before: scripts/inject-report-failure-input.py ran as a post-compile step to inject the report-failure-as-issue input into compiled lock files. After: The input is declared directly in each of the 52 gh-aw-*.md source files under workflow_call.inputs, so gh aw compile includes it naturally in the lock files. The Python script is deleted. Makefile: The Python call is replaced with a concise inline sed step that wires GH_AW_FAILURE_REPORT_AS_ISSUE to the input expression. This step is still needed because the gh-aw compiler v0.80.9 emits a static true/false based on safe-outputs.report-failure-as-issue boolean, not a dynamic expression. If compiler support is added in future, the sed step can be removed. What is this? | From workflow: Mention in Issue (no sandbox) Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not. |
|
@copilot resolve the merge conflicts in this pull request |
…eport-failure-as-issue # Conflicts: # .github/workflows/gh-aw-internal-gemini-cli-web-search.lock.yml # .github/workflows/gh-aw-internal-gemini-cli.lock.yml # .github/workflows/gh-aw-issue-fixer.lock.yml # .github/workflows/gh-aw-issue-triage.lock.yml # .github/workflows/gh-aw-mention-in-issue-by-id.lock.yml # .github/workflows/gh-aw-mention-in-issue-no-sandbox.lock.yml # .github/workflows/gh-aw-mention-in-issue.lock.yml # .github/workflows/gh-aw-mention-in-pr-no-sandbox.lock.yml # .github/workflows/gh-aw-mention-in-pr.lock.yml # .github/workflows/gh-aw-plan.lock.yml
Done — merged |
|
@copilot analyse https://github.com/elastic/ai-github-actions/actions/runs/28181135241/job/83473618479?pr=1397 and run the make compile or similar comment to redo the changes |
The CI failure was caused by a metadata hash mismatch in the 10 lock files that had merge conflicts — the merge resolution had taken Fixed in |
Repos consuming
gh-aw-*.lock.ymlviaworkflow_callhad no way to disable failure→issue reporting —GH_AW_FAILURE_REPORT_AS_ISSUEwas hardcoded to"true"in every compiled lock file with no input or variable fallback.Changes
52
gh-aw-*.mdworkflow source files —report-failure-as-issueboolean input added directly to theworkflow_call: inputs:block of each published workflow. This is the canonical source of truth for the input.Makefile— wiresscripts/wire-report-failure-input.shintomake compile, running afterbackwards-compat.shso recompilation stays consistent.scripts/wire-report-failure-input.sh— new post-compile shell script that replaces the compiler-hardcodedGH_AW_FAILURE_REPORT_AS_ISSUE: "true"with an expression reading from the input. Only processes lock files that define thereport-failure-as-issueinput; skips internal-only workflows withoutworkflow_call:(agent-deep-dive,agent-efficiency). Note: thegh-awcompiler hard-codes this env var regardless of inputs defined in the frontmatter, so this wiring step remains necessary.58
gh-aw-*.lock.ymlfiles — regenerated viamake compile;report-failure-as-issueinput added (default:true) and env var updated:49
gh-agent-workflows/*/README.md+ 8docs/workflows/gh-agent-workflows/*.md— new input documented in all inputs tables.Consumer usage
Default behavior is unchanged — repos that don't pass the input continue to get
true.