Files
n8n-docs/docs/integrations/builtin/credentials/github.md
Justin Ellingwood a7dc52d6e1 Change repo links to absolute file paths (#2829)
Co-authored-by: Nick Veitch <nick.veitch@n8n.io>
2025-02-11 17:40:26 +00:00

92 lines
5.4 KiB
Markdown

---
#https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
title: GitHub credentials
description: Documentation for GitHub credentials. Use these credentials to authenticate GitHub in n8n, a workflow automation platform.
contentType: [integration, reference]
priority: medium
---
# GitHub credentials
You can use these credentials to authenticate the following nodes:
- [GitHub](/integrations/builtin/app-nodes/n8n-nodes-base.github.md)
- [GitHub Trigger](/integrations/builtin/trigger-nodes/n8n-nodes-base.githubtrigger.md)
- [GitHub Document Loader](/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.documentgithubloader.md): this node doesn't support OAuth.
## Prerequisites
Create a [GitHub](https://github.com/){:target=_blank .external-link} account.
## Supported authentication methods
- API access token: Use this method with any GitHub nodes.
- OAuth2: Use this method with [GitHub](/integrations/builtin/app-nodes/n8n-nodes-base.github.md) and [GitHub Trigger](/integrations/builtin/trigger-nodes/n8n-nodes-base.githubtrigger.md) nodes only; don't use with [GitHub Document Loader](/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.documentgithubloader.md).
## Related resources
Refer to [GitHub's API documentation](https://docs.github.com/en/rest){:target=_blank .external-link} for more information about the service.
## Using API access token
To configure this credential, you'll need a [GitHub](https://github.com/){:target=_blank .external-link} account.
There are two steps to setting up this credential:
1. [Generate a GitHub personal access token](#generate-personal-access-token).
2. [Set up the credential](#set-up-the-credential).
Refer to the sections below for detailed instructions.
### Generate personal access token
/// note | Recommended access token type
n8n recommends using a personal access token (classic). GitHub's fine-grained personal access tokens are still in beta and can't access all endpoints.
///
To generate your personal access token:
1. If you haven't done so already, verify your email address with GitHub. Refer to [Verifying your email address](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address){:target=_blank .external-link} for more information.
2. Open your GitHub profile [Settings](https://github.com/settings/profile){:target=_blank .external-link}.
3. In the left navigation, select [**Developer settings**](https://github.com/settings/apps){:target=_blank .external-link}.
4. In the left navigation, under **Personal access tokens**, select **Tokens (classic)**.
5. Select **Generate new token > Generate new token (classic)**.
6. Enter a descriptive name for your token in the **Note** field, like `n8n integration`.
7. Select the **Expiration** you'd like for the token, or select **No expiration**.
8. Select **Scopes** for your token. For most of the n8n GitHub nodes, add the `repo` scope.
- A token without assigned scopes can only access public information.
- Refer to
9. Select **Generate token**.
10. Copy the token.
Refer to [Creating a personal access token (classic)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic){:target=_blank .external-link} for more information. Refer to [Scopes for OAuth apps](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes){:target=_blank .external-link} for more information on GitHub scopes.
### Set up the credential
Then, in your n8n credential:
1. If you aren't using GitHub Enterprise Server, don't change the **GitHub server** URL.
- If you're using [GitHub Enterprise Server](https://docs.github.com/en/enterprise-server@3.9/admin/overview/about-github-enterprise-server){:target=_blank .external-link}, update **GitHub server** to match the URL for your server.
2. Enter your **User** name as it appears in your GitHub profile.
3. Enter the **Access Token** you generated above.
## Using OAuth2
--8<-- "_snippets/integrations/builtin/credentials/cloud-oauth-button.md"
If you're [self-hosting n8n](/hosting/index.md), create a new GitHub [OAuth app](https://docs.github.com/en/apps/oauth-apps){:target=_blank .external-link}:
1. Open your GitHub profile [Settings](https://github.com/settings/profile){:target=_blank .external-link}.
2. In the left navigation, select [**Developer settings**](https://github.com/settings/apps){:target=_blank .external-link}.
3. In the left navigation, select **OAuth apps**.
4. Select **New OAuth App**.
- If you haven't created an app before, you may see **Register a new application** instead. Select it.
5. Enter an **Application name**, like `n8n integration`.
6. Enter the **Homepage URL** for your app's website.
7. If you'd like, add the optional **Application description**, which GitHub displays to end-users.
8. From n8n, copy the **OAuth Redirect URL** and paste it into the GitHub **Authorization callback URL**.
9. Select **Register application**.
10. Copy the **Client ID** and **Client Secret** this generates and add them to your n8n credential.
Refer to the [GitHub Authorizing OAuth apps documentation](https://docs.github.com/en/apps/oauth-apps/using-oauth-apps/authorizing-oauth-apps){:target=_blank .external-link} for more information on the authorization process.