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 recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.
Versão do artigo: Enterprise Server 2.18

Criar um ambiente de hook pre-receive

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

Neste artigo

Um ambiente pre-receive para o GitHub Enterprise Server é um ambiente Linux chroot. 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 os seguintes pacotes: awk, bash, coreutils, curl, find, gnupg, grep, jq, sed.

Se você tiver algum requisito específico não atendido por esse ambiente, como suporte a determinado idioma, é possível criar e fazer upload do seu próprio ambiente Linux chroot 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. Ensure Docker is installed locally.

  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 que contém Dockerfile.alpine-3.3, crie 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 Docker para um arquivo tar compactado por gzip:

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

    O arquivo alpine-3.3.tar.gz está pronto para o upload no appliance do GitHub Enterprise Server.

Criar um ambiente de hook pre-receive usando chroot

  1. Crie um ambiente Linux chroot.

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

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

    Observações:

    • Do not include leading directory paths of files within the tar archive, such as /path/to/chroot.
    • /bin/sh must exist and be executable, as the entry point into the chroot environment.
    • Unlike traditional chroots, the dev directory is not required by the chroot environment for pre-receive hooks.

Para obter mais informações sobre como criar um ambiente chroot, consulte "Chroot" na Debian Wiki, "BasicChroot" na Ubuntu Community Help Wiki ou "Instalar Alpine Linux em chroot" na Alpine Linux Wiki.

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

  1. In the upper-right corner of any page, click .
    Ícone de foguete para acessar as configurações de administrador do site
  2. In the left sidebar, click Enterprise.
    Enterprise tab in the Site admin settings
  3. In the enterprise account sidebar, click Settings.
    Settings tab in the enterprise account sidebar
  4. Under " Settings", click Hooks.
    Hooks tab in the enterprise account settings sidebar
  5. Clique em Manage environments (Gerenciar ambientes).
    Gerenciar ambientes
  6. Clique em Add environments (Adicionar ambientes).
    Adicionar ambiente
  7. Digite o nome desejado no campo Environment name (Nome do ambiente).
    Nome do ambiente
  8. Informe a URL do arquivo *.tar.gz que contém o ambiente.
    Fazer upload de um ambiente a partir da URL
  9. Clique em Add environments (Adicionar ambientes).
    Botão Adicionar ambiente

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

  1. Faça upload do arquivo legível *.tar.gz que contém o seu ambiente para um host na web e copie a URL, ou transfira o arquivo para o appliance do GitHub Enterprise Server via scp. Ao usar o scp, você deve ajustar as permissões do arquivo *.tar.gz para que ele seja legível.

  2. Conecte-se ao shell administrativo.

  3. Use o comando ghe-hook-env-create e digite o nome que você deseja para o ambiente como o primeiro argumento. Em seguida, informe o caminho local completo ou a URL do arquivo *.tar.gz que contém seu ambiente como 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.

Pergunte a uma pessoa

Não consegue encontrar o que procura?

Entrar em contato