mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-08-29 10:09:43 +02:00
Fix issue triage and PR intake workflow behavior (#49924)
## Summary - run AI issue triage only when an issue is opened or its original title/body is edited - do not run issue triage for comments or reopen events - store deterministic issue evidence in the agent-visible runner temp directory - expose structured safe-output publication through the restricted CLI proxy while keeping shell, edit, and GitHub API tools disabled - skip PR intake jobs for draft pull requests and run intake when they become ready for review - replace the `Needs-Review` lifecycle label with `Ready for review`, migrating the legacy label on subsequent intake runs Closes #49917 ## Validation - `gh aw compile issue-triage` - `python -m unittest discover .github\scripts\issue-triage\tests -v` (46 tests) - `node --test .github\scripts\pr-intake\tests\pr-intake.test.mjs` (32 tests) - `git diff --check` on committed files --------- Copilot-Session: 3067a641-aa79-4f96-8d9f-eaa1c6d9b3cf
This commit is contained in:
18
.github/scripts/issue-triage/README.md
vendored
18
.github/scripts/issue-triage/README.md
vendored
@@ -1,8 +1,8 @@
|
||||
# AI-assisted issue triage
|
||||
|
||||
The workflow in `.github/workflows/issue-triage.md` maintains one canonical
|
||||
triage comment for newly opened, edited, or reopened issues. It combines
|
||||
deterministic preprocessing with one bounded GitHub Copilot pass.
|
||||
triage comment when an issue is opened or its original title/body is edited. It
|
||||
combines deterministic preprocessing with one bounded GitHub Copilot pass.
|
||||
|
||||
## Rules
|
||||
|
||||
@@ -49,18 +49,22 @@ that retain `Needs-Author-Feedback` for seven days without activity.
|
||||
|
||||
- An author comment removes `Needs-Author-Feedback` and returns the item to
|
||||
team triage.
|
||||
- A PR push reruns PR intake, which recalculates `Needs-Author-Feedback`.
|
||||
- A push to a non-draft PR reruns PR intake, which recalculates
|
||||
`Needs-Author-Feedback`.
|
||||
- Manual label removal immediately makes the item ineligible for scheduled
|
||||
closure.
|
||||
|
||||
## Cost and safety controls
|
||||
|
||||
- The `small` model alias is limited to five turns and 10 AI credits per run.
|
||||
- A content hash skips unchanged edits and unrelated comments.
|
||||
- The workflow subscribes only to issue creation and edits to the original
|
||||
issue; comments and reopen events do not trigger it.
|
||||
- Per-user rate limits, daily AI-credit limits, and per-issue concurrency bound
|
||||
repeated execution.
|
||||
- The agent has no shell or GitHub API tools. It can only read the checked-out
|
||||
repository and call the structured safe-output tool.
|
||||
repeated issue creation or edits.
|
||||
- The agent has no general shell or GitHub API tools. Its only shell command is
|
||||
the structured safe-output CLI proxy, and Copilot's file-write tool is
|
||||
explicitly denied to work around gh-aw v0.86.2 treating `edit: false` as
|
||||
writable.
|
||||
- Threat detection fails closed; publication requires an explicit successful
|
||||
detection result.
|
||||
- The publishing job rebuilds evidence from the current issue and accepts only
|
||||
|
||||
Reference in New Issue
Block a user