POST
/orgs/{org}/reposCreate an organization repository
Creates a new repository in the specified organization. The authenticated user must be a member of the organization.
OAuth app tokens and personal access tokens (classic) need the public_repo or repo scope to create a public repository, and repo scope to create a private repository.
- RetriesRetries up to 2×, 500ms backoff, 30s timeout.
orgstringrequired
The organization name. The name is not case sensitive.
namestringrequired
The name of the repository.
descriptionstringoptional
A short description of the repository.
homepagestringoptional
A URL with more information about the repository.
privatebooleanoptional
Whether the repository is private.
visibilitystringoptional
The visibility of the repository.
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_downloadsbooleanoptional
Whether downloads are enabled.
is_templatebooleanoptional
Either `true` to make this repo available as a template repository or `false` to prevent it.
team_idintegeroptional
The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization.
auto_initbooleanoptional
Pass `true` to create an initial commit with empty README.
gitignore_templatestringoptional
Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell".
license_templatestringoptional
Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://docs.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0".
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. **The authenticated user must be an organization owner to set this property to `true`.**
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.
custom_propertiesobjectoptional
The custom properties for the new repository. The keys are the custom property names, and the values are the corresponding custom property values.
201Response
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.
403Forbidden
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 422 is returned: Validation failed, or the endpoint has been spammed.