Impossible to push to Azure repository using Person Access Token
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 25/100
- Type d'issue
- Fonctionnalité
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Stack technique
- azure, csharp, git
- Domaine
- authentication, devtools
Piste de recherche
Commencez par examiner PushOptions et comparer sa configuration disponible avec FetchOptions, puis lisez la pull request #2011 et l’exemple du wiki de git-push. Le travail est terminé lorsqu’un push vers un dépôt Azure peut transmettre le PAT comme en-tête d’autorisation personnalisé sans erreurs de rejeu de l’authentification ; ajoutez ou mettez à jour les tests pertinents si le sous-système existant en fournit.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
My problem is described perfectly here, but I don't think the solution is the correct one, since that would use the credentials stored on the computer as far as I'm aware.
When making git requests to an azure repository with a PAT, it is expected to be passed along as a custom header. (see documentation).
This is possible when doing a Clone operation, since CloneOptions contains FetchOptions, which allows us to set custom headers.
So a clone is perfectly possible as follows:
string encodedToken = Convert.ToBase64String(Encoding.UTF8.GetBytes($":{credentials.PersonalAccessToken}"));
var fetchOptions = new FetchOptions
{
CustomHeaders = new[] {
$"Authorization: Basic {encodedToken}"
}
};
var options = new CloneOptions
{
CredentialsProvider = (url, usernameFromUrl, types) =>
new UsernamePasswordCredentials()
{
Username = credentials.UserName,
Password = credentials.PersonalAccessToken
},
FetchOptions = fetchOptions,
BranchName = branchName,
Checkout = true,
OnCheckoutProgress = (path, completedSteps, totalSteps) =>
Logger.LogInformation("Clone progress {completed} / {total}", completedSteps, totalSteps),
RepositoryOperationCompleted = (context) =>
Logger.LogInformation("Clone completed"),
};
Repository.Clone(Remote, WorkingDirectory, options);
However, when trying to push to this same repository, PushOptions does not expose something similar to include the PAT as header, even though it is stored in the internal data structure since https://github.com/libgit2/libgit2sharp/pull/1233 .
Using the provided example from the wiki
I get the following error:
Unhandled exception: too many redirects or authentication replays | LibGit2Sharp.LibGit2SharpException | too many redirects or authentication replays
Which is the exact same error I was getting when trying to clone without the added custom header.
As far as I can see, there is a PR open that would fix this, but it is not yet merged in: https://github.com/libgit2/libgit2sharp/pull/2011
- Langage dominant
- C#
- Étoiles
- 3.5k
- Forks
- 925
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de libgit2/libgit2sharp
-
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
libgit2/libgit2sharp#2193 · 2 commentaires ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
libgit2/libgit2sharp#2192 · 1 commentaire ·
-
Website is down Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 20/100
libgit2/libgit2sharp#2191 · 2 réactions ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
libgit2/libgit2sharp#2189 · 1 réaction ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
libgit2/libgit2sharp#2187 · 2 commentaires ·
Toutes les issues de libgit2/libgit2sharp
Issues similaires
-
bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 75/100
sillsdev/languageforge-lexbox#2665 ·
-
bug documentation frontend
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
azurenoops/spin_agent#975 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
-
:watch: Not Triaged 11.0 fundamentals/subsvc
Difficulté 2/5 1-3 heures Accessibilité débutants 92/100
dotnet/AspNetCore.Docs#37699 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
SubtitleEdit/subtitleedit#15108 · 1 commentaire ·