Tutorial: Autenticación de registros basados en Git vcpkg en Acciones de GitHub
Cuando se usa vcpkg con registros privados, es necesario proporcionar credenciales de acceso para autenticar las operaciones de Git ejecutadas internamente por vcpkg.
En este tutorial aprenderá a autenticar un repositorio git privado para usarlo en el flujo de trabajo de Acciones de GitHub.
Requisitos previos
- Una cuenta de GitHub
- Un registro de Git vcpkg privado hospedado en GitHub
- vcpkg
1- Creación de un token de acceso personal para el repositorio privado
Siga las instrucciones de GitHub para generar un token de acceso personal (PAT) específico y concederle permiso para acceder al repositorio privado donde se hospeda el registro de Git vcpkg.
2: Creación de un secreto de Acciones de GitHub para usarlo en el flujo de trabajo
Nota:
Nunca almacene un token de acceso personal de GitHub en los archivos del repositorio.
El siguiente paso es seguir las instrucciones de GitHub para almacenar el PAT como un secreto disponible en los flujos de trabajo de Acciones de GitHub.
3- Autenticación en repositorios de Git privados en el flujo de trabajo
Ahora es el momento de agregar un paso de autenticación al flujo de trabajo, use la siguiente plantilla en el archivo YAML del flujo de trabajo. Reemplace PRIVATE_REPO_URL
por la dirección URL del repositorio privado, por ejemplo: https://github.com/Microsoft/secret-vcpkg-registry
; reemplace por PRIVATE_REGISTRY_PAT
el nombre de la variable secreta que creó en el paso anterior.
Este paso de flujo de trabajo debe ejecutarse antes de cualquier otro paso de flujo de trabajo que invoque 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'
Ejemplo con varios repositorios privados
En el ejemplo siguiente se muestra cómo proporcionar credenciales de Git para varios repositorios privados mediante el credential.<url>.helper
patrón .
- 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'