Sample - GitHub REST API
GET/repos/{owner}/{repo}/pulls/{pull_number}

Get a pull request

Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.

Lists details of a pull request by providing its number.

When you get, create, or edit a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the mergeable key. For more information, see "Checking mergeability of pull requests".

The value of the mergeable attribute can be true, false, or null. If the value is null, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-null value for the mergeable attribute in the response. If mergeable is true, then merge_commit_sha will be the SHA of the test merge commit.

The value of the merge_commit_sha attribute changes depending on the state of the pull request. Before merging a pull request, the merge_commit_sha attribute holds the SHA of the test merge commit. After merging a pull request, the merge_commit_sha attribute changes depending on how you merged the pull request:

  • If merged as a merge commit, merge_commit_sha represents the SHA of the merge commit.
  • If merged via a squash, merge_commit_sha represents the SHA of the squashed commit on the base branch.
  • If rebased, merge_commit_sha represents the commit that the base branch was updated to.

Pass the appropriate media type to fetch diff and patch formats.

This endpoint supports the following custom media types. For more information, see "Media types."

  • application/vnd.github.raw+json: Returns the raw markdown body. Response will include body. This is the default if you do not pass any specific media type.
  • application/vnd.github.text+json: Returns a text only representation of the markdown body. Response will include body_text.
  • application/vnd.github.html+json: Returns HTML rendered from the body's markdown. Response will include body_html.
  • application/vnd.github.full+json: Returns raw, text, and HTML representations. Response will include body, body_text, and body_html.
  • application/vnd.github.diff: For more information, see "git-diff" in the Git documentation. If a diff is corrupt, contact us through the GitHub Support portal. Include the repository name and pull request ID in your message.
  • RetriesRetries up to 2×, 500ms backoff, 30s timeout.

3 parameters
ownerstringrequired
The account owner of the repository. The name is not case sensitive.
repostringrequired
The name of the repository without the `.git` extension. The name is not case sensitive.
pull_numberintegerrequired
The number that identifies the pull request.

6 status codes
200Pass the appropriate [media type](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types) to fetch diff and patch formats.
urlstringrequired
idintegerrequired
node_idstringrequired
html_urlstringrequired
diff_urlstringrequired
patch_urlstringrequired
issue_urlstringrequired
commits_urlstringrequired
review_comments_urlstringrequired
review_comment_urlstringrequired
comments_urlstringrequired
statuses_urlstringrequired
numberintegerrequired
Number uniquely identifying the pull request within its repository.
statestringrequired
State of this Pull Request. Either `open` or `closed`.
Allowed:openclosed
lockedbooleanrequired
titlestringrequired
The title of the pull request.
userobjectrequired
A GitHub user.
bodystringrequired
labelsarray<object>required
milestoneobjectrequired
A collection of related issues and pull requests.
active_lock_reasonstringoptional
created_atstringrequired
updated_atstringrequired
closed_atstringrequired
merged_atstringrequired
merge_commit_shastringrequired
assigneeobjectrequired
A GitHub user.
assigneesarray<SimpleUser>optional
requested_reviewersarray<SimpleUser>optional
requested_teamsarray<TeamSimple>optional
headobjectrequired
baseobjectrequired
_linksobjectrequired
author_associationstringrequired
How the author is associated with the repository.
Allowed:COLLABORATORCONTRIBUTORFIRST_TIMERFIRST_TIME_CONTRIBUTORMANNEQUINMEMBERNONEOWNER
auto_mergeobjectrequired
The status of auto merging a pull request.
stackobjectoptional
The stack information associated with a pull request.
draftbooleanoptional
Indicates whether or not the pull request is a draft.
mergedbooleanrequired
mergeablebooleanrequired
rebaseablebooleanoptional
mergeable_statestringrequired
merged_byobjectrequired
A GitHub user.
commentsintegerrequired
review_commentsintegerrequired
maintainer_can_modifybooleanrequired
Indicates whether maintainers can modify the pull request.
commitsintegerrequired
additionsintegerrequired
deletionsintegerrequired
changed_filesintegerrequired
304Not modified
404Resource not found
messagestringoptional
documentation_urlstringoptional
urlstringoptional
statusstringoptional
406Unacceptable
messagestringoptional
documentation_urlstringoptional
urlstringoptional
statusstringoptional
500Internal Error
messagestringoptional
documentation_urlstringoptional
urlstringoptional
statusstringoptional
503Service unavailable
codestringoptional
messagestringoptional
documentation_urlstringoptional

Error handling

A 404 is returned: Resource not found. A 406 is returned: Unacceptable. A 500 is returned: Internal Error. A 503 is returned: Service unavailable.