POST
/user/reposCreate a repository for the authenticated user
Creates a new repository for the authenticated user.
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.
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.
has_issuesbooleanoptional
Whether issues are enabled.
has_projectsbooleanoptional
Whether projects are enabled.
has_wikibooleanoptional
Whether the wiki is enabled.
has_discussionsbooleanoptional
Whether discussions are enabled.
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
Whether the repository is initialized with a minimal README.
gitignore_templatestringoptional
The desired language or platform to apply to the .gitignore.
license_templatestringoptional
The license keyword of the open source license for this repository.
allow_squash_mergebooleanoptional
Whether to allow squash merges for pull requests.
allow_merge_commitbooleanoptional
Whether to allow merge commits for pull requests.
allow_rebase_mergebooleanoptional
Whether to allow rebase merges for pull requests.
allow_auto_mergebooleanoptional
Whether to allow Auto-merge to be used on pull requests.
delete_branch_on_mergebooleanoptional
Whether to delete head branches when pull requests are merged
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.
has_downloadsbooleanoptional
Whether downloads are enabled.
is_templatebooleanoptional
Whether this repository acts as a template that can be used to generate new repositories.
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.
304Not modified
400Bad Request
messagestringoptional
documentation_urlstringoptional
urlstringoptional
statusstringoptional
401Requires authentication
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 400 is returned: Bad Request. A 401 is returned: Requires authentication. A 403 is returned: Forbidden. A 404 is returned: Resource not found. A 422 is returned: Validation failed, or the endpoint has been spammed.
Was this helpful?