Skip to main content

Sincronización manual de acciones desde GitHub.com

Para los usuarios que necesiten acceso a las acciones de GitHub.com, puedes sincronizar las acciones específicas a tu empresa.

Nota:

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

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.

Se recomienda habilitar el acceso automático a las acciones públicas mediante GitHub Connect para integrar GitHub Enterprise Server con GitHub Enterprise Cloud. Consulta AUTOTITLE.

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 de acciones individuales desde GitHub.com hacia su empresa.

Cuando se actualiza 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 utilizas para actualizar acciones, siempre debes volver a ejecutar después de cualquier actualización de GitHub Enterprise Server (principal o secundaria) para asegurarte de que las acciones permanecen actualizadas.

Acerca de la herramienta

La herramienta debe ejecutarse en una máquina que pueda acceder a la API de GitHub.com y a la API de tu 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 . Si solo puede acceder a un sistema a la vez, puede usar los comandos y .

La herramienta solo puede descargar acciones de GitHub.com que estén almacenadas en repositorios públicos.

Nota:

La 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 . Esto indica que un flujo de trabajo utilizó esa acción directamente en GitHub.com y que su espacio de nombres se retiró en tu instancia de GitHub Enterprise Server. Consulta AUTOTITLE.

Requisitos previos

  • Antes de utilizar la herramienta , 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 . Consulta AUTOTITLE.

  • Debes crear un personal access token en tu empresa que pueda crear y escribir en los repositorios de las organizaciones de destino. Consulta AUTOTITLE.

  • Si quieres sincronizar las acciones incluidas en la organización en tu instancia de GitHub Enterprise Server, debes ser un propietario de la organización .

    Nota:

    De manera predeterminada, los administradores del sitio no son los propietarios de la organización agrupada .

    Los administradores del sitio pueden usar el comando en el shell administrativo para promover a un usuario como propietario de la organización agrupada . Consulta AUTOTITLE y AUTOTITLE.

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

Ejemplo: uso de la herramienta

Este ejemplo demuestra el uso de la herramienta para sincronizar una acción individual de GitHub.com con una instancia empresarial.

Nota:

Este ejemplo utiliza el comando que requiere un acceso simultáneo tanto a la API GitHub.com como a la API de instancia empresarial de tu máquina. Si solo puede acceder a un sistema a la vez, puede usar los comandos y . Consulte el LÉAME.

  1. Descarga y extrae la versió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 tu terminal, cambia al directorio que se encuentra 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 \
      --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:

    • : el directorio de la caché en la máquina que ejecuta el comando.

    • : un personal access token para la instancia empresarial de destino.

    • : la dirección URL de la instancia de empresa de destino.

    • : el repositorio de acciones que se va a sincronizar. Este toma el formato .

      • En el ejemplo anterior se sincroniza el repositorio con el en la instancia de empresa de destino. Debe crear la organización denominada en su empresa antes de ejecutar el comando anterior.
      • Si omite un parámetro específico, la herramienta usará el nombre original del propietario y del repositorio para tu 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 por o . Consulte el LÉAME.
  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 AUTOTITLE.