2014-09-22 2 views
2

I en utilisant la classe LibGit2Sharp.Credentials pendant un certain temps à la manière suivante:Comment utiliser la nouvelle CredentialsProvider dans LibGit2Sharp?

LibGit2Sharp.Credentials credentials = new UsernamePasswordCredentials() 
{ 
     Username = TokenValue, 
     Password = "" 
}; 

var pushOptions = new PushOptions() { Credentials = credentials} ; 

maintenant les LibGit2Sharp.PushOptions.Credentials est obsolate, je dois utiliser CredentialsProvider.

Je veux vous demander quelle est la bonne façon d'utiliser CredentialsProvider dans ce cas?

Merci beaucoup!

Répondre

5

> Je veux vous demander quelle est la bonne façon de travailler avec CredentialsProvider à ce cas?

Ce morceau de code doit répondre à vos besoins.

var pushOptions = new PushOptions() { 
    CredentialsProvider = (_url, _user, _cred) => new UsernamePasswordCredentials 
    { 
     Username = TokenValue, 
     Password = "" 
    } 
} 

Cela a été introduit par PR #761 afin de permettre des scénarios plus interactifs (lorsque l'utilisateur est invité à ses lettres de créance dans le cadre du processus de clonage, par exemple) et de préparer la voie pour d'autres types d'informations d'identification (Ssh, par exemple).

Le CredentialsProvider est un rappel qui

  • passe dans l'URL ciblés, le nom d'utilisateur (si elle a été spécifié dans l'URL) et le type d'informations d'identification du serveur accepte
  • attend en retour une Credentials (type de base) qui sera utilisé lors de l'authentification

On peut voir un exemple de l'CredentialsProviders en action dans le CloneFixture.cs suite de tests.

+0

fonctionne très bien avec le clone aussi, je vous remercie! –

Questions connexes