GitHub Clone with OAuth Access Token
Inside a script I am trying to clone a GitHub repository with an OAuth token.
According to this tutorial:
https://github.com/blog/1270-easier-builds-and-deployments-using-git-over-https-and-oauth
I should be able to build a command for it like this:
git clone https://<token>@github.com/owner/repo.git
If I try this manually with a proper access token, it still asks for my password.
If I try it on the commandline I am simply getting a repository not found
error.
The article is from 2012 and I cannot find any API documentation for this. So I am wondering if this still works.
Just use the HTTPS address to clone with the key as the user, so:
git clone https://[email protected]/username/repo.git
I turned out to be a scope issue. I of course needed full repo
scope since I was trying to clone a private
repository.
It's a shame Github does not have some clearer error messages for these kind of things, but security wise I understand why.
For anyone trying to figure out what is wrong when trying out something like this, I would suggest to create a personal access token with full access to everything:
settings > developer settings > personal access tokens > generate new token
This way you can easily test if it is a scope issue by comparing your token with a personal access token that has access rights for everything.
Thanks for anyone who still took the time to read this.
Just clone the repository with HTTP like so:
git clone https://github.com/myuser/myrepo.git
When prompted for Username, fill your username.
When prompted for Password, fill the token instead.
Do whatever works for you from these two choices
In your terminal
$ git clone your_repo_url
Username:your_token
Password:
... there is no password
In your git client app
i.e. Sourcetree, GitKraken, and the GitHub client.
Enter your repo_url (obvsiously without the '$ git clone part')
Username:your_token
Password:
... there is no password
OR i.e. in Sourcetree, open preferences and then go to advanced, enter the hostname (i.e. www.x.com) and userName (i.e. your_token)
👍