Nota: Actualmente los ejecutores hospedados en GitHub no se admiten en GitHub Enterprise Server. Puede ver más información sobre la compatibilidad futura planeada en GitHub public roadmap.
Las GitHub Actions en GitHub Enterprise Server están diseñadas para funcionar como ambientes sin acceso completo a la internet. De manera predeterminada, los flujos de trabajo no pueden usar acciones de GitHub.com y GitHub Marketplace.
El acercamiento recomendado para habilitar el acceso a las acciones de GitHub.com es habilitar el acceso automático para todas las acciones. Puede hacer esto si usa GitHub Connect para integrar GitHub Enterprise Server con GitHub Enterprise Cloud. Para obtener más información, vea "Habilitar el acceso automático a las acciones de GitHub.com mediante GitHub Connect".
Pero si quiere tener un control más estricto sobre qué acciones se permiten en su empresa, seguir esta guía para utilizar la herramienta actions-sync
de código abierto de GitHub para sincronizar los repositorios de acciones individuales de GitHub.com a su empresa.
Acerca de la herramienta actions-sync
La herramienta actions-sync
debe ejecutarse en una máquina que pueda acceder a la API de GitHub.com y a la API de su instancia de GitHub Enterprise Server. La máquina no necesita estar conectada a ambas al mismo tiempo.
Si la máquina tiene acceso a ambos sistemas al mismo tiempo, puede realizar la sincronización con un único comando actions-sync sync
. Si solo puede acceder a un sistema a la vez, puede usar los comandos actions-sync pull
y push
.
La herramienta actions-sync
solo puede descargar acciones de GitHub.com que estén almacenadas en repositorios públicos.
Prerrequisitos
-
Antes de utilizar la herramienta
actions-sync
, debe asegurarse de que todas las organizaciones de destino ya existen en su empresa. En el siguiente ejemplo se demuestra cómo sincronizar acciones en una organización denominadasynced-actions
. Para más información, vea "Creación de una organización desde cero". -
Debes crear un token de acceso personal (PAT) en tu empresa que pueda crear y escribir en los repositorios de las organizaciones destino. Para obtener más información, vea "Crear un token de acceso personal".
-
Si quiere sincronizar las acciones incluidas en la organización
actions
en your GitHub Enterprise Server instance, debe ser un propietario de la organizaciónactions
.Nota: De manera predeterminada, los administradores del sitio no son los propietarios de la organización agrupada
actions
.Los administradores del sitio pueden usar el comando
ghe-org-admin-promote
en el shell administrativo para promover a un usuario como propietario de la organización agrupadaactions
. Para obtener más información, vea "Acceder al shell administrativo (SSH)" y "ghe-org-admin-promote
".ghe-org-admin-promote -u USERNAME -o actions
Example: Using the actions-sync
tool
This example demonstrates using the actions-sync
tool to sync an individual action from GitHub.com to an enterprise instance.
Note: This example uses the actions-sync sync
command, which requires concurrent access to both the GitHub.com API and your enterprise instance's API from your machine. If you can only access one system at a time, you can use the actions-sync pull
and push
commands. For more information, see the actions-sync
README.
-
Download and extract the latest
actions-sync
release for your machine's operating system. -
Create a directory to store cache files for the tool.
-
Run the
actions-sync sync
command:./actions-sync sync \ --cache-dir "cache" \ --destination-token "aabbccddeeffgg" \ --destination-url "https://my-ghes-instance" \ --repo-name "actions/stale:synced-actions/actions-stale"
El comando anterior utiliza los siguientes argumentos:
-
--cache-dir
: el directorio de la caché en la máquina que ejecuta el comando. -
--destination-token
: un token de acceso personal para la instancia de empresa de destino. -
--destination-url
: la dirección URL de la instancia de empresa de destino. -
--repo-name
: el repositorio de acciones que se va a sincronizar. Este toma el formatoowner/repository:destination_owner/destination_repository
.- En el ejemplo anterior se sincroniza el repositorio
actions/stale
con elsynced-actions/actions-stale
en la instancia de empresa de destino. Debe crear la organización denominadasynced-actions
en su empresa antes de ejecutar el comando anterior. - Si omite
:destination_owner/destination_repository
, la herramienta usa el nombre original del propietario y del repositorio para la empresa. Antes de ejecutar el comando, debes crear una organización nueva en tu empresa, la cual empate con el nombre de propietario de la acción. Considera utilizar una organización central para almacenar las acciones sincronizadas en tu empresa, ya que esto significa que no necesitarás crear varias organizaciones nuevas si sincronizas las acciones de propietarios diferentes. - Puede sincronizar varias acciones reemplazando el parámetro
--repo-name
por--repo-name-list
o--repo-name-list-file
. Para obtener más información, vea el archivo LÉAME deactions-sync
.
- En el ejemplo anterior se sincroniza el repositorio
-
-
Después de que se haya creado el repositorio de acción en tu empresa, las personas en tu empresa pueden utilizar el repositorio de destino para referenciar la acción en sus flujos de trabajo. Para la acción de ejemplo que se muestra a continuación:
uses: synced-actions/actions-stale@v1
Para obtener más información, vea "Sintaxis de flujo de trabajo para Acciones de GitHub".