Skip to main content

Sincronización manual de acciones desde GitHub.com

Para los usuarios que necesitan acceso a las acciones desde GitHub.com, puede sincronizar acciones específicas con su empresa.

Nota:

Actualmente los ejecutores hospedados por GitHub Enterprise Server no se admiten en GitHub.

GitHub Actions en GitHub Enterprise Server se diseñan para funcionar en ambientes sin acceso completo a internet. De manera predeterminada, los flujos de trabajo no pueden usar acciones de GitHub.com y GitHub Marketplace.

Recomendamos habilitar el acceso automático a las acciones públicas mediante GitHub Connect para integrar GitHub Enterprise Server con GitHub Enterprise Cloud. Consulta Habilitación del acceso automático a acciones de GitHub.com mediante GitHub Connect.

Si desea un control más estricto sobre qué acciones se permiten en su empresa, puede seguir esta guía para usar nuestra herramienta de código abierto actions-sync para sincronizar repositorios individuales de acciones desde GitHub.com a su empresa.

Al actualizar GitHub Enterprise Server, las acciones agrupadas se reemplazan automáticamente por las versiones predeterminadas del paquete de actualización. Es posible que no sean la versión más reciente disponible. Como procedimiento recomendado, si usa actions-sync para actualizar las acciones, siempre debe volver a ejecutarse actions-sync después de cualquier GitHub Enterprise Server actualización (principal o secundaria) para asegurarse de que las acciones permanecen actualizadas.

Acerca de la herramienta actions-sync

La herramienta actions-sync debe ejecutarse en un equipo 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 actions-sync herramienta solo puede descargar acciones de GitHub.com que se almacenan en repositorios públicos.

Nota:

La actions-sync herramienta está pensada para su uso en sistemas en los que GitHub Connect no está habilitado. Si ejecuta la herramienta en un sistema con GitHub Connect habilitado, es posible que vea el error The repository <repo_name> has been retired and cannot be reused. Esto indica que un flujo de trabajo ha usado esa acción directamente en GitHub.com y el espacio de nombres se retira en tu instancia de GitHub Enterprise Server. Consulta Habilitación del acceso automático a acciones de GitHub.com mediante GitHub Connect.

Requisitos previos

  • 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 denominada synced-actions. Consulta Crear una organización nueva desde cero.

  • Debe crear un personal access token en su empresa que pueda crear repositorios y escribir en ellos en las organizaciones de destino. Consulta Administración de tokens de acceso personal.

  • Si desea sincronizar las acciones incluidas de la organización actions en tu instancia de GitHub Enterprise Server, debe ser propietario de la organización actions.

    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 agrupada actions. Consulta Acceder al shell administrativo (SSH) y Utilidades de la línea de comandos.

    ghe-org-admin-promote -u USERNAME -o actions
    

Ejemplo: uso de la herramienta actions-sync

En este ejemplo se muestra el uso de la actions-sync herramienta para sincronizar una acción individual de GitHub.com a una instancia empresarial.

Nota:

En este ejemplo se usa el comando actions-sync sync, que requiere acceso simultáneo tanto a la API de GitHub.com como a la API de su instancia empresarial desde su equipo. Si solo puede acceder a un sistema a la vez, puede usar los comandos actions-sync pull y push. Consulte el archivo LÉAME de actions-sync.

  1. Descarga y extrae la actions-syncversión más reciente para el sistema operativo de la máquina.

  2. Crea un directorio para almacenar los archivos de caché para la herramienta.

  3. En el terminal, cambia al directorio bin dentro del directorio de versión que acabas de extraer. Por ejemplo:

    cd PATH/TO/gh_DATETIME_OS_ARCHITECTURE/bin
    
  4. Ejecute el comando actions-sync sync:

    ./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: Una personal access token para la instancia empresarial 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 formato owner/repository:destination_owner/destination_repository.

      • En el ejemplo anterior se sincroniza el repositorio actions/stale con el synced-actions/actions-stale en la instancia de empresa de destino. Debe crear la organización denominada synced-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 nueva organización en tu empresa que coincida con el nombre del 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. Consulte el archivo LÉAME de actions-sync.
  5. 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:

    # Este flujo de trabajo usa acciones que no GitHub no certifica.
    # Estas las proporcionan entidades terceras y las gobiernan
    # condiciones de servicio, políticas de privacidad y documentación de soporte
    # en línea.
    uses: synced-actions/actions-stale@v1
    

    Consulta Sintaxis del flujo de trabajo para Acciones de GitHub.