---
title: "Update a pull request"
method: PATCH
path: "/repos/{owner}/{repo}/pulls/{pull_number}"
tags: ["pulls"]
---

# Update a pull request

`PATCH /repos/{owner}/{repo}/pulls/{pull_number}`

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](https://docs.github.com/enterprise-server@3.5/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.

To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request.

## Path parameters

- `owner` string, required
- `repo` string, required
- `pull_number` integer, required

## Request body

- object
  - `title` string — The title of the pull request.
  - `body` string — The contents of the pull request.
  - `state` 'open' | 'closed' — State of this Pull Request. Either `open` or `closed`.
  - `base` string — The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository.
  - `maintainer_can_modify` boolean — Indicates whether [maintainers can modify](https://docs.github.com/enterprise-server@3.5/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request.

## Response `200`

Response

- PullRequest — Pull requests let you tell others about changes you've pushed to a repository on GitHub. Once a pull request is sent, interested parties can review the set of changes, discuss potential modifications, and even push follow-up commits if necessary.
  - `url` string, uri, required
  - `id` integer, required
  - `node_id` string, required
  - `html_url` string, uri, required
  - `diff_url` string, uri, required
  - `patch_url` string, uri, required
  - `issue_url` string, uri, required
  - `commits_url` string, uri, required
  - `review_comments_url` string, uri, required
  - `review_comment_url` string, required
  - `comments_url` string, uri, required
  - `statuses_url` string, uri, required
  - `number` integer, required — Number uniquely identifying the pull request within its repository.
  - `state` 'open' | 'closed', required — State of this Pull Request. Either `open` or `closed`.
  - `locked` boolean, required
  - `title` string, required — The title of the pull request.
  - `user` SimpleUser, required — A GitHub user.
    - `name` string, nullable
    - `email` string, nullable
    - `login` string, required
    - `id` integer, required
    - `node_id` string, required
    - `avatar_url` string, uri, required
    - `gravatar_id` string, nullable, required
    - `url` string, uri, required
    - `html_url` string, uri, required
    - `followers_url` string, uri, required
    - `following_url` string, required
    - `gists_url` string, required
    - `starred_url` string, required
    - `subscriptions_url` string, uri, required
    - `organizations_url` string, uri, required
    - `repos_url` string, uri, required
    - `events_url` string, required
    - `received_events_url` string, uri, required
    - `type` string, required
    - `site_admin` boolean, required
    - `starred_at` string
  - `body` string, nullable, required
  - `labels` object[], required
    - `id` integer, required
    - `node_id` string, required
    - `url` string, required
    - `name` string, required
    - `description` string, nullable, required
    - `color` string, required
    - `default` boolean, required
  - `milestone` NullableMilestone, nullable, required — A collection of related issues and pull requests.
    - `url` string, uri, required
    - `html_url` string, uri, required
    - `labels_url` string, uri, required
    - `id` integer, required
    - `node_id` string, required
    - `number` integer, required — The number of the milestone.
    - `state` 'open' | 'closed', required — The state of the milestone.
    - `title` string, required — The title of the milestone.
    - `description` string, nullable, required
    - `creator` NullableSimpleUser, nullable, required — A GitHub user.
      - `name` string, nullable
      - `email` string, nullable
      - `login` string, required
      - `id` integer, required
      - `node_id` string, required
      - `avatar_url` string, uri, required
      - `gravatar_id` string, nullable, required
      - `url` string, uri, required
      - `html_url` string, uri, required
      - `followers_url` string, uri, required
      - `following_url` string, required
      - `gists_url` string, required
      - `starred_url` string, required
      - `subscriptions_url` string, uri, required
      - `organizations_url` string, uri, required
      - `repos_url` string, uri, required
      - `events_url` string, required
      - `received_events_url` string, uri, required
      - `type` string, required
      - `site_admin` boolean, required
      - `starred_at` string
    - `open_issues` integer, required
    - `closed_issues` integer, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `closed_at` string, date-time, nullable, required
    - `due_on` string, date-time, nullable, required
  - `active_lock_reason` string, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `closed_at` string, date-time, nullable, required
  - `merged_at` string, date-time, nullable, required
  - `merge_commit_sha` string, nullable, required
  - `assignee` NullableSimpleUser, nullable, required — A GitHub user.
    - `name` string, nullable
    - `email` string, nullable
    - `login` string, required
    - `id` integer, required
    - `node_id` string, required
    - `avatar_url` string, uri, required
    - `gravatar_id` string, nullable, required
    - `url` string, uri, required
    - `html_url` string, uri, required
    - `followers_url` string, uri, required
    - `following_url` string, required
    - `gists_url` string, required
    - `starred_url` string, required
    - `subscriptions_url` string, uri, required
    - `organizations_url` string, uri, required
    - `repos_url` string, uri, required
    - `events_url` string, required
    - `received_events_url` string, uri, required
    - `type` string, required
    - `site_admin` boolean, required
    - `starred_at` string
  - `assignees` SimpleUser[], nullable
    - `name` string, nullable
    - `email` string, nullable
    - `login` string, required
    - `id` integer, required
    - `node_id` string, required
    - `avatar_url` string, uri, required
    - `gravatar_id` string, nullable, required
    - `url` string, uri, required
    - `html_url` string, uri, required
    - `followers_url` string, uri, required
    - `following_url` string, required
    - `gists_url` string, required
    - `starred_url` string, required
    - `subscriptions_url` string, uri, required
    - `organizations_url` string, uri, required
    - `repos_url` string, uri, required
    - `events_url` string, required
    - `received_events_url` string, uri, required
    - `type` string, required
    - `site_admin` boolean, required
    - `starred_at` string
  - `requested_reviewers` SimpleUser[], nullable
    - `name` string, nullable
    - `email` string, nullable
    - `login` string, required
    - `id` integer, required
    - `node_id` string, required
    - `avatar_url` string, uri, required
    - `gravatar_id` string, nullable, required
    - `url` string, uri, required
    - `html_url` string, uri, required
    - `followers_url` string, uri, required
    - `following_url` string, required
    - `gists_url` string, required
    - `starred_url` string, required
    - `subscriptions_url` string, uri, required
    - `organizations_url` string, uri, required
    - `repos_url` string, uri, required
    - `events_url` string, required
    - `received_events_url` string, uri, required
    - `type` string, required
    - `site_admin` boolean, required
    - `starred_at` string
  - `requested_teams` TeamSimple[], nullable
    - `id` integer, required — Unique identifier of the team
    - `node_id` string, required
    - `url` string, uri, required — URL for the team
    - `members_url` string, required
    - `name` string, required — Name of the team
    - `description` string, nullable, required — Description of the team
    - `permission` string, required — Permission that the team will have for its repositories
    - `privacy` string — The level of privacy this team should have
    - `html_url` string, uri, required
    - `repositories_url` string, uri, required
    - `slug` string, required
    - `ldap_dn` string — Distinguished Name (DN) that team maps to within LDAP environment
  - `head` object, required
    - `label` string, required
    - `ref` string, required
    - `repo` object, nullable, required
      - `archive_url` string, required
      - `assignees_url` string, required
      - `blobs_url` string, required
      - `branches_url` string, required
      - `collaborators_url` string, required
      - `comments_url` string, required
      - `commits_url` string, required
      - `compare_url` string, required
      - `contents_url` string, required
      - `contributors_url` string, uri, required
      - `deployments_url` string, uri, required
      - `description` string, nullable, required
      - `downloads_url` string, uri, required
      - `events_url` string, uri, required
      - `fork` boolean, required
      - `forks_url` string, uri, required
      - `full_name` string, required
      - `git_commits_url` string, required
      - `git_refs_url` string, required
      - `git_tags_url` string, required
      - `hooks_url` string, uri, required
      - `html_url` string, uri, required
      - `id` integer, required
      - `node_id` string, required
      - `issue_comment_url` string, required
      - `issue_events_url` string, required
      - `issues_url` string, required
      - `keys_url` string, required
      - `labels_url` string, required
      - `languages_url` string, uri, required
      - `merges_url` string, uri, required
      - `milestones_url` string, required
      - `name` string, required
      - `notifications_url` string, required
      - `owner` object, required
        - `avatar_url` string, uri, required
        - `events_url` string, required
        - `followers_url` string, uri, required
        - `following_url` string, required
        - `gists_url` string, required
        - `gravatar_id` string, nullable, required
        - `html_url` string, uri, required
        - `id` integer, required
        - `node_id` string, required
        - `login` string, required
        - `organizations_url` string, uri, required
        - `received_events_url` string, uri, required
        - `repos_url` string, uri, required
        - `site_admin` boolean, required
        - `starred_url` string, required
        - `subscriptions_url` string, uri, required
        - `type` string, required
        - `url` string, uri, required
      - `private` boolean, required
      - `pulls_url` string, required
      - `releases_url` string, required
      - `stargazers_url` string, uri, required
      - `statuses_url` string, required
      - `subscribers_url` string, uri, required
      - `subscription_url` string, uri, required
      - `tags_url` string, uri, required
      - `teams_url` string, uri, required
      - `trees_url` string, required
      - `url` string, uri, required
      - `clone_url` string, required
      - `default_branch` string, required
      - `forks` integer, required
      - `forks_count` integer, required
      - `git_url` string, required
      - `has_downloads` boolean, required
      - `has_issues` boolean, required
      - `has_projects` boolean, required
      - `has_wiki` boolean, required
      - `has_pages` boolean, required
      - `has_discussions` boolean, required
      - `homepage` string, uri, nullable, required
      - `language` string, nullable, required
      - `master_branch` string
      - `archived` boolean, required
      - `disabled` boolean, required
      - `visibility` string — The repository visibility: public, private, or internal.
      - `mirror_url` string, uri, nullable, required
      - `open_issues` integer, required
      - `open_issues_count` integer, required
      - `permissions` object
        - `admin` boolean, required
        - `maintain` boolean
        - `push` boolean, required
        - `triage` boolean
        - `pull` boolean, required
      - `temp_clone_token` string
      - `allow_merge_commit` boolean
      - `allow_squash_merge` boolean
      - `allow_rebase_merge` boolean
      - `license` object, nullable, required
        - `key` string, required
        - `name` string, required
        - `url` string, uri, nullable, required
        - `spdx_id` string, nullable, required
        - `node_id` string, required
      - `pushed_at` string, date-time, required
      - `size` integer, required
      - `ssh_url` string, required
      - `stargazers_count` integer, required
      - `svn_url` string, uri, required
      - `topics` string[]
      - `watchers` integer, required
      - `watchers_count` integer, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
      - `allow_forking` boolean
      - `is_template` boolean
    - `sha` string, required
    - `user` object, required
      - `avatar_url` string, uri, required
      - `events_url` string, required
      - `followers_url` string, uri, required
      - `following_url` string, required
      - `gists_url` string, required
      - `gravatar_id` string, nullable, required
      - `html_url` string, uri, required
      - `id` integer, required
      - `node_id` string, required
      - `login` string, required
      - `organizations_url` string, uri, required
      - `received_events_url` string, uri, required
      - `repos_url` string, uri, required
      - `site_admin` boolean, required
      - `starred_url` string, required
      - `subscriptions_url` string, uri, required
      - `type` string, required
      - `url` string, uri, required
  - `base` object, required
    - `label` string, required
    - `ref` string, required
    - `repo` object, required
      - `archive_url` string, required
      - `assignees_url` string, required
      - `blobs_url` string, required
      - `branches_url` string, required
      - `collaborators_url` string, required
      - `comments_url` string, required
      - `commits_url` string, required
      - `compare_url` string, required
      - `contents_url` string, required
      - `contributors_url` string, uri, required
      - `deployments_url` string, uri, required
      - `description` string, nullable, required
      - `downloads_url` string, uri, required
      - `events_url` string, uri, required
      - `fork` boolean, required
      - `forks_url` string, uri, required
      - `full_name` string, required
      - `git_commits_url` string, required
      - `git_refs_url` string, required
      - `git_tags_url` string, required
      - `hooks_url` string, uri, required
      - `html_url` string, uri, required
      - `id` integer, required
      - `is_template` boolean
      - `node_id` string, required
      - `issue_comment_url` string, required
      - `issue_events_url` string, required
      - `issues_url` string, required
      - `keys_url` string, required
      - `labels_url` string, required
      - `languages_url` string, uri, required
      - `merges_url` string, uri, required
      - `milestones_url` string, required
      - `name` string, required
      - `notifications_url` string, required
      - `owner` object, required
        - `avatar_url` string, uri, required
        - `events_url` string, required
        - `followers_url` string, uri, required
        - `following_url` string, required
        - `gists_url` string, required
        - `gravatar_id` string, nullable, required
        - `html_url` string, uri, required
        - `id` integer, required
        - `node_id` string, required
        - `login` string, required
        - `organizations_url` string, uri, required
        - `received_events_url` string, uri, required
        - `repos_url` string, uri, required
        - `site_admin` boolean, required
        - `starred_url` string, required
        - `subscriptions_url` string, uri, required
        - `type` string, required
        - `url` string, uri, required
      - `private` boolean, required
      - `pulls_url` string, required
      - `releases_url` string, required
      - `stargazers_url` string, uri, required
      - `statuses_url` string, required
      - `subscribers_url` string, uri, required
      - `subscription_url` string, uri, required
      - `tags_url` string, uri, required
      - `teams_url` string, uri, required
      - `trees_url` string, required
      - `url` string, uri, required
      - `clone_url` string, required
      - `default_branch` string, required
      - `forks` integer, required
      - `forks_count` integer, required
      - `git_url` string, required
      - `has_downloads` boolean, required
      - `has_issues` boolean, required
      - `has_projects` boolean, required
      - `has_wiki` boolean, required
      - `has_pages` boolean, required
      - `has_discussions` boolean, required
      - `homepage` string, uri, nullable, required
      - `language` string, nullable, required
      - `master_branch` string
      - `archived` boolean, required
      - `disabled` boolean, required
      - `visibility` string — The repository visibility: public, private, or internal.
      - `mirror_url` string, uri, nullable, required
      - `open_issues` integer, required
      - `open_issues_count` integer, required
      - `permissions` object
        - `admin` boolean, required
        - `maintain` boolean
        - `push` boolean, required
        - `triage` boolean
        - `pull` boolean, required
      - `temp_clone_token` string
      - `allow_merge_commit` boolean
      - `allow_squash_merge` boolean
      - `allow_rebase_merge` boolean
      - `license` NullableLicenseSimple, nullable, required — License Simple
        - `key` string, required
        - `name` string, required
        - `url` string, uri, nullable, required
        - `spdx_id` string, nullable, required
        - `node_id` string, required
        - `html_url` string, uri
      - `pushed_at` string, date-time, required
      - `size` integer, required
      - `ssh_url` string, required
      - `stargazers_count` integer, required
      - `svn_url` string, uri, required
      - `topics` string[]
      - `watchers` integer, required
      - `watchers_count` integer, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
      - `allow_forking` boolean
    - `sha` string, required
    - `user` object, required
      - `avatar_url` string, uri, required
      - `events_url` string, required
      - `followers_url` string, uri, required
      - `following_url` string, required
      - `gists_url` string, required
      - `gravatar_id` string, nullable, required
      - `html_url` string, uri, required
      - `id` integer, required
      - `node_id` string, required
      - `login` string, required
      - `organizations_url` string, uri, required
      - `received_events_url` string, uri, required
      - `repos_url` string, uri, required
      - `site_admin` boolean, required
      - `starred_url` string, required
      - `subscriptions_url` string, uri, required
      - `type` string, required
      - `url` string, uri, required
  - `_links` object, required
    - `comments` Link, required — Hypermedia Link
      - `href` string, required
    - `commits` Link, required — Hypermedia Link
      - `href` string, required
    - `statuses` Link, required — Hypermedia Link
      - `href` string, required
    - `html` Link, required — Hypermedia Link
      - `href` string, required
    - `issue` Link, required — Hypermedia Link
      - `href` string, required
    - `review_comments` Link, required — Hypermedia Link
      - `href` string, required
    - `review_comment` Link, required — Hypermedia Link
      - `href` string, required
    - `self` Link, required — Hypermedia Link
      - `href` string, required
  - `author_association` 'COLLABORATOR' | 'CONTRIBUTOR' | 'FIRST_TIMER' | 'FIRST_TIME_CONTRIBUTOR' | 'MANNEQUIN' | 'MEMBER' | 'NONE' | 'OWNER', required — How the author is associated with the repository.
  - `auto_merge` AutoMerge, nullable, required — The status of auto merging a pull request.
    - `enabled_by` SimpleUser, required — A GitHub user.
      - `name` string, nullable
      - `email` string, nullable
      - `login` string, required
      - `id` integer, required
      - `node_id` string, required
      - `avatar_url` string, uri, required
      - `gravatar_id` string, nullable, required
      - `url` string, uri, required
      - `html_url` string, uri, required
      - `followers_url` string, uri, required
      - `following_url` string, required
      - `gists_url` string, required
      - `starred_url` string, required
      - `subscriptions_url` string, uri, required
      - `organizations_url` string, uri, required
      - `repos_url` string, uri, required
      - `events_url` string, required
      - `received_events_url` string, uri, required
      - `type` string, required
      - `site_admin` boolean, required
      - `starred_at` string
    - `merge_method` 'merge' | 'squash' | 'rebase', required — The merge method to use.
    - `commit_title` string, required — Title for the merge commit message.
    - `commit_message` string, required — Commit message for the merge commit.
  - `draft` boolean — Indicates whether or not the pull request is a draft.
  - `merged` boolean, required
  - `mergeable` boolean, nullable, required
  - `rebaseable` boolean, nullable
  - `mergeable_state` string, required
  - `merged_by` NullableSimpleUser, nullable, required — A GitHub user.
    - `name` string, nullable
    - `email` string, nullable
    - `login` string, required
    - `id` integer, required
    - `node_id` string, required
    - `avatar_url` string, uri, required
    - `gravatar_id` string, nullable, required
    - `url` string, uri, required
    - `html_url` string, uri, required
    - `followers_url` string, uri, required
    - `following_url` string, required
    - `gists_url` string, required
    - `starred_url` string, required
    - `subscriptions_url` string, uri, required
    - `organizations_url` string, uri, required
    - `repos_url` string, uri, required
    - `events_url` string, required
    - `received_events_url` string, uri, required
    - `type` string, required
    - `site_admin` boolean, required
    - `starred_at` string
  - `comments` integer, required
  - `review_comments` integer, required
  - `maintainer_can_modify` boolean, required — Indicates whether maintainers can modify the pull request.
  - `commits` integer, required
  - `additions` integer, required
  - `deletions` integer, required
  - `changed_files` integer, required

## Other responses

- `403` — Forbidden
- `422` — Validation failed, or the endpoint has been spammed.

---

[API](https://skmtc.net/github/apis/github-v3-rest-api-4.md) · [All operations](https://skmtc.net/github/apis/github-v3-rest-api-4/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/github/github-v3-rest-api-4/versions/ee6c7a46328e/schema)
