fix: refactor existing PR message format when calling create_pull_req…#2947
Open
Nishthajain7 wants to merge 1 commit into
Open
fix: refactor existing PR message format when calling create_pull_req…#2947Nishthajain7 wants to merge 1 commit into
Nishthajain7 wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Catch the "pull request already exists" 422 from
create_pull_requestand return a clean message with the existing PR's URL instead of forwarding GitHub's raw, unformatted validation error.Why
When
create_pull_requestfails because a PR already exists for the given head/base, the tool currently forwards GitHub's raw API error verbatim (e.g.failed to create pull request: POST .../pulls: 422 Validation Failed [{Resource:PullRequest Field: Code:custom Message:A pull request already exists for owner:branch.}]). This is unreadable and gives the caller no way to find the existing PR without a separate lookup.Fixes #2931
What changed
findExistingPullRequest, which detects the specificcode:"custom"/ "A pull request already exists" 422 shape and callsPullRequests.List(filtered byhead/base) to resolve the existing PRCreatePullRequest's error handling: on this specific error, return a structured{id, url, message}result pointing at the existing PR instead of the raw error; all otherCreateerrors are unaffected and still return the original error pathMCP impact
Prompts tested (tool changes only)
"Create a pull request from
test/dup-printomain" (when a PR already exists for that branch pair) returns the existing PR's number and link instead of an errorSecurity / limits
Tool renaming
deprecated_tool_aliases.goNote: if you're renaming tools, you must add the tool aliases. For more information on how to do so, please refer to the official docs.
Lint & tests
./script/lint./script/testDocs