Lors du clonage d'un référentiel git assis dans Azure Repos dans ma machine locale, le clonage réussit, mais j'obtiens une ligne qui dit:
git clone https://*************PAT*************@dev.azure.com/orgname/projectname/_git/reponame
Vous ne savez pas à quoi cela fait référence, des idées?
J'utilise le jeton PAT pour authentifier mon clone, la commande est:
Logon failed, use ctrl+c to cancel basic credential prompt
7 Réponses :
Il semble que dans ce cas, vous avez en fait deux ensembles d'informations d'identification qui sont en cours d'utilisation, et Git en a essayé un et a échoué, puis est retombé sur l'autre. Cette invite apparaît lorsque le gestionnaire d'informations d'identification est appelé sous Windows au cas où une invite s'affiche et que vous devez entrer des informations d'identification.
Lorsque vous mettez un PAT dans l'URL comme dans ce cas, vous devez mettre le PAT comme mot de passe. Cela signifie que vous devez spécifier un nom d'utilisateur, donc votre URL doit commencer par quelque chose comme https://username:password@dev.azure.com/
. Il n'est pas clair dans votre message si vous avez le username:
partie, donc si vous n'êtes pas sûr d'en ajouter un (cela peut être n'importe quoi dans ce cas; le token
et votre nom d'utilisateur sont communs).
Si vous n'avez pas d'URL de ce formulaire, votre PAT n'est pas utilisé et vous revenez probablement à tout ce qui se trouve dans votre gestionnaire d'informations d'identification, ce qui est correct. Sinon, il est possible que Git préfère quelque chose dans votre gestionnaire d'informations d'identification qui n'est pas correct et retombe vers quelque chose qui l'est. Dans tous les cas, vous devez inspecter les informations d'identification dans Windows Credential Manager et supprimer celles qui sont incorrectes.
Il suffit de créer les informations d'identification à partir d'azur. cliquez sur clone-> cliquez sur git credentials-> cela créera le nom d'utilisateur et le mot de passe. utilisez ce mot de passe dans le travail jenkins. Ça va marcher
Git http.extraheader et porteur
La réponse de Manual m'a aidé à me mettre sur la bonne voie.
Les pipelines de style YAML peuvent utiliser la variable prédéfinie System.AccessToken . Après avoir examiné l'étape formelle `` Checkout ... '' au début du pipeline, j'ai trouvé que cette étape fonctionnait dans mon script:
- task: PowerShell@2 inputs: targetType: 'inline' script: 'git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" clone --depth 1 https://my-org@dev.azure.com/my-org/my-proj/_git/my-repo'
Notez que l'étendue des autorisations de travail Azure DevOps peut affecter cela
Notre société dispose de 2 domaines auxquels nous accédons à DevOps:
https: // vso [nom de l'entreprise] .visualstudio.com
et
https://dev.azure.com/vso[nom_entreprise]
Dans le fichier repos .gitsubmodule, j'ai changé l'URL de l'une à l'autre et la construction a commencé à fonctionner comme par magie.
Si vous utilisez des référentiels github, vous devrez peut-être vérifier que vous n'avez pas supprimé les droits d'Azure Pipelines dans vos paramètres d'applications github:
J'ai rencontré un problème similaire lors de l'utilisation de git repos sur ma machine locale qui sont clonés à partir d'un référentiel Azure DevOps.
Le clone initial fonctionne, je peux tirer / pousser sans problème jusqu'à ce que je doive me ré-authentifier avec azuread / adfs car la session expire finalement. Git invitera correctement avec la page de connexion azure, et je pourrai m'authentifier avec succès auprès de notre location, mais Git affichera une erreur avec l'invite d'informations d'identification de base et "La connexion a échoué, utilisez ctrl + c pour annuler l'invite d'informations d'identification de base".
Le seul moyen que j'ai trouvé pour contourner ce problème est de me connecter à Azure DevOps via le navigateur (où ma session aura également expiré), puis de refaire l'authentification avec git, ce qui lui permet en quelque sorte de fonctionner.
Installez Git Cred Man et réessayez
Lorsque vous dites jeton PAT, a-t-il été généré ici: https: // {orgName} .visualstudio.com / _usersSettings / tokens