feat: PR triage workflow for auditing open PRs #183

Merged
pook merged 1 commit from feat/pr-triage-workflow into main 2026-04-09 06:15:01 -04:00
Owner

Summary

  • Adds a workflow_dispatch Forgejo Action at .forgejo/workflows/pr-triage.yml
  • Fetches all open PRs via Forgejo API, categorizes each by merge/CI status
  • Applies exactly one status label per PR: mergeable, has-conflicts, ci-failing, no-ci-run, or ready-to-merge
  • Comments on has-conflicts PRs with conflict notification
  • Uploads a markdown summary table (PR#, title, status, blocker) as a workflow artifact

Context

20 PRs are open with zero merges — pipeline is stuck. This workflow provides visibility into what's blocking each PR before we can start auto-merging (#122).

Labels applied

Label Meaning
ready-to-merge CI passing + no conflicts
mergeable CI passing, mergeability unclear
has-conflicts Merge conflicts detected
ci-failing CI checks failed
no-ci-run No CI results or still pending

Test plan

  • Trigger workflow manually via Forgejo UI
  • Verify all 20 open PRs receive exactly one status label
  • Check that has-conflicts PRs get a comment
  • Download artifact and verify summary table completeness

🤖 Generated with Claude Code

## Summary - Adds a `workflow_dispatch` Forgejo Action at `.forgejo/workflows/pr-triage.yml` - Fetches all open PRs via Forgejo API, categorizes each by merge/CI status - Applies exactly one status label per PR: `mergeable`, `has-conflicts`, `ci-failing`, `no-ci-run`, or `ready-to-merge` - Comments on `has-conflicts` PRs with conflict notification - Uploads a markdown summary table (PR#, title, status, blocker) as a workflow artifact ## Context 20 PRs are open with zero merges — pipeline is stuck. This workflow provides visibility into what's blocking each PR before we can start auto-merging (#122). ## Labels applied | Label | Meaning | |-------|--------| | `ready-to-merge` | CI passing + no conflicts | | `mergeable` | CI passing, mergeability unclear | | `has-conflicts` | Merge conflicts detected | | `ci-failing` | CI checks failed | | `no-ci-run` | No CI results or still pending | ## Test plan - [ ] Trigger workflow manually via Forgejo UI - [ ] Verify all 20 open PRs receive exactly one status label - [ ] Check that `has-conflicts` PRs get a comment - [ ] Download artifact and verify summary table completeness 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Adds a workflow_dispatch Forgejo Action that fetches all open PRs,
categorizes each as mergeable/has-conflicts/ci-failing/no-ci-run/ready-to-merge,
applies the corresponding label, comments on conflict PRs, and uploads
a markdown summary artifact.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
pook merged commit 7479aaa88c into main 2026-04-09 06:15:01 -04:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pook/compliancebot!183
No description provided.