Skip to content

Commit b5f9079

Browse files
kubafloCopilotgithub-actions[bot]
authored
Add daily PR review queue workflow with actionability detection (dotnet#34818)
<!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! ## Description Adds a daily GitHub Actions workflow that generates a prioritized, actionable PR review queue as a GitHub issue -- with intelligent turn-state detection that tells you **whose turn it is** on each PR. ### What it does - Runs weekdays at 8:00 UTC (or on-demand via `workflow_dispatch`) - Queries open PRs across `dotnet/maui` and `dotnet/docs-maui` - Determines actionability for each PR using a layered heuristic: 1. **Bot detection** -- filters out maestro, dependabot, copilot-reviewer, etc. 2. **Blocked states** -- do-not-merge, stale labels 3. **Project board status** -- reads the MAUI SDK Ongoing board (Ready To Review, In Progress, Changes Requested, Todo, Approved) 4. **Review decision** -- APPROVED, CHANGES_REQUESTED with author-response detection 5. **"Who spoke last"** -- compares author activity (issue comments + inline review-thread replies) against reviewer activity timestamps - Creates a GitHub issue organized by actionability: FTE-actionable PRs first, waiting-on-author collapsed, bot PRs collapsed - Auto-closes previous queue issues to avoid clutter - Filters out `stale` and `do-not-merge` PRs ### Implementation Uses a **plain GitHub Action** (not gh-aw) since the task is deterministic formatting -- no AI reasoning needed: - ~30s runtime (vs ~2min with LLM) - Zero LLM cost - No `COPILOT_GITHUB_TOKEN` dependency -- just built-in `GITHUB_TOKEN` - Deterministic output every run - No prompt injection surface ### Changes - **New**: `.github/workflows/pr-review-queue.yml` -- scheduled workflow with `schedule`, `workflow_dispatch`, and `pull_request` (validation only) triggers - **Modified**: `query-reviewable-prs.ps1` -- adds: - `-OutputFormat markdown` option with actionability-grouped output - `Get-ProjectBoardStatuses` -- paginates full project board for all status columns - `Get-TurnState` -- 5-layer decision tree for "whose turn is it" - `Test-IsBot` -- bot account detection - Comment + review-thread analysis for author activity detection - `#Requires -Version 7.0` for null-coalescing operator ### Example output The daily issue shows: - **Actionability Summary** table (FTE-actionable count, waiting on author, backlog, bot, blocked) - **P/0 Priority** PRs with turn state - **Ready to Merge** (approved PRs) - **Needs FTE Review** (milestoned first, then by age, with turn-state detail) - **Waiting on Author** (collapsed `<details>` section) - **Bot / Automated** (collapsed) - **Queue Health** stats --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent f4fb086 commit b5f9079

File tree

2 files changed

+466
-22
lines changed

2 files changed

+466
-22
lines changed

0 commit comments

Comments
 (0)