Partage via


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'