Visão geral
O ZeroPath se conecta a instâncias auto-hospedadas do GitHub Enterprise Server (GHES) por meio de um GitHub App que você cria na sua própria instância. Uma vez conectado, você pode importar repositórios, executar scans completos, escanear pull requests, publicar verificações de status e comentários inline, abrir pull requests de correção para achados validados e visualizar achados de dependências no painel Supply Chain. Essas são as mesmas funcionalidades que o ZeroPath oferece para o GitHub.com. A conexão é configurada com o fluxo de App Manifest do GitHub: você insere a URL da sua instância no ZeroPath, revisa o app na sua instância e confirma a sua criação. O ZeroPath recebe as credenciais do app da sua instância, armazena-as criptografadas e instala o app nas organizações que você escolher. Você nunca copia um client secret ou uma chave privada manualmente.Pré-requisitos
- Uma organização no ZeroPath onde você possa criar instalações de VCS e repositórios.
- Uma instância do GitHub Enterprise Server que seja:
- acessível pelo ZeroPath via HTTPS (HTTP simples é rejeitado), e
- resolvível por DNS público.
- Permissão na instância para criar um GitHub App (via fluxo de App Manifest) e para instalar o app na organização de destino. Se você não puder instalar apps diretamente, sua solicitação de instalação é enviada a um proprietário da organização para aprovação.
- A capacidade de atualizar sua lista de permissões de rede / firewall para que os IPs de saída do ZeroPath alcancem sua instância, e para que sua instância consiga entregar webhooks de volta ao ZeroPath. Consulte Rede e firewall.
Conecte o GitHub Enterprise Server
Abra a configuração do GitHub Enterprise Server
Libere o ZeroPath no seu firewall
Insira a URL da sua instância
https://github.your-company.com. A URL
deve ser uma origem HTTPS que resolva por DNS público. O ZeroPath rejeita github.com e seus
aliases, bem como hosts que resolvem para endereços privados, de loopback ou link-local.Escolha como o ZeroPath confia no seu certificado TLS
- Publicly-trusted certificate - o padrão. Você não precisa fornecer mais nada.
- Internal / self-signed - cole ou envie seu bundle de CA em formato PEM. O ZeroPath o armazena criptografado e o usa apenas para verificar o TLS da sua instância. O ZeroPath sempre verifica certificados; ele nunca desabilita a validação.
Crie o app na sua instância
zeropath-scanner. Revise as permissões e eventos solicitados (consulte
O que o app pode acessar) e então confirme em Create GitHub App.Instale o app na sua organização
Aguarde a sincronização
Adicione repositórios
O que o app pode acessar
O ZeroPath cria o app com o mesmo conjunto de permissões e eventos do seu GitHub App oficial, para que o scanning se comporte de forma idêntica no GitHub.com e no GitHub Enterprise Server. O app solicita estas permissões:push, pull_request, pull_request_review,
pull_request_review_comment, pull_request_review_thread, issues, issue_comment,
merge_group, member, membership, organization, repository, team, team_add e
custom_property_values.
Rede e firewall
A conexão precisa de tráfego em ambas as direções:- Do ZeroPath para a sua instância (saída do ZeroPath). O ZeroPath chama as APIs REST e
GraphQL da sua instância (em
https://<your-host>/api/v3ehttps://<your-host>/api), clona repositórios e conclui os handshakes de manifest e OAuth. Tudo isso se origina dos IPs de saída do ZeroPath exibidos no diálogo de configuração. Adicione-os à lista de permissões no firewall da sua instância. - Da sua instância para o ZeroPath (entrada no ZeroPath). Sua instância entrega eventos de webhook ao endpoint público do ZeroPath. Sua instância deve conseguir alcançar o ZeroPath pela internet pública para que scans de PR e atualizações de repositórios sejam acionados.
Certificados TLS
Se a sua instância apresenta um certificado com confiança pública, nenhuma configuração extra é necessária. Se ela usa um certificado interno ou autoassinado, forneça o bundle de CA (PEM) durante a configuração. O ZeroPath armazena o bundle criptografado e confia nele apenas para conexões com a sua instância. Ele não altera nenhum repositório de confiança global, e a verificação de certificados permanece habilitada o tempo todo.Importação de repositórios
O ZeroPath descobre repositórios a partir das organizações onde o app está instalado. Importe-os da mesma forma que nos outros provedores:- Repositório único - selecione um repositório e adicione-o.
- Lote selecionado - selecione vários repositórios e importe-os juntos.
- Adicionar todos - importe todos os repositórios acessíveis de uma vez.
Scan de PRs
Quando um pull request é aberto ou atualizado em um repositório conectado, sua instância entrega um webhook ao ZeroPath, que agenda um scan de PR sobre os arquivos alterados. Os resultados podem incluir:- Uma verificação de status do ZeroPath no pull request.
- Comentários de revisão inline nas linhas de diff afetadas.
- Um comentário de resumo no PR com o resultado do scan.
- Resolução automática de threads de comentários obsoletas quando os achados são corrigidos ou triados.
Pull requests de correção
Quando um achado é elegível para uma correção automática, o ZeroPath pode abrir um pull request na sua instância usando o mesmo fluxo de correção dos outros provedores:- Gerar um branch de correção.
- Fazer o commit da correção com a convenção padrão de mensagens de commit do ZeroPath.
- Abrir um pull request direcionado ao branch original.
- Adicionar contexto de resumo e vincular o PR de correção de volta ao achado no ZeroPath.
Múltiplas organizações e reconexão
- Múltiplas organizações em uma instância - o app
zeropath-scannerpode ser instalado em várias organizações da sua instância. Instale-o em cada organização cujos repositórios você quer escanear. - Reconexão - se você iniciar a configuração novamente para uma instância que o ZeroPath já registrou, ele pula a criação do app e envia você direto para a página de instalação. Se o app anterior foi excluído na sua instância, o ZeroPath registra um novo.
Solução de problemas
O ZeroPath rejeita a URL da minha instância
O ZeroPath rejeita a URL da minha instância
github.com e seus aliases são rejeitados, assim
como hosts que resolvem para endereços privados, de loopback, link-local ou de NAT de nível de operadora. Confirme
que sua instância tem um nome DNS público e um endpoint HTTPS acessível.Erros de TLS / certificado durante a configuração
Erros de TLS / certificado durante a configuração
O app foi criado, mas nenhum repositório aparece
O app foi criado, mas nenhum repositório aparece
'Create GitHub App' falha ou o fluxo expira
'Create GitHub App' falha ou o fluxo expira
Scans de PR ou atualizações de repositórios não são acionados
Scans de PR ou atualizações de repositórios não são acionados
Status, comentários ou PRs de correção não aparecem
Status, comentários ou PRs de correção não aparecem
Notas operacionais
- Desconectar uma instalação do GHES impede que novos scans sejam agendados para aquela conexão e remove os repositórios vinculados por meio dela. Repositórios protegidos pelo modo pesquisador são retidos até que o modo pesquisador seja desabilitado.
- Se você adicionar novas organizações após a configuração, instale o app nelas para que o ZeroPath possa descobrir seus repositórios.
- Apps e credenciais do GHES têm escopo por instância e são armazenados criptografados; conectar ou desconectar uma instância não afeta nenhuma outra instância nem a sua conexão com o GitHub.com.