Há três maneiras diferentes para o envio de Deploy para Code Review. Antes de realizar o deploy do código para os analistas de segurança da Conviso, é fundamental escolher dentre as estratégias disponíveis a que mais se adeque ao repositório.

Com tags, ordenado por tempo

Essa abordagem é ideal para projetos em que há uma única linha de releases em desenvolvimento e as tags anteriores são descontinuadas. Por exemplo, em um projeto fictício, foram criadas as tags abaixo:

  • 0.1.0 criada em 10/10/2017

  • 1.0.0 criada em 01/02/2018

  • 1.1.1 criada em 01/04/2018

  • 2.0.0 criada em 02/04/2019

Ao fazer deploy na versão com tag 2.0.0, o teor do código enviado para a Conviso será o diff entre as versões 2.0.0 e 1.1.1, pois a seleção foi realizada por ordem cronológica.

Com tags, ordenado pelo formato de versionamento

Diferente da abordagem anterior, esta é mais indicada para versionamentos mais complexos, onde o uso de tags é mais intenso, geralmente mantidas múltiplas versões em desenvolvimento. Por exemplo, em outro projeto fictício, foram criadas as tags abaixo:

  • 0.1.0 criada em 10/10/2017

  • 1.0.0 criada em 01/02/2018

  • 1.1.1 criada em 01/04/2018

  • 2.0.0 criada em 02/04/2019

  • 1.2.1 criada em 05/04/2019

No cenário acima, ao fazer deploy na versão com tag 1.2.1, o teor do código enviado para a Conviso será o diff entre as versões 1.2.1 e 1.1.1, pois a seleção foi realizada pelo formato de versionamento.

OBS: Note que neste cenário, caso tivesse sido selecionado a estratégia anterior, o diff realizado seria com a release 2.0.0, o que seria incorreto pois está a frente do desenvolvimento da 1.2.1.

Sem tags, ordenado pela árvore do git

Essa última abordagem difere das outras duas pois não utiliza as tags, para o diff é utilizada a própria linha do tempo do git. Por exemplo, em um terceiro projeto fictício, temos as estrutura abaixo:

Do cenário acima podemos citar alguns possíveis deploys:

1 - Deploy no branch feature-branch, no commit B: teor do código enviado para a Conviso será o diff entre os commits B e A;

2 - Deploy no branch dev, no commit A: teor do código enviado para a Conviso será o diff entre os commits Z e A.

3 - Deploy no branch prod, no commit D: teor do código enviado para a Conviso será o diff entre os commits D e A.

4 - Deploy no branch prod, no commit A: teor do código enviado para a Conviso será o diff entre os commits X e A.

E assim sucessivamente a política fará diff do commit atual com o commit anterior do branch atual, respeitando a árvore do repositório.

Encontrou sua resposta?