Skip to content

feat: add merge blockers detection and display#6

Closed
cesarferreira wants to merge 1 commit intofeat/pinned-prsfrom
feat/merge-blockers
Closed

feat: add merge blockers detection and display#6
cesarferreira wants to merge 1 commit intofeat/pinned-prsfrom
feat/merge-blockers

Conversation

@cesarferreira
Copy link
Copy Markdown
Owner

Summary

Detect and display why a PR cannot be merged, showing exactly what's blocking it.

Features

  • Extend GraphQL queries to fetch branch protection rules and review counts
  • Detect merge blockers:
    • Merge conflicts (PR has conflicts with base branch)
    • Required approvals (e.g., "Approvals: 1/2 required")
    • Failing required checks (checks required by branch protection that aren't green)
    • Branch behind base (needs rebase/merge from base)
  • Display "MERGE BLOCKERS" section in details view (press Tab on a PR)
  • Visual indicators: ❌ for critical issues, ⚠️ for warnings

Demo

In demo mode, two PRs have sample merge blockers:

  • windmill-labs/infra#317: conflicts + missing approval + failing required check
  • honeycombio/otel-collector#77: needs approval + branch behind base

Stacked on

- Add MergeBlockers struct to model.rs with helper methods
- Extend GraphQL queries to fetch:
  - Branch protection rules (required approvals, required checks)
  - Review counts (approvals)
- Compute merge blockers from GraphQL response:
  - Merge conflicts detection
  - Required approvals vs current approvals
  - Failing required status checks
  - Branch behind base detection
- Display MERGE BLOCKERS section in details view with:
  - Clear visual indicators (❌ for critical, ⚠️ for warnings)
  - Human-readable descriptions
- Add demo PRs with sample merge blockers
@cesarferreira
Copy link
Copy Markdown
Owner Author

Merged manually into main

@cesarferreira cesarferreira deleted the feat/merge-blockers branch December 19, 2025 02:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant