O modelo de solicitação de solicitação do GitHub pode ser usado para implementar aprovações posteriores?


7

A resposta aceita para " Quais são as possíveis implementações (ou exemplos) do princípio dos quatro olhos? " Sugere que o modelo Pull Request do GitHub é uma possível implementação.

E minha própria resposta para " Como implementar o princípio dos quatro olhos para correções de emergência? " Explica o conceito de pós-aprovações .

Minha pergunta : O modelo Pull Request do GitHub também pode ser usado para implementar aprovações pós? Se sim: como? Caso contrário, há mais alguma coisa no Git (GitHub?) Que eu poderia usar para isso?


A descrição do processo de contribuição do chef faz sentido? citá-lo com um link seria plágio, e acho que não adicionarei nada em cima da dica.
Tensibai 27/03

Bonjoiur @Tensibai ... Eu não entendo como esse processo pode ser usado / considerado para essas aprovações pós (deve ser eu quem não o entende). Talvez você deva adicionar uma resposta (com referência a esse link) e explicar por que você acha que esse processo responde à minha pergunta?
Pierre.Vriens

Suponho que vou repetir um monte do que Richard já disse. O ponto principal é que os mantenedores têm o direito de mesclar no master, para que possam seguir o mesmo esquema, aprovando seu próprio trabalho e ainda podendo revisá-lo posteriormente.
Tensibai 27/03

Tudo somado, este é o caminho Github para set no lugar sua resposta ligada na sua pergunta :)
Tensibai

Respostas:


3

Sim, acredito que sim. Para explicar que preciso estabelecer algumas bases para implementar algo semelhante, simplifiquei o modelo na tentativa de torná-lo o mais claro possível.

Premissas

Estou assumindo aqui que Jenkins, TeamCity ou similar está sendo usado como a ferramenta de CI / CD de sua escolha. Além disso, o GitHub está sendo usado e existe uma estrutura de ramificação bem definida e adequadamente controlada :

Diagrama de ramificação

Configuração

Neste exemplo, o GitHub está configurado da seguinte maneira:

  • A ramificação 'Master' preta só pode ser mesclada usando solicitações pull , confirmações diretas não são permitidas.
  • O ramo 'Desenvolvimento' da Blue pode aceitar confirmações diretas ou mesclagens; na prática, pode haver restrições adicionais nesse ramo.
  • O ramo 'Hotfix' vermelho pode aceitar confirmações diretas e mesclagens.
  • As verificações de status necessárias são ativadas no modo estrito para impedir que as solicitações pull sejam mescladas quando a ramificação está com falha na construção.
  • Se a ramificação de hotfix estiver à frente do mestre, as solicitações de recebimento no mestre serão bloqueadas, com a API de status ou os ganchos de pré-recebimento no GitHub Enterprise .

As ferramentas de CI / CD estão configuradas da seguinte maneira:

  • As compilações da ramificação Desenvolvimento não podem ser implantadas na produção.
  • Construções do Master podem ser implantadas em todos os ambientes.
  • As compilações do Hotfix podem ser implantadas em todos os ambientes.
  • As implantações do Hotfix notificarão alguma função que não seja de desenvolvimento, por exemplo, a equipe Alterar / Liberar e solicitarão que eles executem a pós-aprovação .

Notas

O Mestre está protegido, pois representa o estado atual da produção. Para fazer isso praticamente, você pode ter outra ramificação "Release" da qual as implantações são feitas e somente quando a fusão for bem-sucedida na ramificação Master.

Pontos chave

O ramo de desenvolvimento azul é basicamente um tudo para todos. O hotfix é um tipo gratuito, mas todas as implantações acionam um tipo de Break Glass notificando uma função de não desenvolvimento que executará a pós-aprovação e, no processo, mesclará a alteração no Master.

É essencial mesclar na parada Master enquanto o Hotfix está à frente do Master para:

  1. Impedir que uma implantação do mestre substitua o hotfix, o que pode resultar em uma regressão.
  2. Impedir que um hotfix fique no ramo de hotfix definhando sem ser mesclado.

Em algumas organizações, pode ajudar a impedir todos os envios para o repositório central do GitHub enquanto um Hotfix está pendente de pós-aprovação.


Bom Richard, merci! Vou digerir algumas das coisas que você escreveu na sua resposta e, possivelmente, adicionar alguns comentários extras mais tarde para esclarecer / concluir algumas das coisas sobre as quais você escreveu. Onde apropriado, também posso adicionar perguntas de acompanhamento. Está familiarizado com algo como "a resposta a uma pergunta desencadeia 10 novas perguntas ..."?
Pierre.Vriens

@ Pierre.Vriens, por favor, faça muitas perguntas, eu efetivamente extraí o acima da implementação de um cliente do GitHub Enterprise e Jenkins e inteiramente da memória - é possível que eu tenha perdido algo, levei 4 horas para escrevê-lo como eu estava verificando com muito cuidado. Quanto a "a resposta a uma pergunta desencadeia 10 novas perguntas", é muito comum em consultoria.
Richard Slater

Você já teve a chance de colocar as perguntas no "papel"? É um prazer falar sobre isso no chat, se você preferir.
Richard Slater
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.