fix: use GitHub merge state to fix misleading Mergeable classification#59
fix: use GitHub merge state to fix misleading Mergeable classification#59ibetitsmike merged 5 commits intomainfrom
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 90ed561aa7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 90ed561aa7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @codex review |
| Codex Review: Didn't find any major issues. Swish! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
PRs blocked by required reviews were incorrectly classified as Mergeable when checks passed. Now uses GitHub's
mergeStateStatusfield as the source of truth.Changes
Rust backend (
src-tauri/src/):models.rs— Addedmerge_state_status: Option<String>github.rs— Extended GraphQL fragment to fetchmergeStateStatus; idiomaticstr::to_ownedmenu.rs— Addedis_actually_mergeable()helper; Mergeable filter uses merge state + excludes pending/failed checks; 8 unit tests with exclusivity assertionsSvelte frontend (
src/lib/):types.ts— AddedMergeStateStatusliteral union type; updatedPullRequestfieldstores.ts— AddedisActuallyMergeable()andisCheckFailed()helpers; Mergeable filter uses merge state + excludes pending/failed checkscomponents.test.ts— 8 grouping tests with exclusivity assertions + review-requested boundary testVerification
npm run test✅ (29 passed)npm run check✅ (0 errors, 0 warnings)npm run smoke✅cargo test/cargo check✅