Skip to main content

Esta versión de GitHub Enterprise Server se discontinuó el 2024-09-25. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise Server. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Crear un entorno de gancho de pre-recepción

Para ejecutar los ganchos de pre-recepción, usa el entorno de pre-recepción predeterminado o crea un entorno personalizado.

Un entorno previo a la recepción para GitHub Enterprise Server es un entorno chroot de Linux. Dado que los ganchos de pre-recepción se ejecutan en todos los eventos de extracción, deberían ser rápidos y livianos. Normalmente, el entorno necesario para tales verificaciones será mínimo.

GitHub Enterprise Server proporciona un entorno predeterminado que incluye estos paquetes: awk, bash, coreutils, curl, find, gnupg, grep, jq y sed.

Si su entorno no cumple con uno de los requisitos específicos, como compatibilidad con un idioma determinado, puede crear y cargar su propio entorno chroot en Linux de 64 bits.

La versión de Git que se usa en el entorno de enlace previo a la recepción debe ser al menos 2.11 o, si usa libgit2, debe usar al menos la versión 0.18. Si usa otra implementación de Git, esta debe admitir rutas de acceso relativas en el archivo info/alternates.

Crear un entorno de gancho de pre-recepción mediante Docker

Puedes usar una herramienta de administración de contenedores de Linux para crear un entorno de gancho de pre-recepción. En este ejemplo se usan Debian Linux y Docker.

  1. Asegúrese de que Docker está instalado localmente.

  2. Cree el archivo Dockerfile.debian que contiene esta información:

    FROM --platform=linux/amd64 debian:stable
    RUN apt-get update && apt-get install -y git bash curl
    RUN rm -fr /etc/localtime /usr/share/zoneinfo/localtime
    

Note

La imagen de Debian incluye algunos vínculos simbólicos de forma predeterminada, lo que, si no se quita, puede provocar errores al ejecutar scripts en el entorno personalizado. Los vínculos simbólicos se quitan en la última línea del ejemplo anterior.

  1. Desde el directorio de trabajo que contiene Dockerfile.debian, compile una imagen:

    $ docker build -f Dockerfile.debian -t pre-receive.debian .
    > [+] Building 0.6s (6/6) FINISHED                                                                   docker:desktop-linux
    > => [internal] load build definition from Dockerfile.debian                                                              
    > => [1/2] FROM docker.io/library/debian:latest@sha256:80dd3c3b9c6cecb9f1667e9290b3bc61b78c2678c02cbdae5f0fea92cc6  
    > => [2/2] RUN apt-get update && apt-get install -y git bash curl                                            
    > => exporting to image                                                                                             
    > => => exporting layers                                                                                            
    > => => writing image sha256:b57af4e24082f3a30a34c0fe652a336444a3608f76833f5c5fdaf4d81d20c3cc                       
    > => => naming to docker.io/library/pre-receive.debian 
    
  2. Crea un contenedor:

    docker create --name pre-receive.debian pre-receive.debian /bin/true
    
  3. Exporte el contenedor Docker a un archivo tar comprimido en gzip:

    docker export pre-receive.debian | gzip > debian.tar.gz
    

    Este archivo debian.tar.gz está listo para cargarse al dispositivo GitHub Enterprise Server.

Crear un entorno de gancho de pre-recepción mediante chroot

  1. Cree un entorno chroot de Linux.

  2. Cree un archivo tar comprimido en gzip del directorio chroot.

    cd /path/to/chroot
    tar -czf /path/to/pre-receive-environment.tar.gz .
    

    Note

    • No incluya las rutas de acceso iniciales del directorio de los archivos en el archivo tar, tales como /path/to/chroot.
    • /bin/sh debe existir y ser ejecutable como punto de entrada al entorno chroot.
    • A diferencia de los chroots tradicionales, el entorno de chroot para enlaces previos a la recepción no requiere el directorio dev.

Para obtener más información sobre cómo crear un entorno chroot, consulta Chroot desde la wiki de Debian o BasicChroot desde la wiki de ayuda de la comunidad de Ubuntu.

Cargar un entorno de pre-recepción en GitHub Enterprise Server

  1. En la esquina superior derecha de , haz clic en la foto de perfil y luego en Configuración de empresa.

    Captura de pantalla del menú desplegable que se muestra al hacer clic en la foto de perfil en GitHub Enterprise Server. La opción "Configuración empresarial" está resaltada.

  2. En el lado izquierdo de la página, en la barra lateral de la cuenta de empresa, haz clic en Configuración.

  3. En " Configuración", haz clic en Enlaces.

  4. Haga clic en Manage environments (Administrar entornos).

  5. Haga clic en Add environment (Agregar entorno).

  6. En el campo "Nombre del entorno", escribe el nombre deseado.

  7. En el campo "Cargar entorno desde una dirección URL", escribe la dirección URL del archivo *.tar.gz que contiene el entorno.

  8. Haga clic en Add environment (Agregar entorno).

Cargar un entorno de pre-recepción mediante el shell administrativo

  1. Cargue un archivo *.tar.gz legible que contenga su entorno a un host web y copie la URL o transfiera el archivo al dispositivo GitHub Enterprise Server mediante scp. Al usar scp, es posible que tenga que ajustar los permisos del archivo *.tar.gz para que sea legible en todo el mundo.

  2. Conecta con el shell administrativo.

  3. Usa el comando ghe-hook-env-create y escriba el nombre que quiera para el entorno como primer argumento, y la ruta de acceso local completa o la dirección URL de un archivo *.tar.gz que contenga su entorno como segundo argumento.

    admin@ghe-host:~$ ghe-hook-env-create DebianTestEnv /home/admin/debian.tar.gz
    > Pre-receive hook environment 'DebianTestEnv' (2) has been created.