
Gabor Domonkos
Ich habe die CSharp.Bitbucket-Bibliothek verwendet, um Benutzer mit Bitbucket zu authentifizieren (https://github.com/scottksmith95/CSharp.Bitbucket). Die Authentifizierung funktioniert gut, ich bekomme den Tokenwert und die geheimen Tokenwerte.
Ich habe bereits eine Logik geschrieben – mit Hilfe von LibGit2Sharp (https://github.com/libgit2/libgit2sharp) – zum Klonen/Pullen/Pushen des Inhalts des Benutzer-Repositorys. Es funktioniert gut, wenn sich der Benutzer bei GitHub authentifiziert. In diesem Fall muss ich den Wert des Zugriffstokens für den Benutzernamen und eine leere Zeichenfolge für das Passwort angeben.
LibGit2Sharp.Credentials credentials = new UsernamePasswordCredentials()
{
Username = [GITHUB ACCESS TOKEN],
Password =""
};
Aber was ist mit Bitbucket? Kann ich LibGit2Sharp auf diese Weise verwenden? Ich konnte keine Dokumentation zu diesem Problem finden. Ich habe versucht, den Token-Wert und das Token-Geheimnis auch für den Benutzernamen zu verwenden, aber es schlägt fehl.

Ich möchte Bitbucket auch mit Git und Mercurial verwenden. Gibt es einen kleinen Trick, den ich bisher nicht realisieren konnte?
Danke für Ihre Hilfe!
Diese Art, das Token als Benutzernamen mit einem leeren Passwort zu übergeben, ist spezifisch für GitHub AFAIK (siehe diesen Hilfeartikel). Der Artikel besagt auch, dass das Bestehen x-oauth-basic
funktioniert.
Das BitBucket-Problem #7735 scheint zu besagen, dass das Übergeben des Tokens als Benutzername und x-oauth-basic
würde auch funktionieren.
Diese Frage ist alt, aber ich werde für diejenigen antworten, die auf dieses Problem stoßen. Zunächst müssen Sie sich einen Zugangstoken besorgen. Es ist gut erklärt hier.
Sobald Sie das Token haben, können Sie sich auf diese Weise authentifizieren
CredentialsProvider = (_url, _user, _cred) => new UsernamePasswordCredentials
{
Username = x-token-auth:[ACCES-TOKEN],
Password = ""
}
Hoffe es hilft jemandem.

Samko
[2022] Sie können verwenden LibGit2Sharp
sogar für Bitbucket
aber Sie brauchen keine Token. Bei der Verwendung des App-Passworts gibt es einen etwas anderen Ablauf. (Dies funktioniert sogar mit aktiviertem 2FA.)
-
Gehen Sie im Bitbucket zu:
https://bitbucket.org/account/settings/app-passwords/
- oder manuell navigieren:
Click your picture -> Personal settings -> App passwords
-
Klicken Create app password
- Benennen Sie es nach dem Dienst, in dem Sie es verwenden/zu welchem Zweck
- Fügen Sie die erforderlichen Berechtigungen hinzu
- Klicken Sie auf Erstellen
-
Finden Sie Ihren Bitbucket-Namen:
- navigieren zu
https://bitbucket.org/account/settings/
- oder
Click your picture -> Personal settings -> Account settings
- und in Unterkategorie
Bitbucket profile settings
ist dein Username
-
Wenden Sie diese Anmeldeinformationen auf Ihren Code an. Z.B
var url = "https://bitbucket.org/<user_or_org_name>/<repository_name>.git";
var Username = "<your_user_name>";
var Password = "<your_app_password>";
var localPathForRepository = @"D:\temp";
var creds = new UsernamePasswordCredentials()
{
Username = Username,
Password = Password
};
CredentialsHandler credHandler = (_url, _user, _cred) => creds;
bool dirExists = Directory.Exists(localPathForRepository);
if (dirExists)
{
Directory.Delete(localPathForRepository, true);
}
Directory.CreateDirectory(localPathForRepository);
var cloneOptions = new CloneOptions { BranchName = "master", Checkout = true, CredentialsProvider = credHandler };
var cloneResult = Repository.Clone(url, localPathForRepository, cloneOptions);
-
ERLEDIGT
Quellen:
https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/
https://id.atlassian.com/manage-profile/security/api-tokens
https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/#Use-an-API-token
10181000cookie-checkBitbucket-Authentifizierung zur Verwendung von LibGit2Sharpyes