Skip to content

Add LOW_QUALITY support to comment minimization reasons across safe outputs#27397

Merged
pelikhan merged 2 commits intomainfrom
copilot/add-low-quality-reason-support
Apr 20, 2026
Merged

Add LOW_QUALITY support to comment minimization reasons across safe outputs#27397
pelikhan merged 2 commits intomainfrom
copilot/add-low-quality-reason-support

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 20, 2026

GitHub added a new comment minimization classifier (LOW_QUALITY) in the moderation menu. This PR updates gh-aw safe outputs so workflows and emitted actions can use that classifier consistently end-to-end.

  • Runtime + validation contract

    • Added LOW_QUALITY to hide_comment.reason validation in safe output runtime config.
    • Keeps existing behavior unchanged for current classifiers.
  • Schema + tool definition updates

    • Extended hide-comment reason enums in both safe output tool definition JSONs.
    • Extended frontmatter schema for:
      • safe-outputs.hide-comment.allowed-reasons
      • safe-outputs.add-comment.allowed-reasons (for hide-older-comments)
    • Both now include low_quality.
  • Type surface updates

    • Updated JS type definitions for HideCommentItem.reason to include LOW_QUALITY.
  • Docs + generated workflow artifacts

    • Updated reference docs that enumerate hide-comment and hide-older-comments reasons.
    • Regenerated affected workflow lock artifacts impacted by updated safe-output schemas.
    • Fixed formatting alignment in pkg/workflow/js/safe_outputs_tools.json for the hide_comment tool entry.
safe-outputs:
  hide-comment:
    allowed-reasons: [spam, abuse, off_topic, outdated, resolved, low_quality]
  add-comment:
    hide-older-comments: true
    allowed-reasons: [spam, abuse, off_topic, outdated, resolved, low_quality]
{ "type": "hide_comment", "comment_id": "IC_kwDOABCD123456", "reason": "LOW_QUALITY" }

@pelikhan pelikhan marked this pull request as ready for review April 20, 2026 17:00
Copilot AI review requested due to automatic review settings April 20, 2026 17:00
@github-actions github-actions bot mentioned this pull request Apr 20, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🧪 Test Quality Sentinel Report

Test Quality Score: 50/100

🔶 Needs Improvement

Metric Value
New/modified tests analyzed 1
✅ Design tests (behavioral contracts) 1 (100%)
⚠️ Implementation tests (low value) 0 (0%)
Tests with error/edge cases 0 (0%)
Duplicate test clusters 0
Test inflation detected Yes (technical — see note)
🚨 Coding-guideline violations 0

Test Classification Details

Test File Classification Issues Detected
should pass through LOW_QUALITY reason actions/setup/js/hide_comment.test.cjs:92 ✅ Design No error case; missing return-value assertions

Flagged Tests — Requires Review

⚠️ should pass through LOW_QUALITY reason (actions/setup/js/hide_comment.test.cjs:92)

Classification: Design test (behavioral contract) — it verifies that reason: "low_quality" is normalized to classifier: "LOW_QUALITY" before being sent to the GitHub GraphQL API. Mocking mockGithub.graphql is legitimate since it represents external I/O.

Issue 1 — Missing return-value assertion: The test calls handler(...) and only checks the interaction assertion (toHaveBeenCalledWith). The existing should hide a comment successfully test also checks result.success, result.comment_id, and result.is_hidden. For consistency and stronger behavioral coverage, the same output assertions should be added here.

Issue 2 — No error/edge case: The test exercises a new happy-path value but does not check what happens if low_quality is supplied when the handler is configured with an allowed_reasons list that excludes it (e.g., main({ allowed_reasons: ["SPAM", "ABUSE"] })). The existing should fail when reason is not allowed test pattern would be worth extending to LOW_QUALITY.

Suggested improvement:

it("should pass through LOW_QUALITY reason", async () => {
  const { main } = await loadModule();
  const handler = await main();

  const result = await handler({ comment_id: "IC_kwDOABCD123456", reason: "low_quality" }, {});

  expect(result.success).toBe(true);          // add: verify return value
  expect(result.is_hidden).toBe(true);        // add: verify return value
  expect(mockGithub.graphql).toHaveBeenCalledWith(
    expect.any(String),
    expect.objectContaining({ classifier: "LOW_QUALITY" })
  );
});

Inflation Note

The corresponding production file hide_comment.cjs was not changed in this PR (the feature is distributed across safe_outputs_tools.json, safe_outputs_validation_config.go, and schema files). This produces a technical 9:0 inflation ratio for the hide_comment file pair, triggering the -10 penalty, but this is a false positive — the test is genuinely testing real production behavior. The score of 50 reflects this accounting artifact.


Language Support

Tests analyzed:

  • 🟨 JavaScript (*.test.cjs): 1 test (vitest)
  • 🐹 Go (*_test.go): 0 tests changed

Verdict

Check passed. 0% of new tests are implementation tests (threshold: 30%). No coding-guideline violations detected. Score 50/100 is held down by the absence of error/edge case coverage and a technical inflation ratio — both are improvable in a follow-up.


📖 Understanding Test Classifications

Design Tests (High Value) verify what the system does:

  • Assert on observable outputs, return values, or state changes
  • Cover error paths and boundary conditions
  • Would catch a behavioral regression if deleted
  • Remain valid even after internal refactoring

Implementation Tests (Low Value) verify how the system does it:

  • Assert on internal function calls (mocking internals)
  • Only test the happy path with typical inputs
  • Break during legitimate refactoring even when behavior is correct
  • Give false assurance: they pass even when the system is wrong

Goal: Shift toward tests that describe the system's behavioral contract — the promises it makes to its users and collaborators.

References: §24679499625

🧪 Test quality analysis by Test Quality Sentinel · ● 565K ·

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds end-to-end support for GitHub’s new LOW_QUALITY hide-comment classifier across gh-aw safe outputs (validation/runtime contract, schemas, tool definitions, types, docs, and regenerated lock workflows).

Changes:

  • Extended hide_comment.reason validation to allow LOW_QUALITY in the safe-outputs runtime validation config.
  • Updated both safe-output tool definition JSONs, workflow/frontmatter schema enums, and JS type definitions to include the new classifier.
  • Updated docs and regenerated affected workflow lock artifacts; added a JS unit test covering LOW_QUALITY.
Show a summary per file
File Description
pkg/workflow/safe_outputs_validation_config.go Allows LOW_QUALITY in runtime validation for hide_comment.reason.
pkg/workflow/js/safe_outputs_tools.json Updates hide_comment tool schema/description to include LOW_QUALITY (note: formatting issue flagged).
pkg/parser/schemas/main_workflow_schema.json Extends safe-outputs.hide-comment.allowed-reasons enum/docs to include low_quality.
docs/src/content/docs/reference/safe-outputs.md Documents low_quality as a hide-comment reason.
docs/src/content/docs/reference/frontmatter-full.md Updates frontmatter reference comments to include low_quality.
actions/setup/js/types/safe-outputs.d.ts Extends HideCommentItem.reason union with LOW_QUALITY.
actions/setup/js/safe_outputs_tools.json Extends tool schema enum/description with LOW_QUALITY.
actions/setup/js/hide_comment.test.cjs Adds test ensuring low_quality maps through to LOW_QUALITY.
.github/workflows/smoke-codex.lock.yml Regenerated lock artifact reflecting updated tool enum.
.github/workflows/ai-moderator.lock.yml Regenerated lock artifact reflecting updated tool enum.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 9/10 changed files
  • Comments generated: 3

Comment thread pkg/workflow/js/safe_outputs_tools.json Outdated
{
"name": "hide_comment",
"description": "Hide a comment on a GitHub issue, pull request, or discussion. This collapses the comment and marks it as spam, abuse, off-topic, outdated, or resolved. Use this for inappropriate, off-topic, or outdated comments. The comment_id must be a GraphQL node ID (string like 'IC_kwDOABCD123456'), not a numeric REST API comment ID. NOTE: By default, this tool requires discussions:write permission. If your GitHub App lacks Discussions permission, set 'discussions: false' in the workflow's safe-outputs.hide-comment configuration to exclude this permission.",
"description": "Hide a comment on a GitHub issue, pull request, or discussion. This collapses the comment and marks it as spam, abuse, off-topic, outdated, resolved, or low-quality. Use this for inappropriate, off-topic, or outdated comments. The comment_id must be a GraphQL node ID (string like 'IC_kwDOABCD123456'), not a numeric REST API comment ID. NOTE: By default, this tool requires discussions:write permission. If your GitHub App lacks Discussions permission, set 'discussions: false' in the workflow's safe-outputs.hide-comment configuration to exclude this permission.",
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In pkg/workflow/js/safe_outputs_tools.json, the hide_comment tool entry has inconsistent indentation for the "description" key compared to the rest of the file (it’s indented far deeper than "name" and the other tool entries). Even though it’s valid JSON, this looks like an accidental formatting artifact and makes future diffs/noise more likely—please reformat this object to match the surrounding style (align "description" with "name").

Suggested change
"description": "Hide a comment on a GitHub issue, pull request, or discussion. This collapses the comment and marks it as spam, abuse, off-topic, outdated, resolved, or low-quality. Use this for inappropriate, off-topic, or outdated comments. The comment_id must be a GraphQL node ID (string like 'IC_kwDOABCD123456'), not a numeric REST API comment ID. NOTE: By default, this tool requires discussions:write permission. If your GitHub App lacks Discussions permission, set 'discussions: false' in the workflow's safe-outputs.hide-comment configuration to exclude this permission.",
"description": "Hide a comment on a GitHub issue, pull request, or discussion. This collapses the comment and marks it as spam, abuse, off-topic, outdated, resolved, or low-quality. Use this for inappropriate, off-topic, or outdated comments. The comment_id must be a GraphQL node ID (string like 'IC_kwDOABCD123456'), not a numeric REST API comment ID. NOTE: By default, this tool requires discussions:write permission. If your GitHub App lacks Discussions permission, set 'discussions: false' in the workflow's safe-outputs.hide-comment configuration to exclude this permission.",

Copilot uses AI. Check for mistakes.
Comment on lines 7216 to 7222
"allowed-reasons": {
"type": "array",
"description": "List of allowed reasons for hiding comments. Default: all reasons allowed (spam, abuse, off_topic, outdated, resolved).",
"description": "List of allowed reasons for hiding comments. Default: all reasons allowed (spam, abuse, off_topic, outdated, resolved, low_quality).",
"items": {
"type": "string",
"enum": ["spam", "abuse", "off_topic", "outdated", "resolved"]
"enum": ["spam", "abuse", "off_topic", "outdated", "resolved", "low_quality"]
}
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The schema update adds low_quality for safe-outputs.hide-comment.allowed-reasons, but safe-outputs.add-comment.allowed-reasons (used for hide-older-comments minimization reasons) still only allows [spam, abuse, off_topic, outdated, resolved]. Since add_comment’s hide-older-comments path also calls GitHub’s minimizeComment with ReportedContentClassifiers, it should accept LOW_QUALITY too for consistency/end-to-end support. Please extend the add-comment.allowed-reasons enum + description accordingly.

Copilot uses AI. Check for mistakes.
### Hide Comment (`hide-comment:`)

Collapses comments in GitHub UI with reason. Requires GraphQL node IDs (e.g., `IC_kwDOABCD123456`), not REST numeric IDs. Reasons: `spam`, `abuse`, `off_topic`, `outdated`, `resolved`.
Collapses comments in GitHub UI with reason. Requires GraphQL node IDs (e.g., `IC_kwDOABCD123456`), not REST numeric IDs. Reasons: `spam`, `abuse`, `off_topic`, `outdated`, `resolved`, `low_quality`.
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs update the hide-comment reasons list to include low_quality, but the earlier “Hide Older Comments” section (add-comment.hide-older-comments) still lists allowed reasons without low_quality. Since the implementation uppercases and forwards the classifier to minimizeComment, LOW_QUALITY is supported there too—please update the hide-older-comments reason list to keep docs consistent.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Test Quality Sentinel: 50/100. Test quality is acceptable — 0% of new tests are implementation tests (threshold: 30%). The single new test correctly covers the LOW_QUALITY behavioral contract. See the comment above for suggestions to strengthen coverage with return-value assertions and an error/edge case.

@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot review all comments

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 20, 2026

@copilot review all comments

Done — I addressed the review comments in ee9671f.

Changes included:

  • Fixed indentation alignment for hide_comment description in /home/runner/work/gh-aw/gh-aw/pkg/workflow/js/safe_outputs_tools.json.
  • Added low_quality to safe-outputs.add-comment.allowed-reasons enum/description in /home/runner/work/gh-aw/gh-aw/pkg/parser/schemas/main_workflow_schema.json.
  • Updated hide-older-comments reason lists in docs (/home/runner/work/gh-aw/gh-aw/docs/src/content/docs/reference/safe-outputs.md, /home/runner/work/gh-aw/gh-aw/docs/src/content/docs/reference/frontmatter-full.md, /home/runner/work/gh-aw/gh-aw/docs/src/content/docs/guides/ephemerals.md).

Validation:

  • Targeted parser/workflow tests passed.
  • make fmt passed.
  • parallel_validation passed with no findings.
  • make agent-finish still fails at the pre-existing security-gosec step (same baseline issue).

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh gh repo view --json owner,name --jq .owner.login + "/" + .name 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh repo view owner/repo env -json GO111MODULE 64/pkg/tool/linux_amd64/asm GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/asm env -json GO111MODULE k GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh repo view owner/repo env rity2548570391/001 GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env g_.a GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE flow GOMODCACHE go (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name hAbc/ogVVwAfbYtNGOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE 7849614/b366/impGO111MODULE -c k/gh-aw/gh-aw/cmGOINSECURE GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go /opt/hostedtoolc-buildtags (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv --get-regexp ^remote\..*\.gh-resolved$ /usr/bin/infocmp -json GO111MODULE 64/bin/go infocmp -1 xterm-color go /usr/bin/git -json GO111MODULE 64/pkg/tool/linu--package-lock-only git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv thImports1091495763/001 node om/org2/repo2.git 01 **/*.cjs 64/bin/go git rev-�� --show-toplevel go /usr/bin/git s/data/action_pigit GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env Onlyrepos_only_without_min-integrity3165298182/001 GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel 64/pkg/tool/linuremote.origin.url /usr/bin/git 3569992024/001 GO111MODULE ache/go/1.25.8/x--show-toplevel git rev-�� --show-toplevel go /usr/bin/git efaultBranchFromgit efaultBranchFromrev-parse ache/go/1.25.8/x--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet 86_64/node echo "��� All vagit GOPROXY ache/node/24.14.--show-toplevel git 1/x6�� --show-toplevel git /usr/bin/git bility_SameInputgit --initial-branchrev-parse 0878223/b445/vet--show-toplevel git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv sistency_KeyOrdering3572356219/001/test2.md --auto /usr/bin/git --detach GO111MODULE 64/bin/go git rev-�� --show-toplevel l /usr/bin/git che/go-build/12/git GOPROXY 64/bin/go git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git 1726-26528/test-git GO111MODULE ache/go/1.25.8/xHEAD git rev-�� tags/v3 go sv -json GO111MODULE /opt/hostedtoolc--show-toplevel git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv GOSUMDB GOWORK 64/bin/go GOINSECURE GOMOD GOMODCACHE node /opt�� run lint:cjs 64/bin/go GOSUMDB GOWORK 64/bin/go sh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv che/go-build/4b/GOINSECURE GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcGOPROXY -o /tmp/go-build303GOSUMDB -trimpath 64/bin/go -p main -lang=go1.25 go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv --check **/*.cjs 64/bin/go **/*.json --ignore-path ../../../.pretti-bool go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/infocmp -json GO111MODULE 64/bin/go infocmp -1 xterm-color go /usr/bin/git LsRemoteWithRealgit LsRemoteWithRealrev-parse 64/bin/go git (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/gh -json GO111MODULE 64/bin/go gh api /repos/actions/github-script/git/ref/tags/v9 --jq /usr/bin/git ty-test.md GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmaster_branch898701/001 /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmaster_branch898701/002/work 0878223/b448/vet.cfg -json GO111MODULE 64/bin/go git -C /tmp/TestGuardPolicyMinIntegrityOnlymin-integrity_with_repos=public_1661197730/001 remote /usr/bin/git hyphen919884348/git hyphen919884348/rev-parse 64/bin/go git (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv 2f41ef17..HEAD st/suppress-warnings.cjs $name) { hasDiscussionsEnabled } } -b token-option-tes-c k/_temp/ghcca-nogit config user.name 'Test User' st/dist/workers/forks.js rev-�� HEAD 2f41ef17..HEAD 64/bin/node -m Token option new-C tions/node_modul/home/REDACTED/work/gh-aw/gh-aw/.github/workflows 1Lyk8YH/93l3ERg6config (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv 2f41ef17..HEAD git git token-test.txt git tnet/tools/git git show�� --verify 2f41ef17..HEAD bin/node -m Token option newapi 1/x64/lib/node_mgraphql git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/artifacts-summary.md go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/infocmp hub/workflows GO111MODULE 64/bin/go infocmp (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv /tmp/TestParseDefaultBranchFromLsRemoteWithRealG--workflow l /usr/bin/git -json GO111MODULE 64/bin/go git -C /tmp/TestGuardPolicyBlockedUsersExpressionCompiledOutput3767307609/001 rev-parse /usr/bin/git prettier --check 64/bin/go git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv GOMODCACHE (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 GO111MODULE e4b68e421d17c53b1b4acf9bcb4ce7ee2b547c5e3ea04ea9-d GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env edOutput985948899/001 GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name LsRemoteWithRealGitcustom_branch4135404470/001' 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/pkg/tool/linux_amd64/asm GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/asm (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 1756069912 GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name LsRemoteWithRealGitbranch_with_hyphen919884348/001' 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/pkg/tool/linux_amd64/cgo GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/cgo (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/link (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 367380175 GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path Usbo/vDKnJLswFOGGOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE 7849614/b388/impGO111MODULE -c che/go-build/d6/GOINSECURE GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go /opt/hostedtoolc-buildtags (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 GOMOD GOMODCACHE go env mpiledOutput983794339/001 GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build2350878223/b403/cli.test /tmp/go-build2350878223/b403/cli.test -test.testlogfile=/tmp/go-build2350878223/b403/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE node (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git efaultBranchFromgit efaultBranchFromrev-parse ache/go/1.25.8/x--show-toplevel git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE ache/go/1.25.8/x/tmp/gh-aw/aw-feature-branch.patch git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv 2365112427 GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv /tmp/go-build303-errorsas -trimpath 64/bin/go -p github.com/githu-1 -lang=go1.25 go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env Gitmain_branch707729227/001' Gitmain_branch707729227/001' 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go GOINSECURE GOMOD GOMODCACHE node /hom�� --check **/*.cjs 64/bin/go **/*.json --ignore-path ../../../.pretti-bool go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE Name,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name e7sc/2ux8cwyioRqGOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE 7849614/b365/impGO111MODULE -c 7849614/b365/embGOINSECURE GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go /opt/hostedtoolc-buildtags (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch e-analyzer.md GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env 8/001/test-inlined-imports-enabled-with-body-content.md GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • invalid.example.invalid
    • Triggering command: /usr/lib/git-core/git-remote-https /usr/lib/git-core/git-remote-https origin https://invalid.example.invalid/nonexistent-repo.git git conf�� user.name lure tions/setup/js/node_modules/.bin/git -M main /usr/sbin/git git init�� --bare --initial-branch=main k/gh-aw/gh-aw/actions/setup/js/node_modules/.bin/git '/tmp/bare-incregit '/tmp/bare-increadd cal/bin/git git (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

@github-actions
Copy link
Copy Markdown
Contributor

Hey @Copilot 👋 — great work adding LOW_QUALITY support to the hide-comment surface! This is a clean, well-scoped change that keeps the safe-outputs contract aligned with GitHub's latest moderation classifier.

The PR is thorough: runtime validation, both tool definition JSONs, the frontmatter schema, TypeScript types, reference docs, and the two regenerated lock files are all updated consistently. The new test in hide_comment.test.cjs covers the happy-path pass-through for the new reason — exactly what the project expects.

One minor nit worth a follow-up: in pkg/workflow/js/safe_outputs_tools.json the updated "description" line picked up 20 extra leading spaces compared to its siblings, slightly misaligning the JSON indentation. Not a blocker, but worth tidying.

This looks ready for maintainer review! 🟢

Generated by Contribution Check · ● 1.7M ·

@github-actions github-actions bot added the lgtm label Apr 20, 2026
Copilot AI changed the title Add LOW_QUALITY support to hide-comment reasons across safe outputs Add LOW_QUALITY support to comment minimization reasons across safe outputs Apr 20, 2026
Copilot AI requested a review from pelikhan April 20, 2026 17:22
@pelikhan pelikhan merged commit befcc0d into main Apr 20, 2026
@pelikhan pelikhan deleted the copilot/add-low-quality-reason-support branch April 20, 2026 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants