Utiliser le support de commande Go install dans Azure Repos Git

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Importante

Envisagez d’utiliser les jetons Microsoft Entra plus sécurisés sur les jetons d’accès personnels à risque plus élevé. Pour plus d’informations, consultez Réduire l’utilisation de PAT. Passez en revue les conseils d’authentification pour choisir le mécanisme d’authentification approprié pour vos besoins.

Importante

Les projets publics dans Azure DevOps sont mis hors service. À compter de 2027, les projets publics existants sont convertis en projets privés. Pour plus d’informations, consultez Public projects retirement et Migrate d’un projet public à GitHub.

Go est un langage de programmation open source, également appelé Golang. Dans Go, vous pouvez utiliser la install commande pour télécharger et installer des packages et des dépendances. Azure Repos Git assure la prise en charge de go install dans un dépôt Git Azure Repos. Avec go install, vous pouvez télécharger des packages avec leurs dépendances nommées par les chemins d’importation. Vous pouvez également utiliser le mot clé à l’intérieur import d’un fichier go pour spécifier le chemin d’importation, à l’aide de la même syntaxe décrite dans les sections suivantes.

Utilisez la commande 'go install' pour les projets publics

Si votre dépôt Git Azure Repos se trouve dans un projet public, vous pouvez utiliser go install l’URL du dépôt web au format suivant. Pour la version, vous pouvez utiliser latest ou une version spécifique.

go install dev.azure.com/<organization>/<project>/_git/<repo>.git@<version>

Vous pouvez également installer un package Go dans un sous-dossier d’un référentiel en ajoutant les noms des sous-dossiers, comme illustré dans les exemples suivants.

go install dev.azure.com/<organization>/<project>/_git/<repo>.git/subfolder1@<version>

go install dev.azure.com/<organization>/<project>/_git/<repo>.git/subfolder1/subfolder2@<version>

Utiliser "go install" avec des projets privés

Si votre référentiel Git Azure Repos est privé, vous pouvez vous authentifier à l’aide de clés SSH, de jetons d’ID Microsoft Entra (recommandé) ou de jetons d’accès personnels (PAT).

Importante

Pour accéder aux référentiels Git Azure Repos privés à l’aide de go install, vous devez d’abord définir la variable d'environnement GOPRIVATE=dev.azure.com. Vous pouvez définir cette variable d’environnement localement avant de générer ou d’exécuter.

SSH

Pour utiliser SSH avec go install, disposez de clés SSH configurées pour Azure DevOps, comme décrit dans Utiliser l’authentification par clé SSH.

Lorsque vous avez configuré des clés SSH, ajoutez cette entrée à votre fichier .gitconfig :

[url "git@ssh.dev.azure.com:v3/<organization>/<project>/<repo>"]
	insteadOf = https://dev.azure.com/<organization>/<project>/<repo>

Avec cette entrée et un format d’URL spécifique, vous pouvez désormais utiliser go install.

Remarque

Veillez à utiliser .git après le nom du dépôt. En outre, _git n’est pas inclus dans l’URL de package que vous transmettez à go install car vous utilisez l’URL SSH.

go install dev.azure.com/<organization>/<project>/<repo>.git

HTTPS

Pour utiliser HTTPS avec go install, vous pouvez vous authentifier à l’aide de jetons d’ID Microsoft Entra (recommandé) ou de jetons d’accès personnels (PAT).

Les jetons d’ID Microsoft Entra offrent une meilleure sécurité et sont la méthode d’authentification recommandée. Vous pouvez obtenir ces jetons via :

  • Azure CLI (pour le développement/test) :

    az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv
    
  • Principal du service (pour les scénarios de production et automatisés).

    • Inscrire une application dans Microsoft Entra ID
    • Créer une clé secrète client pour l’application
    • Accorder les autorisations appropriées à l’application dans Azure DevOps
    • Utiliser les informations d’identification du principal de service pour obtenir des jetons par programmation

Pour plus d’informations, consultez Authentification Microsoft Entra.

Après avoir obtenu le jeton d’ID Microsoft Entra, ajoutez cette entrée à votre .gitconfig fichier :

[url "https://<user>:<token>@dev.azure.com/<organization>/<project>/_git/<repo>"]
	insteadOf = https://dev.azure.com/<organization>/<project>/_git/<repo>

La <user> partie peut être n’importe quelle chaîne non vide. Envisagez d’utiliser entra ou votre nom d’utilisateur.

Conseil / Astuce

Obtenez un jeton Microsoft Entra unique à partir d’Azure CLI : vous pouvez rapidement obtenir un jeton d’ID Microsoft Entra pour les opérations Git à l’aide d’Azure CLI, ce qui est utile pour les scénarios de développement et de test. Lors de la génération de jetons pour le compte d’un principal de service, veillez à vous connecter en tant que principal de service en premier.

Gestion des jetons : les jetons d’ID Microsoft Entra ont des délais d’expiration. Vous devrez peut-être les actualiser régulièrement. Pour les workflows automatisés, envisagez d’utiliser des principaux de service avec des mécanismes d’actualisation de jeton appropriés.

Jetons d’accès personnels (alternative)

Si vous préférez utiliser des PAT, créez un pat comme décrit dans Authentifier l’accès avec des jetons d’accès personnels. Ce jeton d’accès personnel nécessite uniquement l’étendueCode (lire).

Après avoir créé le PAT, ajoutez cette entrée à votre .gitconfig fichier :

[url "https://<user>:<token>@dev.azure.com/<organization>/<project>/_git/<repo>"]
	insteadOf = https://dev.azure.com/<organization>/<project>/_git/<repo>

La <user> partie peut être n’importe quelle chaîne non vide. Envisagez d’utiliser pat.

Avec cette entrée et un format d’URL spécifique, vous pouvez désormais utiliser go install.

Remarque

Veillez à utiliser .git après le nom du dépôt.

go install dev.azure.com/<organization>/<project>/_git/<repo>.git@<version>

Vous pouvez également installer un package Go dans un sous-dossier d’un référentiel en ajoutant les noms des sous-dossiers, comme illustré dans les exemples suivants.

go install dev.azure.com/<organization>/<project>/_git/<repo>.git/subfolder1@<version>

go install dev.azure.com/<organization>/<project>/_git/<repo>.git/subfolder1/subfolder2@<version>