You can authenticate as a GitHub App or as an installation.
- See Full List On Github.com
- Backup
- Browser
- Create Gist Github
- Awostenberg Github Gists
- Github Private Gist
- Github Gist Add
GIST is the best way to share the things you bought and like with friends. See what your friends buy. Share what you love. Get noticed for your taste. We protect your privacy- your purchases are private by default. Get the gist of hundreds of books in 12 minutes each with this app. Cult of Mac Deals. Why devote precious hours to reading when it makes more sense to spend a few minutes getting the gist? GitHub Desktop is a seamless way to contribute to projects on GitHub and GitHub Enterprise. Branch for deployment right from the app. Client for Windows or Mac.
Note: To access the API with your GitHub App, you must provide a custom media type in the Accept
Header for your requests.
application/vnd.github.machine-man-preview+json
See Full List On Github.com
Warning: The API may change without advance notice during the preview period. Preview features are not supported for production use. If you experience any issues, contact GitHub Support or GitHub Premium Support.
Generating a private key
After you create a GitHub App, you'll need to generate one or more private keys. You'll use the private key to sign access token requests.
You can create multiple private keys and rotate them to prevent downtime if a key is compromised or lost. To verify that a private key matches a public key, see Verifying private keys.
Backup
To generate a private key:
In the upper-right corner of any page, click your profile photo, then click Settings.
In the left sidebar, click Developer settings.
In the left sidebar, click GitHub Apps.
Select the GitHub App you want to modify.
In 'Private keys,' click Generate a private key.
- You will see a private key in PEM format downloaded to your computer. Make sure to store this file because GitHub only stores the public portion of the key.
Note: If you're using a library that requires a specific file format, the PEM file you download will be in PKCS#1 RSAPrivateKey
format.
Verifying private keys
GitHub generates a fingerprint for each private and public key pair using a SHA-1 hash function. You can verify that your private key matches the public key stored on GitHub by generating the fingerprint of your private key and comparing it to the fingerprint shown on GitHub.
To verify a private key:
- Find the fingerprint for the private and public key pair you want to verify in the 'Private keys' section of your GitHub App's developer settings page. For more information, see Generating a private key.
Generate the fingerprint of your private key (PEM) locally by using the following command.
Compare the results of the locally generated fingerprint to the fingerprint you see in GitHub.
Deleting private keys
You can remove a lost or compromised private key by deleting it, but you must have at least one private key. When you only have one key, you will need to generate a new one before deleting the old one.
Authenticating as a GitHub App
Authenticating as a GitHub App lets you do a couple of things:
- You can retrieve high-level management information about your GitHub App.
- You can request access tokens for an installation of the app.
To authenticate as a GitHub App, generate a private key in PEM format and download it to your local machine. You'll use this key to sign a JSON Web Token (JWT) and encode it using the RS256
algorithm. GitHub checks that the request is authenticated by verifying the token with the app's stored public key.
Here's a quick Ruby script you can use to generate a JWT. Note you'll have to run gem install jwt
before using it.
YOUR_PATH_TO_PEM
and YOUR_APP_ID
are the values you must replace.
Use your GitHub App's identifier (YOUR_APP_ID
) as the value for the JWT iss (issuer) claim. You can obtain the GitHub App identifier via the initial webhook ping after creating the app, or at any time from the app settings page in the GitHub.com UI.
After creating the JWT, set it in the Header
of the API request:
YOUR_JWT
is the value you must replace.
The example above uses the maximum expiration time of 10 minutes, after which the API will start returning a 401
error:
You'll need to create a new JWT after the time expires.
Accessing API endpoints as a GitHub App
For a list of REST API v3 endpoints you can use to get high-level information about a GitHub App, see 'GitHub Apps.'
Authenticating as an installation
Authenticating as an installation lets you perform actions in the API for that installation. Before authenticating as an installation, you must create an installation access token. These installation access tokens are used by GitHub Apps to authenticate.
By default, installation access tokens are scoped to all the repositories that an installation can access. You can limit the scope of the installation access token to specific repositories by using the repository_ids
parameter. See the Create an installation access token for an app endpoint for more details. Installation access tokens have the permissions configured by the GitHub App and expire after one hour.
To create an installation access token, include the JWT generated above in the Authorization header in the API request:
Browser
The response will include your installation access token, the expiration date, the token's permissions, and the repositories that the token can access. For more information about the response format, see the Create an installation access token for an app endpoint.
Create Gist Github
To authenticate with an installation access token, include it in the Authorization header in the API request:
YOUR_INSTALLATION_ACCESS_TOKEN
is the value you must replace.
Awostenberg Github Gists
Accessing API endpoints as an installation
For a list of REST API v3 endpoints that are available for use by GitHub Apps using an installation access token, see 'Available Endpoints.'
Github Private Gist
For a list of endpoints related to installations, see 'Installations.'
HTTP-based Git access by an installation
Github Gist Add
Installations with permissions on contents
of a repository, can use their installation access tokens to authenticate for Git access. Use the installation access token as the HTTP password: