Skip to content

GitHub: Update a pull request

GitHub pulls.pullsUpdate: arguments, response, policy and SDK examples.

← Pulls operations · Get started

Operation github.pulls_update

Provider route: PATCH /repos/{owner}/{repo}/pulls/{pull_number}. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/github with npm, or alter-sdk-github with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { GitHubIntegration } from "@alter-ai/github";
async function execute(input: Parameters<GitHubIntegration["pulls"]["pullsUpdate"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new GitHubIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.pulls.pullsUpdate(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_github import GitHubIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = GitHubIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.pulls.pulls_update(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.ownerstringRequired within parent
path.repostringRequired within parent
path.pull_numberintegerRequired within parent
bodyobjectOptional
body.basestringOptionalThe 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.
body.bodystringOptionalThe contents of the pull request.
body.maintainer_can_modifybooleanOptionalIndicates whether [maintainers can modify](https://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request.
body.statestringOptionalState of this Pull Request. Either `open` or `closed`.
One of: open, closed
body.titlestringOptionalThe title of the pull request.

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Get a pull request — response body

Referenced models: Get a pull request — response body

4 more schemas are linked from the tables above, on the schema pages.

Get a pull request — response body — auto merge
FieldTypePresenceDescription and constraints
$JSONRoot
$ (anyOf 1)objectAlternativeThe status of auto merging a pull request.
$ (anyOf 1).commit_messagestringRequired within parentCommit message for the merge commit.
$ (anyOf 1).commit_titlestringRequired within parentTitle for the merge commit message.
$ (anyOf 1).enabled_byModelRequired within parentExpand List users — response body — item
$ (anyOf 1).merge_methodstringRequired within parentThe merge method to use.
Known values: merge, squash, rebase
$ (anyOf 2)nullAlternative

Referenced models: List users — response body — item

Get a pull request — response body — links html
FieldTypePresenceDescription and constraints
$objectRootHypermedia Link
hrefstringRequired within parent
Get an issue — response body — milestone
FieldTypePresenceDescription and constraints
$JSONRoot
$ (anyOf 1)ModelAlternativeExpand Get an issue — response body — milestone / state: open, closed
$ (anyOf 2)nullAlternative

Referenced models: Get an issue — response body — milestone / state: open, closed

Get an issue — response body — user
FieldTypePresenceDescription and constraints
$JSONRoot
$ (anyOf 1)ModelAlternativeExpand Get an issue — response body — user A Git Hub user
$ (anyOf 2)nullAlternative

Referenced models: Get an issue — response body — user A Git Hub user

Get a pull request — response body — stack
FieldTypePresenceDescription and constraints
$JSONRoot
$ (anyOf 1)objectAlternativeThe stack information associated with a pull request.
$ (anyOf 1).baseobjectRequired within parent
$ (anyOf 1).base.refstringRequired within parentThe base ref of the stack this pull request belongs to.
$ (anyOf 1).base.shastringRequired within parentThe base SHA of the stack this pull request belongs to.
$ (anyOf 1).idJSONOptional
$ (anyOf 1).id (anyOf 1)integerAlternativeThe ID of the stack that this pull request belongs to.
$ (anyOf 1).id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
$ (anyOf 1).numberJSONOptional
$ (anyOf 1).number (anyOf 1)integerAlternativeThe number of the stack that this pull request belongs to.
$ (anyOf 1).number (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
$ (anyOf 1).positionJSONOptional
$ (anyOf 1).position (anyOf 1)integerAlternativeThe one-based position of this pull request within the stack, where 1 is the bottom of the stack.
$ (anyOf 1).position (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
$ (anyOf 1).sizeJSONOptional
$ (anyOf 1).size (anyOf 1)integerAlternativeThe total number of pull requests in the stack.
$ (anyOf 1).size (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
$ (anyOf 2)nullAlternative
List users — response body — item
FieldTypePresenceDescription and constraints
$objectRootA GitHub user.
avatar_urlstringRequired within parentFormat: uri
emailJSONOptional
email (anyOf 1)stringAlternative
email (anyOf 2)nullAlternative
events_urlstringRequired within parent
followers_urlstringRequired within parentFormat: uri
following_urlstringRequired within parent
gists_urlstringRequired within parent
gravatar_idJSONRequired within parent
gravatar_id (anyOf 1)stringAlternative
gravatar_id (anyOf 2)nullAlternative
html_urlstringRequired within parentFormat: uri
idJSONRequired within parent
id (anyOf 1)integerAlternativeFormat: int64
id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
loginstringRequired within parent
nameJSONOptional
name (anyOf 1)stringAlternative
name (anyOf 2)nullAlternative
node_idstringRequired within parent
organizations_urlstringRequired within parentFormat: uri
received_events_urlstringRequired within parentFormat: uri
repos_urlstringRequired within parentFormat: uri
site_adminbooleanRequired within parent
starred_atstringOptional
starred_urlstringRequired within parent
subscriptions_urlstringRequired within parentFormat: uri
typestringRequired within parent
urlstringRequired within parentFormat: uri
user_view_typestringOptional
List security manager teams — response body — item
FieldTypePresenceDescription and constraints
$objectRootGroups of organization members that gives permissions on specified repositories.
descriptionJSONRequired within parent
description (anyOf 1)stringAlternativeDescription of the team
description (anyOf 2)nullAlternative
enterprise_idJSONOptional
enterprise_id (anyOf 1)integerAlternativeUnique identifier of the enterprise to which this team belongs
enterprise_id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
html_urlstringRequired within parentFormat: uri
idJSONRequired within parent
id (anyOf 1)integerAlternativeUnique identifier of the team
id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
ldap_dnstringOptionalDistinguished Name (DN) that team maps to within LDAP environment
members_urlstringRequired within parent
namestringRequired within parentName of the team
node_idstringRequired within parent
notification_settingstringOptionalThe notification setting the team has set
organization_idJSONOptional
organization_id (anyOf 1)integerAlternativeUnique identifier of the organization to which this team belongs
organization_id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
permissionstringRequired within parentPermission that the team will have for its repositories
privacystringOptionalThe level of privacy this team should have
repositories_urlstringRequired within parentFormat: uri
slugstringRequired within parent
typestringRequired within parentThe ownership type of the team
Known values: enterprise, organization
urlstringRequired within parentURL for the team
Format: uri
Create a fork — response body — license
FieldTypePresenceDescription and constraints
$JSONRoot
$ (anyOf 1)objectAlternativeLicense Simple
$ (anyOf 1).html_urlstringOptionalFormat: uri
$ (anyOf 1).keystringRequired within parent
$ (anyOf 1).namestringRequired within parent
$ (anyOf 1).node_idstringRequired within parent
$ (anyOf 1).spdx_idJSONRequired within parent
$ (anyOf 1).spdx_id (anyOf 1)stringAlternative
$ (anyOf 1).spdx_id (anyOf 2)nullAlternative
$ (anyOf 1).urlJSONRequired within parent
$ (anyOf 1).url (anyOf 1)stringAlternativeFormat: uri
$ (anyOf 1).url (anyOf 2)nullAlternative
$ (anyOf 2)nullAlternative

SDK function policy ID: github.pulls_update. Catalog operation: pulls/update. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Pinned headers: {"X-GitHub-Api-Version": "2026-03-10", "User-Agent": "Alter", "Accept": "application/vnd.github+json"}

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.