ID of the key you used to encrypt the secret.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Returns someone's workflow runs. Use the login for the user who created the push
associated with the check suite or workflow run.
Returns workflow runs associated with a branch. Use the name of the branch of the push
.
Returns workflow run triggered by the event you specify. For example, push
, pull_request
or issue
. For more information, see "Events that trigger workflows" in the GitHub Help documentation.
Page number of the results to fetch.
Results per page (max 100)
Returns workflow runs associated with the check run status
or conclusion
you specify. For example, a conclusion can be success
or a status can be completed
. For more information, see the status
and conclusion
options available in "Create a check run."
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Returns someone's workflow runs. Use the login for the user who created the push
associated with the check suite or workflow run.
Returns workflow runs associated with a branch. Use the name of the branch of the push
.
Returns workflow run triggered by the event you specify. For example, push
, pull_request
or issue
. For more information, see "Events that trigger workflows" in the GitHub Help documentation.
Page number of the results to fetch.
Results per page (max 100)
Returns workflow runs associated with the check run status
or conclusion
you specify. For example, a conclusion can be success
or a status can be completed
. For more information, see the status
and conclusion
options available in "Create a check run."
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
If true
, show notifications marked as read.
Only show notifications updated before the given time. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
Page number of the results to fetch.
If true
, only shows notifications in which the user is directly participating or mentioned.
Results per page (max 100)
Only show notifications updated after the given time. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
If true
, show notifications marked as read.
Only show notifications updated before the given time. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
Page number of the results to fetch.
If true
, only shows notifications in which the user is directly participating or mentioned.
Results per page (max 100)
Only show notifications updated after the given time. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
One of asc
(ascending) or desc
(descending).
Page number of the results to fetch.
Results per page (max 100)
One of created
(when the repository was starred) or updated
(when it was last pushed to).
One of asc
(ascending) or desc
(descending).
Page number of the results to fetch.
Results per page (max 100)
One of created
(when the repository was starred) or updated
(when it was last pushed to).
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Describes the last point that notifications were checked. Anything updated since this time will not be updated. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
. Default: The current timestamp.
Describes the last point that notifications were checked. Anything updated since this time will not be updated. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
. Default: The current timestamp.
Determines if all notifications should be blocked from this repository.
Determines if notifications should be received from this repository.
Unsubscribes and subscribes you to a conversation. Set ignored
to true
to block all notifications from this thread.
The OAuth access token used to authenticate to the GitHub API.
The body text of the content attachment displayed in the body or comment of an issue or pull request. This parameter supports markdown.
The title of the content attachment displayed in the body or comment of an issue or pull request.
The permissions granted to the access token. The permissions object includes the permission names and their access type. For a complete list of permissions and allowable values, see "GitHub App permissions."
The id
s of the repositories that the installation token can access. Providing repository id
s restricts the access of an installation token to specific repositories. You can use the "List repositories" endpoint to get the id
of all repositories that an installation can access. For example, you can select specific repositories when creating an installation token to restrict the number of repositories that can be cloned using the token.
The OAuth access token used to authenticate to the GitHub API.
The OAuth access token used to authenticate to the GitHub API.
To return the oldest accounts first, set to asc
. Can be one of asc
or desc
. Ignored without the sort
parameter.
Page number of the results to fetch.
Results per page (max 100)
Sorts the GitHub accounts by the date they were created or last updated. Can be one of created
or updated
.
To return the oldest accounts first, set to asc
. Can be one of asc
or desc
. Ignored without the sort
parameter.
Page number of the results to fetch.
Results per page (max 100)
Sorts the GitHub accounts by the date they were created or last updated. Can be one of created
or updated
.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
The OAuth access token used to authenticate to the GitHub API.
Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the check_run.requested_action
webhook to your app. Each action includes a label
, identifier
and description
. A maximum of three actions are accepted. See the actions
object description. To learn more about check runs and requested actions, see "Check runs and requested actions." To learn more about check runs and requested actions, see "Check runs and requested actions."
The time the check completed. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
Required if you provide completed_at
or a status
of completed
. The final conclusion of the check. Can be one of success
, failure
, neutral
, cancelled
, timed_out
, or action_required
. When the conclusion is action_required
, additional details should be provided on the site specified by details_url
.
Note: Providing conclusion
will automatically set the status
parameter to completed
.
The URL of the integrator's site that has the full details of the check.
A reference for the run on the integrator's system.
The SHA of the commit.
The name of the check. For example, "code-coverage".
Check runs can accept a variety of data in the output
object, including a title
and summary
and can optionally provide descriptive details about the run. See the output
object description.
The time that the check run began. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
The current status. Can be one of queued
, in_progress
, or completed
.
The sha of the head commit.
Page number of the results to fetch.
Results per page (max 100)
Returns check runs with the specified name
.
Filters check runs by their completed_at
timestamp. Can be one of latest
(returning the most recent check runs) or all
.
Page number of the results to fetch.
Results per page (max 100)
Returns check runs with the specified status
. Can be one of queued
, in_progress
, or completed
.
Returns check runs with the specified name
.
Filters check runs by their completed_at
timestamp. Can be one of latest
(returning the most recent check runs) or all
.
Page number of the results to fetch.
Results per page (max 100)
Returns check runs with the specified status
. Can be one of queued
, in_progress
, or completed
.
Filters check suites by GitHub App id
.
Filters checks suites by the name of the check run.
Page number of the results to fetch.
Results per page (max 100)
Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default. See the auto_trigger_checks
object description for details.
Possible further actions the integrator can perform, which a user may trigger. Each action includes a label
, identifier
and description
. A maximum of three actions are accepted. See the actions
object description. To learn more about check runs and requested actions, see "Check runs and requested actions."
The time the check completed. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
Required if you provide completed_at
or a status
of completed
. The final conclusion of the check. Can be one of success
, failure
, neutral
, cancelled
, timed_out
, or action_required
.
Note: Providing conclusion
will automatically set the status
parameter to completed
.
The URL of the integrator's site that has the full details of the check.
A reference for the run on the integrator's system.
The name of the check. For example, "code-coverage".
Check runs can accept a variety of data in the output
object, including a title
and summary
and can optionally provide descriptive details about the run. See the output
object description.
This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
The current status. Can be one of queued
, in_progress
, or completed
.
The comment text.
A descriptive name for this gist.
The filenames and content of each file in the gist. The keys in the files
object represent the filename and have the type string
.
When true
, the gist will be public and available for anyone to see.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
. Only gists updated at or after this time are returned.
Page number of the results to fetch.
Results per page (max 100)
This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
. Only gists updated at or after this time are returned.
Page number of the results to fetch.
Results per page (max 100)
This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
. Only gists updated at or after this time are returned.
Page number of the results to fetch.
Results per page (max 100)
This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
. Only gists updated at or after this time are returned.
The comment text.
A descriptive name for this gist.
The filenames and content that make up this gist.
The new blob's content.
The encoding used for content
. Currently, "utf-8"
and "base64"
are supported.
Information about the author of the commit. By default, the author
will be the authenticated user and the current date. See the author
and committer
object below for details.
Information about the person who is making the commit. By default, committer
will use the information set in author
. See the author
and committer
object below for details.
The commit message
The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided.
The PGP signature of the commit. GitHub adds the signature to the gpgsig
header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a signature
parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to use the command line to create signed commits.
The SHA of the tree object this commit points to
The name of the fully qualified reference (ie: refs/heads/master
). If it doesn't start with 'refs' and have at least two slashes, it will be rejected.
The SHA1 value for this reference.
The tag message.
The SHA of the git object this is tagging.
The tag's name. This is typically a version (e.g., "v0.0.1").
An object with information about the individual creating the tag.
The type of the object we're tagging. Normally this is a commit
but it can also be a tree
or a blob
.
The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.
Objects (of path
, mode
, type
, and sha
) specifying a tree structure.
Page number of the results to fetch.
Results per page (max 100)
Filter by sub-namespace (reference prefix). Most commen examples would be 'heads/'
and 'tags/'
to retrieve branches or tags
Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to false
will make sure you're not overwriting work.
The SHA1 value to set this reference to
Specifies the group of GitHub users who can comment, open issues, or create pull requests in public repositories for the given organization. Must be one of: existing_users
, contributors_only
, or collaborators_only
.
Specifies the group of GitHub users who can comment, open issues, or create pull requests for the given repository. Must be one of: existing_users
, contributors_only
, or collaborators_only
.
Usernames of people to assign this issue to. NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise.
Usernames of people to assign this issue to. NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise.
The name of the label to add to the issue. Must contain at least one label. Note: Alternatively, you can pass a single label as a string
or an array
of labels directly, but GitHub recommends passing an object with the labels
key.
The name of the label to add to the issue. Must contain at least one label. Note: Alternatively, you can pass a single label as a string
or an array
of labels directly, but GitHub recommends passing an object with the labels
key.
The contents of the comment.
The contents of the comment.
The hexadecimal color code for the label, without the leading #
.
A short description of the label.
The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing :strawberry:
will render the emoji . For a full list of available emoji and codes, see emoji-cheat-sheet.com.
A description of the milestone.
The milestone due date. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
The state of the milestone. Either open
or closed
.
The title of the milestone.
Logins for Users to assign to this issue. NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise.
The contents of the issue.
Labels to associate with this issue. NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise.
The number
of the milestone to associate this issue with. NOTE: Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise.
The title of the issue.
Login for the user that this issue should be assigned to. NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. This field is deprecated.
Logins for Users to assign to this issue. NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise.
The contents of the issue.
Labels to associate with this issue. NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise.
The number
of the milestone to associate this issue with. NOTE: Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise.
The title of the issue.
Page number of the results to fetch.
Results per page (max 100)
Either asc
or desc
. Ignored without the sort
parameter.
Only comments updated at or after this time are returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
Either created
or updated
.
Page number of the results to fetch.
Results per page (max 100)
Only comments updated at or after this time are returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
Page number of the results to fetch.
Results per page (max 100)
Only comments updated at or after this time are returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
The direction of the sort. Can be either asc
or desc
.
Indicates which sorts of issues to return. Can be one of:
* assigned
: Issues assigned to you
* created
: Issues created by you
* mentioned
: Issues mentioning you
* subscribed
: Issues you're subscribed to updates for
* all
: All issues the authenticated user can see, regardless of participation or creation
A list of comma separated label names. Example: bug,ui,@high
Page number of the results to fetch.
Results per page (max 100)
Only issues updated at or after this time are returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
What to sort results by. Can be either created
, updated
, comments
.
Indicates the state of the issues to return. Can be either open
, closed
, or all
.
The direction of the sort. Can be either asc
or desc
.
Indicates which sorts of issues to return. Can be one of:
* assigned
: Issues assigned to you
* created
: Issues created by you
* mentioned
: Issues mentioning you
* subscribed
: Issues you're subscribed to updates for
* all
: All issues the authenticated user can see, regardless of participation or creation
A list of comma separated label names. Example: bug,ui,@high
Page number of the results to fetch.
Results per page (max 100)
Only issues updated at or after this time are returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
What to sort results by. Can be either created
, updated
, comments
.
Indicates the state of the issues to return. Can be either open
, closed
, or all
.
Can be the name of a user. Pass in none
for issues with no assigned user, and *
for issues assigned to any user.
The user that created the issue.
The direction of the sort. Can be either asc
or desc
.
A list of comma separated label names. Example: bug,ui,@high
A user that's mentioned in the issue.
If an integer
is passed, it should refer to a milestone by its number
field. If the string *
is passed, issues with any milestone are accepted. If the string none
is passed, issues without milestones are returned.
Page number of the results to fetch.
Results per page (max 100)
Only issues updated at or after this time are returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
What to sort results by. Can be either created
, updated
, comments
.
Indicates the state of the issues to return. Can be either open
, closed
, or all
.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
The direction of the sort. Either asc
or desc
.
Page number of the results to fetch.
Results per page (max 100)
What to sort results by. Either due_on
or completeness
.
The state of the milestone. Either open
, closed
, or all
.
The direction of the sort. Can be either asc
or desc
.
Indicates which sorts of issues to return. Can be one of:
* assigned
: Issues assigned to you
* created
: Issues created by you
* mentioned
: Issues mentioning you
* subscribed
: Issues you're subscribed to updates for
* all
: All issues the authenticated user can see, regardless of participation or creation
A list of comma separated label names. Example: bug,ui,@high
Page number of the results to fetch.
Results per page (max 100)
Only issues updated at or after this time are returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
What to sort results by. Can be either created
, updated
, comments
.
Indicates the state of the issues to return. Can be either open
, closed
, or all
.
The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons:
* off-topic
* too heated
* resolved
* spam
The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons:
* off-topic
* too heated
* resolved
* spam
Usernames of assignees to remove from an issue. NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise.
Usernames of assignees to remove from an issue. NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise.
The names of the labels to add to the issue. You can pass an empty array to remove all labels. Note: Alternatively, you can pass a single label as a string
or an array
of labels directly, but GitHub recommends passing an object with the labels
key.
The names of the labels to add to the issue. You can pass an empty array to remove all labels. Note: Alternatively, you can pass a single label as a string
or an array
of labels directly, but GitHub recommends passing an object with the labels
key.
The contents of the comment.
The hexadecimal color code for the label, without the leading #
.
A short description of the label.
The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing :strawberry:
will render the emoji . For a full list of available emoji and codes, see emoji-cheat-sheet.com.
A description of the milestone.
The milestone due date. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
The state of the milestone. Either open
or closed
.
The title of the milestone.
A description of the milestone.
The milestone due date. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
The state of the milestone. Either open
or closed
.
The title of the milestone.
Logins for Users to assign to this issue. Pass one or more user logins to replace the set of assignees on this Issue. Send an empty array ([]
) to clear all assignees from the Issue. NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise.
The contents of the issue.
Labels to associate with this issue. Pass one or more Labels to replace the set of Labels on this Issue. Send an empty array ([]
) to clear all Labels from the Issue. NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise.
The number
of the milestone to associate this issue with or null
to remove current. NOTE: Only users with push access can set the milestone for issues. The milestone is silently dropped otherwise.
State of the issue. Either open
or closed
.
The title of the issue.
Login for the user that this issue should be assigned to. This field is deprecated.
Logins for Users to assign to this issue. Pass one or more user logins to replace the set of assignees on this Issue. Send an empty array ([]
) to clear all assignees from the Issue. NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise.
The contents of the issue.
Labels to associate with this issue. Pass one or more Labels to replace the set of Labels on this Issue. Send an empty array ([]
) to clear all Labels from the Issue. NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise.
The number
of the milestone to associate this issue with or null
to remove current. NOTE: Only users with push access can set the milestone for issues. The milestone is silently dropped otherwise.
State of the issue. Either open
or closed
.
The title of the issue.
Logins for Users to assign to this issue. Pass one or more user logins to replace the set of assignees on this Issue. Send an empty array ([]
) to clear all assignees from the Issue. NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise.
The contents of the issue.
Labels to associate with this issue. Pass one or more Labels to replace the set of Labels on this Issue. Send an empty array ([]
) to clear all Labels from the Issue. NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise.
The number
of the milestone to associate this issue with or null
to remove current. NOTE: Only users with push access can set the milestone for issues. The milestone is silently dropped otherwise.
State of the issue. Either open
or closed
.
The title of the issue.
The repository context to use when creating references in gfm
mode. Omit this parameter when using markdown
mode.
The rendering mode. Can be either:
* markdown
to render a document in plain Markdown, just like README.md files are rendered.
* gfm
to render a document in GitHub Flavored Markdown, which creates links for user mentions as well as references to SHA-1 hashes, issues, and pull requests.
The Markdown text to render in HTML. Markdown content must be 400 KB or less.
Only authors found after this id are returned. Provide the highest author ID you've seen so far. New authors may be added to the list at any point while the importer is performing the raw
step.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
The new Git author email.
The new Git author name.
Can be one of opt_in
(large files will be stored using Git LFS) or opt_out
(large files will be removed during the import).
Does not include attachments uploaded to GitHub.com in the migration data when set to true
. Excluding attachments will reduce the migration archive file size.
Locks the repositories
to prevent changes during the migration when set to true
.
An array of repositories to include in the migration.
Indicates whether attachments should be excluded from the migration (to reduce migration archive file size).
Indicates whether repositories should be locked (to prevent manipulation) while migrating data.
A list of arrays indicating which repositories should be migrated.
For a tfvc import, the name of the project that is being imported.
The originating VCS type. Can be one of subversion
, git
, mercurial
, or tfvc
. Please be aware that without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response.
If authentication is required, the password to provide to vcs_url
.
The URL of the originating repository.
If authentication is required, the username to provide to vcs_url
.
The password to provide to the originating repository.
The username to provide to the originating repository.
The 20 character OAuth app client key for which to create the token.
The 40 character OAuth app client secret for which to create the token.
A unique string to distinguish an authorization from others created for the same client ID and user.
A note to remind you what the OAuth token is for. Tokens not associated with a specific OAuth application (i.e. personal access tokens) must have a unique note.
A URL to remind you what app the OAuth token is for.
A list of scopes that this authorization is in.
The 40 character OAuth app client secret associated with the client ID specified in the URL.
A note to remind you what the OAuth token is for.
A URL to remind you what app the OAuth token is for.
A list of scopes that this authorization is in.
The 40 character OAuth app client secret associated with the client ID specified in the URL.
A note to remind you what the OAuth token is for.
A URL to remind you what app the OAuth token is for.
A list of scopes that this authorization is in.
The 40 character OAuth app client secret associated with the client ID specified in the URL.
A unique string to distinguish an authorization from others created for the same client and user. If provided, this API is functionally equivalent to Get-or-create an authorization for a specific app and fingerprint.
A note to remind you what the OAuth token is for.
A URL to remind you what app the OAuth token is for.
A list of scopes that this authorization is in.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
A list of scopes to add to this authorization.
A unique string to distinguish an authorization from others created for the same client ID and user.
A note to remind you what the OAuth token is for. Tokens not associated with a specific OAuth application (i.e. personal access tokens) must have a unique note.
A URL to remind you what app the OAuth token is for.
A list of scopes to remove from this authorization.
Replaces the authorization scopes with these.
Node only. Useful for custom proxy, certificate, or dns lookup.
Custom replacement for built-in fetch method. Useful for testing or request hooks.
Use an AbortController
instance to cancel a request. In node you can only cancel streamed requests.
Node only. Request/response timeout in ms, it resets on redirect. 0 to disable (OS limit applies). options.request.signal
is recommended instead.
The role to give the user in the organization. Can be one of:
* admin
- The user will become an owner of the organization.
* member
- The user will become a non-owner member of the organization.
Determines if notifications are sent when the webhook is triggered. Set to true
to send notifications.
Key/value pairs to provide settings for this webhook. These are defined below.
Determines what events the hook is triggered for.
Must be passed as "web".
Required unless you provide invitee_id
. Email address of the person you are inviting, which can be an existing GitHub user.
Required unless you provide email
. GitHub user ID for the person you are inviting.
Specify role for new member. Can be one of:
* admin
- Organization owners with full administrative rights to the organization and complete access to all repositories and teams.
* direct_member
- Non-owner organization members with ability to see other members and join teams by invitation.
* billing_manager
- Non-owner organization members with ability to manage the billing settings of your organization.
Specify IDs for the teams you want to invite new members to.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Filter members returned in the list. Can be one of:
* 2fa_disabled
- Members without two-factor authentication enabled. Available for organization owners.
* all
- All members the authenticated user can see.
Page number of the results to fetch.
Results per page (max 100)
Filter members returned by their role. Can be one of:
* all
- All members of the organization, regardless of role.
* admin
- Organization owners.
* member
- Non-owner organization members.
Page number of the results to fetch.
Results per page (max 100)
Indicates the state of the memberships to return. Can be either active
or pending
. If not specified, the API returns both active and pending memberships.
Filter the list of outside collaborators. Can be one of:
* 2fa_disabled
: Outside collaborators without two-factor authentication enabled.
* all
: All outside collaborators.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
The integer ID of the last organization that you've seen.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Determines if notifications are sent when the webhook is triggered. Set to true
to send notifications.
Key/value pairs to provide settings for this webhook. These are defined below.
Determines what events the hook is triggered for.
The state that the membership should be in. Only "active"
will be accepted.
Billing email address. This address is not publicized.
The company name.
Default permission level members have for organization repositories:
* read
- can pull, but not push to or administer this repository.
* write
- can pull and push, but not administer this repository.
* admin
- can pull, push, and administer this repository.
* none
- no permissions granted by default.
The description of the company.
The publicly visible email address.
Toggles whether an organization can use organization projects.
Toggles whether repositories that belong to the organization can use repository projects.
The location.
Toggles whether organization members can create internal repositories, which are visible to all enterprise members. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud. Can be one of:
* true
- all organization members can create internal repositories.
* false
- only organization owners can create internal repositories.
Default: true
. For more information, see "Restricting repository creation in your organization" in the GitHub Help documentation.
Toggles whether organization members can create private repositories, which are visible to organization members with permission. Can be one of:
* true
- all organization members can create private repositories.
* false
- only organization owners can create private repositories.
Default: true
. For more information, see "Restricting repository creation in your organization" in the GitHub Help documentation.
Toggles whether organization members can create public repositories, which are visible to anyone. Can be one of:
* true
- all organization members can create public repositories.
* false
- only organization owners can create public repositories.
Default: true
. For more information, see "Restricting repository creation in your organization" in the GitHub Help documentation.
Toggles the ability of non-admin organization members to create repositories. Can be one of:
* true
- all organization members can create repositories.
* false
- only organization owners can create repositories.
Default: true
Note: A parameter can override this parameter. See members_allowed_repository_creation_type
in this table for details. Note: A parameter can override this parameter. See members_allowed_repository_creation_type
in this table for details.
The shorthand name of the company.
Billing email address. This address is not publicized.
The company name.
Default permission level members have for organization repositories:
* read
- can pull, but not push to or administer this repository.
* write
- can pull and push, but not administer this repository.
* admin
- can pull, push, and administer this repository.
* none
- no permissions granted by default.
The description of the company.
The publicly visible email address.
Toggles whether an organization can use organization projects.
Toggles whether repositories that belong to the organization can use repository projects.
The location.
Specifies which types of repositories non-admin organization members can create. Can be one of:
* all
- all organization members can create public and private repositories.
* private
- members can create private repositories. This option is only available to repositories that are part of an organization on GitHub Enterprise Cloud.
* none
- only admin members can create repositories.
Note: This parameter is deprecated and will be removed in the future. Its return value ignores internal repositories. Using this parameter overrides values set in members_can_create_repositories
. See this note for details.
Toggles whether organization members can create internal repositories, which are visible to all enterprise members. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud. Can be one of:
* true
- all organization members can create internal repositories.
* false
- only organization owners can create internal repositories.
Default: true
. For more information, see "Restricting repository creation in your organization" in the GitHub Help documentation.
Toggles whether organization members can create private repositories, which are visible to organization members with permission. Can be one of:
* true
- all organization members can create private repositories.
* false
- only organization owners can create private repositories.
Default: true
. For more information, see "Restricting repository creation in your organization" in the GitHub Help documentation.
Toggles whether organization members can create public repositories, which are visible to anyone. Can be one of:
* true
- all organization members can create public repositories.
* false
- only organization owners can create public repositories.
Default: true
. For more information, see "Restricting repository creation in your organization" in the GitHub Help documentation.
Toggles the ability of non-admin organization members to create repositories. Can be one of:
* true
- all organization members can create repositories.
* false
- only organization owners can create repositories.
Default: true
Note: A parameter can override this parameter. See members_allowed_repository_creation_type
in this table for details. Note: A parameter can override this parameter. See members_allowed_repository_creation_type
in this table for details.
The shorthand name of the company.
The permission to grant the collaborator. Note that, if you choose not to pass any parameters, you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs." Can be one of:
* read
- can read, but not write to or administer this project.
* write
- can read and write, but not administer this project.
* admin
- can read, write and administer this project.
The issue or pull request id you want to associate with this card. You can use the List issues for a repository and List pull requests endpoints to find this id.
Note: Depending on whether you use the issue id or pull request id, you will need to specify Issue
or PullRequest
as the content_type
.
Required if you provide content_id
. The type of content you want to associate with this card. Use Issue
when content_id
is an issue id and use PullRequest
when content_id
is a pull request id.
The card's note content. Only valid for cards without another type of content, so you must omit when specifying content_id
and content_type
.
The name of the column.
The description of the project.
The name of the project.
The description of the project.
The name of the project.
The description of the project.
The name of the project.
Filters the project cards that are returned by the card's state. Can be one of all
,archived
, or not_archived
.
Page number of the results to fetch.
Results per page (max 100)
Filters the collaborators by their affiliation. Can be one of:
* outside
: Outside collaborators of a project that are not a member of the project's organization.
* direct
: Collaborators with permissions to a project, regardless of organization membership status.
* all
: All collaborators the authenticated user can see.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Indicates the state of the projects to return. Can be either open
, closed
, or all
.
Page number of the results to fetch.
Results per page (max 100)
Indicates the state of the projects to return. Can be either open
, closed
, or all
.
Page number of the results to fetch.
Results per page (max 100)
Indicates the state of the projects to return. Can be either open
, closed
, or all
.
The id
value of a column in the same project.
Can be one of top
, bottom
, or after:<card_id>
, where <card_id>
is the id
value of a card in the same column, or in the new column specified by column_id
.
Can be one of first
, last
, or after:<column_id>
, where <column_id>
is the id
value of a column in the same project.
Use true
to archive a project card. Specify false
if you need to restore a previously archived project card.
The card's note content. Only valid for cards without another type of content, so this cannot be specified if the card already has a content_id
and content_type
.
The new name of the column.
The description of the project.
The name of the project.
The permission level that determines whether all members of the project's organization can see and/or make changes to the project. Setting organization_permission
is only available for organization projects. If an organization member belongs to a team with a higher level of access or is a collaborator with a higher level of access, their permission level is not lowered by organization_permission
. For information on changing access for a team or collaborator, see Add or update team project or Add user as a collaborator.
Note: Updating a project's organization_permission
requires admin
access to the project.
Can be one of:
* read
- Organization members can read, but not write to or administer this project.
* write
- Organization members can read and write, but not administer this project.
* admin
- Organization members can read, write and administer this project.
* none
- Organization members can only see this project if it is public.
Sets the visibility of a project board. Setting private
is only available for organization and user projects. Note: Updating a project's visibility requires admin
access to the project.
Can be one of:
* false
- Anyone can see the project.
* true
- Only the user can view a project board created on a user account. Organization members with the appropriate organization_permission
can see project boards in an organization account.
State of the project. Either open
or closed
.
The text of the review comment.
The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the position
.
Required with comfort-fade
preview. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to.
The relative path to the file that necessitates a comment.
Required without comfort-fade
preview. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above.
Required with comfort-fade
preview. In a split diff view, the side of the diff that the pull request's changes appear on. Can be LEFT
or RIGHT
. Use LEFT
for deletions that appear in red. Use RIGHT
for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "Diff view options" in the GitHub Help documentation.
Required when using multi-line comments. To create multi-line comments, you must use the comfort-fade
preview header. The start_line
is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "Commenting on a pull request" in the GitHub Help documentation.
Required when using multi-line comments. To create multi-line comments, you must use the comfort-fade
preview header. The start_side
is the starting side of the diff that the comment applies to. Can be LEFT
or RIGHT
. To learn more about multi-line comments, see "Commenting on a pull request" in the GitHub Help documentation. See side
in this table for additional context.
The text of the review comment.
The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the position
.
The comment ID to reply to. Note: This must be the ID of a top-level comment, not a reply to that comment. Replies to replies are not supported.
Required with comfort-fade
preview. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to.
The relative path to the file that necessitates a comment.
Required without comfort-fade
preview. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above.
Required with comfort-fade
preview. In a split diff view, the side of the diff that the pull request's changes appear on. Can be LEFT
or RIGHT
. Use LEFT
for deletions that appear in red. Use RIGHT
for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "Diff view options" in the GitHub Help documentation.
Required when using multi-line comments. To create multi-line comments, you must use the comfort-fade
preview header. The start_line
is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "Commenting on a pull request" in the GitHub Help documentation.
Required when using multi-line comments. To create multi-line comments, you must use the comfort-fade
preview header. The start_side
is the starting side of the diff that the comment applies to. Can be LEFT
or RIGHT
. To learn more about multi-line comments, see "Commenting on a pull request" in the GitHub Help documentation. See side
in this table for additional context.
The text of the review comment.
The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the position
.
Required with comfort-fade
preview. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to.
The relative path to the file that necessitates a comment.
Required without comfort-fade
preview. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above.
Required with comfort-fade
preview. In a split diff view, the side of the diff that the pull request's changes appear on. Can be LEFT
or RIGHT
. Use LEFT
for deletions that appear in red. Use RIGHT
for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "Diff view options" in the GitHub Help documentation.
Required when using multi-line comments. To create multi-line comments, you must use the comfort-fade
preview header. The start_line
is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "Commenting on a pull request" in the GitHub Help documentation.
Required when using multi-line comments. To create multi-line comments, you must use the comfort-fade
preview header. The start_side
is the starting side of the diff that the comment applies to. Can be LEFT
or RIGHT
. To learn more about multi-line comments, see "Commenting on a pull request" in the GitHub Help documentation. See side
in this table for additional context.
The text of the review comment.
The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the position
.
Required with comfort-fade
preview. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to.
The relative path to the file that necessitates a comment.
Required without comfort-fade
preview. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above.
Required with comfort-fade
preview. In a split diff view, the side of the diff that the pull request's changes appear on. Can be LEFT
or RIGHT
. Use LEFT
for deletions that appear in red. Use RIGHT
for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "Diff view options" in the GitHub Help documentation.
Required when using multi-line comments. To create multi-line comments, you must use the comfort-fade
preview header. The start_line
is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "Commenting on a pull request" in the GitHub Help documentation.
Required when using multi-line comments. To create multi-line comments, you must use the comfort-fade
preview header. The start_side
is the starting side of the diff that the comment applies to. Can be LEFT
or RIGHT
. To learn more about multi-line comments, see "Commenting on a pull request" in the GitHub Help documentation. See side
in this table for additional context.
The text of the review comment.
The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the position
.
The comment ID to reply to. Note: This must be the ID of a top-level comment, not a reply to that comment. Replies to replies are not supported.
Required with comfort-fade
preview. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to.
The relative path to the file that necessitates a comment.
Required without comfort-fade
preview. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above.
Required with comfort-fade
preview. In a split diff view, the side of the diff that the pull request's changes appear on. Can be LEFT
or RIGHT
. Use LEFT
for deletions that appear in red. Use RIGHT
for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "Diff view options" in the GitHub Help documentation.
Required when using multi-line comments. To create multi-line comments, you must use the comfort-fade
preview header. The start_line
is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "Commenting on a pull request" in the GitHub Help documentation.
Required when using multi-line comments. To create multi-line comments, you must use the comfort-fade
preview header. The start_side
is the starting side of the diff that the comment applies to. Can be LEFT
or RIGHT
. To learn more about multi-line comments, see "Commenting on a pull request" in the GitHub Help documentation. See side
in this table for additional context.
The text of the review comment.
The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the position
.
Required with comfort-fade
preview. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to.
The relative path to the file that necessitates a comment.
Required without comfort-fade
preview. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above.
Required with comfort-fade
preview. In a split diff view, the side of the diff that the pull request's changes appear on. Can be LEFT
or RIGHT
. Use LEFT
for deletions that appear in red. Use RIGHT
for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "Diff view options" in the GitHub Help documentation.
Required when using multi-line comments. To create multi-line comments, you must use the comfort-fade
preview header. The start_line
is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "Commenting on a pull request" in the GitHub Help documentation.
Required when using multi-line comments. To create multi-line comments, you must use the comfort-fade
preview header. The start_side
is the starting side of the diff that the comment applies to. Can be LEFT
or RIGHT
. To learn more about multi-line comments, see "Commenting on a pull request" in the GitHub Help documentation. See side
in this table for additional context.
The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository.
The contents of the pull request.
Indicates whether the pull request is a draft. See "Draft Pull Requests" in the GitHub Help documentation to learn more.
The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head
with a user like this: username:branch
.
Indicates whether maintainers can modify the pull request.
The title of the new pull request.
The text of the review comment.
Required when using REQUEST_CHANGES
or COMMENT
for the event
parameter. The body text of the pull request review.
Use the following table to specify the location, destination, and contents of the draft review comment.
The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the position
. Defaults to the most recent commit in the pull request when you do not specify a value.
The review action you want to perform. The review actions include: APPROVE
, REQUEST_CHANGES
, or COMMENT
. By leaving this blank, you set the review action state to PENDING
, which means you will need to submit the pull request review when you are ready.
Required when using REQUEST_CHANGES
or COMMENT
for the event
parameter. The body text of the pull request review.
Use the following table to specify the location, destination, and contents of the draft review comment.
The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the position
. Defaults to the most recent commit in the pull request when you do not specify a value.
The review action you want to perform. The review actions include: APPROVE
, REQUEST_CHANGES
, or COMMENT
. By leaving this blank, you set the review action state to PENDING
, which means you will need to submit the pull request review when you are ready.
An array of user login
s that will be requested.
An array of team slug
s that will be requested.
An array of user login
s that will be requested.
An array of team slug
s that will be requested.
An array of user login
s that will be removed.
An array of team slug
s that will be removed.
An array of user login
s that will be removed.
An array of team slug
s that will be removed.
The message for the pull request review dismissal
The message for the pull request review dismissal
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Can be either asc
or desc
. Ignored without sort
parameter.
Page number of the results to fetch.
Results per page (max 100)
This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
. Only returns comments updated
at or after this time.
Can be either created
or updated
comments.
Can be either asc
or desc
. Ignored without sort
parameter.
Page number of the results to fetch.
Results per page (max 100)
This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
. Only returns comments updated
at or after this time.
Can be either created
or updated
comments.
Can be either asc
or desc
. Ignored without sort
parameter.
Page number of the results to fetch.
Results per page (max 100)
This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
. Only returns comments updated
at or after this time.
Can be either created
or updated
comments.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Filter pulls by base branch name. Example: gh-pages
.
The direction of the sort. Can be either asc
or desc
. Default: desc
when sort is created
or sort is not specified, otherwise asc
.
Filter pulls by head user or head organization and branch name in the format of user:ref-name
or organization:ref-name
. For example: github:new-script-format
or octocat:test-branch
.
Page number of the results to fetch.
Results per page (max 100)
What to sort results by. Can be either created
, updated
, popularity
(comment count) or long-running
(age, filtering by pulls updated in the last month).
Either open
, closed
, or all
to filter by state.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Extra detail to append to automatic commit message.
Title for the automatic commit message.
Merge method to use. Possible values are merge
, squash
or rebase
. Default is merge
.
SHA that pull request head must match to allow merge.
Extra detail to append to automatic commit message.
Title for the automatic commit message.
Merge method to use. Possible values are merge
, squash
or rebase
. Default is merge
.
SHA that pull request head must match to allow merge.
The body text of the pull request review
The review action you want to perform. The review actions include: APPROVE
, REQUEST_CHANGES
, or COMMENT
. When you leave this blank, the API returns HTTP 422 (Unrecognizable entity) and sets the review action state to PENDING
, which means you will need to re-submit the pull request review using a review action.
The body text of the pull request review
The review action you want to perform. The review actions include: APPROVE
, REQUEST_CHANGES
, or COMMENT
. When you leave this blank, the API returns HTTP 422 (Unrecognizable entity) and sets the review action state to PENDING
, which means you will need to re-submit the pull request review using a review action.
The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a 422 Unprocessable Entity
status. You can use the "List commits on a repository" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref.
The text of the reply to the review comment.
The 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.
The contents of the pull request.
Indicates whether maintainers can modify the pull request.
State of this Pull Request. Either open
or closed
.
The title of the pull request.
The 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.
The contents of the pull request.
Indicates whether maintainers can modify the pull request.
State of this Pull Request. Either open
or closed
.
The title of the pull request.
The body text of the pull request review.
The body text of the pull request review.
The reaction type to add to the commit comment.
The reaction type to add to the issue comment.
The reaction type to add to the issue.
The reaction type to add to the issue.
The reaction type to add to the pull request review comment.
The reaction type to add to the team discussion comment.
The reaction type to add to the team discussion comment.
The reaction type to add to the team discussion comment.
The reaction type to add to the team discussion.
The reaction type to add to the team discussion.
The reaction type to add to the team discussion.
Returns a single reaction type. Omit this parameter to list all reactions to a commit comment.
Page number of the results to fetch.
Results per page (max 100)
Returns a single reaction type. Omit this parameter to list all reactions to an issue comment.
Page number of the results to fetch.
Results per page (max 100)
Returns a single reaction type. Omit this parameter to list all reactions to an issue.
Page number of the results to fetch.
Results per page (max 100)
Returns a single reaction type. Omit this parameter to list all reactions to an issue.
Page number of the results to fetch.
Results per page (max 100)
Returns a single reaction type. Omit this parameter to list all reactions to a pull request review comment.
Page number of the results to fetch.
Results per page (max 100)
Returns a single reaction type. Omit this parameter to list all reactions to a team discussion comment.
Page number of the results to fetch.
Results per page (max 100)
Returns a single reaction type. Omit this parameter to list all reactions to a team discussion comment.
Page number of the results to fetch.
Results per page (max 100)
Returns a single reaction type. Omit this parameter to list all reactions to a team discussion comment.
Page number of the results to fetch.
Results per page (max 100)
Returns a single reaction type. Omit this parameter to list all reactions to a team discussion.
Page number of the results to fetch.
Results per page (max 100)
Returns a single reaction type. Omit this parameter to list all reactions to a team discussion.
Page number of the results to fetch.
Results per page (max 100)
Returns a single reaction type. Omit this parameter to list all reactions to a team discussion.
Page number of the results to fetch.
Results per page (max 100)
The permission to grant the collaborator. Only valid on organization-owned repositories. Can be one of:
* pull
- can pull, but not push to or administer this repository.
* push
- can pull and push, but not administer this repository.
* admin
- can pull, push and administer this repository.
The contents of the key.
If true
, the key will only be able to read repository contents. Otherwise, the key will be able to read and write.
Deploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see "Repository permission levels for an organization" and "Permission levels for a user account repository."
A name for the key.
The contents of the comment.
Relative path of the file to comment on.
Line index in the diff to comment on.
The contents of the comment.
Deprecated. Use position parameter instead. Line number in the file to comment on.
Relative path of the file to comment on.
Line index in the diff to comment on.
The contents of the comment.
Relative path of the file to comment on.
Line index in the diff to comment on.
Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch.
Short description of the deployment.
Name for the target deployment environment (e.g., production
, staging
, qa
).
JSON payload with extra information about the deployment.
Specifies if the given environment is one that end-users directly interact with. Default: true
when environment
is production
and false
otherwise.
Note: This parameter requires you to use the application/vnd.github.ant-man-preview+json
custom media type.
The ref to deploy. This can be a branch, tag, or SHA.
The status contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts.
Specifies a task to execute (e.g., deploy
or deploy:migrations
).
Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: false
Note: This parameter requires you to use the application/vnd.github.ant-man-preview+json
custom media type. Note: This parameter requires you to use the application/vnd.github.ant-man-preview+json
custom media type.
Adds a new inactive
status to all prior non-transient, non-production environment deployments with the same repository and environment
name as the created status's deployment. An inactive
status is only added to deployments that had a success
state. Default: true
Note: To add an inactive
status to production
environments, you must use the application/vnd.github.flash-preview+json
custom media type.
Note: This parameter requires you to use the application/vnd.github.ant-man-preview+json
custom media type.
A short description of the status. The maximum description length is 140 characters.
Name for the target deployment environment, which can be changed when setting a deploy status. For example, production
, staging
, or qa
. Note: This parameter requires you to use the application/vnd.github.flash-preview+json
custom media type.
Sets the URL for accessing your environment. Default: ""
Note: This parameter requires you to use the application/vnd.github.ant-man-preview+json
custom media type. Note: This parameter requires you to use the application/vnd.github.ant-man-preview+json
custom media type.
The full URL of the deployment's output. This parameter replaces target_url
. We will continue to accept target_url
to support legacy uses, but we recommend replacing target_url
with log_url
. Setting log_url
will automatically set target_url
to the same value. Default: ""
Note: This parameter requires you to use the application/vnd.github.ant-man-preview+json
custom media type. Note: This parameter requires you to use the application/vnd.github.ant-man-preview+json
custom media type.
The state of the status. Can be one of error
, failure
, inactive
, in_progress
, queued
pending
, or success
. Note: To use the inactive
state, you must provide the application/vnd.github.ant-man-preview+json
custom media type. To use the in_progress
and queued
states, you must provide the application/vnd.github.flash-preview+json
custom media type.
The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. Note: It's recommended to use the log_url
parameter, which replaces target_url
.
JSON payload with extra information about the webhook event that your action or worklow may use.
Required: A custom webhook event name.
The author of the file. Default: The committer
or the authenticated user if you omit committer
.
The branch name. Default: the repository’s default branch (usually master
)
The person that committed the file. Default: the authenticated user.
The new file content, using Base64 encoding.
The commit message.
Required if you are updating a file. The blob SHA of the file being replaced.
Either true
to allow merging pull requests with a merge commit, or false
to prevent merging pull requests with merge commits.
Either true
to allow rebase-merging pull requests, or false
to prevent rebase-merging.
Either true
to allow squash-merging pull requests, or false
to prevent squash-merging.
Pass true
to create an initial commit with empty README.
Either true
to allow automatically deleting head branches when pull requests are merged, or false
to prevent automatic deletion.
A short description of the repository.
Desired language or platform .gitignore template to apply. Use the name of the template without the extension. For example, "Haskell".
Either true
to enable issues for this repository or false
to disable them.
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.
Either true
to enable the wiki for this repository or false
to disable it.
A URL with more information about the repository.
Either true
to make this repo available as a template repository or false
to prevent it.
Choose an open source license template that best suits your needs, and then use the license keyword as the license_template
string. For example, "mit" or "mpl-2.0".
The name of the repository.
Either true
to create a private repository or false
to create a public one. Creating private repositories requires a paid GitHub account.
The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization.
Can be public
or private
. If your organization is associated with an enterprise account using GitHub Enterprise Cloud, visibility
can also be internal
. For more information, see "Creating an internal repository" in the GitHub Help documentation.
The visibility
parameter overrides the private
parameter when you use both parameters with the nebula-preview
preview header.
Optional parameter to specify the organization name if forking into an organization.
Determines if notifications are sent when the webhook is triggered. Set to true
to send notifications.
Key/value pairs to provide settings for this webhook. These are defined below.
Determines what events the hook is triggered for.
Use web
to create a webhook. Default: web
. This parameter only accepts the value web
.
Either true
to allow merging pull requests with a merge commit, or false
to prevent merging pull requests with merge commits.
Either true
to allow rebase-merging pull requests, or false
to prevent rebase-merging.
Either true
to allow squash-merging pull requests, or false
to prevent squash-merging.
Pass true
to create an initial commit with empty README.
Either true
to allow automatically deleting head branches when pull requests are merged, or false
to prevent automatic deletion.
A short description of the repository.
Desired language or platform .gitignore template to apply. Use the name of the template without the extension. For example, "Haskell".
Either true
to enable issues for this repository or false
to disable them.
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.
Either true
to enable the wiki for this repository or false
to disable it.
A URL with more information about the repository.
Either true
to make this repo available as a template repository or false
to prevent it.
Choose an open source license template that best suits your needs, and then use the license keyword as the license_template
string. For example, "mit" or "mpl-2.0".
The name of the repository.
Either true
to create a private repository or false
to create a public one. Creating private repositories requires a paid GitHub account.
The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization.
Can be public
or private
. If your organization is associated with an enterprise account using GitHub Enterprise Cloud, visibility
can also be internal
. For more information, see "Creating an internal repository" in the GitHub Help documentation.
The visibility
parameter overrides the private
parameter when you use both parameters with the nebula-preview
preview header.
The author of the file. Default: The committer
or the authenticated user if you omit committer
.
The branch name. Default: the repository’s default branch (usually master
)
The person that committed the file. Default: the authenticated user.
The new file content, using Base64 encoding.
The commit message.
Required if you are updating a file. The blob SHA of the file being replaced.
Text describing the contents of the tag.
true
to create a draft (unpublished) release, false
to create a published one.
The name of the release.
true
to identify the release as a prerelease. false
to identify the release as a full release.
The name of the tag.
Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually master
).
A string label to differentiate this status from the status of other systems.
A short description of the status.
The state of the status. Can be one of error
, failure
, pending
, or success
.
The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status.
For example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA:
http://ci.example.com/user/repo/build/sha
A short description of the new repository.
The name of the new repository.
The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization.
Either true
to create a new private repository or false
to create a new public one.
object containing information about the author.
The branch name. Default: the repository’s default branch (usually master
)
object containing information about the committer.
The commit message.
The blob SHA of the file being replaced.
Must be one of: day
, week
.
The name of the commit/branch/tag. Default: the repository’s default branch (usually master
)
The name of the commit/branch/tag. Default: the repository’s default branch (usually master
)
Must be one of: day
, week
.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Setting to true
returns only protected branches. When set to false
, only unprotected branches are returned. Omitting this parameter returns all branches.
Filter collaborators returned by their affiliation. Can be one of:
* outside
: All outside collaborators of an organization-owned repository.
* direct
: All collaborators with permissions to an organization-owned repository, regardless of organization membership status.
* all
: All collaborators the authenticated user can see.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
GitHub login or email address by which to filter by commit author.
Page number of the results to fetch.
Only commits containing this file path will be returned.
Results per page (max 100)
SHA or branch to start listing commits from. Default: the repository’s default branch (usually master
).
Only commits after this date will be returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
Only commits before this date will be returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
.
Set to 1
or true
to include anonymous contributors in results.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
The name of the environment that was deployed to (e.g., staging
or production
).
Page number of the results to fetch.
Results per page (max 100)
The name of the ref. This can be a branch, tag, or SHA.
The SHA recorded at creation time.
The name of the task for the deployment (e.g., deploy
or deploy:migrations
).
Page number of the results to fetch.
Results per page (max 100)
Can be one of asc
or desc
. Default: when using full_name
: asc
, otherwise desc
Page number of the results to fetch.
Results per page (max 100)
Can be one of created
, updated
, pushed
, full_name
.
Specifies the types of repositories you want returned. Can be one of all
, public
, private
, forks
, sources
, member
, internal
. Default: all
. If your organization is associated with an enterprise account using GitHub Enterprise Cloud, type
can also be internal
.
Can be one of asc
or desc
. Default: asc
when using full_name
, otherwise desc
Page number of the results to fetch.
Results per page (max 100)
Can be one of created
, updated
, pushed
, full_name
.
Can be one of all
, owner
, member
.
Page number of the results to fetch.
Results per page (max 100)
The sort order. Can be either newest
, oldest
, or stargazers
.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Comma-separated list of values. Can include:
* owner
: Repositories that are owned by the authenticated user.
* collaborator
: Repositories that the user has been added to as a collaborator.
* organization_member
: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on.
Can be one of asc
or desc
. Default: asc
when using full_name
, otherwise desc
Page number of the results to fetch.
Results per page (max 100)
Can be one of created
, updated
, pushed
, full_name
.
Can be one of all
, owner
, public
, private
, member
. Default: all
Will cause a 422
error if used in the same request as visibility or affiliation. Will cause a 422
error if used in the same request as visibility or affiliation.
Can be one of all
, public
, or private
.
Page number of the results to fetch.
Results per page (max 100)
The integer ID of the last repository that you've seen.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
The name of the base branch that the head will be merged into.
Commit message to use for the merge commit. If omitted, a default message will be used.
The head to merge. This can be a branch name or a commit SHA1.
An array of topics to add to the repository. Pass one or more topics to replace the set of existing topics. Send an empty array ([]
) to clear all topics from the repository. Note: Topic names
cannot contain uppercase letters.
Required: The username or organization name the repository will be transferred to.
ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories.
Allows deletion of the protected branch by anyone with write access to the repository. Set to false
to prevent deletion of the protected branch. Default: false
. For more information, see "Enabling force pushes to a protected branch" in the GitHub Help documentation.
Permits force pushes to the protected branch by anyone with write access to the repository. Set to true
to allow force pushes. Set to false
or null
to block force pushes. Default: false
. For more information, see "Enabling force pushes to a protected branch" in the GitHub Help documentation."
Enforce all configured restrictions for administrators. Set to true
to enforce required status checks for repository administrators. Set to null
to disable.
Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to true
to enforce a linear commit history. Set to false
to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: false
. For more information, see "Requiring a linear commit history" in the GitHub Help documentation.
Require at least one approving review on a pull request, before merging. Set to null
to disable.
Require status checks to pass before merging. Set to null
to disable.
Restrict who can push to the protected branch. User, app, and team restrictions
are only available for organization-owned repositories. Set to null
to disable.
The contents of the comment
The author of the file. Default: The committer
or the authenticated user if you omit committer
.
The branch name. Default: the repository’s default branch (usually master
)
The person that committed the file. Default: the authenticated user.
The new file content, using Base64 encoding.
The commit message.
Required if you are updating a file. The blob SHA of the file being replaced.
Determines if notifications are sent when the webhook is triggered. Set to true
to send notifications.
Determines a list of events to be added to the list of events that the Hook triggers for.
Key/value pairs to provide settings for this webhook. These are defined below.
Determines what events the hook is triggered for. This replaces the entire array of events.
Determines a list of events to be removed from the list of events that the Hook triggers for.
Specify a custom domain for the repository. Sending a null
value will remove the custom domain. For more about custom domains, see "Using a custom domain with GitHub Pages."
Update the source for the repository. Must include the branch name, and may optionally specify the subdirectory /docs
. Possible values are "gh-pages"
, "master"
, and "master /docs"
.
The permissions that the associated user will have on the repository. Valid values are read
, write
, and admin
.
Either true
to allow merging pull requests with a merge commit, or false
to prevent merging pull requests with merge commits.
Either true
to allow rebase-merging pull requests, or false
to prevent rebase-merging.
Either true
to allow squash-merging pull requests, or false
to prevent squash-merging.
true
to archive this repository. Note: You cannot unarchive repositories through the API.
Updates the default branch for this repository.
Either true
to allow automatically deleting head branches when pull requests are merged, or false
to prevent automatic deletion.
A short description of the repository.
Either true
to enable issues for this repository or false
to disable them.
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.
Either true
to enable the wiki for this repository or false
to disable it.
A URL with more information about the repository.
Either true
to make this repo available as a template repository or false
to prevent it.
The name of the repository.
Either true
to make the repository private or false
to make it public. Creating private repositories requires a paid GitHub account. Default: false
.
Note: You will get a 422
error if the organization restricts changing repository visibility to organization owners and a non-owner tries to change the value of private. Note: You will get a 422
error if the organization restricts changing repository visibility to organization owners and a non-owner tries to change the value of private.
Can be public
or private
. If your organization is associated with an enterprise account using GitHub Enterprise Cloud, visibility
can also be internal
. The visibility
parameter overrides the private
parameter when you use both along with the nebula-preview
preview header.
Set to true
if you want to automatically dismiss approving reviews when someone pushes a new commit.
Specify which users and teams can dismiss pull request reviews. Pass an empty dismissal_restrictions
object to disable. User and team dismissal_restrictions
are only available for organization-owned repositories. Omit this parameter for personal repositories.
Blocks merging pull requests until code owners have reviewed.
Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6.
The list of status checks to require in order to merge into this branch
Require branches to be up to date before merging.
An alternate short description of the asset. Used in place of the filename.
The file name of the asset.
Text describing the contents of the tag.
true
makes the release a draft, and false
publishes the release.
The name of the release.
true
to identify the release as a prerelease, false
to identify the release as a full release.
The name of the tag.
Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually master
).
An alternate short description of the asset. Used in place of the filename. This should be set in a URI query parameter.
The file name of the asset. This should be set in a URI query parameter.
The upload_url
key returned from creating or getting a release
An alternate short description of the asset. Used in place of the filename. This should be set in a URI query parameter.
The file name of the asset. This should be set in a URI query parameter.
The upload_url
key returned from creating or getting a release
Avoid setting accept
, use mediaFormat.{format|previews}
instead.
Use authorization
to send authenticated request, remember token
/ bearer
prefixes. Example: token 1234567890abcdef1234567890abcdef12345678
user-agent
is set do a default and can be overwritten as needed.
Determines whether the first search result returned is the highest number of matches (desc
) or lowest number of matches (asc
). This parameter is ignored unless you provide sort
.
Page number of the results to fetch.
Results per page (max 100)
The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see Constructing a search query. See "Searching code" for a detailed list of qualifiers.
Sorts the results of your query. Can only be indexed
, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: best match
Determines whether the first search result returned is the highest number of matches (desc
) or lowest number of matches (asc
). This parameter is ignored unless you provide sort
.
Page number of the results to fetch.
Results per page (max 100)
The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see Constructing a search query. See "Searching commits" for a detailed list of qualifiers.
Sorts the results of your query by author-date
or committer-date
. Default: best match
The email address.
Determines whether the first search result returned is the highest number of matches (desc
) or lowest number of matches (asc
). This parameter is ignored unless you provide sort
.
Page number of the results to fetch.
Results per page (max 100)
The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see Constructing a search query. See "Searching issues and pull requests" for a detailed list of qualifiers.
Sorts the results of your query by the number of comments
, reactions
, reactions-+1
, reactions--1
, reactions-smile
, reactions-thinking_face
, reactions-heart
, reactions-tada
, or interactions
. You can also sort results by how recently the items were created
or updated
, Default: best match
The search term.
Indicates the state of the issues to return. Can be either open
or closed
.
Determines whether the first search result returned is the highest number of matches (desc
) or lowest number of matches (asc
). This parameter is ignored unless you provide sort
.
Page number of the results to fetch.
Results per page (max 100)
The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see Constructing a search query. See "Searching issues and pull requests" for a detailed list of qualifiers.
Sorts the results of your query by the number of comments
, reactions
, reactions-+1
, reactions--1
, reactions-smile
, reactions-thinking_face
, reactions-heart
, reactions-tada
, or interactions
. You can also sort results by how recently the items were created
or updated
, Default: best match
Determines whether the first search result returned is the highest number of matches (desc
) or lowest number of matches (asc
). This parameter is ignored unless you provide sort
.
The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see Constructing a search query.
The id of the repository.
Sorts the results of your query by when the label was created
or updated
. Default: best match
The search term.
Filter results by language.
The sort field. if sort
param is provided. Can be either asc
or desc
.
The sort field. One of stars
, forks
, or updated
. Default: results are sorted by best match.
The page number to fetch.
Determines whether the first search result returned is the highest number of matches (desc
) or lowest number of matches (asc
). This parameter is ignored unless you provide sort
.
Page number of the results to fetch.
Results per page (max 100)
The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see Constructing a search query. See "Searching for repositories" for a detailed list of qualifiers.
Sorts the results of your query by number of stars
, forks
, or help-wanted-issues
or how recently the items were updated
. Default: best match
The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see Constructing a search query.
The search term.
The sort field. if sort
param is provided. Can be either asc
or desc
.
The sort field. One of stars
, forks
, or updated
. Default: results are sorted by best match.
The page number to fetch.
Determines whether the first search result returned is the highest number of matches (desc
) or lowest number of matches (asc
). This parameter is ignored unless you provide sort
.
Page number of the results to fetch.
Results per page (max 100)
The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see Constructing a search query. See "Searching users" for a detailed list of qualifiers.
Sorts the results of your query by number of followers
or repositories
, or when the person joined
GitHub. Default: best match
The role that this user should have in the team. Can be one of:
* member
- a normal member of the team.
* maintainer
- a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description.
The role that this user should have in the team. Can be one of:
* member
- a normal member of the team.
* maintainer
- a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description.
The role that this user should have in the team. Can be one of:
* member
- a normal member of the team.
* maintainer
- a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description.
The permission to grant to the team for this project. Can be one of:
* read
- team members can read, but not write to or administer this project.
* write
- team members can read and write, but not administer this project.
* admin
- team members can read, write and administer this project.
Default: the team's permission
attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
The permission to grant to the team for this project. Can be one of:
* read
- team members can read, but not write to or administer this project.
* write
- team members can read and write, but not administer this project.
* admin
- team members can read, write and administer this project.
Default: the team's permission
attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
The permission to grant to the team for this project. Can be one of:
* read
- team members can read, but not write to or administer this project.
* write
- team members can read and write, but not administer this project.
* admin
- team members can read, write and administer this project.
Default: the team's permission
attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
The permission to grant the team on this repository. Can be one of:
* pull
- team members can pull, but not push to or administer this repository.
* push
- team members can pull and push, but not administer this repository.
* admin
- team members can pull, push and administer this repository.
If no permission is specified, the team's permission
attribute will be used to determine what permission to grant the team on this repository.
The permission to grant the team on this repository. Can be one of:
* pull
- team members can pull, but not push to or administer this repository.
* push
- team members can pull and push, but not administer this repository.
* admin
- team members can pull, push and administer this repository.
If no permission is specified, the team's permission
attribute will be used to determine what permission to grant the team on this repository.
The permission to grant the team on this repository. Can be one of:
* pull
- team members can pull, but not push to or administer this repository.
* push
- team members can pull and push, but not administer this repository.
* admin
- team members can pull, push and administer this repository.
If no permission is specified, the team's permission
attribute will be used to determine what permission to grant the team on this repository.
The discussion comment's body text.
The discussion comment's body text.
The discussion comment's body text.
The discussion post's body text.
Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to true
to create a private post.
The discussion post's title.
The discussion post's body text.
Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to true
to create a private post.
The discussion post's title.
The discussion post's body text.
Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to true
to create a private post.
The discussion post's title.
The description of the team.
List GitHub IDs for organization members who will become team maintainers.
The name of the team.
The ID of a team to set as the parent team.
The level of privacy this team should have. The options are:
For a non-nested team:
* secret
- only visible to organization owners and members of this team.
* closed
- visible to all members of this organization.
Default: secret
For a parent or child team:
* closed
- visible to all members of this organization.
Default for child team: closed
The full name (e.g., "organization-name/repository-name") of repositories to add the team to.
The description of the team.
List GitHub IDs for organization members who will become team maintainers.
The name of the team.
The ID of a team to set as the parent team.
Deprecated. The permission that new repositories will be added to the team with when none is specified. Can be one of:
* pull
- team members can pull, but not push to or administer newly-added repositories.
* push
- team members can pull and push, but not administer newly-added repositories.
* admin
- team members can pull, push and administer newly-added repositories.
The level of privacy this team should have. The options are:
For a non-nested team:
* secret
- only visible to organization owners and members of this team.
* closed
- visible to all members of this organization.
Default: secret
For a parent or child team:
* closed
- visible to all members of this organization.
Default for child team: closed
The full name (e.g., "organization-name/repository-name") of repositories to add the team to.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Sorts the discussion comments by the date they were created. To return the oldest comments first, set to asc
. Can be one of asc
or desc
.
Page number of the results to fetch.
Results per page (max 100)
Sorts the discussion comments by the date they were created. To return the oldest comments first, set to asc
. Can be one of asc
or desc
.
Page number of the results to fetch.
Results per page (max 100)
Sorts the discussion comments by the date they were created. To return the oldest comments first, set to asc
. Can be one of asc
or desc
.
Page number of the results to fetch.
Results per page (max 100)
Sorts the discussion comments by the date they were created. To return the oldest comments first, set to asc
. Can be one of asc
or desc
.
Page number of the results to fetch.
Results per page (max 100)
Sorts the discussion comments by the date they were created. To return the oldest comments first, set to asc
. Can be one of asc
or desc
.
Page number of the results to fetch.
Results per page (max 100)
Sorts the discussion comments by the date they were created. To return the oldest comments first, set to asc
. Can be one of asc
or desc
.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Filters members returned by their role in the team. Can be one of:
* member
- normal members of the team.
* maintainer
- team maintainers.
* all
- all members of the team.
Page number of the results to fetch.
Results per page (max 100)
Filters members returned by their role in the team. Can be one of:
* member
- normal members of the team.
* maintainer
- team maintainers.
* all
- all members of the team.
Page number of the results to fetch.
Results per page (max 100)
Filters members returned by their role in the team. Can be one of:
* member
- normal members of the team.
* maintainer
- team maintainers.
* all
- all members of the team.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
The discussion comment's body text.
The discussion comment's body text.
The discussion comment's body text.
The discussion post's body text.
The discussion post's title.
The discussion post's body text.
The discussion post's title.
The discussion post's body text.
The discussion post's title.
The description of the team.
The name of the team.
The ID of a team to set as the parent team.
The level of privacy this team should have. Editing teams without specifying this parameter leaves privacy
intact. When a team is nested, the privacy
for parent teams cannot be secret
. The options are:
For a non-nested team:
* secret
- only visible to organization owners and members of this team.
* closed
- visible to all members of this organization.
For a parent or child team:
* closed
- visible to all members of this organization.
The description of the team.
The name of the team.
The ID of a team to set as the parent team.
Deprecated. The permission that new repositories will be added to the team with when none is specified. Can be one of:
* pull
- team members can pull, but not push to or administer newly-added repositories.
* push
- team members can pull and push, but not administer newly-added repositories.
* admin
- team members can pull, push and administer newly-added repositories.
The level of privacy this team should have. Editing teams without specifying this parameter leaves privacy
intact. When a team is nested, the privacy
for parent teams cannot be secret
. The options are:
For a non-nested team:
* secret
- only visible to organization owners and members of this team.
* closed
- visible to all members of this organization.
For a parent or child team:
* closed
- visible to all members of this organization.
The description of the team.
The name of the team.
The ID of a team to set as the parent team.
The level of privacy this team should have. Editing teams without specifying this parameter leaves privacy
intact. The options are:
For a non-nested team:
* secret
- only visible to organization owners and members of this team.
* closed
- visible to all members of this organization.
For a parent or child team:
* closed
- visible to all members of this organization.
The description of the team.
The name of the team.
The ID of a team to set as the parent team.
Deprecated. The permission that new repositories will be added to the team with when none is specified. Can be one of:
* pull
- team members can pull, but not push to or administer newly-added repositories.
* push
- team members can pull and push, but not administer newly-added repositories.
* admin
- team members can pull, push and administer newly-added repositories.
The level of privacy this team should have. Editing teams without specifying this parameter leaves privacy
intact. The options are:
For a non-nested team:
* secret
- only visible to organization owners and members of this team.
* closed
- visible to all members of this organization.
For a parent or child team:
* closed
- visible to all members of this organization.
The description of the team.
The name of the team.
The ID of a team to set as the parent team.
The level of privacy this team should have. Editing teams without specifying this parameter leaves privacy
intact. The options are:
For a non-nested team:
* secret
- only visible to organization owners and members of this team.
* closed
- visible to all members of this organization.
For a parent or child team:
* closed
- visible to all members of this organization.
The description of the team.
The name of the team.
The ID of a team to set as the parent team.
Deprecated. The permission that new repositories will be added to the team with when none is specified. Can be one of:
* pull
- team members can pull, but not push to or administer newly-added repositories.
* push
- team members can pull and push, but not administer newly-added repositories.
* admin
- team members can pull, push and administer newly-added repositories.
The level of privacy this team should have. Editing teams without specifying this parameter leaves privacy
intact. The options are:
For a non-nested team:
* secret
- only visible to organization owners and members of this team.
* closed
- visible to all members of this organization.
For a parent or child team:
* closed
- visible to all members of this organization.
Adds one or more email addresses to your GitHub account. Must contain at least one email address. Note: Alternatively, you can pass a single email address or an array
of emails addresses directly, but we recommend that you pass an object using the emails
key.
Your GPG key, generated in ASCII-armored format. See "Generating a new GPG key" for help creating a GPG key.
The public SSH key to add to your GitHub account. See "Generating a new SSH key" for guidance on how to create a public SSH key.
A descriptive name for the new key. Use a name that will help you recognize this key in your GitHub account. For example, if you're using a personal Mac, you might call this key "Personal MacBook Air".
Deletes one or more email addresses from your GitHub account. Must contain at least one email address. Note: Alternatively, you can pass a single email address or an array
of emails addresses directly, but we recommend that you pass an object using the emails
key.
Uses the ID for the subject_type
you specified. Required when using subject_type
.
Identifies which additional information you'd like to receive about the person's hovercard. Can be organization
, repository
, issue
, pull_request
. Required when using subject_id
.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
The integer ID of the last User that you've seen.
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Page number of the results to fetch.
Results per page (max 100)
Specify the primary email address that needs a visibility change.
Use public
to enable an authenticated user to view the specified email address, or use private
so this primary email address cannot be seen publicly.
The new short biography of the user.
The new blog URL of the user.
The new company of the user.
The publicly visible email address of the user.
The new hiring availability of the user.
The new location of the user.
The new name of the user.
Cancels a workflow run using its id
. Anyone with write access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Creates or updates a secret with an encrypted value. Encrypt your secret using LibSodium. Anyone with write access to the repository can use this endpoint. GitHub Apps must have the secrets
permission to use this endpoint.
Encrypt your secret using the tweetsodium library.
Encrypt your secret using pynacl with Python 3.
Encrypt your secret using the Sodium.Core package.
Encrypt your secret using the rbnacl gem.
Returns a token that you can pass to the config
script. The token expires after one hour. Anyone with admin access to the repository can use this endpoint. GitHub Apps must have the administration
permission to use this endpoint.
Configure your self-hosted runner, replacing TOKEN with the registration token provided by this endpoint.
Returns a token that you can pass to remove a self-hosted runner from a repository. The token expires after one hour. Anyone with admin access to the repository can use this endpoint. GitHub Apps must have the administration
permission to use this endpoint.
Remove your self-hosted runner from a repository, replacing TOKEN with the remove token provided by this endpoint.
Deletes an artifact for a workflow run. Anyone with write access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Deletes a secret in a repository using the secret name. Anyone with write access to the repository can use this endpoint. GitHub Apps must have the secrets
permission to use this endpoint.
Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for Location:
in the response header to find the URL for the download. The :archive_format
must be zip
. Anyone with read access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Call this endpoint using the -v
flag, which enables verbose output and allows you to see the download URL in the header. To download the file into the current working directory, specify the filename using the -o
flag.
Gets a specific artifact for a workflow run. Anyone with read access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Gets your public key, which you must store. You need your public key to use other secrets endpoints. Use the returned key
to encrypt your secrets. Anyone with read access to the repository can use this endpoint. GitHub Apps must have the secrets
permission to use this endpoint.
Gets a single secret without revealing its encrypted value. Anyone with write access to the repository can use this endpoint. GitHub Apps must have the secrets
permission to use this endpoint.
Gets a specific self-hosted runner. Anyone with admin access to the repository can use this endpoint. GitHub Apps must have the administration
permission to use this endpoint.
Gets a specific workflow. You can also replace :workflow_id
with :workflow_file_name
. For example, you could use main.yml
. Anyone with read access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Gets a specific job in a workflow run. Anyone with read access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Gets a specific workflow run. Anyone with read access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Lists binaries for the self-hosted runner application that you can download and run. Anyone with admin access to the repository can use this endpoint. GitHub Apps must have the administration
permission to use this endpoint.
Lists jobs for a workflow run. Anyone with read access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see Parameters.
Anyone with read access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Lists the workflows in a repository. Anyone with read access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Lists all secrets available in a repository without revealing their encrypted values. Anyone with write access to the repository can use this endpoint. GitHub Apps must have the secrets
permission to use this endpoint.
Lists all self-hosted runners for a repository. Anyone with admin access to the repository can use this endpoint. GitHub Apps must have the administration
permission to use this endpoint.
Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look for Location:
in the response header to find the URL for the download. Anyone with read access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Call this endpoint using the -v
flag, which enables verbose output and allows you to see the download URL in the header. To download the file into the current working directory, specify the filename using the -o
flag.
Lists artifacts for a workflow run. Anyone with read access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for Location:
in the response header to find the URL for the download. Anyone with read access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Call this endpoint using the -v
flag, which enables verbose output and allows you to see the download URL in the header. To download the file into the current working directory, specify the filename using the -o
flag.
List all workflow runs for a workflow. You can also replace :workflow_id
with :workflow_file_name
. For example, you could use main.yml
. You can use parameters to narrow the list of results. For more information about using parameters, see Parameters.
Anyone with read access to the repository can use this endpoint.
Re-runs your workflow run using its id
. Anyone with write access to the repository can use this endpoint. GitHub Apps must have the actions
permission to use this endpoint.
Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. Anyone with admin access to the repository can use this endpoint. GitHub Apps must have the administration
permission to use this endpoint.
Requires for the user to be authenticated.
Requires for the user to be authenticated.
This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, set the repository's subscription manually.
Mutes all future notifications for a conversation until you comment on the thread or get @mentioned.
This checks to see if the current user is subscribed to a thread. You can also get a repository subscription.
Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were @mentioned, or manually subscribe to a thread.
This is the user's organization dashboard. You must be authenticated as the user to view this.
If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events.
GitHub provides several timeline resources in Atom format. The Feeds API lists all the feeds available to the authenticated user:
Note: Private feeds are only returned when authenticating via Basic Auth since current feed URIs use the older, non revocable auth tokens.
List all notifications for the current user, sorted by most recently updated.
The following example uses the since
parameter to list notifications that have been updated after the specified time.
List all notifications for the current user.
We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago.
These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.
You can also find out when stars were created by passing the following custom media type via the Accept
header:
You can also find out when stars were created by passing the following custom media type via the Accept
header:
You can also find out when stars were created by passing the following custom media type via the Accept
header:
Marks a notification as "read" removes it from the default view on GitHub. If the number of notifications is too large to complete in one request, you will receive a 202 Accepted
status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the List your notifications endpoint and pass the query parameter all=false
.
Marks all notifications in a repository as "read" removes them from the default view on GitHub. If the number of notifications is too large to complete in one request, you will receive a 202 Accepted
status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the List your notifications in a repository endpoint and pass the query parameter all=false
.
If you would like to watch a repository, set subscribed
to true
. If you would like to ignore notifications made within a repository, set ignored
to true
. If you would like to stop watching a repository, delete the repository's subscription completely.
This lets you subscribe or unsubscribe from a conversation.
Requires for the user to be authenticated.
Note that you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
Requires for the user to be authenticated.
Requires for the user to be authenticated.
Requires the user to be authenticated.
Note that you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
Add a single repository to an installation. The authenticated user must have admin access to the repository.
You must use a personal access token (which you can create via the command line or the OAuth Authorizations API) or Basic Authentication to access this endpoint.
Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.
GitHub Apps must use a JWT to access this endpoint. OAuth Apps must use basic authentication with their client ID and client secret to access this endpoint.
Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.
GitHub Apps must use a JWT to access this endpoint. OAuth Apps must use basic authentication with their client ID and client secret to access this endpoint.
Deprecation Notice: GitHub will replace and discontinue OAuth endpoints containing access_token
in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using access_token
as an input parameter. For more information, see the blog post.
OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use Basic Authentication when accessing this endpoint, using the OAuth application's client_id
and client_secret
as the username and password. Invalid tokens will return 404 NOT FOUND
.
OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use Basic Authentication to use this endpoint, where the username is the OAuth application client_id
and the password is its client_secret
. Invalid tokens will return 404 NOT FOUND
.
Creates an attachment under a content reference URL in the body or comment of an issue or pull request. Use the id
of the content reference from the content_reference
event to create an attachment.
The app must create a content attachment within six hours of the content reference URL being posted. See "Using content attachments" for details about content attachments.
You must use an installation access token to access this endpoint.
This example creates a content attachment for the domain https://errors.ai/
.
Use this endpoint to complete the handshake necessary when implementing the GitHub App Manifest flow. When you create a GitHub App with the manifest flow, you receive a temporary code
used to retrieve the GitHub App's id
, pem
(private key), and webhook_secret
.
Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized
, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. To restrict the access to specific repositories, you can provide the repository_ids
when creating the token. When you omit repository_ids
, the response does not contain the repositories
key.
You must use a JWT to access this endpoint.
This example grants the token "Read and write" permission to issues
and "Read" permission to contents
, and restricts the token's access to the repository with an id
of 1296269.
OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use Basic Authentication when accessing this endpoint, using the OAuth application's client_id
and client_secret
as the username and password. You must also provide a valid OAuth access_token
as an input parameter and the grant for the token's owner will be deleted.
Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on the application authorizations settings screen within GitHub.
Uninstalls a GitHub App on a user, organization, or business account.
You must use a JWT to access this endpoint.
OAuth application owners can revoke a single token for an OAuth application. You must use Basic Authentication when accessing this endpoint, using the OAuth application's client_id
and client_secret
as the username and password.
Enables an authenticated GitHub App to find the organization's installation information.
You must use a JWT to access this endpoint.
Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to.
You must use a JWT to access this endpoint.
Enables an authenticated GitHub App to find the user’s installation information.
You must use a JWT to access this endpoint.
Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the installations_count
in the response. For more details about your app's installations, see the "List installations" endpoint.
You must use a JWT to access this endpoint.
Note: The :app_slug
is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., https://github.com/settings/apps/:app_slug
).
If the GitHub App you specify is public, you can access this endpoint without authenticating. If the GitHub App you specify is private, you must authenticate with a personal access token or an installation access token to access this endpoint.
You must use a JWT to access this endpoint.
Enables an authenticated GitHub App to find the organization's installation information.
You must use a JWT to access this endpoint.
Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to.
You must use a JWT to access this endpoint.
Enables an authenticated GitHub App to find the user’s installation information.
You must use a JWT to access this endpoint.
Returns any accounts associated with a plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.
GitHub Apps must use a JWT to access this endpoint. OAuth Apps must use basic authentication with their client ID and client secret to access this endpoint.
Returns any accounts associated with a plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.
GitHub Apps must use a JWT to access this endpoint. OAuth Apps must use basic authentication with their client ID and client secret to access this endpoint.
List repositories that the authenticated user has explicit permission (:read
, :write
, or :admin
) to access for an installation.
The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.
You must use a user-to-server OAuth access token, created for a user who has authorized your GitHub App, to access this endpoint.
The access the user has to each repository is included in the hash under the permissions
key.
You must use a JWT to access this endpoint.
The permissions the installation has are included under the permissions
key.
Lists installations of your GitHub App that the authenticated user has explicit permission (:read
, :write
, or :admin
) to access.
You must use a user-to-server OAuth access token, created for a user who has authorized your GitHub App, to access this endpoint.
The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.
You can find the permissions for the installation under the permissions
key.
Returns only active subscriptions. You must use a user-to-server OAuth access token, created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an OAuth token.
Returns only active subscriptions. You must use a user-to-server OAuth access token, created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an OAuth token.
GitHub Apps must use a JWT to access this endpoint. OAuth Apps must use basic authentication with their client ID and client secret to access this endpoint.
GitHub Apps must use a JWT to access this endpoint. OAuth Apps must use basic authentication with their client ID and client secret to access this endpoint.
List repositories that an installation can access.
You must use an installation access token to access this endpoint.
Remove a single repository from an installation. The authenticated user must have admin access to the repository.
You must use a personal access token (which you can create via the command line or the OAuth Authorizations API) or Basic Authentication to access this endpoint.
Deprecation Notice: GitHub will replace and discontinue OAuth endpoints containing access_token
in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using access_token
as an input parameter. For more information, see the blog post.
OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use Basic Authentication when accessing this endpoint, using the OAuth application's client_id
and client_secret
as the username and password. Invalid tokens will return 404 NOT FOUND
.
OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use Basic Authentication when accessing this endpoint, using the OAuth application's client_id
and client_secret
as the username and password. Invalid tokens will return 404 NOT FOUND
.
Deprecation Notice: GitHub will replace and discontinue OAuth endpoints containing access_token
in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using access_token
as an input parameter. For more information, see the blog post.
OAuth application owners can revoke a single token for an OAuth application. You must use Basic Authentication when accessing this endpoint, using the OAuth application's client_id
and client_secret
as the username and password.
Deprecation Notice: GitHub will replace and discontinue OAuth endpoints containing access_token
in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using access_token
as an input parameter. For more information, see the blog post.
OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use Basic Authentication when accessing this endpoint, using the OAuth application's client_id
and client_secret
as the username and password. You must also provide a valid token as :access_token
and the grant for the token's owner will be deleted.
Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on the Applications settings page under "Authorized OAuth Apps" on GitHub.
Revokes the installation token you're using to authenticate as an installation and access this endpoint.
Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "Create a new installation token" endpoint.
You must use an installation access token to access this endpoint.
Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests
array.
Creates a new check run for a specific commit in a repository. Your GitHub App must have the checks:write
permission to create check runs.
Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests
array and a null
value for head_branch
.
By default, check suites are automatically created when you create a check run. You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "Set preferences for check suites on a repository". Your GitHub App must have the checks:write
permission to create check suites.
Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests
array.
Gets a single check run using its id
. GitHub Apps must have the checks:read
permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the repo
scope to get check runs in a private repository.
Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests
array and a null
value for head_branch
.
Gets a single check suite using its id
. GitHub Apps must have the checks:read
permission on a private repository or pull access to a public repository to get check suites. OAuth Apps and authenticated users must have the repo
scope to get check suites in a private repository.
Lists annotations for a check run using the annotation id
. GitHub Apps must have the checks:read
permission on a private repository or pull access to a public repository to get annotations for a check run. OAuth Apps and authenticated users must have the repo
scope to get annotations for a check run in a private repository.
Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests
array.
Lists check runs for a commit ref. The ref
can be a SHA, branch name, or a tag name. GitHub Apps must have the checks:read
permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the repo
scope to get check runs in a private repository.
Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests
array.
Lists check runs for a check suite using its id
. GitHub Apps must have the checks:read
permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the repo
scope to get check runs in a private repository.
Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests
array and a null
value for head_branch
.
Lists check suites for a commit ref
. The ref
can be a SHA, branch name, or a tag name. GitHub Apps must have the checks:read
permission on a private repository or pull access to a public repository to list check suites. OAuth Apps and authenticated users must have the repo
scope to get check suites in a private repository.
Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the check_suite
webhook event with the action rerequested
. When a check suite is rerequested
, its status
is reset to queued
and the conclusion
is cleared.
To rerequest a check suite, your GitHub App must have the checks:read
permission on a private repository or pull access to a public repository.
Changes the default automatic flow when creating check suites. By default, the CheckSuiteEvent is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually Create a check suite. You must have admin permissions in the repository to set preferences for check suites.
Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests
array.
Updates a check run for a specific commit in a repository. Your GitHub App must have the checks:write
permission to edit check runs.
This method returns the contents of the repository's code of conduct file, if one is detected.
Lists all the emojis available to use on GitHub.
Allows you to add a new gist with one or more files.
Note: Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally.
Note: This was previously /gists/:gist_id/fork
.
List all public gists sorted by most recently updated to least recently updated.
Note: With pagination, you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page.
List the authenticated user's starred gists:
Note that you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
Allows you to update or delete a gist file and rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged.
Creates a new Git commit object.
In this example, the payload of the signature would be:
Signature verification object
The response will include a verification
object that describes the result of verifying the commit's signature. The following fields are included in the verification
object:
These are the possible values for reason
in the verification
object:
Value | Description |
---|---|
expired_key |
The key that made the signature is expired. |
not_signing_key |
The "signing" flag is not among the usage flags in the GPG key that made the signature. |
gpgverify_error |
There was an error communicating with the signature verification service. |
gpgverify_unavailable |
The signature verification service is currently unavailable. |
unsigned |
The object does not include a signature. |
unknown_signature_type |
A non-PGP signature was found in the commit. |
no_user |
No user was associated with the committer email address in the commit. |
unverified_email |
The committer email address in the commit was associated with a user, but the email address is not verified on her/his account. |
bad_email |
The committer email address in the commit is not included in the identities of the PGP key that made the signature. |
unknown_key |
The key that made the signature has not been registered with any user's account. |
malformed_signature |
There was an error parsing the signature. |
invalid |
The signature could not be cryptographically verified using the key whose key-id was found in the signature. |
valid |
None of the above errors applied, so the signature is considered to be verified. |
Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches.
Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then create the refs/tags/[tag]
reference. If you want to create a lightweight tag, you only have to create the tag reference - this call would be unnecessary.
Signature verification object
The response will include a verification
object that describes the result of verifying the commit's signature. The following fields are included in the verification
object:
These are the possible values for reason
in the verification
object:
Value | Description |
---|---|
expired_key |
The key that made the signature is expired. |
not_signing_key |
The "signing" flag is not among the usage flags in the GPG key that made the signature. |
gpgverify_error |
There was an error communicating with the signature verification service. |
gpgverify_unavailable |
The signature verification service is currently unavailable. |
unsigned |
The object does not include a signature. |
unknown_signature_type |
A non-PGP signature was found in the commit. |
no_user |
No user was associated with the committer email address in the commit. |
unverified_email |
The committer email address in the commit was associated with a user, but the email address is not verified on her/his account. |
bad_email |
The committer email address in the commit is not included in the identities of the PGP key that made the signature. |
unknown_key |
The key that made the signature has not been registered with any user's account. |
malformed_signature |
There was an error parsing the signature. |
invalid |
The signature could not be cryptographically verified using the key whose key-id was found in the signature. |
valid |
None of the above errors applied, so the signature is considered to be verified. |
The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure.
If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "Create a commit" and "Update a reference."
DELETE /repos/octocat/Hello-World/git/refs/heads/feature-a
DELETE /repos/octocat/Hello-World/git/refs/tags/v1.0
The content
in the response will always be Base64 encoded.
Note: This API supports blobs up to 100 megabytes in size.
Gets a Git commit object.
Signature verification object
The response will include a verification
object that describes the result of verifying the commit's signature. The following fields are included in the verification
object:
These are the possible values for reason
in the verification
object:
Value | Description |
---|---|
expired_key |
The key that made the signature is expired. |
not_signing_key |
The "signing" flag is not among the usage flags in the GPG key that made the signature. |
gpgverify_error |
There was an error communicating with the signature verification service. |
gpgverify_unavailable |
The signature verification service is currently unavailable. |
unsigned |
The object does not include a signature. |
unknown_signature_type |
A non-PGP signature was found in the commit. |
no_user |
No user was associated with the committer email address in the commit. |
unverified_email |
The committer email address in the commit was associated with a user, but the email address is not verified on her/his account. |
bad_email |
The committer email address in the commit is not included in the identities of the PGP key that made the signature. |
unknown_key |
The key that made the signature has not been registered with any user's account. |
malformed_signature |
There was an error parsing the signature. |
invalid |
The signature could not be cryptographically verified using the key whose key-id was found in the signature. |
valid |
None of the above errors applied, so the signature is considered to be verified. |
Returns a single reference from your Git database. The :ref
in the URL must be formatted as heads/<branch name>
for branches and tags/<tag name>
for tags. If the :ref
doesn't match an existing ref, a 404
is returned.
Note: You need to explicitly request a pull request to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "Checking mergeability of pull requests".
To get the reference for a branch named skunkworkz/featureA
, the endpoint route is:
Signature verification object
The response will include a verification
object that describes the result of verifying the commit's signature. The following fields are included in the verification
object:
These are the possible values for reason
in the verification
object:
Value | Description |
---|---|
expired_key |
The key that made the signature is expired. |
not_signing_key |
The "signing" flag is not among the usage flags in the GPG key that made the signature. |
gpgverify_error |
There was an error communicating with the signature verification service. |
gpgverify_unavailable |
The signature verification service is currently unavailable. |
unsigned |
The object does not include a signature. |
unknown_signature_type |
A non-PGP signature was found in the commit. |
no_user |
No user was associated with the committer email address in the commit. |
unverified_email |
The committer email address in the commit was associated with a user, but the email address is not verified on her/his account. |
bad_email |
The committer email address in the commit is not included in the identities of the PGP key that made the signature. |
unknown_key |
The key that made the signature has not been registered with any user's account. |
malformed_signature |
There was an error parsing the signature. |
invalid |
The signature could not be cryptographically verified using the key whose key-id was found in the signature. |
valid |
None of the above errors applied, so the signature is considered to be verified. |
Returns a single tree using the SHA1 value for that tree.
If truncated
is true
in the response then the number of items in the tree
array exceeded our maximum limit. If you need to fetch more items, you can clone the repository and iterate over the Git data locally.
Returns an array of references from your Git database that match the supplied name. The :ref
in the URL must be formatted as heads/<branch name>
for branches and tags/<tag name>
for tags. If the :ref
doesn't exist in the repository, but existing refs start with :ref
, they will be returned as an array.
When you use this endpoint without providing a :ref
, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just heads
and tags
.
Note: You need to explicitly request a pull request to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "Checking mergeability of pull requests".
If you request matching references for a branch named feature
but the branch feature
doesn't exist, the response can still include other matching head refs that start with the word feature
, such as featureA
and featureB
.
Returns an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just heads
and tags
. If there are no references to list, a 404
is returned.
The API also allows fetching the source of a single template.
Use the raw media type to get the raw contents.
List all templates available to pass as an option when creating a repository.
Temporarily restricts interactions to certain GitHub users in any public repository in the given organization. You must be an organization owner to set these restrictions.
Temporarily restricts interactions to certain GitHub users within the given repository. You must have owner or admin access to set restrictions.
Shows which group of GitHub users can interact with this organization and when the restriction expires. If there are no restrictions, you will see an empty response.
Shows which group of GitHub users can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response.
Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions.
Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions.
Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced.
This example adds two assignees to the existing octocat
assignee.
Checks if a user has permission to be assigned to an issue in this repository.
If the assignee
can be assigned to issues in the repository, a 204
header with no content is returned.
Otherwise a 404
status code is returned.
Any user with pull access to a repository can create an issue. If issues are disabled in the repository, the API returns a 410 Gone
status.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
The API returns a 301 Moved Permanently
status if the issue was transferred to another repository. If the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API returns a 404 Not Found
status. If the issue was deleted from a repository where the authenticated user has read access, the API returns a 410 Gone
status. To receive webhook events for transferred and deleted issues, subscribe to the issues
webhook.
Note: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the pull_request
key.
Be aware that the id
of a pull request returned from "Issues" endpoints will be an issue id. To find out the pull request id, use the "List pull requests" endpoint.
Note: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the pull_request
key.
Be aware that the id
of a pull request returned from "Issues" endpoints will be an issue id. To find out the pull request id, use the "List pull requests" endpoint.
Lists the available assignees for issues in a repository.
Issue Comments are ordered by ascending ID.
By default, Issue Comments are ordered by ascending ID.
Note: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the pull_request
key.
Be aware that the id
of a pull request returned from "Issues" endpoints will be an issue id. To find out the pull request id, use the "List pull requests" endpoint.
Note: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the pull_request
key.
Be aware that the id
of a pull request returned from "Issues" endpoints will be an issue id. To find out the pull request id, use the "List pull requests" endpoint.
Note: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the pull_request
key.
Be aware that the id
of a pull request returned from "Issues" endpoints will be an issue id. To find out the pull request id, use the "List pull requests" endpoint.
Users with push access can lock an issue or pull request's conversation.
Note that, if you choose not to pass any parameters, you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
Removes one or more assignees from an issue.
This example removes two of three assignees, leaving the octocat
assignee.
Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a 404 Not Found
status if the label does not exist.
Users with push access can unlock an issue's conversation.
Issue owners and users with push access can edit an issue.
This method returns the contents of the repository's license file, if one is detected.
Similar to the repository contents API, this method also supports custom media types for retrieving the raw license content or rendered license HTML.
You must send Markdown as plain text (using a Content-Type
header of text/plain
or text/x-markdown
) to this endpoint, rather than using JSON format. In raw mode, GitHub Flavored Markdown is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less.
This endpoint provides a list of GitHub's IP addresses. For more information, see "About GitHub's IP addresses."
Stop an import for a repository.
Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the List user migrations and Get the status of a user migration endpoints, will continue to be available even after an archive is deleted.
Deletes a previous migration archive. Migration archives are automatically deleted after seven days.
Fetches the URL to a migration archive.
Fetches the URL to download the migration archive as a tar.gz
file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects:
The archive will also contain an attachments
directory that includes all attachment files uploaded to GitHub.com and a repositories
directory that contains the repository's Git data.
Fetches the URL to a migration archive.
Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username hubot
into something like hubot <hubot@12341234-abab-fefe-8787-fedcba987654>
.
This API method and the "Map a commit author" method allow you to provide correct Git author information.
View the progress of an import.
Import status
This section includes details about the possible values of the status
field of the Import Progress response.
An import that does not have errors will progress through these steps:
detecting
- the "detection" step of the import is in progress because the request did not include a vcs
parameter. The import is identifying the type of source control present at the URL.importing
- the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include commit_count
(the total number of raw commits that will be imported) and percent
(0 - 100, the current progress through the import).mapping
- the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information.pushing
- the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include push_percent
, which is the percent value reported by git push
when it is "Writing objects".complete
- the import is complete, and the repository is ready on GitHub.If there are problems, you will see one of these in the status
field:
auth_failed
- the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the Update Existing Import section.error
- the import encountered an error. The import progress response will include the failed_step
and an error message. Contact GitHub Support or GitHub Premium Support for more information.detection_needs_auth
- the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the Update Existing Import section.detection_found_nothing
- the importer didn't recognize any source control at the URL. To resolve, Cancel the import and retry with the correct URL.detection_found_multiple
- the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a project_choices
field with the possible project choices as values. To update project choice, please see the Update Existing Import section.The project_choices field
When multiple projects are found at the provided URL, the response hash will include a project_choices
field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type.
Git LFS related fields
This section includes details about Git LFS related fields that may be present in the Import Progress response.
use_lfs
- describes whether the import has been opted in or out of using Git LFS. The value can be opt_in
, opt_out
, or undecided
if no action has been taken.has_large_files
- the boolean value describing whether files larger than 100MB were found during the importing
step.large_files_size
- the total size in gigabytes of files larger than 100MB found in the originating repository.large_files_count
- the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request.List files larger than 100MB found during the import
Fetches a single user migration. The response includes the state
of the migration, which can be one of the following values:
pending
- the migration hasn't started yet.exporting
- the migration is in progress.exported
- the migration finished successfully.failed
- the migration failed.Once the migration has been exported
you can download the migration archive.
Fetches the status of a migration.
The state
of a migration can be one of the following values:
pending
, which means the migration hasn't started yet.exporting
, which means the migration is in progress.exported
, which means the migration finished successfully.failed
, which means the migration failed.Lists all migrations a user has started.
Lists the most recent migrations.
List all the repositories for this organization migration.
Lists all the repositories for this user migration.
Update an author's identity for the import. Your application can continue updating authors any time before you push new commits to the repository.
You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability is powered by Git LFS. You can learn more about our LFS feature and working with large files on our help site.
Initiates the generation of a user migration archive.
Initiates the generation of a migration archive.
Start a source import to a GitHub repository using GitHub Importer.
Unlocks a repository. You can lock repositories when you start a user migration. Once the migration is complete you can unlock each repository to begin using it again or delete the repository if you no longer need the source data. Returns a status of 404 Not Found
if the repository is not locked.
Unlocks a repository that was locked for migration. You should unlock each migrated repository and delete them when the migration is complete and you no longer need the source data.
An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API request. If no parameters are provided, the import will be restarted.
Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will have the status detection_found_multiple
and the Import Progress response will include a project_choices
array. You can select the project to import by providing one of the objects in the project_choices
array in the update request.
The following example demonstrates the workflow for updating an import with "project1" as the project choice. Given a project_choices
array like such:
To restart an import, no parameters are provided in the update request.
Deprecation Notice: GitHub will replace and discontinue OAuth endpoints containing access_token
in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using access_token
as an input parameter. For more information, see the blog post.
OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use Basic Authentication when accessing this endpoint, using the OAuth application's client_id
and client_secret
as the username and password. Invalid tokens will return 404 NOT FOUND
.
Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. For more information, see the blog post.
Warning: Apps must use the web application flow to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the blog post.
Creates OAuth tokens using Basic Authentication. If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "Working with two-factor authentication."
To create tokens for a particular OAuth application using this endpoint, you must authenticate as the user you want to create an authorization for and provide the app's client ID and secret, found on your OAuth application's settings page. If your OAuth application intends to create multiple tokens for one user, use fingerprint
to differentiate between them.
You can also create tokens on GitHub from the personal access tokens settings page. Read more about these tokens in the GitHub Help documentation.
Organizations that enforce SAML SSO require personal access tokens to be whitelisted. Read more about whitelisting tokens in the GitHub Help documentation.
Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. For more information, see the blog post.
Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. For more information, see the blog post.
Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for your user. Once deleted, the application has no access to your account and is no longer listed on the application authorizations settings screen within GitHub.
Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. For more information, see the blog post.
Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. For more information, see the blog post.
Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. For more information, see the blog post.
Warning: Apps must use the web application flow to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the blog post.
Creates a new authorization for the specified OAuth application, only if an authorization for that application doesn't already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one.
If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "Working with two-factor authentication."
Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. For more information, see the blog post.
Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. For more information, see the blog post.
Warning: Apps must use the web application flow to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the blog post.
This method will create a new authorization for the specified OAuth application, only if an authorization for that application and fingerprint do not already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. fingerprint
is a unique string to distinguish an authorization from others created for the same client ID and user. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one.
If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "Working with two-factor authentication."
Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. For more information, see the blog post.
Warning: Apps must use the web application flow to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the blog post.
This method will create a new authorization for the specified OAuth application, only if an authorization for that application and fingerprint do not already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. fingerprint
is a unique string to distinguish an authorization from others created for the same client ID and user. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one.
If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "Working with two-factor authentication."
Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. For more information, see the blog post.
Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. For more information, see the blog post.
You can use this API to list the set of OAuth applications that have been granted access to your account. Unlike the list your authorizations API, this API does not manage individual tokens. This API will return one entry for each OAuth application that has been granted access to your account, regardless of the number of tokens an application has generated for your user. The list of OAuth applications returned matches what is shown on the application authorizations settings screen within GitHub. The scopes
returned are the union of scopes authorized for the application. For example, if an application has one token with repo
scope and another token with user
scope, the grant will return ["repo", "user"]
.
Deprecation Notice: GitHub will replace and discontinue OAuth endpoints containing access_token
in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using access_token
as an input parameter. For more information, see the blog post.
OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use Basic Authentication when accessing this endpoint, using the OAuth application's client_id
and client_secret
as the username and password. Invalid tokens will return 404 NOT FOUND
.
Deprecation Notice: GitHub will replace and discontinue OAuth endpoints containing access_token
in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using access_token
as an input parameter. For more information, see the blog post.
OAuth application owners can revoke a single token for an OAuth application. You must use Basic Authentication when accessing this endpoint, using the OAuth application's client_id
and client_secret
as the username and password.
Deprecation Notice: GitHub will replace and discontinue OAuth endpoints containing access_token
in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using access_token
as an input parameter. For more information, see the blog post.
OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use Basic Authentication when accessing this endpoint, using the OAuth application's client_id
and client_secret
as the username and password. You must also provide a valid token as :access_token
and the grant for the token's owner will be deleted.
Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on the Applications settings page under "Authorized OAuth Apps" on GitHub.
Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. For more information, see the blog post.
If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "Working with two-factor authentication."
You can only send one of these scope keys at a time.
Only authenticated organization owners can add a member to the organization or update the member's role.
If the authenticated user is adding a member to the organization, the invited user will receive an email inviting them to the organization. The user's membership status will be pending
until they accept the invitation.
Authenticated users can update a user's membership by passing the role
parameter. If the authenticated user changes a member's role to admin
, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to member
, no email will be sent.
Rate limits
To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period.
If the user is blocked:
If the user is not blocked:
Check if a user is, publicly or privately, a member of the organization.
When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "Converting an organization member to an outside collaborator".
Here's how you can create a hook that posts payloads in JSON format:
Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
To see many of the organization response values, you need to be an authenticated organization owner with the admin:org
scope. When the value of two_factor_requirement_enabled
is true
, the organization requires all members, billing managers, and outside collaborators to enable two-factor authentication.
GitHub Apps with the Organization plan
permission can use this endpoint to retrieve information about an organization's GitHub plan. See "Authenticating with GitHub Apps" for details. For an example response, see "Response with GitHub plan information."
In order to get a user's membership with an organization, the authenticated user must be an organization member.
Lists all organizations, in the order that they were created on GitHub.
Note: Pagination is powered exclusively by the since
parameter. Use the Link header to get the URL for the next page of organizations.
List the users blocked by an organization.
List organizations for the authenticated user.
OAuth scope requirements
This only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with read:org
scope, you can publicize your organization membership with user
scope, etc.). Therefore, this API requires at least user
or read:org
scope. OAuth requests with insufficient scope receive a 403 Forbidden
response.
List public organization memberships for the specified user.
This method only lists public memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the List your organizations API instead.
Lists all GitHub Apps in an organization. The installation count includes all GitHub Apps installed on repositories in the organization. You must be an organization owner with admin:read
scope to use this endpoint.
List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner.
List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned.
List all users who are outside collaborators of an organization.
The return hash contains a role
field which refers to the Organization Invitation role and will be one of the following values: direct_member
, admin
, billing_manager
, hiring_manager
, or reinstate
. If the invitee is not a GitHub member, the login
field in the return hash will be null
.
Members of an organization can choose to have their membership publicized or not.
This will trigger a ping event to be sent to the hook.
The user can publicize their own membership. (A user cannot publicize the membership for another user.)
Note that you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories.
In order to remove a user's membership with an organization, the authenticated user must be an organization owner.
If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases.
Removing a user from this list will remove them from all the organization's repositories.
Parameter Deprecation Notice: GitHub will replace and discontinue members_allowed_repository_creation_type
in favor of more granular permissions. The new input parameters are members_can_create_public_repositories
, members_can_create_private_repositories
for all organizations and members_can_create_internal_repositories
for organizations associated with an enterprise account using GitHub Enterprise Cloud. For more information, see the blog post.
Enables an authenticated organization owner with the admin:org
scope to update the organization's profile and member privileges.
Adds a collaborator to a an organization project and sets their permission level. You must be an organization owner or a project admin
to add a collaborator.
Note: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the pull_request
key.
Be aware that the id
of a pull request returned from "Issues" endpoints will be an issue id. To find out the pull request id, use the "List pull requests" endpoint.
Creates an organization project board. Returns a 404 Not Found
status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a 401 Unauthorized
or 410 Gone
status is returned.
Creates a repository project board. Returns a 404 Not Found
status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a 401 Unauthorized
or 410 Gone
status is returned.
Deletes a project board. Returns a 404 Not Found
status if projects are disabled.
Gets a project by its id
. Returns a 404 Not Found
status if projects are disabled. If you do not have sufficient privileges to perform this action, a 401 Unauthorized
or 410 Gone
status is returned.
Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project admin
to list collaborators.
Lists the projects in an organization. Returns a 404 Not Found
status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a 401 Unauthorized
or 410 Gone
status is returned.
s
Lists the projects in a repository. Returns a 404 Not Found
status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a 401 Unauthorized
or 410 Gone
status is returned.
Removes a collaborator from an organization project. You must be an organization owner or a project admin
to remove a collaborator.
Returns the collaborator's permission level for an organization project. Possible values for the permission
key: admin
, write
, read
, none
. You must be an organization owner or a project admin
to review a user's permission level.
Updates a project board's information. Returns a 404 Not Found
status if projects are disabled. If you do not have sufficient privileges to perform this action, a 401 Unauthorized
or 410 Gone
status is returned.
Draft pull requests are available in public repositories with GitHub Free and GitHub Pro, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request.
You can create a new pull request.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Note: Multi-line comments on pull requests are currently in public beta and subject to change.
Creates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see "Comments." We recommend creating a review comment using line
, side
, and optionally start_line
and start_side
if your comment applies to more than one line in the pull request diff.
You can still create a review comment using the position
parameter. When you use position
, the line
, side
, start_line
, and start_side
parameters are not required. For more information, see Multi-line comment summary.
Note: The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Multi-line comment summary
Note: New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the blog post for full details.
Use the comfort-fade
preview header and the line
parameter to show multi-line comment-supported fields in the response.
If you use the comfort-fade
preview header, your response will show:
start_line
, original_start_line
, start_side
, line
, original_line
, and side
.line
, original_line
, and side
and a null
value for start_line
, original_start_line
, and start_side
.If you don't use the comfort-fade
preview header, multi-line and single-line comments will appear the same way in the response with a single position
attribute. Your response will show:
position
attribute.position
attribute. For more information, see position
in the input parameters table.Note: Multi-line comments on pull requests are currently in public beta and subject to change.
Creates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see "Comments." We recommend creating a review comment using line
, side
, and optionally start_line
and start_side
if your comment applies to more than one line in the pull request diff.
You can still create a review comment using the position
parameter. When you use position
, the line
, side
, start_line
, and start_side
parameters are not required. For more information, see Multi-line comment summary.
Note: The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Multi-line comment summary
Note: New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the blog post for full details.
Use the comfort-fade
preview header and the line
parameter to show multi-line comment-supported fields in the response.
If you use the comfort-fade
preview header, your response will show:
start_line
, original_start_line
, start_side
, line
, original_line
, and side
.line
, original_line
, and side
and a null
value for start_line
, original_start_line
, and start_side
.If you don't use the comfort-fade
preview header, multi-line and single-line comments will appear the same way in the response with a single position
attribute. Your response will show:
position
attribute.position
attribute. For more information, see position
in the input parameters table.This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Note: To comment on a specific line in a file, you need to first determine the position of that line in the diff. The GitHub REST API v3 offers the application/vnd.github.v3.diff
media type. To see a pull request diff, add this media type to the Accept
header of a call to the single pull request endpoint.
The position
value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file.
Creates a reply to a review comment for a pull request. For the comment_id
, provide the ID of the review comment you are replying to. This must be the ID of a top-level review comment, not a reply to that comment. Replies to replies are not supported.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Deletes a review comment.
Note: To dismiss a pull request review on a protected branch, you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews.
Draft pull requests are available in public repositories with GitHub Free and GitHub Pro, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Lists details of a pull request by providing its number.
When you get, create, or edit a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the mergeable
key. For more information, see "Checking mergeability of pull requests".
The value of the mergeable
attribute can be true
, false
, or null
. If the value is null
, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-null
value for the mergeable
attribute in the response. If mergeable
is true
, then merge_commit_sha
will be the SHA of the test merge commit.
The value of the merge_commit_sha
attribute changes depending on the state of the pull request. Before merging a pull request, the merge_commit_sha
attribute holds the SHA of the test merge commit. After merging a pull request, the merge_commit_sha
attribute changes depending on how you merged the pull request:
merge_commit_sha
represents the SHA of the merge commit.merge_commit_sha
represents the SHA of the squashed commit on the base branch.merge_commit_sha
represents the commit that the base branch was updated to.Pass the appropriate media type to fetch diff and patch formats.
Note: Multi-line comments on pull requests are currently in public beta and subject to change.
Provides details for a review comment.
Multi-line comment summary
Note: New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the blog post for full details.
Use the comfort-fade
preview header and the line
parameter to show multi-line comment-supported fields in the response.
If you use the comfort-fade
preview header, your response will show:
start_line
, original_start_line
, start_side
, line
, original_line
, and side
.line
, original_line
, and side
and a null
value for start_line
, original_start_line
, and start_side
.If you don't use the comfort-fade
preview header, multi-line and single-line comments will appear the same way in the response with a single position
attribute. Your response will show:
position
attribute.position
attribute. For more information, see position
in the input parameters table.The reactions
key will have the following payload where url
can be used to construct the API location for listing and creating reactions.
Draft pull requests are available in public repositories with GitHub Free and GitHub Pro, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Note: Multi-line comments on pull requests are currently in public beta and subject to change.
Lists review comments for a pull request. By default, review comments are in ascending order by ID.
Multi-line comment summary
Note: New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the blog post for full details.
Use the comfort-fade
preview header and the line
parameter to show multi-line comment-supported fields in the response.
If you use the comfort-fade
preview header, your response will show:
start_line
, original_start_line
, start_side
, line
, original_line
, and side
.line
, original_line
, and side
and a null
value for start_line
, original_start_line
, and start_side
.If you don't use the comfort-fade
preview header, multi-line and single-line comments will appear the same way in the response with a single position
attribute. Your response will show:
position
attribute.position
attribute. For more information, see position
in the input parameters table.The reactions
key will have the following payload where url
can be used to construct the API location for listing and creating reactions.
Note: Multi-line comments on pull requests are currently in public beta and subject to change.
Lists review comments for all pull requests in a repository. By default, review comments are in ascending order by ID.
Multi-line comment summary
Note: New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the blog post for full details.
Use the comfort-fade
preview header and the line
parameter to show multi-line comment-supported fields in the response.
If you use the comfort-fade
preview header, your response will show:
start_line
, original_start_line
, start_side
, line
, original_line
, and side
.line
, original_line
, and side
and a null
value for start_line
, original_start_line
, and start_side
.If you don't use the comfort-fade
preview header, multi-line and single-line comments will appear the same way in the response with a single position
attribute. Your response will show:
position
attribute.position
attribute. For more information, see position
in the input parameters table.The reactions
key will have the following payload where url
can be used to construct the API location for listing and creating reactions.
Lists a maximum of 250 commits for a pull request. To receive a complete commit list for pull requests with more than 250 commits, use the Commit List API.
Note: Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default.
The list of reviews returns in chronological order.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Draft pull requests are available in public repositories with GitHub Free and GitHub Pro, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request.
Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch.
Note: Multi-line comments on pull requests are currently in public beta and subject to change.
Enables you to edit a review comment.
Multi-line comment summary
Note: New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the blog post for full details.
Use the comfort-fade
preview header and the line
parameter to show multi-line comment-supported fields in the response.
If you use the comfort-fade
preview header, your response will show:
start_line
, original_start_line
, start_side
, line
, original_line
, and side
.line
, original_line
, and side
and a null
value for start_line
, original_start_line
, and start_side
.If you don't use the comfort-fade
preview header, multi-line and single-line comments will appear the same way in the response with a single position
attribute. Your response will show:
position
attribute.position
attribute. For more information, see position
in the input parameters table.Update the review summary comment with new text.
Note: Accessing this endpoint does not count against your REST API rate limit.
Understanding your rate limit status
The Search API has a custom rate limit, separate from the rate limit governing the rest of the REST API. The GraphQL API also has a custom rate limit that is separate from and calculated differently than rate limits in the REST API.
For these reasons, the Rate Limit API response categorizes your rate limit. Under resources
, you'll see four objects:
core
object provides your rate limit status for all non-search-related resources in the REST API.search
object provides your rate limit status for the Search API.graphql
object provides your rate limit status for the GraphQL API.integration_manifest
object provides your rate limit status for the GitHub App Manifest code conversion endpoint.For more information on the headers and values in the rate limit response, see "Rate limiting."
The rate
object (shown at the bottom of the response above) is deprecated.
If you're writing new API client code or updating existing code, you should use the core
object instead of the rate
object. The core
object contains the same information that is present in the rate
object.
Create a reaction to a commit comment. A response with a Status: 200 OK
means that you already added the reaction type to this commit comment.
Create a reaction to an issue. A response with a Status: 200 OK
means that you already added the reaction type to this issue.
Create a reaction to an issue comment. A response with a Status: 200 OK
means that you already added the reaction type to this issue comment.
Create a reaction to a pull request review comment. A response with a Status: 200 OK
means that you already added the reaction type to this pull request review comment.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create reaction for a team discussion
endpoint.
Create a reaction to a team discussion. OAuth access tokens require the write:discussion
scope. A response with a Status: 200 OK
means that you already added the reaction type to this team discussion.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create reaction for a team discussion comment
endpoint.
Create a reaction to a team discussion comment. OAuth access tokens require the write:discussion
scope. A response with a Status: 200 OK
means that you already added the reaction type to this team discussion comment.
Create a reaction to a team discussion comment. OAuth access tokens require the write:discussion
scope. A response with a Status: 200 OK
means that you already added the reaction type to this team discussion comment.
Note: You can also specify a team by org_id
and team_id
using the route POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create reaction for a team discussion comment
endpoint.
Create a reaction to a team discussion comment. OAuth access tokens require the write:discussion
scope. A response with a Status: 200 OK
means that you already added the reaction type to this team discussion comment.
Create a reaction to a team discussion. OAuth access tokens require the write:discussion
scope. A response with a Status: 200 OK
means that you already added the reaction type to this team discussion.
Note: You can also specify a team by org_id
and team_id
using the route POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create reaction for a team discussion
endpoint.
Create a reaction to a team discussion. OAuth access tokens require the write:discussion
scope. A response with a Status: 200 OK
means that you already added the reaction type to this team discussion.
OAuth access tokens require the write:discussion
scope, when deleting a team discussion or team discussion comment.
List the reactions to a commit comment.
List the reactions to an issue.
List the reactions to an issue comment.
List the reactions to a pull request review comment.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List reactions for a team discussion
endpoint.
List the reactions to a team discussion. OAuth access tokens require the read:discussion
scope.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List reactions for a team discussion comment
endpoint.
List the reactions to a team discussion comment. OAuth access tokens require the read:discussion
scope.
List the reactions to a team discussion comment. OAuth access tokens require the read:discussion
scope.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List reactions for a team discussion comment
endpoint.
List the reactions to a team discussion comment. OAuth access tokens require the read:discussion
scope.
List the reactions to a team discussion. OAuth access tokens require the read:discussion
scope.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List reactions for a team discussion
endpoint.
List the reactions to a team discussion. OAuth access tokens require the read:discussion
scope.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Note that, if you choose not to pass any parameters, you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the repository invitations API endpoints.
Rate limits
To prevent abuse, you are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository.
Here's how you can create a read-only deploy key:
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Grants the specified apps push access for this branch. Only installed GitHub Apps with write
access to the contents
permission can be added as authorized actors on a protected branch.
Type | Description |
---|---|
array |
The GitHub Apps that have push access to this branch. Use the app's slug . Note: The list of users, apps, and teams in total is limited to 100 items. |
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Grants the specified teams push access for this branch. You can also give push access to child teams.
Type | Description |
---|---|
array |
The teams that can have push access. Use the team's slug . Note: The list of users, apps, and teams in total is limited to 100 items. |
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Grants the specified people push access for this branch.
Type | Description |
---|---|
array |
Usernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items. |
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
Team members will include the members of child teams.
Shows whether vulnerability alerts are enabled or disabled for a repository. The authenticated user must have admin access to the repository. For more information, see "About security alerts for vulnerable dependencies" in the GitHub Help documentation.
Both :base
and :head
must be branch names in :repo
. To compare branches across other repositories in the same network as :repo
, use the format <USERNAME>:branch
.
The response from the API is equivalent to running the git log base..head
command; however, commits are returned in chronological order. Pass the appropriate media type to fetch diff and patch formats.
The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a renamed
status have a previous_filename
field showing the previous filename of the file, and files with a modified
status have a patch
field showing the changes made to the file.
Working with large comparisons
The response will include a comparison of up to 250 commits. If you are working with a larger commit range, you can use the Commit List API to enumerate all commits in the range.
For comparisons with extremely large diffs, you may receive an error response indicating that the diff took too long to generate. You can typically resolve this error by using a smaller commit range.
Signature verification object
The response will include a verification
object that describes the result of verifying the commit's signature. The following fields are included in the verification
object:
These are the possible values for reason
in the verification
object:
Value | Description |
---|---|
expired_key |
The key that made the signature is expired. |
not_signing_key |
The "signing" flag is not among the usage flags in the GPG key that made the signature. |
gpgverify_error |
There was an error communicating with the signature verification service. |
gpgverify_unavailable |
The signature verification service is currently unavailable. |
unsigned |
The object does not include a signature. |
unknown_signature_type |
A non-PGP signature was found in the commit. |
no_user |
No user was associated with the committer email address in the commit. |
unverified_email |
The committer email address in the commit was associated with a user, but the email address is not verified on her/his account. |
bad_email |
The committer email address in the commit is not included in the identities of the PGP key that made the signature. |
unknown_key |
The key that made the signature has not been registered with any user's account. |
malformed_signature |
There was an error parsing the signature. |
invalid |
The signature could not be cryptographically verified using the key whose key-id was found in the signature. |
valid |
None of the above errors applied, so the signature is considered to be verified. |
Create a comment for a commit using its :commit_sha
.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Deployments offer a few configurable parameters with sane defaults.
The ref
parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them before we merge a pull request.
The environment
parameter allows deployments to be issued to different runtime environments. Teams often have multiple environments for verifying their applications, such as production
, staging
, and qa
. This parameter makes it easier to track which environments have requested deployments. The default environment is production
.
The auto_merge
parameter is used to ensure that the requested ref is not behind the repository's default branch. If the ref is behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will return a failure response.
By default, commit statuses for every submitted context must be in a success
state. The required_contexts
parameter allows you to specify a subset of contexts that must be success
, or to specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do not require any contexts or create any commit statuses, the deployment will always succeed.
The payload
parameter is available for any extra information that a deployment system might need. It is a JSON text field that will be passed on when a deployment event is dispatched.
The task
parameter is used by the deployment system to allow different execution paths. In the web world this might be deploy:migrations
to run schema changes on the system. In the compiled world this could be a flag to compile an application with debugging enabled.
Users with repo
or repo_deployment
scopes can create a deployment for a given ref:
A simple example putting the user and room into the payload to notify back to chat networks.
A more advanced example specifying required commit statuses and bypassing auto-merging.
You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating a deployment. This auto-merge happens when:
master
in the response exampleIf there are no new commits in the base branch, a new request to create a deployment should give a successful response.
This error happens when the auto_merge
option is enabled and when the default branch (in this case master
), can't be merged into the branch that's being deployed (in this case topic-branch
), due to merge conflicts.
This error happens when the required_contexts
parameter indicates that one or more contexts need to have a success
status for the commit to be deployed, but one or more of the required contexts do not have a state of success
.
Users with push
access can create deployment statuses for a given deployment.
GitHub Apps require read & write
access to "Deployments" and read-only
access to "Repo contents" (for private repos). OAuth Apps require the repo_deployment
scope.
You can use this endpoint to trigger a webhook event called repository_dispatch
when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the repository_dispatch
event occurs. For an example repository_dispatch
webhook payload, see "RepositoryDispatchEvent."
The client_payload
parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the client_payload
can include a message that a user would like to send using a GitHub Actions workflow. Or the client_payload
can be used as a test to debug your workflow. For a test example, see the input example.
To give you write access to the repository, you must use a personal access token with the repo
scope. For more information, see "Creating a personal access token for the command line" in the GitHub Help documentation.
This input example shows how you can use the client_payload
as a test to debug your workflow.
Creates a new file or updates an existing file in a repository.
Creates a new repository for the authenticated user.
OAuth scope requirements
When using OAuth, authorizations must include:
public_repo
scope or repo
scope to create a public repositoryrepo
scope to create a private repositoryCreate a fork for the authenticated user.
Note: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact GitHub Support or GitHub Premium Support.
Repositories can have multiple webhooks installed. Each webhook should have a unique config
. Multiple webhooks can share the same config
as long as those webhooks do not have any events
that overlap.
Here's how you can create a hook that posts payloads in JSON format:
Creates a new repository for the authenticated user.
OAuth scope requirements
When using OAuth, authorizations must include:
public_repo
scope or repo
scope to create a public repositoryrepo
scope to create a private repositoryCreates a new file or updates an existing file in a repository.
Users with push access to the repository can create a release.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Users with push access in a repository can create commit statuses for a given SHA.
Note: there is a limit of 1000 statuses per sha
and context
within a repository. Attempts to create more than 1000 statuses will result in a validation error.
Creates a new repository using a repository template. Use the template_owner
and template_repo
route parameters to specify the repository to use as the template. The authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the GET /repos/:owner/:repo
endpoint and check that the is_template
key is true
.
OAuth scope requirements
When using OAuth, authorizations must include:
public_repo
scope or repo
scope to create a public repositoryrepo
scope to create a private repository`
Deleting a repository requires admin access. If OAuth is used, the delete_repo
scope is required.
If an organization owner has configured the organization to prevent members from deleting organization-owned repositories, a member will get this response:
Deletes a file in a repository.
You can provide an additional committer
parameter, which is an object containing information about the committer. Or, you can provide an author
parameter, which is an object containing information about the author.
The author
section is optional and is filled in with the committer
information if omitted. If the committer
information is omitted, the authenticated user's information is used.
You must provide values for both name
and email
, whether you choose to use author
or committer
. Otherwise, you'll receive a 422
status code.
Users with push access to the repository can delete a release.
Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "Configuring automated security fixes" in the GitHub Help documentation.
Disables vulnerability alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "About security alerts for vulnerable dependencies" in the GitHub Help documentation.
Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "Configuring automated security fixes" in the GitHub Help documentation.
Enables vulnerability alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "About security alerts for vulnerable dependencies" in the GitHub Help documentation.
The parent
and source
objects are present when the repository is a fork. parent
is the repository this repository was forked from, source
is the ultimate source for the network.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with write
access to the contents
permission can be added as authorized actors on a protected branch.
Gets a redirect URL to download an archive for a repository. The :archive_format
can be either tarball
or zipball
. The :ref
must be a valid Git reference. If you omit :ref
, the repository’s default branch (usually master
) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use the Location
header to make a second GET
request.
Note: For private repositories, these links are temporary and expire after five minutes.
To follow redirects with curl, use the -L
switch:
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday.
Returns a weekly aggregate of the number of additions and deletions pushed to a repository.
Possible values for the permission
key: admin
, write
, read
, none
.
Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name.
The most recent status for each context is returned, up to 100. This field paginates if there are over 100 contexts.
Additionally, a combined state
is returned. The state
is one of:
error
or failure
pending
success
Returns the contents of a single commit reference. You must have read
access for the repository to use this endpoint.
You can pass the appropriate media type to fetch diff
and patch
formats. Diffs with binary data will have no patch
property.
To return only the SHA-1 hash of the commit reference, you can provide the sha
custom media type in the Accept
header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag.
Signature verification object
The response will include a verification
object that describes the result of verifying the commit's signature. The following fields are included in the verification
object:
These are the possible values for reason
in the verification
object:
Value | Description |
---|---|
expired_key |
The key that made the signature is expired. |
not_signing_key |
The "signing" flag is not among the usage flags in the GPG key that made the signature. |
gpgverify_error |
There was an error communicating with the signature verification service. |
gpgverify_unavailable |
The signature verification service is currently unavailable. |
unsigned |
The object does not include a signature. |
unknown_signature_type |
A non-PGP signature was found in the commit. |
no_user |
No user was associated with the committer email address in the commit. |
unverified_email |
The committer email address in the commit was associated with a user, but the email address is not verified on her/his account. |
bad_email |
The committer email address in the commit is not included in the identities of the PGP key that made the signature. |
unknown_key |
The key that made the signature has not been registered with any user's account. |
malformed_signature |
There was an error parsing the signature. |
invalid |
The signature could not be cryptographically verified using the key whose key-id was found in the signature. |
valid |
None of the above errors applied, so the signature is considered to be verified. |
Returns the last year of commit activity grouped by week. The days
array is a group of commits per day, starting on Sunday
.
Note: To access this endpoint, you must provide a custom media type in the Accept
header:
application/vnd.github.VERSION.sha
Returns the SHA-1 of the commit reference. You must have read
access for the repository to get the SHA-1 of a commit reference. You can use this endpoint to check if a remote reference's SHA-1 is the same as your local reference's SHA-1 by providing the local SHA-1 reference as the ETag.
Gets the contents of a file or directory in a repository. Specify the file path or directory in :path
. If you omit :path
, you will receive the contents of all files in the repository.
Files and symlinks support a custom media type for retrieving the raw content or rendered HTML (when supported). All content types support a custom media type to ensure the content is returned in a consistent object format.
Note:
The response will be an array of objects, one object for each item in the directory.
When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value should be "submodule". This behavior exists in API v3 for backwards compatibility purposes. In the next major version of the API, the type will be returned as "submodule".
If the requested :path
points to a symlink, and the symlink's target is a normal file in the repository, then the API responds with the content of the file (in the format shown above).
Otherwise, the API responds with an object describing the symlink itself:
The submodule_git_url
identifies the location of the submodule repository, and the sha
identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit.
If the submodule repository is not hosted on github.com, the Git URLs (git_url
and _links["git"]
) and the github.com URLs (html_url
and _links["html"]
) will have null values.
total
- The Total number of commits authored by the contributor.Weekly Hash (weeks
array):
w
- Start of the week, given as a Unix timestamp.a
- Number of additionsd
- Number of deletionsc
- Number of commitsUsers with pull access can view a deployment status for a deployment:
View the latest published full release for the repository.
The latest release is the most recent non-prerelease, non-draft release, sorted by the created_at
attribute. The created_at
attribute is the date of the commit used for the release, and not the date when the release was drafted or published.
Returns the total commit counts for the owner
and total commit counts in all
. all
is everyone combined, including the owner
in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract owner
from all
.
The array order is oldest week (index 0) to most recent week.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of true
indicates you must sign commits on this branch. For more information, see Signing commits with GPG in GitHub Help.
Note: You must enable branch protection to require signed commits.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Lists who has access to this protected branch. {{#note}}
Note: Users, apps, and teams restrictions
are only available for organization-owned repositories.
Each array contains the day number, hour number, and number of commits:
0-6
: Sunday - Saturday0-23
: Hour of dayFor example, [2, 14, 25]
indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits.
Gets the preferred README for a repository.
READMEs support custom media types for retrieving the raw content or rendered HTML.
Note: This returns an upload_url
key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource.
To download the asset's binary content, set the Accept
header of the request to application/octet-stream
. The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a 200
or 302
response.
Get a published release with the specified tag.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Lists the teams who have push access to this branch. The list includes child teams.
Get the top 10 popular contents over the last 14 days.
Get the top 10 referrers over the last 14 days.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Lists the people who have push access to this branch.
Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday.
Lists repositories that the authenticated user has explicit permission (:read
, :write
, or :admin
) to access.
The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with write
access to the contents
permission can be added as authorized actors on a protected branch.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch.
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
Team members will include the members of child teams.
Use the :commit_sha
to specify the commit that will have its comments listed.
Commit Comments use these custom media types. You can read more about the use of media types in the API here.
Comments are ordered by ascending ID.
Signature verification object
The response will include a verification
object that describes the result of verifying the commit's signature. The following fields are included in the verification
object:
These are the possible values for reason
in the verification
object:
Value | Description |
---|---|
expired_key |
The key that made the signature is expired. |
not_signing_key |
The "signing" flag is not among the usage flags in the GPG key that made the signature. |
gpgverify_error |
There was an error communicating with the signature verification service. |
gpgverify_unavailable |
The signature verification service is currently unavailable. |
unsigned |
The object does not include a signature. |
unknown_signature_type |
A non-PGP signature was found in the commit. |
no_user |
No user was associated with the committer email address in the commit. |
unverified_email |
The committer email address in the commit was associated with a user, but the email address is not verified on her/his account. |
bad_email |
The committer email address in the commit is not included in the identities of the PGP key that made the signature. |
unknown_key |
The key that made the signature has not been registered with any user's account. |
malformed_signature |
There was an error parsing the signature. |
invalid |
The signature could not be cryptographically verified using the key whose key-id was found in the signature. |
valid |
None of the above errors applied, so the signature is considered to be verified. |
Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API v3 caches contributor data to improve performance.
GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information.
Users with pull access can view deployment statuses for a deployment:
Simple filtering of deployments is available via query parameters:
Lists repositories for the specified organization.
Lists public repositories for the specified user.
When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations.
When authenticating as a user, this endpoint will list all currently open repository invitations for that user.
Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Lists the teams who have push access to this branch. The list includes child teams.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Lists the people who have push access to this branch.
Lists all public repositories in the order that they were created.
Note: Pagination is powered exclusively by the since
parameter. Use the Link header to get the URL for the next page of repositories.
Lists all pull requests containing the provided commit SHA, which can be from any point in the commit history. The results will include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the List pull requests endpoint.
This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the Repository Tags API.
Information about published releases are available to everyone. Only users with push access will receive listings for draft releases.
Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one.
This resource is also available via a legacy route: GET /repos/:owner/:repo/statuses/:ref
.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Lists the teams who have push access to this branch. The list includes child teams.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Lists the people who have push access to this branch.
This will trigger a ping event to be sent to the hook.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Removes the ability of an app to push to this branch. Only installed GitHub Apps with write
access to the contents
permission can be added as authorized actors on a protected branch.
Type | Description |
---|---|
array |
The GitHub Apps that have push access to this branch. Use the app's slug . Note: The list of users, apps, and teams in total is limited to 100 items. |
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Disables the ability to restrict who can push to this branch.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Removes the ability of a team to push to this branch. You can also remove push access for child teams.
Type | Description |
---|---|
array |
Teams that should no longer have push access. Use the team's slug . Note: The list of users, apps, and teams in total is limited to 100 items. |
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Removes the ability of a user to push to this branch.
Type | Description |
---|---|
array |
Usernames of the people who should no longer have push access. Note: The list of users, apps, and teams in total is limited to 100 items. |
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with write
access to the contents
permission can be added as authorized actors on a protected branch.
Type | Description |
---|---|
array |
The GitHub Apps that have push access to this branch. Use the app's slug . Note: The list of users, apps, and teams in total is limited to 100 items. |
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams.
Type | Description |
---|---|
array |
The teams that can have push access. Use the team's slug . Note: The list of users, apps, and teams in total is limited to 100 items. |
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people.
Type | Description |
---|---|
array |
Usernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items. |
You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures.
Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes.
This endpoint will return all community profile metrics, including an overall health score, repository description, the presence of documentation, detected code of conduct, detected license, and the presence of ISSUE_TEMPLATE, PULL_REQUEST_TEMPLATE, README, and CONTRIBUTING files.
This will trigger the hook with the latest push to the current repository if the hook is subscribed to push
events. If the hook is not subscribed to push
events, the server will respond with 204 but no test POST will be generated.
Note: Previously /repos/:owner/:repo/hooks/:hook_id/test
A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original owner
, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see about repository transfers.
Note: To edit a repository's topics, use the topics
endpoint.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Protecting a branch requires admin or owner permissions to the repository.
Note: Passing new arrays of users
and teams
replaces their previous values.
Note: The list of users, apps, and teams in total is limited to 100 items.
Creates a new file or updates an existing file in a repository.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled.
Note: Passing new arrays of users
and teams
replaces their previous values.
Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled.
Users with push access to the repository can edit a release.
Users with push access to the repository can edit a release asset.
This endpoint makes use of a Hypermedia relation to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the upload_url
returned in the response of the Create a release endpoint to upload a release asset.
You need to use an HTTP client which supports SNI to make calls to this endpoint.
Most libraries will set the required Content-Length
header automatically. Use the required Content-Type
header to provide the media type of the asset. For a list of media types, see Media Types. For example:
application/zip
GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, you'll still need to pass your authentication to be able to upload an asset.
Find file contents via various criteria. This method returns up to 100 results per page.
When searching for code, you can get text match metadata for the file content and file path fields when you pass the text-match
media type. For more details about how to receive highlighted search results, see Text match metadata.
Note: You must authenticate to search for code across all public repositories.
Considerations for code search
Due to the complexity of searching code, there are a few restrictions on how searches are performed:
master
branch.language:go
is not valid, while amazing language:go
is.Suppose you want to find the definition of the addClass
function inside jQuery. Your query would look something like this:
Here, we're searching for the keyword addClass
within a file's contents. We're making sure that we're only looking in files where the language is JavaScript. And we're scoping the search to the repo:jquery/jquery
repository.
Find commits via various criteria. This method returns up to 100 results per page.
When searching for commits, you can get text match metadata for the message field when you provide the text-match
media type. For more details about how to receive highlighted search results, see Text match metadata.
Considerations for commit search
Only the default branch is considered. In most cases, this will be the master
branch.
Suppose you want to find commits related to CSS in the octocat/Spoon-Knife repository. Your query would look something like this:
This API call is added for compatibility reasons only. There's no guarantee that full email searches will always be available. The @
character in the address must be left unencoded. Searches only against public email addresses (as configured on the user's GitHub profile).
Find issues by state and keyword. This method returns up to 100 results per page.
When searching for issues, you can get text match metadata for the issue title, issue body, and issue comment body fields when you pass the text-match
media type. For more details about how to receive highlighted search results, see Text match metadata.
Let's say you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this.
In this query, we're searching for the keyword windows
, within any open issue that's labeled as bug
. The search runs across repositories whose primary language is Python. We’re sorting by creation date in ascending order, so that the oldest issues appear first in the search results.
Find issues by state and keyword. This method returns up to 100 results per page.
When searching for issues, you can get text match metadata for the issue title, issue body, and issue comment body fields when you pass the text-match
media type. For more details about how to receive highlighted search results, see Text match metadata.
Let's say you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this.
In this query, we're searching for the keyword windows
, within any open issue that's labeled as bug
. The search runs across repositories whose primary language is Python. We’re sorting by creation date in ascending order, so that the oldest issues appear first in the search results.
Find issues by state and keyword.
Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results per page.
When searching for labels, you can get text match metadata for the label name and description fields when you pass the text-match
media type. For more details about how to receive highlighted search results, see Text match metadata.
Suppose you want to find labels in the linguist
repository that match bug
, defect
, or enhancement
. Your query might look like this:
The labels that best match for the query appear first in the search results.
Find repositories via various criteria. This method returns up to 100 results per page.
When searching for repositories, you can get text match metadata for the name and description fields when you pass the text-match
media type. For more details about how to receive highlighted search results, see Text match metadata.
Suppose you want to search for popular Tetris repositories written in Assembly. Your query might look like this.
You can search for multiple topics by adding more topic:
instances, and including the mercy-preview
header. For example:
In this request, we're searching for repositories with the word tetris
in the name, the description, or the README. We're limiting the results to only find repositories where the primary language is Assembly. We're sorting by stars in descending order, so that the most popular repositories appear first in the search results.
Find repositories by keyword. Note, this legacy method does not follow the v3 pagination pattern. This method returns up to 100 results per page and pages can be fetched using the start_page
parameter.
Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results per page.
When searching for topics, you can get text match metadata for the topic's short_description, description, name, or display_name field when you pass the text-match
media type. For more details about how to receive highlighted search results, see Text match metadata.
See "Searching topics" for a detailed list of qualifiers.
Suppose you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this:
In this request, we're searching for topics with the keyword ruby
, and we're limiting the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results.
Note: A search for featured Ruby topics only has 6 total results, so a Link header indicating pagination is not included in the response.
Find users via various criteria. This method returns up to 100 results per page.
When searching for users, you can get text match metadata for the issue login, email, and name fields when you pass the text-match
media type. For more details about highlighting search results, see Text match metadata. For more details about how to receive highlighted search results, see Text match metadata.
Imagine you're looking for a list of popular users. You might try out this query:
Here, we're looking at users with the name Tom. We're only interested in those with more than 42 repositories, and only if they have over 1,000 followers.
Find users by keyword.
The "Add team member" endpoint (described below) is deprecated.
We recommend using the Add team membership endpoint instead. It allows you to invite new organization members to your teams.
Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization.
Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."
Note that you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
The "Add team member" endpoint (described below) is deprecated.
We recommend using the Add team membership endpoint instead. It allows you to invite new organization members to your teams.
Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization.
Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."
Note that you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Add or update team membership
endpoint.
Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer.
Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."
If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner.
If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer.
Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team.
Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."
An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team.
If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer.
Note: You can also specify a team by org_id
and team_id
using the route PUT /organizations/:org_id/team/:team_id/memberships/:username
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Add or update team membership
endpoint.
Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer.
Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."
If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner.
If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Add or update team project
endpoint.
Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have admin
permissions for the project. The project and team must be part of the same organization.
Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have admin
permissions for the project. The project and team must be part of the same organization.
Note: You can also specify a team by org_id
and team_id
using the route PUT /organizations/:org_id/team/:team_id/projects/:project_id
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Add or update team project
endpoint.
Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have admin
permissions for the project. The project and team must be part of the same organization.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Add or update team repository
endpoint.
To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a 422 Unprocessable Entity
status if you attempt to add a repository to a team that is not owned by the organization.
Note that, if you choose not to pass any parameters, you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a 422 Unprocessable Entity
status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
Note: You can also specify a team by org_id
and team_id
using the route PUT /organizations/:org_id/team/:team_id/repos/:owner/:repo
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Add or update team repository
endpoint.
To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a 422 Unprocessable Entity
status if you attempt to add a repository to a team that is not owned by the organization.
Note that, if you choose not to pass any parameters, you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
Note: Repositories inherited through a parent team will also be checked.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Check if a team manages a repository
endpoint.
You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom media type via the Accept
header:
Checks whether a team has admin
, push
, or pull
permission for a repository. Repositories inherited through a parent team will also be checked.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id/repos/:owner/:repo
.
You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom media type via the Accept
header:
Note: Repositories inherited through a parent team will also be checked.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Check if a team manages a repository
endpoint.
You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom media type via the Accept
header:
To create a team, the authenticated user must be a member or owner of :org
. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "Setting team creation permissions."
When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of maintainers
. For more information, see "About teams" in the GitHub Help documentation.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create a discussion
endpoint.
Creates a new discussion post on a team's page. OAuth access tokens require the write:discussion
scope.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create a comment
endpoint.
Creates a new comment on a team discussion. OAuth access tokens require the write:discussion
scope.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Creates a new comment on a team discussion. OAuth access tokens require the write:discussion
scope.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Note: You can also specify a team by org_id
and team_id
using the route POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create a comment
endpoint.
Creates a new comment on a team discussion. OAuth access tokens require the write:discussion
scope.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Creates a new discussion post on a team's page. OAuth access tokens require the write:discussion
scope.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Note: You can also specify a team by org_id
and team_id
using the route POST /organizations/:org_id/team/:team_id/discussions
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create a discussion
endpoint.
Creates a new discussion post on a team's page. OAuth access tokens require the write:discussion
scope.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in abuse rate limiting. See "Abuse rate limits" and "Dealing with abuse rate limits" for details.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Delete team
endpoint.
To delete a team, the authenticated user must be an organization owner or team maintainer.
If you are an organization owner, deleting a parent team will delete all of its child teams as well.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Delete a discussion
endpoint.
Delete a discussion from a team's page. OAuth access tokens require the write:discussion
scope.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Delete a comment
endpoint.
Deletes a comment on a team discussion. OAuth access tokens require the write:discussion
scope.
Deletes a comment on a team discussion. OAuth access tokens require the write:discussion
scope.
Note: You can also specify a team by org_id
and team_id
using the route DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Delete a comment
endpoint.
Deletes a comment on a team discussion. OAuth access tokens require the write:discussion
scope.
Delete a discussion from a team's page. OAuth access tokens require the write:discussion
scope.
Note: You can also specify a team by org_id
and team_id
using the route DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Delete a discussion
endpoint.
Delete a discussion from a team's page. OAuth access tokens require the write:discussion
scope.
To delete a team, the authenticated user must be an organization owner or team maintainer.
Note: You can also specify a team by org_id
and team_id
using the route DELETE /organizations/:org_id/team/:team_id
.
If you are an organization owner, deleting a parent team will delete all of its child teams as well.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Delete team
endpoint.
To delete a team, the authenticated user must be an organization owner or team maintainer.
If you are an organization owner, deleting a parent team will delete all of its child teams as well.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the Get team by name
endpoint.
Gets a team using the team's slug
. GitHub generates the slug
from the team name
.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Get a single discussion
endpoint.
Get a specific discussion on a team's page. OAuth access tokens require the read:discussion
scope.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Get a single comment
endpoint.
Get a specific comment on a team discussion. OAuth access tokens require the read:discussion
scope.
Get a specific comment on a team discussion. OAuth access tokens require the read:discussion
scope.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Get a single comment
endpoint.
Get a specific comment on a team discussion. OAuth access tokens require the read:discussion
scope.
Get a specific discussion on a team's page. OAuth access tokens require the read:discussion
scope.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id/discussions/:discussion_number
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Get a single discussion
endpoint.
Get a specific discussion on a team's page. OAuth access tokens require the read:discussion
scope.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the Get team by name
endpoint.
The "Get team member" endpoint (described below) is deprecated.
We recommend using the Get team membership endpoint instead. It allows you to get both active and pending memberships.
To list members in a team, the team must be visible to the authenticated user.
The "Get team member" endpoint (described below) is deprecated.
We recommend using the Get team membership endpoint instead. It allows you to get both active and pending memberships.
To list members in a team, the team must be visible to the authenticated user.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Get team membership
endpoint.
Team members will include the members of child teams.
To get a user's membership with a team, the team must be visible to the authenticated user.
Note: The role
for organization owners returns as maintainer
. For more information about maintainer
roles, see Create team.
Team members will include the members of child teams.
To get a user's membership with a team, the team must be visible to the authenticated user.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id/memberships/:username
.
Note: The role
for organization owners returns as maintainer
. For more information about maintainer
roles, see Create team.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Get team membership
endpoint.
Team members will include the members of child teams.
To get a user's membership with a team, the team must be visible to the authenticated user.
Note: The role
for organization owners returns as maintainer
. For more information about maintainer
roles, see Create team.
Lists all teams in an organization that are visible to the authenticated user.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List child teams
endpoint.
Lists the child teams of the team requested by :team_slug
.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id/teams
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List child teams
endpoint.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List comments
endpoint.
List all comments on a team discussion. OAuth access tokens require the read:discussion
scope.
List all comments on a team discussion. OAuth access tokens require the read:discussion
scope.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List comments
endpoint.
List all comments on a team discussion. OAuth access tokens require the read:discussion
scope.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List discussions
endpoint.
List all discussions on a team's page. OAuth access tokens require the read:discussion
scope.
List all discussions on a team's page. OAuth access tokens require the read:discussion
scope.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id/discussions
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List discussions
endpoint.
List all discussions on a team's page. OAuth access tokens require the read:discussion
scope.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List team members
endpoint.
Team members will include the members of child teams.
Team members will include the members of child teams.
To list members in a team, the team must be visible to the authenticated user.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List team members
endpoint.
Team members will include the members of child teams.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List pending team invitations
endpoint.
The return hash contains a role
field which refers to the Organization Invitation role and will be one of the following values: direct_member
, admin
, billing_manager
, hiring_manager
, or reinstate
. If the invitee is not a GitHub member, the login
field in the return hash will be null
.
The return hash contains a role
field which refers to the Organization Invitation role and will be one of the following values: direct_member
, admin
, billing_manager
, hiring_manager
, or reinstate
. If the invitee is not a GitHub member, the login
field in the return hash will be null
.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id/invitations
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List pending team invitations
endpoint.
The return hash contains a role
field which refers to the Organization Invitation role and will be one of the following values: direct_member
, admin
, billing_manager
, hiring_manager
, or reinstate
. If the invitee is not a GitHub member, the login
field in the return hash will be null
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List team projects
endpoint.
Lists the organization projects for a team.
Lists the organization projects for a team.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id/projects
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List team projects
endpoint.
Lists the organization projects for a team.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List team repos
endpoint.
Lists a team's repositories visible to the authenticated user.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id/repos
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List team repos
endpoint.
The "Remove team member" endpoint (described below) is deprecated.
We recommend using the Remove team membership endpoint instead. It allows you to remove both active and pending memberships.
Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team.
Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."
The "Remove team member" endpoint (described below) is deprecated.
We recommend using the Remove team membership endpoint instead. It allows you to remove both active and pending memberships.
Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team.
Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Remove team membership
endpoint.
Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team.
Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."
Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team.
Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."
Note: You can also specify a team by org_id
and team_id
using the route DELETE /organizations/:org_id/team/:team_id/memberships/:username
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Remove team membership
endpoint.
Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.
To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team.
Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Remove team project
endpoint.
Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have read
access to both the team and project, or admin
access to the team or project. Note: This endpoint removes the project from the team, but does not delete it.
Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have read
access to both the team and project, or admin
access to the team or project. This endpoint removes the project from the team, but does not delete the project.
Note: You can also specify a team by org_id
and team_id
using the route DELETE /organizations/:org_id/team/:team_id/projects/:project_id
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Remove team project
endpoint.
Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have read
access to both the team and project, or admin
access to the team or project. Note: This endpoint removes the project from the team, but does not delete it.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Remove team repository
endpoint.
If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team.
If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team.
Note: You can also specify a team by org_id
and team_id
using the route DELETE /organizations/:org_id/team/:team_id/repos/:owner/:repo
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Remove team repository
endpoint.
If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Review a team project
endpoint.
Checks whether a team has read
, write
, or admin
permissions for an organization project. The response includes projects inherited from a parent team.
Checks whether a team has read
, write
, or admin
permissions for an organization project. The response includes projects inherited from a parent team.
Note: You can also specify a team by org_id
and team_id
using the route GET /organizations/:org_id/team/:team_id/projects/:project_id
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Review a team project
endpoint.
Checks whether a team has read
, write
, or admin
permissions for an organization project. The response includes projects inherited from a parent team.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Edit team
endpoint.
To edit a team, the authenticated user must either be an organization owner or a team maintainer.
Note: With nested teams, the privacy
for parent teams cannot be secret
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Edit a discussion
endpoint.
Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the write:discussion
scope.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Edit a comment
endpoint.
Edits the body text of a discussion comment. OAuth access tokens require the write:discussion
scope.
Edits the body text of a discussion comment. OAuth access tokens require the write:discussion
scope.
Note: You can also specify a team by org_id
and team_id
using the route PATCH /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Edit a comment
endpoint.
Edits the body text of a discussion comment. OAuth access tokens require the write:discussion
scope.
Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the write:discussion
scope.
Note: You can also specify a team by org_id
and team_id
using the route PATCH /organizations/:org_id/team/:team_id/discussions/:discussion_number
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Edit a discussion
endpoint.
Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the write:discussion
scope.
To edit a team, the authenticated user must either be an organization owner or a team maintainer.
Note: You can also specify a team by org_id
and team_id
using the route PATCH /organizations/:org_id/team/:team_id
.
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Edit team
endpoint.
To edit a team, the authenticated user must either be an organization owner or a team maintainer.
Note: With nested teams, the privacy
for parent teams cannot be secret
.
This endpoint is accessible with the user
scope.
If the user is blocked:
If the user is not blocked:
Adds a GPG key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least write:gpg_key
scope.
Adds a public SSH key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least write:public_key
scope.
This endpoint is accessible with the user
scope.
Removes a GPG key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least admin:gpg_key
scope.
Removes a public SSH key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least admin:public_key
scope.
Note that you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
Following a user requires the user to be logged in and authenticated with basic auth or OAuth with the user:follow
scope.
Lists public and private profile information when authenticated through basic auth or OAuth with the user
scope.
Lists public profile information when authenticated through OAuth without the user
scope.
Provides publicly available information about someone with a GitHub account.
GitHub Apps with the Plan
user permission can use this endpoint to retrieve information about a user's GitHub plan. The GitHub App must be authenticated as a user. See "Identifying and authorizing users for GitHub Apps" for details about authentication. For an example response, see "Response with GitHub plan information."
The email
key in the following response is the publicly visible email address from your GitHub profile page. When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for email
, then it will have a value of null
. You only see publicly visible email addresses when authenticated with GitHub. For more information, see Authentication.
The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "Emails API".
Provides hovercard information when authenticated through basic auth or OAuth with the repo
scope. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations.
The subject_type
and subject_id
parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about octocat
who owns the Spoon-Knife
repository via cURL, it would look like this:
View extended details for a single GPG key. Requires that you are authenticated via Basic Auth or via OAuth with at least read:gpg_key
scope.
View extended details for a single public SSH key. Requires that you are authenticated via Basic Auth or via OAuth with at least read:public_key
scope.
Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts.
Note: Pagination is powered exclusively by the since
parameter. Use the Link header to get the URL for the next page of users.
List the users you've blocked on your personal account.
Lists all of your email addresses, and specifies which one is visible to the public. This endpoint is accessible with the user:email
scope.
Lists the current user's GPG keys. Requires that you are authenticated via Basic Auth or via OAuth with at least read:gpg_key
scope.
Lists the GPG keys for a user. This information is accessible by anyone.
Lists your publicly visible email address, which you can set with the Toggle primary email visibility endpoint. This endpoint is accessible with the user:email
scope.
Lists the public SSH keys for the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least read:public_key
scope.
Lists the verified public SSH keys for a user. This is accessible by anyone.
Sets the visibility for your primary email addresses.
Unfollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the user:follow
scope.
Note: If your email is set to private and you send an email
parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API.
Generated using TypeDoc
Value for your secret, encrypted with LibSodium using the public key retrieved from the Get your public key endpoint.