Tutoriel : Authentifier des registres git vcpkg dans GitHub Actions
Lorsque vous utilisez vcpkg avec des registres privés, il est nécessaire de fournir des informations d’identification d’accès pour authentifier les opérations Git exécutées en interne par vcpkg.
Dans ce tutoriel, vous allez apprendre à authentifier un référentiel Git privé à utiliser dans votre workflow GitHub Actions.
Prérequis
- Un compte GitHub
- Registre Git vcpkg privé hébergé sur GitHub
- vcpkg
1 - Créer un jeton d’accès personnel pour votre dépôt privé
Suivez les instructions sur GitHub pour générer un jeton d’accès personnel affiné (PAT) et accordez-lui l’autorisation d’accéder au référentiel privé où votre registre Git vcpkg est hébergé.
2 - Créer un secret GitHub Actions à utiliser dans votre flux de travail
Remarque
Ne jamais stocker un jeton d’accès personnel GitHub dans vos fichiers de référentiel
L’étape suivante consiste à suivre les instructions de GitHub pour stocker le PAT en tant que secret disponible dans vos flux de travail GitHub Actions.
3 - S’authentifier auprès de dépôts Git privés dans votre flux de travail
Il est maintenant temps d’ajouter une étape d’authentification à votre flux de travail, utilisez le modèle suivant dans le fichier YAML de votre flux de travail. Remplacez PRIVATE_REPO_URL
par l’URL de votre référentiel privé, par exemple : https://github.com/Microsoft/secret-vcpkg-registry
; remplacez PRIVATE_REGISTRY_PAT
par le nom de la variable secrète que vous avez créée à l’étape précédente.
Cette étape de flux de travail doit s’exécuter avant toute autre étape de flux de travail qui appelle vcpkg.
- name: Authenticate private registries
shell: bash
run: git config --global credential.PRIVATE_REPO_URL.helper '!f() { echo username=unused; echo password=${{secrets.PRIVATE_REGISTRY_PAT }}; }; f'
Exemple avec plusieurs référentiels privés
L’exemple suivant montre comment fournir des informations d’identification Git pour plusieurs référentiels privés à l’aide du credential.<url>.helper
modèle.
- name: Authenticate private registries
shell: bash
run: |
git config --global credential.https://github.com/vcpkg/private_registry.helper '!f() { echo username=unused; echo password=${{secrets.private_registry_pat}}; }; f'
git config --global credential.https://github.com/vcpkg/secret_registry.helper `!f() { echo username=unused; echo password=${{secrets.secret_registry_pat}}; }; f'