PATCH
/repos/{owner}/{repo}Update a repository
Note: To edit a repository's topics, use the Replace all repository topics endpoint.
- RetriesRetries up to 2×, 500ms backoff, 30s timeout.
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.
namestringoptional
The name of the repository.
descriptionstringoptional
A short description of the repository.
homepagestringoptional
A URL with more information about the repository.
privatebooleanoptional
Either `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.
visibilitystringoptional
The visibility of the repository.
security_and_analysisobjectoptional
Specify 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.
has_issuesbooleanoptional
Either `true` to enable issues for this repository or `false` to disable them.
has_projectsbooleanoptional
Either `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.
has_wikibooleanoptional
Either `true` to enable the wiki for this repository or `false` to disable it.
has_pull_requestsbooleanoptional
Either `true` to allow pull requests for this repository or `false` to prevent pull requests.
pull_request_creation_policystringoptional
The policy that controls who can create pull requests for this repository: `all` or `collaborators_only`.
is_templatebooleanoptional
Either `true` to make this repo available as a template repository or `false` to prevent it.
default_branchstringoptional
Updates the default branch for this repository.
allow_squash_mergebooleanoptional
Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.
allow_merge_commitbooleanoptional
Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.
allow_rebase_mergebooleanoptional
Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.
allow_auto_mergebooleanoptional
Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge.
delete_branch_on_mergebooleanoptional
Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion.
allow_update_branchbooleanoptional
Either `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.
use_squash_pr_title_as_defaultbooleandeprecatedoptional
Either `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.
squash_merge_commit_titlestringoptional
Required 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).
squash_merge_commit_messagestringoptional
The 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.
merge_commit_titlestringoptional
Required 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).
merge_commit_messagestringoptional
The 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.
archivedbooleanoptional
Whether to archive this repository. `false` will unarchive a previously archived repository.
allow_forkingbooleanoptional
Either `true` to allow private forks, or `false` to prevent private forks.
web_commit_signoff_requiredbooleanoptional
Either `true` to require contributors to sign off on web-based commits, or `false` to not require contributors to sign off on web-based commits.
200Response
idintegerrequired
node_idstringrequired
namestringrequired
full_namestringrequired
ownerobjectrequired
A GitHub user.
privatebooleanrequired
html_urlstringrequired
descriptionstringrequired
forkbooleanrequired
urlstringrequired
archive_urlstringrequired
assignees_urlstringrequired
blobs_urlstringrequired
branches_urlstringrequired
collaborators_urlstringrequired
comments_urlstringrequired
commits_urlstringrequired
compare_urlstringrequired
contents_urlstringrequired
contributors_urlstringrequired
deployments_urlstringrequired
downloads_urlstringrequired
events_urlstringrequired
forks_urlstringrequired
git_commits_urlstringrequired
git_refs_urlstringrequired
git_tags_urlstringrequired
git_urlstringrequired
issue_comment_urlstringrequired
issue_events_urlstringrequired
issues_urlstringrequired
keys_urlstringrequired
labels_urlstringrequired
languages_urlstringrequired
merges_urlstringrequired
milestones_urlstringrequired
notifications_urlstringrequired
pulls_urlstringrequired
releases_urlstringrequired
ssh_urlstringrequired
stargazers_urlstringrequired
statuses_urlstringrequired
subscribers_urlstringrequired
subscription_urlstringrequired
tags_urlstringrequired
teams_urlstringrequired
trees_urlstringrequired
clone_urlstringrequired
mirror_urlstringrequired
hooks_urlstringrequired
svn_urlstringrequired
homepagestringrequired
languagestringrequired
forks_countintegerrequired
stargazers_countintegerrequired
watchers_countintegerrequired
sizeintegerrequired
The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.
default_branchstringrequired
open_issues_countintegerrequired
is_templatebooleanoptional
topicsarray<string>optional
has_issuesbooleanrequired
has_projectsbooleanrequired
has_wikibooleanrequired
has_pagesbooleanrequired
has_downloadsbooleanoptional
has_discussionsbooleanrequired
has_pull_requestsbooleanoptional
pull_request_creation_policystringoptional
The policy controlling who can create pull requests: all or collaborators_only.
archivedbooleanrequired
disabledbooleanrequired
Returns whether or not this repository disabled.
visibilitystringoptional
The repository visibility: public, private, or internal.
pushed_atstringrequired
created_atstringrequired
updated_atstringrequired
permissionsobjectoptional
allow_rebase_mergebooleanoptional
template_repositoryobjectoptional
A repository on GitHub.
temp_clone_tokenstringoptional
allow_squash_mergebooleanoptional
allow_auto_mergebooleanoptional
delete_branch_on_mergebooleanoptional
allow_merge_commitbooleanoptional
allow_update_branchbooleanoptional
use_squash_pr_title_as_defaultbooleanoptional
squash_merge_commit_titlestringoptional
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).
squash_merge_commit_messagestringoptional
The 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.
merge_commit_titlestringoptional
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).
merge_commit_messagestringoptional
The 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.
allow_forkingbooleanoptional
web_commit_signoff_requiredbooleanoptional
subscribers_countintegerrequired
network_countintegerrequired
licenseobjectrequired
License Simple
organizationobjectoptional
A GitHub user.
parentobjectoptional
A repository on GitHub.
sourceobjectoptional
A repository on GitHub.
forksintegerrequired
master_branchstringoptional
open_issuesintegerrequired
watchersintegerrequired
anonymous_access_enabledbooleanoptional
Whether anonymous git access is allowed.
code_of_conductobjectoptional
Code of Conduct Simple
security_and_analysisobjectoptional
custom_propertiesobjectoptional
The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.
307Temporary Redirect
messagestringoptional
documentation_urlstringoptional
urlstringoptional
statusstringoptional
403Forbidden
messagestringoptional
documentation_urlstringoptional
urlstringoptional
statusstringoptional
404Resource not found
messagestringoptional
documentation_urlstringoptional
urlstringoptional
statusstringoptional
422Validation failed, or the endpoint has been spammed.
messagestringrequired
documentation_urlstringrequired
errorsarray<object>optional
Error handling
A 403 is returned: Forbidden. A 404 is returned: Resource not found. A 422 is returned: Validation failed, or the endpoint has been spammed.