From 28913abfa6e1e558efb30430b2064c1b6ee28a6b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 17:17:00 +0000 Subject: [PATCH 1/2] docs: unbloat safe outputs reference --- .../content/docs/reference/safe-outputs.md | 25 ++++--------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/docs/src/content/docs/reference/safe-outputs.md b/docs/src/content/docs/reference/safe-outputs.md index abf236ea133..79b9e514f32 100644 --- a/docs/src/content/docs/reference/safe-outputs.md +++ b/docs/src/content/docs/reference/safe-outputs.md @@ -22,6 +22,8 @@ The agent requests issue creation; a separate job with `issues: write` creates i ## Available Safe Output Types +The tables below summarize the built-in safe output handlers. `noop`, `missing-tool`, and `missing-data` are always available, and `create-issue` is auto-injected only when no non-system safe outputs are configured. + ### Issues & Discussions | Output | Key | Description | @@ -168,16 +170,8 @@ To explicitly disable expiration (useful when create-issue has a default expirat #### Issue Grouping -The `group` field (default: `false`) automatically organizes multiple issues as sub-issues under a parent issue. When enabled: - -- Parent issues are automatically created and managed using the workflow ID as the group identifier -- Child issues are linked to the parent using GitHub's sub-issue relationships -- Maximum of 64 sub-issues per parent issue -- Parent issues include metadata tracking all sub-issues - -This is useful for workflows that create multiple related issues, such as planning workflows that break down epics into tasks, or batch processing workflows that create issues for individual items. +The `group` field (default: `false`) organizes multiple issues as sub-issues under a parent issue. The parent is managed using the workflow ID as the group identifier, children are linked through GitHub sub-issue relationships, each parent can hold up to 64 sub-issues, and the parent stores metadata for the tracked children. This is useful for workflows that create sets of related issues, such as plans broken into tasks or batch processing runs. -**Example:** ```yaml wrap safe-outputs: @@ -190,7 +184,7 @@ safe-outputs: #### Auto-Close Older Issues -The `close-older-issues` field (default: `false`) automatically closes previous open issues from the same workflow when a new issue is created. This is useful for workflows that generate recurring reports or status updates, ensuring only the latest issue remains open. +The `close-older-issues` field (default: `false`) closes previous open issues from the same workflow after a new issue is created. It searches for open issues with the same workflow-id marker, closes up to 10 of them as "not planned," and adds a comment linking to the new issue. The cleanup runs only if new issue creation succeeds, which makes it a good fit for recurring reports or status updates where only the latest issue should remain open. ```yaml wrap safe-outputs: @@ -200,16 +194,9 @@ safe-outputs: close-older-issues: true ``` -When enabled: - -- Searches for open issues containing the same workflow-id marker in their body -- Closes found issues as "not planned" with a comment linking to the new issue -- Maximum 10 older issues will be closed -- Only runs if the new issue creation succeeds - #### Group By Day -The `group-by-day` field (default: `false`) groups multiple same-day workflow runs into a single issue. When enabled, the handler searches for an existing open issue created **today (UTC)** with the same workflow-id marker (or `close-older-key` if set). If found, the new content is posted as a **comment** on that existing issue instead of creating a new one. +The `group-by-day` field (default: `false`) groups same-day workflow runs into a single issue. The handler looks for an existing open issue created **today (UTC)** with the same workflow-id marker, or `close-older-key` if set, and posts the new content as a **comment** instead of creating a new issue. This is useful for frequent scheduled workflows, such as runs every four hours, because all runs for the day contribute to one issue. Posting as a comment does not consume a max-count slot; if the pre-check fails, normal issue creation is used as a fallback. ```yaml wrap safe-outputs: @@ -220,8 +207,6 @@ safe-outputs: group-by-day: true ``` -This is useful for scheduled workflows (e.g. every 4 hours) that produce recurring daily reports: all runs on the same day contribute to one issue, eliminating duplicate open/closed issues. The max-count slot is not consumed when posting as a comment; on failure of the pre-check, normal issue creation proceeds as a fallback. - #### Title-Based Deduplication The `deduplicate-by-title` field drops duplicate issues by comparing titles before creation. Accepts: From bd59017db5adc655758bbe3f65c3d533b130e871 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 1 Jul 2026 18:25:29 +0000 Subject: [PATCH 2/2] docs: fix group/close-older-issues/group-by-day marker accuracy Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com> --- docs/src/content/docs/reference/safe-outputs.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/src/content/docs/reference/safe-outputs.md b/docs/src/content/docs/reference/safe-outputs.md index 79b9e514f32..65f6d2b4096 100644 --- a/docs/src/content/docs/reference/safe-outputs.md +++ b/docs/src/content/docs/reference/safe-outputs.md @@ -170,7 +170,7 @@ To explicitly disable expiration (useful when create-issue has a default expirat #### Issue Grouping -The `group` field (default: `false`) organizes multiple issues as sub-issues under a parent issue. The parent is managed using the workflow ID as the group identifier, children are linked through GitHub sub-issue relationships, each parent can hold up to 64 sub-issues, and the parent stores metadata for the tracked children. This is useful for workflows that create sets of related issues, such as plans broken into tasks or batch processing runs. +The `group` field (default: `false`) organizes multiple issues as sub-issues under a parent issue. The parent is identified by a `` marker derived from the workflow name; children are linked through GitHub sub-issue relationships; and each parent can hold up to 64 sub-issues. This is useful for workflows that create sets of related issues, such as plans broken into tasks or batch processing runs. ```yaml wrap @@ -184,7 +184,7 @@ safe-outputs: #### Auto-Close Older Issues -The `close-older-issues` field (default: `false`) closes previous open issues from the same workflow after a new issue is created. It searches for open issues with the same workflow-id marker, closes up to 10 of them as "not planned," and adds a comment linking to the new issue. The cleanup runs only if new issue creation succeeds, which makes it a good fit for recurring reports or status updates where only the latest issue should remain open. +The `close-older-issues` field (default: `false`) closes previous open issues from the same workflow after a new issue is created. It searches for open issues using the `gh-aw-workflow-id` marker (or `gh-aw-close-key` when `close-older-key` is set), closes up to 10 of them as "not planned," and adds a comment linking to the new issue. In reusable-workflow scenarios, the `gh-aw-workflow-call-id` marker is used for precise per-caller matching, so issues from different callers sharing the same reusable workflow are not cross-closed. The cleanup runs only if new issue creation succeeds, which makes it a good fit for recurring reports or status updates where only the latest issue should remain open. ```yaml wrap safe-outputs: @@ -196,7 +196,7 @@ safe-outputs: #### Group By Day -The `group-by-day` field (default: `false`) groups same-day workflow runs into a single issue. The handler looks for an existing open issue created **today (UTC)** with the same workflow-id marker, or `close-older-key` if set, and posts the new content as a **comment** instead of creating a new issue. This is useful for frequent scheduled workflows, such as runs every four hours, because all runs for the day contribute to one issue. Posting as a comment does not consume a max-count slot; if the pre-check fails, normal issue creation is used as a fallback. +The `group-by-day` field (default: `false`) groups same-day workflow runs into a single issue. The handler looks for an existing open issue created **today (UTC)** using the workflow marker (`gh-aw-workflow-id`, or `gh-aw-workflow-call-id` in reusable-workflow scenarios, or `gh-aw-close-key` when `close-older-key` is set), and posts the new content as a **comment** instead of creating a new issue. This is useful for frequent scheduled workflows, such as runs every four hours, because all runs for the day contribute to one issue. Posting as a comment does not consume a max-count slot; if the pre-check fails, normal issue creation is used as a fallback. ```yaml wrap safe-outputs: