obtenha o hash do git future commit antes que o PR seja mesclado [duplicado]

Oct 19 2020

Eu tenho algum cenário específico. Eu levantei um PR. Existem vários compromissos para este PR.

Agora preciso obter o hash de confirmação, que será gerado após mesclar este PR ao master. É possível obter o hash do commit antes de mesclá-lo?

suponha que um componente do aplicativo seja: xyz

  1. criamos um PR para esse branch de recurso para dominar jenkins -> inicia a construção do PR -> implantar o aplicativo em um nó -> plugin jacoco no aplicativo cria um arquivo exec

  2. A fusão de PR ocorreu a partir da construção mestre -> nenhuma implantação para CC agora ...

  3. Após a implantação ser concluída, a partir de um local separado, o trabalho de cobertura de CC é acionado -> que pegará o arquivo exec e o enviará para o sonar.

  4. aqui eu estava tentando fazer como .. o nome do arquivo exec terá o <Future_git_commit_hash> _xyz.exec

  5. no trabalho de cobertura CC, vou verificar este commit_id ... e depois enviar para o sonar. (aqui geralmente não precisamos do commit_id, mas só podemos fazer checkout e enviar para o sonar) ...

O problema surge se: antes de empurrar para o sonar, novamente mais um PR for levantado. e um novo arquivo exec é criado. então eu estava pensando em ter o ID do commit para que eu possa diferenciar.

de qualquer maneira, se não for possível obter o commitid antes da fusão ... é necessário verificar outras abordagens.

Respostas

1 LeGEC Oct 19 2020 at 08:30

Não, não é possível.

Um commit contém a descrição de elementos como:

  1. o autor do commit,
  2. o conteúdo do commit (a lista de arquivos + diretórios que compõem este commit),
  3. os pais do commit
  4. o carimbo de data / hora em que o commit é criado

O hash de um commit é um hash de todas essas informações. Como não é possível adivinhar de antemão a data e hora em que o commit ocorrerá, você não pode adivinhar de antemão qual será o hash.


Imagino que você queira usar esse hash para algum processamento: a forma genérica é fazer com que a plataforma que lida com o PR (github? Azure devops?) Acione um script ou uma chamada de API após o PR ter sido aceito e mesclado.

1 RomainValeri Oct 19 2020 at 08:30

Não, isso é impossível, pois a hora exata será incluída no hash do commit de mesclagem.