Skip to content

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.io e 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.

Orbit by Cortex Labs