Condividi tramite


Esercitazione: Autenticare registri basati su Git vcpkg in GitHub Actions

Quando si usa vcpkg con registri privati, è necessario fornire le credenziali di accesso per autenticare le operazioni Git eseguite internamente da vcpkg.

In questa esercitazione si apprenderà come autenticare un repository Git privato da usare nel flusso di lavoro di GitHub Actions.

Prerequisiti

  • Un account GitHub
  • Un registro Git vcpkg privato ospitato in GitHub
  • vcpkg

1 - Creare un token di accesso personale per il repository privato

Seguire le istruzioni in GitHub per generare un token di accesso personale (PAT) con granularità fine e concedergli l'autorizzazione per accedere al repository privato in cui è ospitato il registro Git vcpkg.

2 - Creare un segreto GitHub Actions da usare nel flusso di lavoro

Nota

Non archiviare mai un token di accesso personale GitHub nei file del repository

Il passaggio successivo consiste nel seguire le istruzioni di GitHub per archiviare il pat come segreto disponibile nei flussi di lavoro di GitHub Actions.

3 - Eseguire l'autenticazione nei repository Git privati nel flusso di lavoro

A questo punto è possibile aggiungere un passaggio di autenticazione al flusso di lavoro, usare il modello seguente nel file YAML del flusso di lavoro. Sostituire PRIVATE_REPO_URL con l'URL del repository privato, ad esempio: https://github.com/Microsoft/secret-vcpkg-registry; sostituire PRIVATE_REGISTRY_PAT con il nome della variabile privata creata nel passaggio precedente.

Questo passaggio del flusso di lavoro deve essere eseguito prima di qualsiasi altro passaggio del flusso di lavoro che richiama 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'

Esempio con più repository privati

L'esempio seguente illustra come fornire le credenziali Git per più repository privati usando il credential.<url>.helper modello .

    - 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'