2016-06-15 29 views
3

Wir verwenden bitbucket server als unser Quellen-Repository. Ich bin nicht sicher, ob das relevant ist, wenn es mit einem Vanille-Git-Haken gelöst werden kann.Verhindern, dass die Zusammenführung mastert, wenn die Verzweigung mit Nachrichten bestimmter Kriterien festgeschrieben wurde

Wir haben den aktuellen Workflow:

Entwickler verpflichtet sich zu einem Zweig, schafft eine Pull-Anforderung. Rezensenten antworten mit Feedback auf den Code und der Entwickler geht dann dazu über, "Fix" Commits basierend auf dem Feedback zu machen, das nach der Genehmigung des Zweigs schließlich wieder zurückgenommen wird. Dies ermöglicht den Prüfern, auf das Commit zu klicken und Diffs zwischen dem Original-PR (das sie bereits überprüft haben) und der Änderung basierend auf dem Feedback zu sehen. Um es den Prüfern zu erleichtern, zu unterscheiden, haben Fix-Commits alle das Präfix "FIXUP" in ihrer Commit-Nachricht.

Dieser Workflow für uns wirklich gut funktioniert, aber manchmal wird der Entwickler vergessen, das Fixup rebase in ihre Branche verpflichtet und wir am Ende mit unserem Master-Zweig eine Reihe von Commit-Nachrichten Titel FIXUP mit: ...

Ist Es ist möglich, einen Hook zu schreiben, der verhindert, dass Merges dort ankommen, wo es Commits mit Nachrichten gibt, die mit einer bestimmten Zeichenkette beginnen? Ist es außerdem möglich, dies in bitbuckets ui deutlich zu machen?

EDIT: Zwischen GlennVs Antwort und git hook: ensure each merge into the master has a message also the automatic merges Ich denke, ich kann etwas arbeiten, danke an alle!

+0

Es ist möglich, solche Haken zu schreiben. Ob Sie sie auf bitbucket (oder einer anderen Hosting-Site) * laufen lassen können, ist eine ganz andere Sache, und ich kenne die Antwort darauf nicht. – torek

+0

Bitbuckets Web-Hooks sind hier beschrieben, https://confluence.atlassian.com/bitbucket/manage-webhooks-735643732.html. Sollte möglich sein. Dies ist die genaue Art von Dingen, für die diese Haken sind. – DavidN

Antwort

1

Sie können benutzerdefinierte Pre-Hooks implementieren, die auf dem Bitbucket-Server mit der (kommerziellen) Script Runner add-on ausgeführt werden.

Es hat eine Nummer von "pre-receive hook" scripts eingebaut, die auf Bitbucket ausgeführt wird, wenn jemand einen Push ausführt und abhängig vom Ergebnis wird der Push akzeptiert oder abgelehnt und die Person, die den Push ausführt, erhält eine Nachricht, die mögliche Probleme beschreibt. Sie können auch Ihre eigenen "pre-receive hook" scripts in Groovy implementieren.

Wir haben eine Reihe von benutzerdefinierten Logik implementiert in unseren eigenen Skripten, so ist es auf jeden Fall möglich, das Verhalten zu erhalten, die Sie suchen.