问题
I used the CSharp.Bitbucket library to authenticate users with Bitbucket (https://github.com/scottksmith95/CSharp.Bitbucket). The authentication works fine, I get the token value and token secret values.
I have alredy written a logic - with the help of LibGit2Sharp (https://github.com/libgit2/libgit2sharp) - to clone/pull/push the content of the users repo. It works fine if the user authenticates with GitHub. In that case I have to provide the value of the access token for username and an empty string for password.
LibGit2Sharp.Credentials credentials = new UsernamePasswordCredentials()
{
Username = [GITHUB ACCESS TOKEN],
Password =""
};
But what about Bitbucket? Can I use LibGit2Sharp in this way? I couldn't find any documentation about this issue. I tried to use the token value and the token secret also for username, but it fails.
I would like to use Bitbucket with Git and Mercurial too. Is there a little trick which I couldn't realize this far?
Thank you for your help!
回答1:
This way of passing the token as the username with a blank password is specific to GitHub AFAIK (see this help article). The article also states that passing x-oauth-basic
works.
The BitBucket issue #7735 seems to state that passing the token as the username and x-oauth-basic
would also work.
回答2:
This question is old but I will answer for those how come across whith this problem. First, what you have to do is get an acces token. Its well explaned here.
Once you have the token, you can authenticate like this
CredentialsProvider = (_url, _user, _cred) => new UsernamePasswordCredentials
{
Username = x-token-auth:[ACCES-TOKEN],
Password = ""
}
Hope it helps someone.
来源:https://stackoverflow.com/questions/24607212/bitbucket-authentication-to-use-libgit2sharp