integrations.sh
← all integrations

github.com – ghes-2.20

OpenAPI apis-guru collaborationdeveloper_tools

GitHub's v3 REST API.

Homepage
https://api.apis.guru/v2/specs/github.com:ghes-2.20/1.1.4.json
Provider
github.com:ghes-2.20 / ghes-2.20
OpenAPI version
3.0.3
Spec (JSON)
https://api.apis.guru/v2/specs/github.com/ghes-2.20/1.1.4/openapi.json
Spec (YAML)
https://api.apis.guru/v2/specs/github.com/ghes-2.20/1.1.4/openapi.yaml

Tools (523)

Extracted live via the executor SDK.

  • activity.checkRepoIsStarredByAuthenticatedUser
  • activity.deleteRepoSubscription

    This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, .

  • activity.deleteThreadSubscription

    Mutes all future notifications for a conversation until you comment on the thread or get an @mention. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the endpoint and set ignore to true.

  • activity.getFeeds

    GitHub Enterprise Server provides several timeline resources in format. The Feeds API lists all the feeds available to the authenticated user:

    • Timeline: The GitHub Enterprise Server global public timeline
    • User: The public timeline for any user, using
    • Current user public: The public timeline for the authenticated user
    • Current user: The private timeline for the authenticated user
    • Current user actor: The private timeline for activity created by the authenticated user
    • Current user organizations: The private timeline for the organizations the authenticated user is a member of.
    • Security advisories: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub Enterprise Server.

    Note: Private feeds are only returned when since current feed URIs use the older, non revocable auth tokens.

  • activity.getRepoSubscription
  • activity.getThread
  • activity.getThreadSubscriptionForAuthenticatedUser

    This checks to see if the current user is subscribed to a thread. You can also .

    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.

  • activity.listEventsForAuthenticatedUser

    If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events.

  • activity.listNotificationsForAuthenticatedUser

    List all notifications for the current user, sorted by most recently updated.

  • activity.listOrgEventsForAuthenticatedUser

    This is the user's organization dashboard. You must be authenticated as the user to view this.

  • activity.listPublicEvents

    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.

  • activity.listPublicEventsForRepoNetwork
  • activity.listPublicEventsForUser
  • activity.listPublicOrgEvents
  • activity.listReceivedEventsForUser

    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.

  • activity.listReceivedPublicEventsForUser
  • activity.listRepoEvents
  • activity.listRepoNotificationsForAuthenticatedUser

    List all notifications for the current user.

  • activity.listReposStarredByAuthenticatedUser

    Lists repositories the authenticated user has starred.

    You can also find out when stars were created by passing the following custom via the Accept header:

  • activity.listReposStarredByUser

    Lists repositories a user has starred.

    You can also find out when stars were created by passing the following custom via the Accept header:

  • activity.listReposWatchedByUser

    Lists repositories a user is watching.

  • activity.listStargazersForRepo

    Lists the people that have starred the repository.

    You can also find out when stars were created by passing the following custom via the Accept header:

  • activity.listWatchedReposForAuthenticatedUser

    Lists repositories the authenticated user is watching.

  • activity.listWatchersForRepo

    Lists the people watching the specified repository.

  • activity.markNotificationsAsRead

    Marks all notifications as "read" removes it from the . If the number of notifications is too large to complete in one request, you will receive a 202 Accepted status and GitHub Enterprise Server will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the endpoint and pass the query parameter all=false.

  • activity.markRepoNotificationsAsRead

    Marks all notifications in a repository as "read" removes them from the . If the number of notifications is too large to complete in one request, you will receive a 202 Accepted status and GitHub Enterprise Server will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the endpoint and pass the query parameter all=false.

  • activity.markThreadAsRead
  • activity.setRepoSubscription

    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, completely.

  • activity.setThreadSubscription

    If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an @mention.

    You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored.

    Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the endpoint.

  • activity.starRepoForAuthenticatedUser

    Note that you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see "."

  • activity.unstarRepoForAuthenticatedUser
  • apps.addRepoToInstallation

    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 or ) to access this endpoint.

  • apps.checkAuthorization

    Deprecation Notice: GitHub Enterprise Server will discontinue OAuth endpoints that contain access_token in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving access_token to the request body. For more information, see the .

    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 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.

  • apps.checkToken

    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 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.

  • apps.createContentAttachment

    Creates an attachment under a content reference URL in the body or comment of an issue or pull request. Use the id and repository full_name of the content reference from the to create an attachment.

    The app must create a content attachment within six hours of the content reference URL being posted. See "" for details about content attachments.

    You must use an to access this endpoint.

  • apps.createFromManifest

    Use this endpoint to complete the handshake necessary when implementing the . 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.

  • apps.createInstallationAccessToken

    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 to access this endpoint.

  • apps.deleteAuthorization

    OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use 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 .

  • apps.deleteInstallation

    Uninstalls a GitHub App on a user, organization, or business account. You must use a to access this endpoint.

  • apps.deleteToken

    OAuth application owners can revoke a single token for an OAuth application. You must use when accessing this endpoint, using the OAuth application's client_id and client_secret as the username and password.

  • apps.getAuthenticated

    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 "" endpoint.

    You must use a to access this endpoint.

  • apps.getBySlug

    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 or an to access this endpoint.

  • apps.getInstallation

    Enables an authenticated GitHub App to find an installation's information using the installation id. The installation's account type (target_type) will be either an organization or a user account, depending which account the repository belongs to.

    You must use a to access this endpoint.

  • apps.getOrgInstallation

    Enables an authenticated GitHub App to find the organization's installation information.

    You must use a to access this endpoint.

  • apps.getRepoInstallation

    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 to access this endpoint.

  • apps.getUserInstallation

    Enables an authenticated GitHub App to find the user’s installation information.

    You must use a to access this endpoint.

  • apps.listInstallationReposForAuthenticatedUser

    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 , 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.

  • apps.listInstallations

    You must use a to access this endpoint.

    The permissions the installation has are included under the permissions key.

  • apps.listInstallationsForAuthenticatedUser

    Lists installations of your GitHub App that the authenticated user has explicit permission (:read, :write, or :admin) to access.

    You must use a , 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.

  • apps.listReposAccessibleToInstallation

    List repositories that an app installation can access.

    You must use an to access this endpoint.

  • apps.removeRepoFromInstallation

    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 or ) to access this endpoint.

  • apps.resetAuthorization

    Deprecation Notice: GitHub Enterprise Server will discontinue OAuth endpoints that contain access_token in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving access_token to the request body. For more information, see the .

    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 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.

  • apps.resetToken

    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 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.

  • apps.revokeAuthorizationForApplication

    Deprecation Notice: GitHub Enterprise Server will discontinue OAuth endpoints that contain access_token in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving access_token to the request body. For more information, see the .

    OAuth application owners can revoke a single token for an OAuth application. You must use when accessing this endpoint, using the OAuth application's client_id and client_secret as the username and password.

  • apps.revokeGrantForApplication

    Deprecation Notice: GitHub Enterprise Server will discontinue OAuth endpoints that contain access_token in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving access_token to the request body. For more information, see the .

    OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use 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 .

  • apps.revokeInstallationAccessToken

    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 "" endpoint.

    You must use an to access this endpoint.

  • checks.create

    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.

    In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs.

  • checks.createSuite

    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 . You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "". Your GitHub App must have the checks:write permission to create check suites.

  • checks.get

    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.

  • checks.getSuite

    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.

  • checks.listAnnotations

    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.

  • checks.listForRef

    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.

  • checks.listForSuite

    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.

  • checks.listSuitesForRef

    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.

  • checks.rerequestSuite

    Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the 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.

  • checks.setSuitesPreferences

    Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually . You must have admin permissions in the repository to set preferences for check suites.

  • checks.update

    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.

  • codesOfConduct.getAllCodesOfConduct
  • codesOfConduct.getConductCode
  • emojis.get

    Lists all the emojis available to use on GitHub Enterprise Server.

  • enterpriseAdmin.addAuthorizedSshKey

    Note: The request body for this operation must be submitted as application/x-www-form-urlencoded data. You can submit a parameter value as a string, or you can use a tool such as curl to submit a parameter value as the contents of a text file. For more information, see the .

  • enterpriseAdmin.createEnterpriseServerLicense

    When you boot a GitHub instance for the first time, you can use the following endpoint to upload a license.

    Note that you need to POST to to start the actual configuration process.

    When using this endpoint, your GitHub instance must have a password set. This can be accomplished two ways:

    1. If you're working directly with the API before accessing the web interface, you must pass in the password parameter to set your password.
    2. If you set up your instance via the web interface before accessing the API, your calls to this endpoint do not need the password parameter.

    Note: The request body for this operation must be submitted as application/x-www-form-urlencoded data. You can submit a parameter value as a string, or you can use a tool such as curl to submit a parameter value as the contents of a text file. For more information, see the .

  • enterpriseAdmin.createGlobalWebhook
  • enterpriseAdmin.createImpersonationOAuthToken
  • enterpriseAdmin.createOrg
  • enterpriseAdmin.createPreReceiveEnvironment
  • enterpriseAdmin.createPreReceiveHook
  • enterpriseAdmin.createUser

    If an external authentication mechanism is used, the login name should match the login name in the external system. If you are using LDAP authentication, you should also for the user.

    The login name will be normalized to only contain alphanumeric characters or single hyphens. For example, if you send "octo_cat" as the login, a user named "octo-cat" will be created.

    If the login name or email address is already associated with an account, the server will return a 422 response.

  • enterpriseAdmin.deleteGlobalWebhook
  • enterpriseAdmin.deleteImpersonationOAuthToken
  • enterpriseAdmin.deletePersonalAccessToken

    Deletes a personal access token. Returns a 403 - Forbidden status when a personal access token is in use. For example, if you access this endpoint with the same personal access token that you are trying to delete, you will receive this error.

  • enterpriseAdmin.deletePreReceiveEnvironment

    If you attempt to delete an environment that cannot be deleted, you will receive a 422 Unprocessable Entity response.

    The possible error messages are:

    • Cannot modify or delete the default environment
    • Cannot delete environment that has hooks
    • Cannot delete environment when download is in progress
  • enterpriseAdmin.deletePreReceiveHook
  • enterpriseAdmin.deletePublicKey
  • enterpriseAdmin.deleteUser

    Deleting a user will delete all their repositories, gists, applications, and personal settings. is often a better option.

    You can delete any user account except your own.

  • enterpriseAdmin.demoteSiteAdministrator

    You can demote any user account except your own.

  • enterpriseAdmin.enableOrDisableMaintenanceMode

    Note: The request body for this operation must be submitted as application/x-www-form-urlencoded data. You can submit a parameter value as a string, or you can use a tool such as curl to submit a parameter value as the contents of a text file. For more information, see the .

  • enterpriseAdmin.getAllAuthorizedSshKeys
  • enterpriseAdmin.getAllStats
  • enterpriseAdmin.getCommentStats
  • enterpriseAdmin.getConfigurationStatus

    This endpoint allows you to check the status of the most recent configuration process:

    Note that you may need to wait several seconds after you start a process before you can check its status.

    The different statuses are:

    StatusDescription
    PENDINGThe job has not started yet
    CONFIGURINGThe job is running
    DONEThe job has finished correctly
    FAILEDThe job has finished unexpectedly
  • enterpriseAdmin.getDownloadStatusForPreReceiveEnvironment

    In addition to seeing the download status at the "" endpoint, there is also this separate endpoint for just the download status.

  • enterpriseAdmin.getEnterpriseStatsGists
  • enterpriseAdmin.getGlobalWebhook
  • enterpriseAdmin.getHooksStats

    Get hooks statistics

  • enterpriseAdmin.getIssueStats
  • enterpriseAdmin.getLicenseInformation
  • enterpriseAdmin.getMaintenanceStatus

    Check your installation's maintenance status:

  • enterpriseAdmin.getMilestoneStats
  • enterpriseAdmin.getOrgStats
  • enterpriseAdmin.getPagesStats
  • enterpriseAdmin.getPreReceiveEnvironment
  • enterpriseAdmin.getPreReceiveHook
  • enterpriseAdmin.getPreReceiveHookForOrg
  • enterpriseAdmin.getPreReceiveHookForRepo
  • enterpriseAdmin.getPullRequestStats
  • enterpriseAdmin.getRepoStats

    Get repository statistics

  • enterpriseAdmin.getSettings
  • enterpriseAdmin.getUserStats
  • enterpriseAdmin.listGlobalWebhooks
  • enterpriseAdmin.listPersonalAccessTokens

    Lists personal access tokens for all users, including admin users.

  • enterpriseAdmin.listPreReceiveEnvironments
  • enterpriseAdmin.listPreReceiveHooks
  • enterpriseAdmin.listPreReceiveHooksForOrg

    List all pre-receive hooks that are enabled or testing for this organization as well as any disabled hooks that can be configured at the organization level. Globally disabled pre-receive hooks that do not allow downstream configuration are not listed.

  • enterpriseAdmin.listPreReceiveHooksForRepo

    List all pre-receive hooks that are enabled or testing for this repository as well as any disabled hooks that are allowed to be enabled at the repository level. Pre-receive hooks that are disabled at a higher level and are not configurable will not be listed.

  • enterpriseAdmin.listPublicKeys
  • enterpriseAdmin.pingGlobalWebhook

    This will trigger a to be sent to the webhook.

  • enterpriseAdmin.promoteUserToBeSiteAdministrator

    Note that you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see "."

  • enterpriseAdmin.removeAuthorizedSshKey

    Note: The request body for this operation must be submitted as application/x-www-form-urlencoded data. You can submit a parameter value as a string, or you can use a tool such as curl to submit a parameter value as the contents of a text file. For more information, see the .

  • enterpriseAdmin.removePreReceiveHookEnforcementForOrg

    Removes any overrides for this hook at the org level for this org.

  • enterpriseAdmin.removePreReceiveHookEnforcementForRepo

    Deletes any overridden enforcement on this repository for the specified hook.

    Responds with effective values inherited from owner and/or global level.

  • enterpriseAdmin.setSettings

    For a list of the available settings, see the .

    Note: The request body for this operation must be submitted as application/x-www-form-urlencoded data. You can submit a parameter value as a string, or you can use a tool such as curl to submit a parameter value as the contents of a text file. For more information, see the .

  • enterpriseAdmin.startConfigurationProcess

    This endpoint allows you to start a configuration process at any time for your updated settings to take effect:

  • enterpriseAdmin.startPreReceiveEnvironmentDownload

    Triggers a new download of the environment tarball from the environment's image_url. When the download is finished, the newly downloaded tarball will overwrite the existing environment.

    If a download cannot be triggered, you will receive a 422 Unprocessable Entity response.

    The possible error messages are:

    • Cannot modify or delete the default environment
    • Can not start a new download when a download is in progress
  • enterpriseAdmin.suspendUser

    If your GitHub instance uses , Active Directory LDAP-authenticated users cannot be suspended through this API. If you attempt to suspend an Active Directory LDAP-authenticated user through this API, it will return a 403 response.

    You can suspend any user account except your own.

    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 "."

  • enterpriseAdmin.syncLdapMappingForTeam

    Note that this API call does not automatically initiate an LDAP sync. Rather, if a 201 is returned, the sync job is queued successfully, and is performed when the instance is ready.

  • enterpriseAdmin.syncLdapMappingForUser

    Note that this API call does not automatically initiate an LDAP sync. Rather, if a 201 is returned, the sync job is queued successfully, and is performed when the instance is ready.

  • enterpriseAdmin.unsuspendUser

    If your GitHub instance uses , this API is disabled and will return a 403 response. Active Directory LDAP-authenticated users cannot be unsuspended using the API.

  • enterpriseAdmin.updateGlobalWebhook

    Parameters that are not provided will be overwritten with the default value or removed if no default exists.

  • enterpriseAdmin.updateLdapMappingForTeam

    Updates the (DN) of the LDAP entry to map to a team. must be enabled to map LDAP entries to a team. Use the endpoint to create a team with LDAP mapping.

    You can also update the LDAP mapping of a child team.

  • enterpriseAdmin.updateLdapMappingForUser
  • enterpriseAdmin.updateOrgName
  • enterpriseAdmin.updatePreReceiveEnvironment

    You cannot modify the default environment. If you attempt to modify the default environment, you will receive a 422 Unprocessable Entity response.

  • enterpriseAdmin.updatePreReceiveHook
  • enterpriseAdmin.updatePreReceiveHookEnforcementForOrg

    For pre-receive hooks which are allowed to be configured at the org level, you can set enforcement and allow_downstream_configuration

  • enterpriseAdmin.updatePreReceiveHookEnforcementForRepo

    For pre-receive hooks which are allowed to be configured at the repo level, you can set enforcement

  • enterpriseAdmin.updateUsernameForUser
  • enterpriseAdmin.upgradeLicense

    This API upgrades your license and also triggers the configuration process.

    Note: The request body for this operation must be submitted as application/x-www-form-urlencoded data. You can submit a parameter value as a string, or you can use a tool such as curl to submit a parameter value as the contents of a text file. For more information, see the .

  • gists.checkIsStarred
  • gists.create

    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.

  • gists.createComment
  • gists.delete
  • gists.deleteComment
  • gists.fork

    Note: This was previously /gists/:gist_id/fork.

  • gists.get
  • gists.getComment
  • gists.getRevision
  • gists.list

    Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists:

  • gists.listComments
  • gists.listCommits
  • gists.listForks
  • gists.listForUser

    Lists public gists for the specified user:

  • gists.listPublic

    List public gists sorted by most recently updated to least recently updated.

    Note: With , 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.

  • gists.listStarred

    List the authenticated user's starred gists:

  • gists.star

    Note that you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see "."

  • gists.unstar
  • gists.update

    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.

  • gists.updateComment
  • git.createBlob
  • git.createCommit

    Creates a new Git .

    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:

    NameTypeDescription
    verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
    reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
    signaturestringThe signature that was extracted from the commit.
    payloadstringThe value that was signed.

    These are the possible values for reason in the verification object:

    ValueDescription
    expired_keyThe key that made the signature is expired.
    not_signing_keyThe "signing" flag is not among the usage flags in the GPG key that made the signature.
    gpgverify_errorThere was an error communicating with the signature verification service.
    gpgverify_unavailableThe signature verification service is currently unavailable.
    unsignedThe object does not include a signature.
    unknown_signature_typeA non-PGP signature was found in the commit.
    no_userNo user was associated with the committer email address in the commit.
    unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
    bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
    unknown_keyThe key that made the signature has not been registered with any user's account.
    malformed_signatureThere was an error parsing the signature.
    invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
    validNone of the above errors applied, so the signature is considered to be verified.
  • git.createRef

    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.

  • git.createTag

    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 the refs/tags/[tag] reference. If you want to create a lightweight tag, you only have to 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:

    NameTypeDescription
    verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
    reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
    signaturestringThe signature that was extracted from the commit.
    payloadstringThe value that was signed.

    These are the possible values for reason in the verification object:

    ValueDescription
    expired_keyThe key that made the signature is expired.
    not_signing_keyThe "signing" flag is not among the usage flags in the GPG key that made the signature.
    gpgverify_errorThere was an error communicating with the signature verification service.
    gpgverify_unavailableThe signature verification service is currently unavailable.
    unsignedThe object does not include a signature.
    unknown_signature_typeA non-PGP signature was found in the commit.
    no_userNo user was associated with the committer email address in the commit.
    unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
    bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
    unknown_keyThe key that made the signature has not been registered with any user's account.
    malformed_signatureThere was an error parsing the signature.
    invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
    validNone of the above errors applied, so the signature is considered to be verified.
  • git.createTree

    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 "" and "."

  • git.deleteRef
  • git.getBlob

    The content in the response will always be Base64 encoded.

    Note: This API supports blobs up to 100 megabytes in size.

  • git.getCommit

    Gets a Git .

    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:

    NameTypeDescription
    verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
    reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
    signaturestringThe signature that was extracted from the commit.
    payloadstringThe value that was signed.

    These are the possible values for reason in the verification object:

    ValueDescription
    expired_keyThe key that made the signature is expired.
    not_signing_keyThe "signing" flag is not among the usage flags in the GPG key that made the signature.
    gpgverify_errorThere was an error communicating with the signature verification service.
    gpgverify_unavailableThe signature verification service is currently unavailable.
    unsignedThe object does not include a signature.
    unknown_signature_typeA non-PGP signature was found in the commit.
    no_userNo user was associated with the committer email address in the commit.
    unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
    bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
    unknown_keyThe key that made the signature has not been registered with any user's account.
    malformed_signatureThere was an error parsing the signature.
    invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
    validNone of the above errors applied, so the signature is considered to be verified.
  • git.getRef

    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 to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "".

  • git.getTag

    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:

    NameTypeDescription
    verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
    reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
    signaturestringThe signature that was extracted from the commit.
    payloadstringThe value that was signed.

    These are the possible values for reason in the verification object:

    ValueDescription
    expired_keyThe key that made the signature is expired.
    not_signing_keyThe "signing" flag is not among the usage flags in the GPG key that made the signature.
    gpgverify_errorThere was an error communicating with the signature verification service.
    gpgverify_unavailableThe signature verification service is currently unavailable.
    unsignedThe object does not include a signature.
    unknown_signature_typeA non-PGP signature was found in the commit.
    no_userNo user was associated with the committer email address in the commit.
    unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
    bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
    unknown_keyThe key that made the signature has not been registered with any user's account.
    malformed_signatureThere was an error parsing the signature.
    invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
    validNone of the above errors applied, so the signature is considered to be verified.
  • git.getTree

    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, use the non-recursive method of fetching trees, and fetch one sub-tree at a time.

  • git.listMatchingRefs

    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 to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "".

    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.

  • git.updateRef
  • gitignore.getAllTemplates

    List all templates available to pass as an option when .

  • gitignore.getTemplate

    The API also allows fetching the source of a single template. Use the raw to get the raw contents.

  • issues.addAssignees

    Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced.

  • issues.addLabels
  • issues.checkUserCanBeAssigned

    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.

  • issues.create

    Any user with pull access to a repository can create an issue. If , the API returns a 410 Gone status.

    This endpoint triggers . Creating content too quickly using this endpoint may result in secondary rate limiting. See "" and "" for details.

  • issues.createComment

    This endpoint triggers . Creating content too quickly using this endpoint may result in secondary rate limiting. See "" and "" for details.

  • issues.createLabel
  • issues.createMilestone
  • issues.deleteComment
  • issues.deleteLabel
  • issues.deleteMilestone
  • issues.get

    The API returns a if the issue was 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 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 "" endpoint.

  • issues.getComment
  • issues.getEvent
  • issues.getLabel
  • issues.getMilestone
  • issues.list

    List issues assigned to the authenticated user across all visible repositories including owned repositories, member repositories, and organization repositories. You can use the filter query parameter to fetch issues that are not necessarily assigned to you.

    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 "" endpoint.

  • issues.listAssignees

    Lists the for issues in a repository.

  • issues.listComments

    Issue Comments are ordered by ascending ID.

  • issues.listCommentsForRepo

    By default, Issue Comments are ordered by ascending ID.

  • issues.listEvents
  • issues.listEventsForRepo
  • issues.listEventsForTimeline
  • issues.listForAuthenticatedUser

    List issues across owned and member repositories assigned to the authenticated user.

    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 "" endpoint.

  • issues.listForOrg

    List issues in an organization assigned to the authenticated user.

    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 "" endpoint.

  • issues.listForRepo

    List issues in a repository.

    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 "" endpoint.

  • issues.listLabelsForMilestone
  • issues.listLabelsForRepo
  • issues.listLabelsOnIssue
  • issues.listMilestones
  • issues.lock

    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 "."

  • issues.removeAllLabels
  • issues.removeAssignees

    Removes one or more assignees from an issue.

  • issues.removeLabel

    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.

  • issues.setLabels

    Removes any previous labels and sets the new labels for an issue.

  • issues.unlock

    Users with push access can unlock an issue's conversation.

  • issues.update

    Issue owners and users with push access can edit an issue.

  • issues.updateComment
  • issues.updateLabel
  • issues.updateMilestone
  • licenses.get
  • licenses.getAllCommonlyUsed
  • licenses.getForRepo

    This method returns the contents of the repository's license file, if one is detected.

    Similar to , this method also supports for retrieving the raw license content or rendered license HTML.

  • markdown.render
  • markdown.renderRaw

    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, is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less.

  • meta.get
  • meta.getOctocat

    Get the octocat as ASCII art

  • meta.getZen

    Get a random sentence from the Zen of GitHub

  • meta.root

    Get Hypermedia links to resources accessible in GitHub's REST API

  • oauthAuthorizations.createAuthorization

    Deprecation Notice: GitHub Enterprise Server will discontinue the , which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our . The will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the .

    Warning: Apps must use the to obtain OAuth tokens that work with GitHub Enterprise Server SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub Enterprise Server SAML organizations. For more information, see the .

    Creates OAuth tokens using . 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 "."

    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 Enterprise Server from the page. Read more about these tokens in .

    Organizations that enforce SAML SSO require personal access tokens to be allowed. Read more about allowing tokens in .

  • oauthAuthorizations.deleteAuthorization

    Deprecation Notice: GitHub Enterprise Server will discontinue the , which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our . The will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the .

  • oauthAuthorizations.deleteGrant

    Deprecation Notice: GitHub Enterprise Server will discontinue the , which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our . The will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the .

    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 .

  • oauthAuthorizations.getAuthorization

    Deprecation Notice: GitHub Enterprise Server will discontinue the , which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our . The will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the .

  • oauthAuthorizations.getGrant

    Deprecation Notice: GitHub Enterprise Server will discontinue the , which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our . The will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the .

  • oauthAuthorizations.getOrCreateAuthorizationForApp

    Deprecation Notice: GitHub Enterprise Server will discontinue the , which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our . The will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the .

    Warning: Apps must use the to obtain OAuth tokens that work with GitHub Enterprise Server SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub Enterprise Server SAML organizations. For more information, see the .

    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 "."

    Deprecation Notice: GitHub Enterprise Server will discontinue the , which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our . The will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the .

  • oauthAuthorizations.getOrCreateAuthorizationForAppAndFingerprint

    Deprecation Notice: GitHub Enterprise Server will discontinue the , which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our . The will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the .

    Warning: Apps must use the to obtain OAuth tokens that work with GitHub Enterprise Server SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub Enterprise Server SAML organizations. For more information, see the .

    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 "."

  • oauthAuthorizations.listAuthorizations

    Deprecation Notice: GitHub Enterprise Server will discontinue the , which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our . The will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the .

  • oauthAuthorizations.listGrants

    Deprecation Notice: GitHub Enterprise Server will discontinue the , which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our . The will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the .

    You can use this API to list the set of OAuth applications that have been granted access to your account. Unlike the 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 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"].

  • oauthAuthorizations.updateAuthorization

    Deprecation Notice: GitHub Enterprise Server will discontinue the , which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our . The will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the .

    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 "."

    You can only send one of these scope keys at a time.

  • orgs.checkMembershipForUser

    Check if a user is, publicly or privately, a member of the organization.

  • orgs.checkPublicMembershipForUser
  • orgs.convertMemberToOutsideCollaborator

    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 "".

  • orgs.createWebhook

    Here's how you can create a hook that posts payloads in JSON format:

  • orgs.deleteWebhook
  • orgs.get

    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 .

    GitHub Apps with the Organization plan permission can use this endpoint to retrieve information about an organization's GitHub Enterprise Server plan. See "" for details. For an example response, see 'Response with GitHub Enterprise Server plan information' below."

  • orgs.getMembershipForAuthenticatedUser
  • orgs.getMembershipForUser

    In order to get a user's membership with an organization, the authenticated user must be an organization member. The state parameter in the response can be used to identify the user's membership status.

  • orgs.getWebhook

    Returns a webhook configured in an organization. To get only the webhook config properties, see "."

  • orgs.list

    Lists all organizations, in the order that they were created on GitHub Enterprise Server.

    Note: Pagination is powered exclusively by the since parameter. Use the to get the URL for the next page of organizations.

  • orgs.listAppInstallations

    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.

  • orgs.listForAuthenticatedUser

    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.

  • orgs.listForUser

    List 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 API instead.

  • orgs.listMembers

    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.

  • orgs.listMembershipsForAuthenticatedUser
  • orgs.listOutsideCollaborators

    List all users who are outside collaborators of an organization.

  • orgs.listPublicMembers

    Members of an organization can choose to have their membership publicized or not.

  • orgs.listWebhooks
  • orgs.pingWebhook

    This will trigger a to be sent to the hook.

  • orgs.removeMember

    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.

  • orgs.removeMembershipForUser

    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.

  • orgs.removeOutsideCollaborator

    Removing a user from this list will remove them from all the organization's repositories.

  • orgs.removePublicMembershipForAuthenticatedUser
  • orgs.setMembershipForUser

    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 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.

  • orgs.setPublicMembershipForAuthenticatedUser

    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 "."

  • orgs.update

    Parameter Deprecation Notice: GitHub Enterprise Server 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 or GitHub Enterprise Server 2.20+. For more information, see the .

    Enables an authenticated organization owner with the admin:org scope to update the organization's profile and member privileges.

  • orgs.updateMembershipForAuthenticatedUser
  • orgs.updateWebhook

    Updates a webhook configured in an organization. When you update a webhook, the secret will be overwritten. If you previously had a secret set, you must provide the same secret or set a new secret or the secret will be removed. If you are only updating individual webhook config properties, use "."

  • projects.addCollaborator

    Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project admin to add a collaborator.

  • projects.createCard
  • projects.createColumn
  • projects.createForAuthenticatedUser
  • projects.createForOrg

    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.

  • projects.createForRepo

    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.

  • projects.delete

    Deletes a project board. Returns a 404 Not Found status if projects are disabled.

  • projects.deleteCard
  • projects.deleteColumn
  • projects.get

    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.

  • projects.getCard
  • projects.getColumn
  • projects.getPermissionForUser

    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.

  • projects.listCards
  • projects.listCollaborators

    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.

  • projects.listColumns
  • projects.listForOrg

    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.

  • projects.listForRepo

    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.

  • projects.listForUser
  • projects.moveCard
  • projects.moveColumn
  • projects.removeCollaborator

    Removes a collaborator from an organization project. You must be an organization owner or a project admin to remove a collaborator.

  • projects.update

    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.

  • projects.updateCard
  • projects.updateColumn
  • pulls.checkIfMerged
  • pulls.create

    Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team, GitHub Enterprise Server 2.17+, and GitHub Enterprise Cloud. You can create a new pull request. This endpoint triggers . Creating content too quickly using this endpoint may result in secondary rate limiting. See "" for details.

  • pulls.createReplyForReviewComment

    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 . Creating content too quickly using this endpoint may result in secondary rate limiting. See "" and "" for details.

  • pulls.createReview

    This endpoint triggers . Creating content too quickly using this endpoint may result in secondary rate limiting. See "" and "" for details.

    Pull request reviews created in the PENDING state do not include the submitted_at property in the response.

    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 . To see a pull request diff, add this media type to the Accept header of a call to the 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.

  • pulls.createReviewComment

    Creates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see "." 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 the .

    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 . Creating content too quickly using this endpoint may result in secondary rate limiting. See "" and "" for details.

  • pulls.deletePendingReview
  • pulls.deleteReviewComment

    Deletes a review comment.

  • pulls.dismissReview

    Note: To dismiss a pull request review on a , you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews.

  • pulls.get

    Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see in the GitHub Help documentation.

    Lists details of a pull request by providing its number.

    When you get, , or a pull request, GitHub Enterprise Server 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 "".

    The value of the mergeable attribute can be true, false, or null. If the value is null, then GitHub Enterprise Server 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:

    • If merged as a , merge_commit_sha represents the SHA of the merge commit.
    • If merged via a , merge_commit_sha represents the SHA of the squashed commit on the base branch.
    • If , merge_commit_sha represents the commit that the base branch was updated to.

    Pass the appropriate to fetch diff and patch formats.

  • pulls.getReview
  • pulls.getReviewComment

    Provides details for a review comment.

  • pulls.list

    Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team, GitHub Enterprise Server 2.17+, and GitHub Enterprise Cloud.

  • pulls.listCommentsForReview

    List comments for a specific pull request review.

  • pulls.listCommits

    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 endpoint.

  • pulls.listFiles

    Note: Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default.

  • pulls.listRequestedReviewers
  • pulls.listReviewComments

    Lists all review comments for a pull request. By default, review comments are in ascending order by ID.

  • pulls.listReviewCommentsForRepo

    Lists review comments for all pull requests in a repository. By default, review comments are in ascending order by ID.

  • pulls.listReviews

    The list of reviews returns in chronological order.

  • pulls.merge

    Merge a pull request

  • pulls.removeRequestedReviewers
  • pulls.requestReviewers

    Request reviewers for a pull request

  • pulls.submitReview
  • pulls.update

    Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team, GitHub Enterprise Server 2.17+, and GitHub Enterprise Cloud.

  • pulls.updateBranch

    Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch.

  • pulls.updateReview

    Update the review summary comment with new text.

  • pulls.updateReviewComment

    Enables you to edit a review comment.

  • rateLimit.get

    Note: Accessing this endpoint does not count against your REST API rate limit.

    Note: The rate object 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.

  • reactions.createForCommitComment

    Create a reaction to a . A response with an HTTP 200 status means that you already added the reaction type to this commit comment.

  • reactions.createForIssue

    Create a reaction to an . A response with an HTTP 200 status means that you already added the reaction type to this issue.

  • reactions.createForIssueComment

    Create a reaction to an . A response with an HTTP 200 status means that you already added the reaction type to this issue comment.

  • reactions.createForPullRequestReviewComment

    Create a reaction to a . A response with an HTTP 200 status means that you already added the reaction type to this pull request review comment.

  • reactions.createForTeamDiscussion

    Create a reaction to a . OAuth access tokens require the write:discussion . A response with an HTTP 200 status means that you already added the reaction type to this team discussion.

  • reactions.createForTeamDiscussionComment

    Create a reaction to a . OAuth access tokens require the write:discussion . A response with an HTTP 200 status means that you already added the reaction type to this team discussion comment.

  • reactions.delete

    OAuth access tokens require the write:discussion , when deleting a or .

  • reactions.listForCommitComment

    List the reactions to a .

  • reactions.listForIssue

    List the reactions to an .

  • reactions.listForIssueComment

    List the reactions to an .

  • reactions.listForPullRequestReviewComment

    List the reactions to a .

  • reactions.listForTeamDiscussion

    List the reactions to a . OAuth access tokens require the read:discussion .

  • reactions.listForTeamDiscussionComment

    List the reactions to a . OAuth access tokens require the read:discussion .

  • repos.acceptInvitation
  • repos.addAppAccessRestrictions

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see 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.

    TypeDescription
    arrayThe 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.
  • repos.addCollaborator

    This endpoint triggers . Creating content too quickly using this endpoint may result in secondary rate limiting. See "" and "" for details.

    For more information the permission levels, see "".

    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 "."

    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 .

    Rate limits

    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.

  • repos.addStatusCheckContexts

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

  • repos.addTeamAccessRestrictions

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

    Grants the specified teams push access for this branch. You can also give push access to child teams.

    TypeDescription
    arrayThe 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.
  • repos.addUserAccessRestrictions

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

    Grants the specified people push access for this branch.

    TypeDescription
    arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
  • repos.checkCollaborator

    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.

  • repos.compareCommits

    The basehead param is comprised of two parts: base and head. Both 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 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 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:

    NameTypeDescription
    verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
    reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
    signaturestringThe signature that was extracted from the commit.
    payloadstringThe value that was signed.

    These are the possible values for reason in the verification object:

    ValueDescription
    expired_keyThe key that made the signature is expired.
    not_signing_keyThe "signing" flag is not among the usage flags in the GPG key that made the signature.
    gpgverify_errorThere was an error communicating with the signature verification service.
    gpgverify_unavailableThe signature verification service is currently unavailable.
    unsignedThe object does not include a signature.
    unknown_signature_typeA non-PGP signature was found in the commit.
    no_userNo user was associated with the committer email address in the commit.
    unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
    bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
    unknown_keyThe key that made the signature has not been registered with any user's account.
    malformed_signatureThere was an error parsing the signature.
    invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
    validNone of the above errors applied, so the signature is considered to be verified.
  • repos.createCommitComment

    Create a comment for a commit using its :commit_sha.

    This endpoint triggers . Creating content too quickly using this endpoint may result in secondary rate limiting. See "" and "" for details.

  • repos.createCommitSignatureProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see 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.

  • repos.createCommitStatus

    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.

  • repos.createDeployKey

    You can create a read-only deploy key.

  • repos.createDeployment

    Deployments offer a few configurable parameters with certain defaults.

    The ref parameter can be any named branch, tag, or SHA. At GitHub Enterprise Server 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, 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.

    Merged branch response

    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:

    • Auto-merge option is enabled in the repository
    • Topic branch does not include the latest changes on the base branch, which is master in the response example
    • There are no merge conflicts

    If there are no new commits in the base branch, a new request to create a deployment should give a successful response.

    Merge conflict 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.

    Failed commit status checks

    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.

  • repos.createDeploymentStatus

    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.

  • repos.createForAuthenticatedUser

    Creates a new repository for the authenticated user.

    OAuth scope requirements

    When using , authorizations must include:

    • public_repo scope or repo scope to create a public repository. Note: For GitHub AE, use repo scope to create an internal repository.
    • repo scope to create a private repository.
  • repos.createFork

    Create 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 .

  • repos.createInOrg

    Creates a new repository in the specified organization. The authenticated user must be a member of the organization.

    OAuth scope requirements

    When using , authorizations must include:

    • public_repo scope or repo scope to create a public repository. Note: For GitHub AE, use repo scope to create an internal repository.
    • repo scope to create a private repository
  • repos.createOrUpdateFileContents

    Creates a new file or replaces an existing file in a repository.

  • repos.createPagesSite

    Configures a GitHub Enterprise Server Pages site. For more information, see "."

  • repos.createRelease

    Users with push access to the repository can create a release.

    This endpoint triggers . Creating content too quickly using this endpoint may result in secondary rate limiting. See "" and "" for details.

  • repos.createUsingTemplate

    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 endpoint and check that the is_template key is true.

    OAuth scope requirements

    When using , authorizations must include:

    • public_repo scope or repo scope to create a public repository. Note: For GitHub AE, use repo scope to create an internal repository.
    • repo scope to create a private repository
  • repos.createWebhook

    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.

  • repos.declineInvitation
  • repos.delete

    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, you will get a 403 Forbidden response.

  • repos.deleteAccessRestrictions

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

    Disables the ability to restrict who can push to this branch.

  • repos.deleteAdminBranchProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

    Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

  • repos.deleteBranchProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

  • repos.deleteCommitComment
  • repos.deleteCommitSignatureProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see 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.

  • repos.deleteDeployKey

    Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead.

  • repos.deleteFile

    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.

  • repos.deleteInvitation
  • repos.deletePagesSite
  • repos.deletePullRequestReviewProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

  • repos.deleteRelease

    Users with push access to the repository can delete a release.

  • repos.deleteReleaseAsset
  • repos.deleteWebhook
  • repos.downloadTarballArchive

    Gets a redirect URL to download a tar archive for a repository. 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.

  • repos.downloadZipballArchive

    Gets a redirect URL to download a zip archive for a repository. 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.

  • repos.get

    When you pass the scarlet-witch-preview media type, requests to get a repository will also return the repository's code of conduct if it can be detected from the repository's code of conduct file.

    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.

  • repos.getAccessRestrictions

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

    Lists who has access to this protected branch.

    Note: Users, apps, and teams restrictions are only available for organization-owned repositories.

  • repos.getAdminBranchProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

  • repos.getAllStatusCheckContexts

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

  • repos.getAllTopics
  • repos.getAppsWithAccessToProtectedBranch

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see 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.

  • repos.getBranch
  • repos.getBranchProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

  • repos.getCodeFrequencyStats

    Returns a weekly aggregate of the number of additions and deletions pushed to a repository.

  • repos.getCollaboratorPermissionLevel

    Checks the repository permission of a collaborator. The possible repository permissions are admin, write, read, and none.

  • repos.getCombinedStatusForRef

    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 if there are over 100 contexts.

    Additionally, a combined state is returned. The state is one of:

    • failure if any of the contexts report as error or failure
    • pending if there are no statuses or a context is pending
    • success if the latest status for all contexts is success
  • repos.getCommit

    Returns the contents of a single commit reference. You must have read access for the repository to use this endpoint.

    Note: If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing.

    You can pass the appropriate 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 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:

    NameTypeDescription
    verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
    reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
    signaturestringThe signature that was extracted from the commit.
    payloadstringThe value that was signed.

    These are the possible values for reason in the verification object:

    ValueDescription
    expired_keyThe key that made the signature is expired.
    not_signing_keyThe "signing" flag is not among the usage flags in the GPG key that made the signature.
    gpgverify_errorThere was an error communicating with the signature verification service.
    gpgverify_unavailableThe signature verification service is currently unavailable.
    unsignedThe object does not include a signature.
    unknown_signature_typeA non-PGP signature was found in the commit.
    no_userNo user was associated with the committer email address in the commit.
    unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
    bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
    unknown_keyThe key that made the signature has not been registered with any user's account.
    malformed_signatureThere was an error parsing the signature.
    invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
    validNone of the above errors applied, so the signature is considered to be verified.
  • repos.getCommitActivityStats

    Returns the last year of commit activity grouped by week. The days array is a group of commits per day, starting on Sunday.

  • repos.getCommitComment
  • repos.getCommitSignatureProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see 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 in GitHub Help.

    Note: You must enable branch protection to require signed commits.

  • repos.getContent

    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 the repository's root directory. See the description below regarding what the API response includes for directories.

    Files and symlinks support for retrieving the raw content or rendered HTML (when supported). All content types support to ensure the content is returned in a consistent object format.

    Note:

    • To get a repository's contents recursively, you can .
    • This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the .
    • This API supports files up to 1 megabyte in size.

    If the content is a directory

    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 . In the next major version of the API, the type will be returned as "submodule".

    If the content is a symlink

    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 in the example. Otherwise, the API responds with an object describing the symlink itself.

    If the content is a submodule

    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.

  • repos.getContributorsStats

    Returns the total number of commits authored by the contributor. In addition, the response includes a Weekly Hash (weeks array) with the following information:

    • w - Start of the week, given as a .
    • a - Number of additions
    • d - Number of deletions
    • c - Number of commits
  • repos.getDeployKey
  • repos.getDeployment
  • repos.getDeploymentStatus

    Users with pull access can view a deployment status for a deployment:

  • repos.getLatestPagesBuild
  • repos.getLatestRelease

    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.

  • repos.getPages
  • repos.getPagesBuild
  • repos.getParticipationStats

    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.

  • repos.getPullRequestReviewProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

  • repos.getPunchCardStats

    Each array contains the day number, hour number, and number of commits:

    • 0-6: Sunday - Saturday
    • 0-23: Hour of day
    • Number of commits

    For 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.

  • repos.getReadme

    Gets the preferred README for a repository.

    READMEs support for retrieving the raw content or rendered HTML.

  • repos.getReadmeInDirectory

    Gets the README from a repository directory.

    READMEs support for retrieving the raw content or rendered HTML.

  • repos.getRelease

    Note: This returns an upload_url key corresponding to the endpoint for uploading release assets. This key is a .

  • repos.getReleaseAsset

    To download the asset's binary content, set the Accept header of the request to . 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.

  • repos.getReleaseByTag

    Get a published release with the specified tag.

  • repos.getStatusChecksProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

  • repos.getTeamsWithAccessToProtectedBranch

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

    Lists the teams who have push access to this branch. The list includes child teams.

  • repos.getUsersWithAccessToProtectedBranch

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

    Lists the people who have push access to this branch.

  • repos.getWebhook

    Returns a webhook configured in a repository. To get only the webhook config properties, see "."

  • repos.listBranches
  • repos.listBranchesForHeadCommit

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

    Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch.

  • repos.listCollaborators

    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.

  • repos.listCommentsForCommit

    Use the :commit_sha to specify the commit that will have its comments listed.

  • repos.listCommitCommentsForRepo

    Commit Comments use . You can read more about the use of media types in the API .

    Comments are ordered by ascending ID.

  • repos.listCommits

    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:

    NameTypeDescription
    verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
    reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
    signaturestringThe signature that was extracted from the commit.
    payloadstringThe value that was signed.

    These are the possible values for reason in the verification object:

    ValueDescription
    expired_keyThe key that made the signature is expired.
    not_signing_keyThe "signing" flag is not among the usage flags in the GPG key that made the signature.
    gpgverify_errorThere was an error communicating with the signature verification service.
    gpgverify_unavailableThe signature verification service is currently unavailable.
    unsignedThe object does not include a signature.
    unknown_signature_typeA non-PGP signature was found in the commit.
    no_userNo user was associated with the committer email address in the commit.
    unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
    bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
    unknown_keyThe key that made the signature has not been registered with any user's account.
    malformed_signatureThere was an error parsing the signature.
    invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
    validNone of the above errors applied, so the signature is considered to be verified.
  • repos.listCommitStatusesForRef

    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.

  • repos.listContributors

    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.

  • repos.listDeployKeys
  • repos.listDeployments

    Simple filtering of deployments is available via query parameters:

  • repos.listDeploymentStatuses

    Users with pull access can view deployment statuses for a deployment:

  • repos.listForAuthenticatedUser

    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.

  • repos.listForks
  • repos.listForOrg

    Lists repositories for the specified organization.

  • repos.listForUser

    Lists public repositories for the specified user. Note: For GitHub AE, this endpoint will list internal repositories for the specified user.

  • repos.listInvitations

    When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations.

  • repos.listInvitationsForAuthenticatedUser

    When authenticating as a user, this endpoint will list all currently open repository invitations for that user.

  • repos.listLanguages

    Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language.

  • repos.listPagesBuilds
  • repos.listPublic

    Lists all public repositories in the order that they were created.

    Note:

    • For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise.
    • Pagination is powered exclusively by the since parameter. Use the to get the URL for the next page of repositories.
  • repos.listPullRequestsAssociatedWithCommit

    Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, additionally returns open pull requests associated with the commit. The results may 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 endpoint.

  • repos.listReleaseAssets
  • repos.listReleases

    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 .

    Information about published releases are available to everyone. Only users with push access will receive listings for draft releases.

  • repos.listTags
  • repos.listTeams
  • repos.listWebhooks
  • repos.merge
  • repos.pingWebhook

    This will trigger a to be sent to the hook.

  • repos.removeAppAccessRestrictions

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see 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.

    TypeDescription
    arrayThe 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.
  • repos.removeCollaborator
  • repos.removeStatusCheckContexts

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

  • repos.removeStatusCheckProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

  • repos.removeTeamAccessRestrictions

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see 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.

    TypeDescription
    arrayTeams 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.
  • repos.removeUserAccessRestrictions

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

    Removes the ability of a user to push to this branch.

    TypeDescription
    arrayUsernames 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.
  • repos.replaceAllTopics
  • repos.requestPagesBuild

    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.

  • repos.setAdminBranchProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

    Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

  • repos.setAppAccessRestrictions

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see 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.

    TypeDescription
    arrayThe 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.
  • repos.setStatusCheckContexts

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

  • repos.setTeamAccessRestrictions

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see 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.

    TypeDescription
    arrayThe 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.
  • repos.setUserAccessRestrictions

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see 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.

    TypeDescription
    arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
  • repos.testPushWebhook

    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

  • repos.transfer

    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 .

  • repos.update

    Note: To edit a repository's topics, use the endpoint.

  • repos.updateBranchProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see 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.

  • repos.updateCommitComment
  • repos.updateInformationAboutPagesSite

    Updates information for a GitHub Enterprise Server Pages site. For more information, see ".

  • repos.updateInvitation
  • repos.updatePullRequestReviewProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see 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.

  • repos.updateRelease

    Users with push access to the repository can edit a release.

  • repos.updateReleaseAsset

    Users with push access to the repository can edit a release asset.

  • repos.updateStatusCheckProtection

    Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see in the GitHub Help documentation.

    Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled.

  • repos.updateWebhook

    Updates a webhook configured in a repository. If you previously had a secret set, you must provide the same secret or set a new secret or the secret will be removed. If you are only updating individual webhook config properties, use "."

  • repos.uploadReleaseAsset

    This endpoint makes use of 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 to upload a release asset.

    You need to use an HTTP client which supports 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 . For example:

    application/zip

    GitHub Enterprise Server 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.

    When an upstream failure occurs, you will receive a 502 Bad Gateway status. This may leave an empty asset with a state of starter. It can be safely deleted.

    Notes:

    • GitHub Enterprise Server renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "" endpoint lists the renamed filenames. For more information and help, contact .
    • If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset.
  • search.code

    Searches for query terms inside of a file. This method returns up to 100 results .

    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 .

    For example, if you want to find the definition of the addClass function inside repository, your query would look something like this:

    q=addClass+in:file+language:js+repo:jquery/jquery

    This query searches for the keyword addClass within a file's contents. The query limits the search to files where the language is JavaScript in the jquery/jquery repository.

    Considerations for code search

    Due to the complexity of searching code, there are a few restrictions on how searches are performed:

    • Only the default branch is considered. In most cases, this will be the master branch.
    • Only files smaller than 384 KB are searchable.
    • You must always include at least one search term when searching source code. For example, searching for is not valid, while is.
  • search.commits

    Find commits via various criteria on the default branch (usually master). This method returns up to 100 results .

    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 .

    For example, if you want to find commits related to CSS in the repository. Your query would look something like this:

    q=repo:octocat/Spoon-Knife+css

  • search.issuesAndPullRequests

    Find issues by state and keyword. This method returns up to 100 results .

    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 .

    For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this.

    q=windows+label:bug+language:python+state:open&sort=created&order=asc

    This query searches for the keyword windows, within any open issue that is labeled as bug. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results.

    Note: For GitHub App requests, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the is:issue or is:pull-request qualifier will receive an HTTP 422 Unprocessable Entity response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the is qualifier, see "."

  • search.labels

    Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results .

    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 .

    For example, if you want to find labels in the linguist repository that match bug, defect, or enhancement. Your query might look like this:

    q=bug+defect+enhancement&repository_id=64778136

    The labels that best match the query appear first in the search results.

  • search.repos

    Find repositories via various criteria. This method returns up to 100 results .

    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 .

    For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this:

    q=tetris+language:assembly&sort=stars&order=desc

    This query searches for repositories with the word tetris in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results.

    When you include the mercy preview header, you can also search for multiple topics by adding more topic: instances. For example, your query might look like this:

    q=topic:ruby+topic:rails

  • search.topics

    Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results . See "" for a detailed list of qualifiers.

    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 .

    For example, if you want to search for topics related to Ruby that are featured on . Your query might look like this:

    q=ruby+is:featured

    This query searches for topics with the keyword ruby and limits 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.

  • search.users

    Find users via various criteria. This method returns up to 100 results .

    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 . For more details about how to receive highlighted search results, see .

    For example, if you're looking for a list of popular users, you might try this query:

    q=tom+repos:%3E42+followers:%3E1000

    This query searches for users with the name tom. The results are restricted to users with more than 42 repositories and over 1,000 followers.

  • teams.addMemberLegacy

    The "Add team member" endpoint (described below) is deprecated.

    We recommend using the 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 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 Enterprise Server team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "."

    Note that you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see "."

  • teams.addOrUpdateMembershipForUser

    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.

    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.

  • teams.addOrUpdateProjectPermissions

    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.

  • teams.addOrUpdateRepoPermissions

    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 "."

  • teams.checkPermissionsForProject

    Checks whether a team has read, write, or admin permissions for an organization project. The response includes projects inherited from a parent team.

  • teams.checkPermissionsForRepo

    Note: Repositories inherited through a parent team will also be checked.

    You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom via the Accept header:

  • teams.create

    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 "."

    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 "".

  • teams.createDiscussion

    Creates a new discussion post on a team's page. OAuth access tokens require the write:discussion .

    This endpoint triggers . Creating content too quickly using this endpoint may result in secondary rate limiting. See "" for details.

  • teams.createDiscussionComment

    Creates a new comment on a team discussion. OAuth access tokens require the write:discussion .

    This endpoint triggers . Creating content too quickly using this endpoint may result in secondary rate limiting. See "" for details.

  • teams.delete

    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.

  • teams.deleteDiscussion

    Delete a discussion from a team's page. OAuth access tokens require the write:discussion .

  • teams.deleteDiscussionComment

    Deletes a comment on a team discussion. OAuth access tokens require the write:discussion .

  • teams.get
  • teams.getByName

    Gets a team using the team's slug. GitHub Enterprise Server 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}.

  • teams.getDiscussion

    Get a specific discussion on a team's page. OAuth access tokens require the read:discussion .

  • teams.getDiscussionComment

    Get a specific comment on a team discussion. OAuth access tokens require the read:discussion .

  • teams.getMemberLegacy

    The "Get team member" endpoint (described below) is deprecated.

    We recommend using the 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.

  • teams.getMembershipForUser

    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 .

  • teams.list

    Lists all teams in an organization that are visible to the authenticated user.

  • teams.listChild
  • teams.listDiscussionComments

    List all comments on a team discussion. OAuth access tokens require the read:discussion .

  • teams.listDiscussions

    List all discussions on a team's page. OAuth access tokens require the read:discussion .

  • teams.listForAuthenticatedUser

    List all of the teams across all of the organizations to which the authenticated user belongs. This method requires user, repo, or read:org when authenticating via .

  • teams.listMembers

    Team members will include the members of child teams.

    To list members in a team, the team must be visible to the authenticated user.

  • teams.listProjects

    Lists the organization projects for a team. If you are an site administrator for your Enterprise instance, you will be able to list all projects for the team.

  • teams.listRepos

    If you are an site administrator for your Enterprise instance, you will be able to list all repositories for the team.

  • teams.removeMemberLegacy

    The "Remove team member" endpoint (described below) is deprecated.

    We recommend using the 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 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 Enterprise Server team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "."

  • teams.removeMembershipForUser

    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.

  • teams.removeProject

    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.

  • teams.removeRepo

    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.

  • teams.update

    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.

  • teams.updateDiscussion

    Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the write:discussion .

  • teams.updateDiscussionComment

    Edits the body text of a discussion comment. OAuth access tokens require the write:discussion .

  • users.addEmailForAuthenticated

    This endpoint is accessible with the user scope.

  • users.checkFollowingForUser
  • users.checkPersonIsFollowedByAuthenticated
  • users.createGpgKeyForAuthenticated

    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 .

  • users.createPublicSshKeyForAuthenticated

    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 .

  • users.deleteEmailForAuthenticated

    This endpoint is accessible with the user scope.

  • users.deleteGpgKeyForAuthenticated

    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 .

  • users.deletePublicSshKeyForAuthenticated

    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 .

  • users.follow

    Note that you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see "."

    Following a user requires the user to be logged in and authenticated with basic auth or OAuth with the user:follow scope.

  • users.getAuthenticated

    If the authenticated user is authenticated through basic authentication or OAuth with the user scope, then the response lists public and private profile information.

    If the authenticated user is authenticated through OAuth without the user scope, then the response lists only public profile information.

  • users.getByUsername

    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 Enterprise Server plan. The GitHub App must be authenticated as a user. See "" for details about authentication. For an example response, see 'Response with GitHub Enterprise Server plan information' below"

    The email key in the following response is the publicly visible email address from your GitHub Enterprise Server . 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 Enterprise Server. For more information, see .

    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 "".

  • users.getContextForUser

    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:

    shell
     curl -u username:token  https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192
  • users.getGpgKeyForAuthenticated

    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 .

  • users.getPublicSshKeyForAuthenticated

    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 .

  • users.list

    Lists all users, in the order that they signed up on GitHub Enterprise Server. This list includes personal user accounts and organization accounts.

    Note: Pagination is powered exclusively by the since parameter. Use the to get the URL for the next page of users.

  • users.listEmailsForAuthenticated

    Lists all of your email addresses, and specifies which one is visible to the public. This endpoint is accessible with the user:email scope.

  • users.listFollowedByAuthenticated

    Lists the people who the authenticated user follows.

  • users.listFollowersForAuthenticatedUser

    Lists the people following the authenticated user.

  • users.listFollowersForUser

    Lists the people following the specified user.

  • users.listFollowingForUser

    Lists the people who the specified user follows.

  • users.listGpgKeysForAuthenticated

    Lists the current user's GPG keys. Requires that you are authenticated via Basic Auth or via OAuth with at least read:gpg_key .

  • users.listGpgKeysForUser

    Lists the GPG keys for a user. This information is accessible by anyone.

  • users.listPublicEmailsForAuthenticated

    Lists your publicly visible email address, which you can set with the endpoint. This endpoint is accessible with the user:email scope.

  • users.listPublicKeysForUser

    Lists the verified public SSH keys for a user. This is accessible by anyone.

  • users.listPublicSshKeysForAuthenticated

    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 .

  • users.unfollow

    Unfollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the user:follow scope.

  • users.updateAuthenticated

    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.

  • openapi.previewSpec

    Preview an OpenAPI document before adding it as a source

  • openapi.addSource

    Add an OpenAPI source and register its operations as tools