GitHub e previews
Conectando o GitHub
Na primeira vez que você conecta o GitHub, o Orbit pede ao GitHub para criar um App para este servidor. Ao instalar, o GitHub pergunta onde (a sua conta ou uma das suas organizações), e o App só consegue ler os repositórios que você escolher ali.
- Por que o App é público: o GitHub só instala um App privado na conta que o criou. Público só quer dizer que ele pode ser instalado em outro lugar. Qualquer pessoa vê a página dele, mas a chave fica no seu servidor, e o Orbit só usa a instalação confirmada pelo usuário do GitHub que conecta a partir do seu console.
- Pertencendo a uma organização: o Orbit pode criar o App em nome de uma organização, se a organização quiser tê-lo nas configurações dela.
- Nome e logo: o App se chama "Orbit <nome do servidor>", o que você pode mudar antes de criá-lo; o GitHub exige um nome que nenhum outro App use. O GitHub só aceita logo pela página de configurações do App, então Configurações → Integrações oferece o logo do Orbit e o link para essa página.
- Uma instalação por vez: para ler os repositórios de outra conta, desconecte e conecte de novo, escolhendo essa conta.
- Endereços: o GitHub te devolve para o endereço que você usava ao criar o App, então crie-o a partir de
https://orbit.<ip-do-servidor-com-traços>.sslip.ioe não por um túnel SSH. Se depois você acessar o Orbit por outro endereço, atualize no GitHub a callback URL do App para<novo endereço>/github/callback. - Onde fica a chave: a chave privada e os segredos do App ficam selados no cofre de segredos do Orbit e vão junto no
orbit backup. Desconectar esquece a instalação mas mantém o App. Apagar o App no GitHub faz o Orbit criar um novo na próxima conexão.
Deploy a cada push
- O App envia cada push para
https://orbit.<ip-do-servidor-com-traços>.sslip.io/github/webhook, assinado com um segredo que só o seu servidor conhece. - Um push na branch de uma aplicação publica aquele commit quando Publicar automaticamente está ligado nas configurações da aplicação. A mesma entrega duas vezes publica uma vez só.
- Em Apps criados por versões mais antigas, ligue o evento Push no GitHub (Permissions & events → Subscribe to events); Configurações → Integrações avisa enquanto ele estiver desligado.
Previews de pull request
Ligue os previews em Previews do projeto, ao lado dos ambientes, e escolha o ambiente que eles copiam e quantos podem rodar ao mesmo tempo (3 por padrão, no máximo 10).
Todo pull request aberto a partir de uma branch de um repositório que esse ambiente compila ganha um preview com o nome dele (pr-12):
- os serviços compilados daquele repositório, publicados a partir da branch do pull request, com as variáveis e segredos da origem;
- cópias vazias dos bancos que esses serviços referenciam, sem backups, então um preview nunca lê nem escreve seus dados reais;
- namespace e endereço gerado próprios (
<serviço>-pr-12-<projeto>.<ip-do-servidor-com-traços>.sslip.io).
Pushes na branch publicam o preview de novo. Fechar ou fazer merge do pull request remove o preview com os seus dados, e Remover faz o mesmo à mão.
- Forks: pull requests de forks nunca ganham preview, então código de fora do repositório nunca roda nos seus servidores.
- O limite: depois dele, um pull request ganha o preview no próximo push, quando outro fechar. Desligar os previews mantém os abertos até os pull requests fecharem.
- Apps mais antigos: os previews precisam de Pull requests: read e do evento Pull request. Adicione os dois no GitHub (Permissions & events) e aceite a nova permissão na instalação; a página de Previews avisa enquanto o evento faltar.