Skip to main content
Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais atualizadas, acesse a documentação em inglês.

Criar um ambiente de hook pre-receive

Para executar hooks pre-receive, use o ambiente pre-receive padrão ou crie um ambiente personalizado.

Um ambiente de pré-recebimento do GitHub Enterprise Server é um ambiente chroot do Linux. Como são executados em todos os eventos de push, os hooks pre-receive devem ser rápidos e leves. Em geral, o ambiente necessário para tais verificações é mínimo.

O GitHub Enterprise Server fornece um ambiente padrão que inclui estes pacotes: awk, bash, coreutils, curl, find, gnupg, grep, jq e sed.

Se você tiver um requisito específico que não é atendido por esse ambiente, como suporte para uma linguagem específica, crie e carregue seu ambiente chroot do Linux de 64 bits.

Criar um ambiente de hook pre-receive usando o Docker

Você pode usar uma ferramenta de gerenciamento de contêineres do Linux para criar um ambiente de hook pre-receive. Este exemplo usa o Alpine Linux e o Docker.

  1. Verifique se o Docker está instalado localmente.

  2. Crie o arquivo Dockerfile.alpine-3.3 que contém estas informações:

    FROM gliderlabs/alpine:3.3
    RUN apk add --no-cache git bash
    
  3. No diretório de trabalho que contém Dockerfile.alpine-3.3, compile uma imagem:

    $ docker build -f Dockerfile.alpine-3.3 -t pre-receive.alpine-3.3 .
    > Sending build context to Docker daemon 12.29 kB
    > Step 1 : FROM gliderlabs/alpine:3.3
    >  ---> 8944964f99f4
    > Step 2 : RUN apk add --no-cache git bash
    >  ---> Using cache
    >  ---> 0250ab3be9c5
    > Successfully built 0250ab3be9c5
  4. Crie um contêiner:

    $ docker create --name pre-receive.alpine-3.3 pre-receive.alpine-3.3 /bin/true
  5. Exporte o contêiner do Docker para um arquivo tar compactado em gzip:

    $ docker export pre-receive.alpine-3.3 | gzip > alpine-3.3.tar.gz

    Este arquivo alpine-3.3.tar.gz está pronto para ser carregado no dispositivo do GitHub Enterprise Server.

Criar um ambiente de hook pre-receive usando chroot

  1. Crie um ambiente chroot do Linux.

  2. Crie um arquivo tar compactado em gzip do diretório chroot.

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

    Observações:

    • Não inclua os principais caminhos de diretório de arquivos no arquivo TAR, como /path/to/chroot.
    • /bin/sh precisa existir e ser executável, como o ponto de entrada no ambiente chroot.
    • Ao contrário dos chroots tradicionais, o diretório dev não é necessário para o ambiente chroot em ganchos de pré-recebimento.

Para obter mais informações sobre como criar um ambiente chroot, confira "Chroot" no wiki do Debian, "BasicChroot" no wiki de Ajuda da Comunidade do Ubuntu ou "Como instalar o Alpine Linux em um chroot" no wiki do Alpine Linux.

Fazer upload de um ambiente de hook pre-receive no GitHub Enterprise Server

  1. No canto superior à direita de GitHub Enterprise Server, clique na foto do perfil e clique em Configurações da empresa.

    A screenshot of the drop-down menu that appears when you click the profile photo on GitHub Enterprise Server. The "Enterprise settings" option is highlighted in a dark orange outline.

  2. Na barra lateral da conta corporativa, clique em Configurações. 1. Em " Configurações", clique em Ganchos.

  3. Clique em Gerenciar ambientes.

  4. Clique em Adicionar ambiente.

  5. No campo "Nome do ambiente", insira o nome desejado.

  6. No campo "Carregar ambiente de uma URL", insira a URL do arquivo *.tar.gz que contém seu ambiente.

  7. Clique em Adicionar ambiente.

Fazer upload de um ambiente de hook pre-receive via shell administrativo

  1. Carregue um arquivo *.tar.gz legível que contém seu ambiente em um host da Web e copie a URL ou transfira o arquivo para o dispositivo do GitHub Enterprise Server por meio de scp. Quando scp é usado, talvez seja necessário ajustar as permissões do arquivo *.tar.gz para que o arquivo seja legível.

  2. Conecte-se ao shell administrativo.

  3. Use o comando ghe-hook-env-create e digite o nome desejado para o ambiente como o primeiro argumento e o caminho local completo ou a URL de um arquivo *.tar.gz que contém o ambiente como o segundo argumento.

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