Holen Sie sich den Git Future Commit Hash, bevor PR zusammengeführt wird [Duplikat]

Oct 19 2020

Ich habe ein bestimmtes Szenario. Ich habe eine PR angehoben. Es gibt mehrere Commits für diese PR.

Jetzt muss ich den Commit-Hash abrufen, der nach dem Zusammenführen dieser PR zum Master generiert wird. Ist es möglich, den Commit-Hash vor dem Zusammenführen abzurufen?

Angenommen, eine Anwendungskomponente ist: xyz

  1. Wir haben eine PR für diesen Feature-Zweig erstellt, um Jenkins zu beherrschen -> PR-Build startet -> Bereitstellung der Anwendung auf einem Knoten -> Jacoco-Plugin in der Anwendung erstellt eine Exec-Datei

  2. PR-Zusammenführung geschah vom Master-Build -> jetzt keine Bereitstellung für CC ...

  3. Nach Abschluss der Bereitstellung wird von einem separaten Ort aus ein CC-Abdeckungsjob ausgelöst -> der die Exec-Datei nimmt und auf das Sonar überträgt.

  4. Hier habe ich versucht, es so zu machen. Der Name der Exec-Datei hat die <Future_git_commit_hash> _xyz.exec

  5. Im CC-Coverage-Job werde ich diese commit_id auschecken und dann auf Sonar drücken. (hier brauchen wir im Allgemeinen nicht die commit_id, Master nur können wir auschecken und zum Sonar pushen) ...

Das Problem tritt auf, wenn: vor dem Drücken auf Sonar erneut eine PR ausgelöst wird. und eine neue exec-Datei wird erstellt. Also dachte ich, ich hätte die Commit-ID, damit ich sie unterscheiden kann.

Wenn es nicht möglich ist, die Commitid vor dem Zusammenführen abzurufen, müssen andere Ansätze überprüft werden.

Antworten

1 LeGEC Oct 19 2020 at 08:30

Nein, das ist nicht möglich.

Ein Commit enthält die Beschreibung von Elementen wie:

  1. der Autor des Commits,
  2. den Inhalt des Commits (die Liste der Dateien + Verzeichnisse, aus denen dieses Commit besteht),
  3. die Eltern des Commits
  4. Der Zeitstempel, zu dem das Commit erstellt wird

Der Hash eines Commits ist ein Hash all dieser Informationen. Da es nicht möglich ist, den Zeitstempel, zu dem das Commit ausgeführt wird, im Voraus zu erraten, können Sie nicht im Voraus erraten, wie dieser Hash aussehen wird.


Ich kann mir vorstellen, dass Sie diesen Hash für einige Verarbeitungszwecke verwenden möchten: Die generische Methode besteht darin, dass die Plattform, die die PR (github? Azure devops?) Behandelt, ein Skript oder einen API-Aufruf auslöst, nachdem die PR akzeptiert und zusammengeführt wurde.

1 RomainValeri Oct 19 2020 at 08:30

Nein, dies ist unmöglich, da die genaue Zeit im Hash des Merge-Commits enthalten ist.