Skip to content

GitHub: Update a repository

GitHub repos.reposUpdate: arguments, response, policy and SDK examples.

← Repos operations · Get started

Operation github.repos_update

Provider route: PATCH /repos/{owner}/{repo}. 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["repos"]["reposUpdate"]>[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.repos.reposUpdate(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.repos.repos_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
bodyobjectOptional
body.allow_auto_mergebooleanOptionalEither `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge.
Default: false
body.allow_forkingbooleanOptionalEither `true` to allow private forks, or `false` to prevent private forks.
Default: false
body.allow_merge_commitbooleanOptionalEither `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.
Default: true
body.allow_rebase_mergebooleanOptionalEither `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.
Default: true
body.allow_squash_mergebooleanOptionalEither `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.
Default: true
body.allow_update_branchbooleanOptionalEither `true` to always allow a pull request head branch that is behind its base branch to be updated even if it is not required to be up to date before merging, or false otherwise.
Default: false
body.archivedbooleanOptionalWhether to archive this repository. `false` will unarchive a previously archived repository.
Default: false
body.default_branchstringOptionalUpdates the default branch for this repository.
body.delete_branch_on_mergebooleanOptionalEither `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion.
Default: false
body.descriptionstringOptionalA short description of the repository.
body.has_issuesbooleanOptionalEither `true` to enable issues for this repository or `false` to disable them.
Default: true
body.has_projectsbooleanOptionalEither `true` to enable projects for this repository or `false` to disable them. Note: If you’re creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.
Default: true
body.has_pull_requestsbooleanOptionalEither `true` to allow pull requests for this repository or `false` to prevent pull requests.
Default: true
body.has_wikibooleanOptionalEither `true` to enable the wiki for this repository or `false` to disable it.
Default: true
body.homepagestringOptionalA URL with more information about the repository.
body.is_templatebooleanOptionalEither `true` to make this repo available as a template repository or `false` to prevent it.
Default: false
body.merge_commit_messagestringOptionalThe default value for a merge commit message.

- `PR_TITLE` - default to the pull request’s title.
- `PR_BODY` - default to the pull request’s body.
- `BLANK` - default to a blank commit message.
One of: PR_BODY, PR_TITLE, BLANK
body.merge_commit_titlestringOptionalRequired when using `merge_commit_message`.

The default value for a merge commit title.

- `PR_TITLE` - default to the pull request’s title.
- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).
One of: PR_TITLE, MERGE_MESSAGE
body.namestringOptionalThe name of the repository.
body.privatebooleanOptionalEither `true` to make the repository private or `false` to make it public. Default: `false`.
Note: You will get a `422` error if the organization restricts [changing repository visibility](https://docs.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private.
Default: false
body.pull_request_creation_policystringOptionalThe policy that controls who can create pull requests for this repository: `all` or `collaborators_only`.
One of: all, collaborators_only
body.security_and_analysisJSONOptional
body.security_and_analysis (anyOf 1)objectAlternativeSpecify which security and analysis features to enable or disable for the repository.

To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see “[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).”

For example, to enable GitHub Advanced Security, use this data in the body of the `PATCH` request:
`{ “security_and_analysis”: {“advanced_security”: { “status”: “enabled” } } }`.

You can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request.
body.security_and_analysis (anyOf 1).advanced_securityobjectOptionalUse the `status` property to enable or disable GitHub Advanced Security for this repository.
For more information, see “[About GitHub Advanced
Security](/github/getting-started-with-github/learning-about-github/about-github-advanced-security).”

For standalone Code Scanning or Secret Protection products, this parameter cannot be used.
body.security_and_analysis (anyOf 1).advanced_security.statusstringOptionalCan be `enabled` or `disabled`.
body.security_and_analysis (anyOf 1).code_securityobjectOptionalUse the `status` property to enable or disable GitHub Code Security for this repository.
body.security_and_analysis (anyOf 1).code_security.statusstringOptionalCan be `enabled` or `disabled`.
body.security_and_analysis (anyOf 1).secret_scanningobjectOptionalUse the `status` property to enable or disable secret scanning for this repository. For more information, see “[About secret scanning](/code-security/secret-security/about-secret-scanning).”
body.security_and_analysis (anyOf 1).secret_scanning.statusstringOptionalCan be `enabled` or `disabled`.
body.security_and_analysis (anyOf 1).secret_scanning_ai_detectionobjectOptionalUse the `status` property to enable or disable secret scanning AI detection for this repository. For more information, see “[Responsible detection of generic secrets with AI](https://docs.github.com/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/generic-secret-detection/responsible-ai-generic-secrets).”
body.security_and_analysis (anyOf 1).secret_scanning_ai_detection.statusstringOptionalCan be `enabled` or `disabled`.
body.security_and_analysis (anyOf 1).secret_scanning_delegated_alert_dismissalobjectOptionalUse the `status` property to enable or disable secret scanning delegated alert dismissal for this repository.
body.security_and_analysis (anyOf 1).secret_scanning_delegated_alert_dismissal.statusstringOptionalCan be `enabled` or `disabled`.
body.security_and_analysis (anyOf 1).secret_scanning_delegated_bypassobjectOptionalUse the `status` property to enable or disable secret scanning delegated bypass for this repository.
body.security_and_analysis (anyOf 1).secret_scanning_delegated_bypass.statusstringOptionalCan be `enabled` or `disabled`.
body.security_and_analysis (anyOf 1).secret_scanning_delegated_bypass_optionsobjectOptionalFeature options for secret scanning delegated bypass.
This object is only honored when `security_and_analysis.secret_scanning_delegated_bypass.status` is set to `enabled`.
You can send this object in the same request as `secret_scanning_delegated_bypass`, or update just the options in a separate request.
body.security_and_analysis (anyOf 1).secret_scanning_delegated_bypass_options.reviewersarrayOptionalThe bypass reviewers for secret scanning delegated bypass.
If you omit this field, the existing set of reviewers is unchanged.
body.security_and_analysis (anyOf 1).secret_scanning_delegated_bypass_options.reviewers[]objectEach item
body.security_and_analysis (anyOf 1).secret_scanning_delegated_bypass_options.reviewers[].modestringOptionalThe bypass mode for the reviewer
Default: ALWAYS
One of: ALWAYS, EXEMPT
body.security_and_analysis (anyOf 1).secret_scanning_delegated_bypass_options.reviewers[].reviewer_idintegerRequired within parentThe ID of the team or role selected as a bypass reviewer
body.security_and_analysis (anyOf 1).secret_scanning_delegated_bypass_options.reviewers[].reviewer_typestringRequired within parentThe type of the bypass reviewer
One of: TEAM, ROLE
body.security_and_analysis (anyOf 1).secret_scanning_non_provider_patternsobjectOptionalUse the `status` property to enable or disable secret scanning non-provider patterns for this repository. For more information, see “[Supported secret scanning patterns](/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets).”
body.security_and_analysis (anyOf 1).secret_scanning_non_provider_patterns.statusstringOptionalCan be `enabled` or `disabled`.
body.security_and_analysis (anyOf 1).secret_scanning_push_protectionobjectOptionalUse the `status` property to enable or disable secret scanning push protection for this repository. For more information, see “[Protecting pushes with secret scanning](/code-security/secret-scanning/protecting-pushes-with-secret-scanning).”
body.security_and_analysis (anyOf 1).secret_scanning_push_protection.statusstringOptionalCan be `enabled` or `disabled`.
body.security_and_analysis (anyOf 2)nullAlternative
body.squash_merge_commit_messagestringOptionalThe default value for a squash merge commit message:

- `PR_BODY` - default to the pull request’s body.
- `COMMIT_MESSAGES` - default to the branch’s commit messages.
- `BLANK` - default to a blank commit message.
One of: PR_BODY, COMMIT_MESSAGES, BLANK
body.squash_merge_commit_titlestringOptionalRequired when using `squash_merge_commit_message`.

The default value for a squash merge commit title:

- `PR_TITLE` - default to the pull request’s title.
- `COMMIT_OR_PR_TITLE` - default to the commit’s title (if only one commit) or the pull request’s title (when more than one commit).
One of: PR_TITLE, COMMIT_OR_PR_TITLE
body.use_squash_pr_title_as_defaultbooleanOptionalEither `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property is closing down. Please use `squash_merge_commit_title` instead.
Default: false
body.visibilitystringOptionalThe visibility of the repository.
One of: public, private
body.web_commit_signoff_requiredbooleanOptionalEither `true` to require contributors to sign off on web-based commits, or `false` to not require contributors to sign off on web-based commits.
Default: false

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

FieldTypePresenceDescription and constraints
$ModelRootExpand Create a fork — response body

Referenced models: Create a fork — response body

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

Create a fork — response body — code of conduct
FieldTypePresenceDescription and constraints
$objectRootCode of Conduct Simple
html_urlJSONRequired within parent
html_url (anyOf 1)stringAlternativeFormat: uri
html_url (anyOf 2)nullAlternative
keystringRequired within parent
namestringRequired within parent
urlstringRequired within parentFormat: 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
Create a fork — response body — template repository
FieldTypePresenceDescription and constraints
$JSONRoot
$ (anyOf 1)ModelAlternativeExpand Create a fork — response body — template_repository / merge_commit_message: PR BODY, PR TITLE, BLANK, merge commit title: PR TITLE, MERGE MESSAGE, pull request creation policy: all, collaborators only, squash merge commit message: PR BODY, COMMIT MESSAGES, BLANK, squash merge commit title: PR TITLE, COMMIT OR PR TITLE
$ (anyOf 2)nullAlternative

Referenced models: Create a fork — response body — template_repository / merge_commit_message: PR BODY, PR TITLE, BLANK, merge commit title: PR TITLE, MERGE MESSAGE, pull request creation policy: all, collaborators only, squash merge commit message: PR BODY, COMMIT MESSAGES, BLANK, squash merge commit title: PR TITLE, COMMIT OR PR TITLE

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

Create a fork — response body — security and analysis
FieldTypePresenceDescription and constraints
$JSONRoot
$ (anyOf 1)objectAlternative
$ (anyOf 1).advanced_securityobjectOptionalEnable or disable GitHub Advanced Security for the repository.

For standalone Code Scanning or Secret Protection products, this parameter cannot be used.
$ (anyOf 1).advanced_security.statusstringOptionalKnown values: enabled, disabled
$ (anyOf 1).code_securityobjectOptional
$ (anyOf 1).code_security.statusstringOptionalKnown values: enabled, disabled
$ (anyOf 1).dependabot_security_updatesobjectOptionalEnable or disable Dependabot security updates for the repository.
$ (anyOf 1).dependabot_security_updates.statusstringOptionalThe enablement status of Dependabot security updates for the repository.
Known values: enabled, disabled
$ (anyOf 1).secret_scanningobjectOptional
$ (anyOf 1).secret_scanning.statusstringOptionalKnown values: enabled, disabled
$ (anyOf 1).secret_scanning_ai_detectionobjectOptional
$ (anyOf 1).secret_scanning_ai_detection.statusstringOptionalKnown values: enabled, disabled
$ (anyOf 1).secret_scanning_delegated_alert_dismissalobjectOptional
$ (anyOf 1).secret_scanning_delegated_alert_dismissal.statusstringOptionalKnown values: enabled, disabled
$ (anyOf 1).secret_scanning_delegated_bypassobjectOptional
$ (anyOf 1).secret_scanning_delegated_bypass.statusstringOptionalKnown values: enabled, disabled
$ (anyOf 1).secret_scanning_delegated_bypass_optionsobjectOptional
$ (anyOf 1).secret_scanning_delegated_bypass_options.reviewersarrayOptionalThe bypass reviewers for secret scanning delegated bypass
$ (anyOf 1).secret_scanning_delegated_bypass_options.reviewers[]objectEach item
$ (anyOf 1).secret_scanning_delegated_bypass_options.reviewers[].modestringOptionalThe bypass mode for the reviewer
Known values: ALWAYS, EXEMPT
Default: ALWAYS
$ (anyOf 1).secret_scanning_delegated_bypass_options.reviewers[].reviewer_idJSONRequired within parent
$ (anyOf 1).secret_scanning_delegated_bypass_options.reviewers[].reviewer_id (anyOf 1)integerAlternativeThe ID of the team or role selected as a bypass reviewer
$ (anyOf 1).secret_scanning_delegated_bypass_options.reviewers[].reviewer_id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
$ (anyOf 1).secret_scanning_delegated_bypass_options.reviewers[].reviewer_typestringRequired within parentThe type of the bypass reviewer
Known values: TEAM, ROLE
$ (anyOf 1).secret_scanning_non_provider_patternsobjectOptional
$ (anyOf 1).secret_scanning_non_provider_patterns.statusstringOptionalKnown values: enabled, disabled
$ (anyOf 1).secret_scanning_push_protectionobjectOptional
$ (anyOf 1).secret_scanning_push_protection.statusstringOptionalKnown values: enabled, disabled
$ (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

SDK function policy ID: github.repos_update. Catalog operation: repos/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.