Skip to content

Issue Triage: process issues from all authors (external + read-only members)#741

Open
JanKrivanek wants to merge 1 commit into
mainfrom
issue-triage-process-all-authors
Open

Issue Triage: process issues from all authors (external + read-only members)#741
JanKrivanek wants to merge 1 commit into
mainfrom
issue-triage-process-all-authors

Conversation

@JanKrivanek

Copy link
Copy Markdown
Member

Problem

The Issue Triage agentic workflow couldn't actually triage issues from two populations:

  1. External contributors (e.g. /plugin marketplace add dotnet/skills installs the aaronontheweb/dotnet-skills marketplace, not this marketplace #732) — the GitHub MCP integrity filter (default min-integrity: approved) returned a [Filtered] placeholder instead of the issue body/comments, so the agent fell back to needs-manual-assignment.
  2. Read-only org members (e.g. [dotnet-msbuild] Add skills for custom target authoring, property patterns, item management, and extension points #668) — separately, these were skipped at the role gate. That part was already fixed by roles: all (Issues triage workflow should trigger for issues from any user #714); this PR addresses the remaining content-filtering issue, which also affected them once activated.

Change

In .github/workflows/issue-triage.md (and recompiled .lock.yml):

  • min-integrity: none + allowed-repos: public under tools.github — lets the triage agent read issue content from any author (external or member), since triage is a read-and-label task on a public repo.
  • update-issue: body: false — triage only sets assignees + echoes the unchanged title; disabling body edits removes that mutation vector entirely.
  • "Untrusted content" prompt section — forbids following any instructions/links embedded in issue text, mirroring the hardening in pr-malicious-scan.

Defense-in-depth is unchanged: the agent holds no write token, and safe-outputs still caps every mutation (≤5 labels, ≤2 assignee-only updates, 1 comment).

Testing

Dispatched the branch workflow against both investigation issues:

Issue Author issue_read body Result
#732 NONE (external) real content returned (was [Filtered]) agent read OK, noop (already Triaged)
#668 MEMBER (read-only) real content returned success, noop (already Triaged)

Both now read the actual issue body instead of [Filtered], confirming the fix. (The #732 run shows a failure conclusion from a transient AI-model server error after the agent completed its work — unrelated to this change.)

gh aw compile issue-triage --strict → 0 errors / 0 warnings.

Lower the GitHub MCP integrity filter (min-integrity: none, allowed-repos: public) so the triage agent can read issue bodies/comments from external contributors and read-only org members instead of getting a [Filtered] placeholder. Harden the now-less-filtered path: disable issue-body edits on update-issue (body: false) and add an Untrusted content prompt section. Recompiled lock file.
@JanKrivanek JanKrivanek marked this pull request as ready for review June 9, 2026 17:44
@JanKrivanek JanKrivanek requested a review from ViktorHofer as a code owner June 9, 2026 17:44
Copilot AI review requested due to automatic review settings June 9, 2026 17:44
@JanKrivanek JanKrivanek enabled auto-merge (squash) June 9, 2026 17:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the Issue Triage agentic workflow configuration so it can reliably read and triage issues authored by external contributors and read-only org members, while reducing mutation surface area.

Changes:

  • Relax GitHub MCP integrity filtering for this workflow (min-integrity: none, allowed-repos: public) so issue bodies/comments aren’t returned as [Filtered].
  • Disable issue body edits via safe-outputs (update-issue body updates disallowed).
  • Add explicit “Untrusted content” prompt rules to harden against prompt-injection from issue content.
Show a summary per file
File Description
.github/workflows/issue-triage.md Adjusts GitHub MCP guard settings, tightens safe-outputs to prevent body edits, and adds untrusted-content prompt rules.
.github/workflows/issue-triage.lock.yml Recompiled workflow lock output reflecting the updated MCP guard and safe-outputs configuration.

Copilot's findings

Tip

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

  • Files reviewed: 2/2 changed files
  • Comments generated: 2

Comment on lines +90 to +92
# Scope the github MCP guard to public repos only — this workflow only
# ever inspects this repo (which is public).
allowed-repos: public
Comment on lines 422 to +423
- name: Download container images
run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" ghcr.io/github/gh-aw-firewall/agent:0.25.20 ghcr.io/github/gh-aw-firewall/api-proxy:0.25.20 ghcr.io/github/gh-aw-firewall/squid:0.25.20 ghcr.io/github/gh-aw-mcpg:v0.2.19 ghcr.io/github/github-mcp-server:v0.32.0@sha256:2763823c63bcca718ce53850a1d7fcf2f501ec84028394f1b63ce7e9f4f9be28 node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f
run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" ghcr.io/github/gh-aw-firewall/agent:0.25.20 ghcr.io/github/gh-aw-firewall/api-proxy:0.25.20 ghcr.io/github/gh-aw-firewall/squid:0.25.20 ghcr.io/github/gh-aw-mcpg:v0.2.19 ghcr.io/github/github-mcp-server:v0.32.0 node:lts-alpine
@github-actions github-actions Bot added the waiting-on-author PR state label label Jun 9, 2026
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

👋 @JanKrivanek — this PR has 2 unresolved review thread(s),merge conflict. When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting-on-author PR state label

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants