Skip to content

Commit 4bcdcdf

Browse files
JoannaaKLCopilot
andauthored
Replace retired GitHub Models triage with agentic workflows (#3629)
* Remove triage workflows that depend on GitHub Models GitHub Models was retired on 2026-07-30. models.github.ai now returns a plain 200 OK for every request, so the issue assessment and AI moderator workflows fail silently while their runs report success. The moderator action is also archived. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add agentic issue triage Triage new and reopened issues with GitHub Agentic Workflows. The agent checks whether the issue template was filled in, posts one assessment comment, and can only add bug, enhancement, waiting-for-reply, invalid or spam. Safe outputs start staged, so runs only preview their output. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add agentic pull request triage Fork pull request runs can't use Copilot in a public repository, so an hourly job starts one triage run per new pull request from an external contributor, at most 20 a day. Each run can only label and comment on its own pull request. Safe outputs start staged. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Triage pull requests when a draft is marked ready Pull requests opened as drafts and marked ready more than seven days later were never triaged. Find pull requests by when they became ready instead of when they were created, and only count triage runs started since then, so a pull request marked ready again is triaged again. Only consider fork pull requests. Members with private org membership can look external to the workflow token, which would have dispatched triage for internal pull requests. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Base triage decisions on objective checks Issue and pull request content can try to steer the agent. Decide from template structure, placeholder text, and other observable signals, ignore instructions in the content, and post fixed comment text that never repeats it. Pull request triage only acts when a check fails, and no longer flags spam, which needs reading the content's meaning. The agents also lose shell access and are limited to the GitHub tools they need: issue_read and search_issues, or pull_request_read. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Check pull requests in code instead of in the agent The template checks no longer need judgment, so a job now runs them in code and passes only the result and the failed section names to the agent. The agent never reads pull request content and has no GitHub tools, and it only runs when a check fails. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Limit issue triage to fixed labels and comments The agent now reads only the issue's title and body, adds at most one of waiting-for-reply, invalid or spam, and posts one of three fixed comments word for word. It no longer adds type labels, which the templates already apply, or searches for duplicates, which fed it other issues' content. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Check issues in code instead of in the agent The issue triage rules relied on the agent following instructions, and sent issue content, including anything sensitive, to the model. A job now compares the issue with the templates in code, and the agent only posts the result. Issues that partly use a template, or don't use one and have a body, are left alone. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Ignore fence lines when checking pull request descriptions Fence lines counted as section content, so a section with only an empty code block passed, and any fence line toggled code mode. Skip fence lines and only close a fence with a matching one. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Treat links to GitHub-owned domains as internal in issue triage Only github.com and www.github.com were exempt, so an unfilled issue that linked to gist.github.com, docs.github.com or the remote server at api.githubcopilot.com was labeled spam. Exempt github.com, githubcopilot.com, ghe.com and githubusercontent.com, including their subdomains, while lookalike hosts still count as external. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Keep nested headings in their template section Every heading started a new section, so an answer written under a subheading, such as a ### under ## Summary or a #### under a ### issue template section, left its template section empty and the submission was flagged as missing details. A heading deeper than the current template section's heading now stays part of that section, unless it's a template heading itself. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 4f250f5 commit 4bcdcdf

12 files changed

Lines changed: 4774 additions & 172 deletions

‎.gitattributes‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.github/workflows/*.lock.yml linguist-generated=true

‎.github/aw/actions-lock.json‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"entries": {
3+
"github/gh-aw-actions/setup@v1.0.1": {
4+
"repo": "github/gh-aw-actions/setup",
5+
"version": "v1.0.1",
6+
"sha": "221ba4f4319de6b8e809d1a15528b3ae6a818aa5"
7+
}
8+
}
9+
}

‎.github/prompts/bug-report-review.prompt.yml‎

Lines changed: 0 additions & 44 deletions
This file was deleted.

‎.github/prompts/default-issue-review.prompt.yml‎

Lines changed: 0 additions & 54 deletions
This file was deleted.

‎.github/workflows/ai-issue-assessment.yml‎

Lines changed: 0 additions & 27 deletions
This file was deleted.

‎.github/workflows/issue-labeler.yml‎

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)