Description
Add a new config option required-conversation-resolution that, when enabled, fails the can-be-merged check if the PR has unresolved review threads.
GitHub's REST API doesn't expose thread resolution status — only the GraphQL API v4 has reviewThreads { isResolved }. The codebase already has httpx as a dependency, so we'll use it for the GraphQL call.
Requirements
- New
required-conversation-resolution boolean config at global + repository level in schema
- GraphQL helper method
get_unresolved_review_threads() on GithubWebhook class
- Integration into
check_if_can_be_merged() in PullRequestHandler
- Threads that are resolved or outdated are excluded
- Failure message shows file:line for up to 5 unresolved threads
Deliverables