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'