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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.