GitHub Enterprise (Self-Hosted)
Conecte uma instância self-hosted do GitHub Enterprise Server ao Obtrace para acesso a repositórios e PRs de remediação automatizados.
Visao geral
O Obtrace suporta GitHub Enterprise Server (GHES) junto com o GitHub.com. Cada tenant pode se conectar a uma instancia self-hosted diferente, permitindo que organizacoes que rodam sua propria infraestrutura GitHub utilizem todas as funcionalidades do Obtrace: catalogo de repositorios, contexto de arquivos para analise de IA, PRs de remediacao automatizados e rastreamento de resultados de correcoes.
Pre-requisitos
- GitHub Enterprise Server 3.0+
- Um GitHub App registrado na sua instancia GHES
- Conectividade de rede entre o Obtrace e o endpoint da API GHES
- Certificado TLS confiavel pelo Obtrace (certificados auto-assinados requerem configuracao do CA bundle)
Passo 1: Registrar um GitHub App na sua instancia GHES
- Navegue ate
https://SEU-HOST-GHES/settings/apps/new - Preencha os detalhes da aplicacao:
- GitHub App name:
Obtrace - Homepage URL: URL do frontend do Obtrace
- Callback URL:
https://SEU-HOST-OBTRACE/oauth/callback/github-self - Setup URL:
https://SEU-HOST-OBTRACE/oauth/github-app/setup - Webhook URL:
https://SEU-HOST-OBTRACE/webhooks/github
- GitHub App name:
- Configure as permissoes necessarias:
- Repository contents: Read & Write
- Pull requests: Read & Write
- Checks: Read
- Metadata: Read (obrigatorio)
- Inscreva-se nos eventos:
- Pull request
- Gere uma chave privada e faca o download
- Anote o App ID, Client ID e Client secret
Passo 2: Configurar variaveis de ambiente do Obtrace
Defina estas variaveis de ambiente no servico control-plane-api:
Passo 3: Conectar um repositorio na UI do Obtrace
- Va em Settings > Projects > Seu Projeto > Apps > Sua App > Repositories
- Clique em Connect Repository
- Selecione GitHub como provider
- Insira o hostname do GHES no campo Host (ex:
github.minhaempresa.com) - Instale o GitHub App na sua instancia GHES quando solicitado
- Selecione o repositorio e a branch
- Salve a conexao
Passo 4: Configurar o webhook
Para rastreamento de resultados de correcoes (medir se as correcoes automatizadas reduzem taxas de erro), configure o webhook no GHES:
- Va nas configuracoes do GitHub App no GHES
- Em Webhook, defina a URL para:
https://SEU-HOST-OBTRACE/webhooks/github - Defina o secret para corresponder ao
CONTROL_PLANE_GITHUB_APP_WEBHOOK_SECRET - Selecione eventos de Pull request
- Ative o webhook
Como funciona
Quando um repositorio e conectado com um valor de host:
- Todas as chamadas da API GitHub usam
https://SEU-HOST-GHES/api/v3ao inves dehttps://api.github.com - Tokens de instalacao do GitHub App sao criados contra sua instancia GHES
- PRs de remediacao sao criados na sua instancia GHES
- Conteudo de arquivos e obtido da sua instancia GHES para contexto de IA
- Assinaturas de webhook sao verificadas usando o secret configurado
Referencia da API
Conectar um repositorio
Listar repositorios da instancia self-hosted
Requisitos de rede
| Origem | Destino | Porta | Protocolo |
|---|---|---|---|
| Obtrace control-plane | GHES API | 443 | HTTPS |
| GHES webhooks | Obtrace control-plane | 443 | HTTPS |
Solucao de problemas
Erros de certificado
Se o GHES usa certificado auto-assinado ou CA interna, garanta que o CA bundle esteja disponivel no container do control-plane:
Compatibilidade de versao da API
O Obtrace usa a versao da API GitHub 2022-11-28. Garanta que sua versao do GHES suporte esta versao (GHES 3.0+).
Falhas na renovacao de tokens
Se a renovacao de tokens OAuth falhar, o usuario pode precisar re-autorizar o GitHub App na instancia GHES. Verifique o status da conexao em Settings > Git Connections.