Here's my problem - We migrated from SVN to GIT a while back, but it has been hard to get my team avoiding merge to master before something goes to production.
As a result, I want to set up something which would force the user to merge to master only from a release/* or a hotfix/* branch. Is there any way (event a custom hook would help), that I can restrict the source branch to release/* and hotfix/* when the target branch is the master.
Please pardon my lack of knowledge on writing the hooks and I'd really appreciate if someone could actually give me a hint on how to write this hook.
The model I am trying to implement is something like this - https://namethattech.wordpress.com/2014/11/26/bamboo-gitflow/
Here's a snippet from my Foxtrot Merge Blocker to help get you started:
public class MyHook implements RepositoryMergeRequestCheck { @Override public void check(@Nonnull RepositoryMergeRequestCheckContext context) { MergeRequest mr = context.getMergeRequest(); PullRequest pr = mr.getPullRequest(); PullRequestRef fromRef = pr.getFromRef(); PullRequestRef toRef = pr.getToRef(); Repository tR = toRef.getRepository(); Repository fR = fromRef.getRepository(); String fromBranch = fromRef.getDisplayId(); String toBranch = toRef.getDisplayId(); // etc... your logic goes here. // keep an eye out for PR's coming in from forks, though! mr.veto("bad-source-branch", "THOU SHALL NOT MERGE"); } }
Setting up your pom.xml and atlassian-plugin.xml is also a pain, but the atlassian hook tutorial should help get you started, or study some of the open source hooks out there (e.g., yacc).
p.s. I'm the original author of the add-on Bit-Booster for Bitbucket Server.
Thanks a lot for the headstart. I would play around with this and see where I land.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.