obtenha o hash do git future commit antes que o PR seja mesclado [duplicado]
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
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
A fusão de PR ocorreu a partir da construção mestre -> nenhuma implantação para CC agora ...
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.
aqui eu estava tentando fazer como .. o nome do arquivo exec terá o <Future_git_commit_hash> _xyz.exec
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
Não, não é possível.
Um commit contém a descrição de elementos como:
- o autor do commit,
- o conteúdo do commit (a lista de arquivos + diretórios que compõem este commit),
- os pais do commit
- 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.
Não, isso é impossível, pois a hora exata será incluída no hash do commit de mesclagem.