diff --git a/.github/workflows/smoke-macos-arm64.lock.yml b/.github/workflows/smoke-macos-arm64.lock.yml index 59da5bf3161..959e04a4304 100644 --- a/.github/workflows/smoke-macos-arm64.lock.yml +++ b/.github/workflows/smoke-macos-arm64.lock.yml @@ -1689,7 +1689,7 @@ jobs: setupGlobals(core, github, context, exec, io); const { main } = require('/opt/gh-aw/actions/parse_copilot_log.cjs'); await main(); - - name: Parse safe-inputs logs for step summary + - name: Parse Safe Inputs logs for step summary if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 with: @@ -1904,7 +1904,7 @@ jobs: with: name: agent-output path: /tmp/gh-aw/threat-detection/ - - name: Echo agent output types + - name: Print agent output types env: AGENT_OUTPUT_TYPES: ${{ needs.agent.outputs.output_types }} run: | diff --git a/docs/src/content/docs/agent-factory-status.mdx b/docs/src/content/docs/agent-factory-status.mdx index 5f02633cd84..6420c5eacc2 100644 --- a/docs/src/content/docs/agent-factory-status.mdx +++ b/docs/src/content/docs/agent-factory-status.mdx @@ -135,6 +135,7 @@ These are experimental agentic workflows used by the GitHub Next team to learn, | [Smoke Claude](https://github.com/github/gh-aw/blob/main/.github/workflows/smoke-claude.md) | claude | [![Smoke Claude](https://github.com/github/gh-aw/actions/workflows/smoke-claude.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/smoke-claude.lock.yml) | - | - | | [Smoke Codex](https://github.com/github/gh-aw/blob/main/.github/workflows/smoke-codex.md) | codex | [![Smoke Codex](https://github.com/github/gh-aw/actions/workflows/smoke-codex.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/smoke-codex.lock.yml) | - | - | | [Smoke Copilot](https://github.com/github/gh-aw/blob/main/.github/workflows/smoke-copilot.md) | copilot | [![Smoke Copilot](https://github.com/github/gh-aw/actions/workflows/smoke-copilot.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/smoke-copilot.lock.yml) | - | - | +| [Smoke macOS ARM64](https://github.com/github/gh-aw/blob/main/.github/workflows/smoke-macos-arm64.md) | copilot | [![Smoke macOS ARM64](https://github.com/github/gh-aw/actions/workflows/smoke-macos-arm64.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/smoke-macos-arm64.lock.yml) | - | - | | [Smoke Project](https://github.com/github/gh-aw/blob/main/.github/workflows/smoke-project.md) | copilot | [![Smoke Project](https://github.com/github/gh-aw/actions/workflows/smoke-project.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/smoke-project.lock.yml) | - | - | | [Smoke Temporary ID](https://github.com/github/gh-aw/blob/main/.github/workflows/smoke-temporary-id.md) | copilot | [![Smoke Temporary ID](https://github.com/github/gh-aw/actions/workflows/smoke-temporary-id.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/smoke-temporary-id.lock.yml) | - | - | | [Stale Repository Identifier](https://github.com/github/gh-aw/blob/main/.github/workflows/stale-repo-identifier.md) | copilot | [![Stale Repository Identifier](https://github.com/github/gh-aw/actions/workflows/stale-repo-identifier.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/stale-repo-identifier.lock.yml) | - | - | diff --git a/docs/src/content/docs/patterns/monitoring.md b/docs/src/content/docs/patterns/monitoring.md index 6b122d9d032..51546d2db45 100644 --- a/docs/src/content/docs/patterns/monitoring.md +++ b/docs/src/content/docs/patterns/monitoring.md @@ -49,6 +49,64 @@ See the full reference: [/reference/safe-outputs/#project-status-updates-create- If you want to correlate multiple runs, add a custom field like **Tracker Id** (text) and populate it from your workflow prompt/output (for example, a run ID, issue number, or “initiative” key). +## Run failure issues + +When a workflow run fails, the system automatically posts a failure notification on the triggering issue or pull request. To track failures as searchable GitHub issues, enable `create-issue` in `safe-outputs`: + +```yaml wrap +safe-outputs: + create-issue: + title-prefix: "[failed] " + labels: [automation, failed] +``` + +The issue body includes the workflow name, run URL, and failure status, making it easy to find and triage recurring failures. + +### Grouping failures as sub-issues + +When multiple workflow runs fail, the `group-reports` option links each failure report as a sub-issue under a shared parent issue titled "[agentics] Failed runs". This is useful for scheduled or high-frequency workflows where failures can accumulate. + +```yaml wrap +safe-outputs: + create-issue: + title-prefix: "[failed] " + labels: [automation, failed] + group-reports: true # Group failure reports under a shared parent issue (default: false) +``` + +When `group-reports` is enabled: + +- A parent "[agentics] Failed runs" issue is automatically created and managed. +- Each failure run report is linked as a sub-issue under the parent. +- Up to 64 sub-issues are tracked per parent issue. + +See the full reference: [/reference/safe-outputs/#group-reports-group-reports](/gh-aw/reference/safe-outputs/#group-reports-group-reports) + +## No-op run reports + +When an agent determines that no action is needed (for example, no issues were found), it outputs a no-op message. By default, this message is posted as a comment on the triggering issue or pull request, keeping a visible record of runs that intentionally did nothing. + +To disable posting no-op messages as issue comments: + +```yaml wrap +safe-outputs: + create-issue: + noop: + report-as-issue: false # Disable posting noop messages as issue comments +``` + +No-op messages still appear in the workflow step summary even when `report-as-issue` is `false`. + +To disable the no-op output entirely: + +```yaml wrap +safe-outputs: + create-issue: + noop: false # Disable noop output completely +``` + +See the full reference: [/reference/safe-outputs/#no-op-logging-noop](/gh-aw/reference/safe-outputs/#no-op-logging-noop) + ## Operational monitoring - Use `gh aw status` to see which workflows are enabled and their latest run state.