Predeterminadamente, el flujo de trabajo de GitHub Actions para una configuración de compilación previa solo puede acceder al contenido de su propio repositorio. Es posible que el proyecto use recursos adicionales, ubicados en otro lugar, para compilar el entorno de desarrollo.
Permitir que una precompilación tenga acceso de lectura a recursos externos
Puedes configurar el acceso de lectura a otros repositorios de GitHub, con el mismo propietario del repositorio, especificando permisos en el archivo devcontainer.json
usado por la configuración de precompilación. Para obtener más información, vea «Administración del acceso a otros repositorios dentro del codespace».
Notas:
- Solo puede autorizar permisos de lectura de esta manera y el propietario del repositorio de destino debe ser el mismo que el propietario del repositorio para el que va a crear la precompilación. Por ejemplo, si va a crear una configuración de precompilación para
octo-org/octocatrepository
, podrá conceder permisos de lectura para otros repositorios, comoasocto-org/octodemo
, si se especifica en el archivodevcontainer.json
y siempre que usted mismo cuente con los permisos. - No se pueden usar caracteres comodín para especificar repositorios. Debe definir permisos para cada repositorio para el que quiera conceder acceso.
Al crear o editar una configuración de precompilación para un archivo devcontainer.json
que configura el acceso de lectura a otros repositorios con el mismo propietario del repositorio, se te pedirá que concedas estos permisos al hacer clic en Crear o Actualizar. Para obtener más información, vea «Configuración de precompilaciones».
Permitir que una precompilación tenga acceso de escritura a recursos externos
Si el proyecto requiere acceso de escritura a los recursos o si los recursos externos residen en un repositorio con un propietario diferente al del repositorio para el que va a crear una configuración de precompilación, puede usar un personal access token para conceder este acceso.
Tendrás que crear una cuenta personal y, después, usarla para crear un personal access token (classic) con los ámbitos adecuados.
-
Cree una cuenta personal en GitHub.
Advertencia: Aunque puedes generar el personal access token (classic) con la cuenta personal existente, se recomienda crear una con acceso solo a los repositorios de destino necesarios para el escenario. Esto se debe a que el permiso
repository
del token de acceso concede acceso a todos los repositorios a los que tiene acceso la cuenta. Para obtener más información, vea «Creación de una cuenta en GitHub» y «Fortalecimiento de seguridad para GitHub Actions». -
Conceda a la nueva cuenta acceso de lectura a los repositorios necesarios. Para obtener más información, vea «Administrar el acceso de una persona a un repositorio de una organización».
-
Mientras estés conectado a la nueva cuenta, crea un personal access token (classic) con el ámbito
repo
. Opcionalmente, si la precompilación tiene que descargar paquetes de GitHub Container registry, seleccione también el ámbitoread:packages
. Para obtener más información, vea «Administración de tokens de acceso personal».Si en la precompilación se va a usar un paquete de GitHub Container registry, tendrá que conceder a la nueva cuenta acceso al paquete, o bien configurar el paquete para heredar los permisos de acceso del repositorio que se va a precompilar. Para obtener más información, vea «Configurar la visibilidad y el control de accesos de un paquete».
-
Copie la cadena del token. Lo asignará a un secreto de repositorio de Codespaces.
-
Vuelva a iniciar sesión en la cuenta que tiene acceso de administrador al repositorio.
-
En el repositorio para el que quieres crear precompilaciones de GitHub Codespaces, crea un secreto de repositorio de Codespaces con el nombre
CODESPACES_PREBUILD_TOKEN
y asígnale el valor del token que has creado y copiado. Para obtener más información, vea «Administración de secretos del entorno de desarrollo para el repositorio o la organización».
El personal access token se usará para todas las precompilaciones posteriores creadas para el repositorio. A diferencia de otros secretos de repositorio de Codespaces, el secreto CODESPACES_PREBUILD_TOKEN
solo se usa para la precompilación y no estará disponible para usarlo en los codespaces creados desde el repositorio.