Data report"State of code review 2024" is now liveRead the full report

Cloning a Git repository using a GitHub token

Greg Foster
Greg Foster
Graphite software engineer


Note

This guide explains this concept in vanilla Git. For Graphite documentation, see our CLI docs.


When working with private repositories or within organizations that enforce strong security protocols, you may need to use a personal access token (PAT) for authentication during operations like cloning a repository.

A personal access token can provide more security than traditional password-based authentication, especially after many platforms, including GitHub, have moved away from supporting password authentication for Git operations.

This guide details the process of using a token to clone a repository using Git.

Stop wrestling with Git commands

The Graphite CLI takes all the pain out of Git, allowing you to ship faster and stop Googling Git commands.

Learn more

A personal access token (PAT) is a user-generated token that can be used in place of a password with command line tools, APIs, and other applications to ensure a higher level of security. Tokens can be configured to expire and to provide specific access permissions to various aspects of your repositories.

Before you can clone a repository using a token, you need to generate one. As an example here’s how you can generate one in GitHub as an example:

  1. Log in to GitHub: Navigate to the [GitHub web UI[(https://github.com)] and sign into your account.
  2. Access token settings:
    • Go to your profile settings.
    • Click on "Developer settings."
    • Select "Personal access tokens."
    • Click "Generate new token."
  3. Set up your token:
    • Give your token a descriptive name.
    • Select the scopes or permissions you want the token to have. For cloning a repository, you might only need "repo" access.
    • Optionally set an expiration date.
    • Click "Generate token."
  4. Copy your new token: Ensure you copy your new token now; you won’t be able to see it again once you navigate away from the page.

Once you have your personal access token, you can use it to clone a repository from the command line:

  1. Open your terminal
  2. Prepare the repository URL:
    • Normally, you might clone a repository with a command like:
      Terminal
      git clone https://github.com/username/repository.git
    • To use a token, modify the URL to include your token:
      Terminal
      git clone https://<username>:<token>@github.com/username/repository.git
    • Replace <username> with your GitHub username and <token> with your personal access token.
  • Security: Never share your personal access token. Treat it like a password. If you think your token has been compromised, revoke it immediately and generate a new one.
  • Use HTTPS URLs: Make sure you use HTTPS URLs for cloning with tokens. SSH URLs won’t work with personal access tokens.
  • Store tokens securely: Consider using a secure vault for storing your personal access tokens, especially if you work with multiple tokens or sensitive data.
The best engineers use Graphite to simplify Git

Engineers at Vercel, Snowflake & The Browser Company are shipping faster and staying unblocked with Graphite.

Git started for free

If you frequently need to use personal access tokens with Git, consider automating your setup:

  • Caching your credentials: You can cache your token using Git's credential helper:
    Terminal
    git config --global credential.helper cache
  • Using environment variables: Store your token in an environment variable and reference it in your commands:
    Terminal
    export GITHUB_TOKEN="<your_token>"
    git clone https://<username>:${GITHUB_TOKEN}@github.com/username/repository.git
    Note: While this works as a temporary solution, caution should be used when storing credentials in environment variables as they are stored locally in plaintext. This is considered unsafe and this method should only be used in one-off situations where the env variable is immediately reset upon completion of the command.

For further reading on using personal access tokens, see the official GitHub documentation.

Stay unblocked. Ship faster.
Experience the new developer workflow - create, review, and merge code continuously. Get started with one command.
Learn more

Give your PR workflow
an upgrade today

Stack easier | Ship smaller | Review quicker

Or install our CLI.
Product Screenshot 1
Product Screenshot 2