I cannot clone a simple repository from Azure DevOps. OS: Ubuntu 18.10
I do this:
git clone https://myorganization.visualstudio.com/myproject/_git/myrepo/
I keep getting this message from Git:
fatal: Authentication failed for 'https://myorganization.visualstudio.com/myproject/_git/myrepo/'
I was reading the solutions of other people but none worked for me. I also tried this:
Authorization: Basic Base64Encoded(uname:PAT)
Authorization: Bearer PAT
Any clue why this is not working?
Visual Studio 2019 version 16.8 and laterOn the start window, select Clone a repository. In the Browse a repository section, select Azure DevOps. If you see a sign-in window, sign in to your account. In the Connect to a Project dialog box, choose the repo that you want to connect to, and then select Clone.
After you create a new organization and project in Azure DevOps, you can begin coding with Git. To work with a Git repo, you clone it to your computer. Cloning a repo creates a complete local copy of the repo for you to work with.
I have had success using PAT like this;
git clone https://<domain>.visualstudio.com/<domain>/_git/<domain>
git clone https://<PAT>@<domain>.visualstudio.com/<domain>/_git/<domain>
No Username nor password should be required as the PAT should suffice.
I've experienced the same issue, and spent quite a while searching for a solution. I finally came across this post which contained a solution in the comments section by Martinius79.
In short, it was required to pass the username and PAT, encoded as base64, through git http.extraheaders in order for it to authenticate.
100% Credit to the original author, just including it here to assist others in locating it:
Example: git -c http.extraheader="AUTHORIZATION: Basic TXlHaXRTeW5jVXNlcjo2bHFqNXJkcHEzdXBxZWVmd2o3bDduZXN5NTR3d3gxNHFobDVlanl5NTVkb2g0M3d4YzRh" clone https://tfs.address/tfs/Collection/Project/_git/RepoName
Used basic token BASE64 encoded: TXlHaXRTeW5jVXNlcjo2bHFqNXJkcHEzdXBxZWVmd2o3bDduZXN5NTR3d3gxNHFobDVlanl5NTVkb2g0M3d4YzRh
Basic Token BASE64 decoded: MyGitSyncUser:6lqj5rdpq3upqeefwj7l7nesy54wwx14qhl5ejyy55doh43wxc4a
Token is constructed from : In this example: Fictional user name: MyGitSyncUser Used PAT: 6lqj5rdpq3upqeefwj7l7nesy54wwx14qhl5ejyy55doh43wxc4a
I hope this helps!
This official guide procedure worked for me, but with one important point. When base64-encoding, one must put attention to non-printable characters.
The guide says:
MY_PAT=yourPAT # replace "yourPAT" with your actual PAT
B64_PAT=$(printf ":$MY_PAT" | base64)
git -c http.extraHeader="Authorization: Basic ${B64_PAT}" clone
https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName
Using "echo" instead of "printf" would insert a newline char, changing the base64 string (probably would work also with "echo -n" but I haven't tried). Also, do not include the username, as per the snippet above.
Used git 2.17.1 on Ubuntu 18.04.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With