From 14b6ab26a85a91ce3f1adb12f2f5c99a6e7f7b37 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 07 Mar 2014 17:40:07 -0500 Subject: [PATCH] Replaced uploading to GoogleCode with uploading to Bintray on release --- src/main/java/com/gitblit/git/PatchsetReceivePack.java | 26 +++++++++++++++++++++----- 1 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/gitblit/git/PatchsetReceivePack.java b/src/main/java/com/gitblit/git/PatchsetReceivePack.java index 2044f60..ee8295c 100644 --- a/src/main/java/com/gitblit/git/PatchsetReceivePack.java +++ b/src/main/java/com/gitblit/git/PatchsetReceivePack.java @@ -60,6 +60,7 @@ import com.gitblit.models.TicketModel.PatchsetType; import com.gitblit.models.TicketModel.Status; import com.gitblit.models.UserModel; +import com.gitblit.tickets.BranchTicketService; import com.gitblit.tickets.ITicketService; import com.gitblit.tickets.TicketMilestone; import com.gitblit.tickets.TicketNotifier; @@ -105,7 +106,7 @@ protected final TicketNotifier ticketNotifier; - private boolean requireCleanMerge; + private boolean requireMergeablePatchset; public PatchsetReceivePack(IGitblit gitblit, Repository db, RepositoryModel repository, UserModel user) { super(gitblit, db, repository, user); @@ -257,12 +258,26 @@ /** Execute commands to update references. */ @Override protected void executeCommands() { + // we process patchsets unless the user is pushing something special + boolean processPatchsets = true; + for (ReceiveCommand cmd : filterCommands(Result.NOT_ATTEMPTED)) { + if (ticketService instanceof BranchTicketService + && BranchTicketService.BRANCH.equals(cmd.getRefName())) { + // the user is pushing an update to the BranchTicketService data + processPatchsets = false; + } + } + // workaround for JGit's awful scoping choices // // reset the patchset refs to NOT_ATTEMPTED (see validateCommands) for (ReceiveCommand cmd : filterCommands(Result.OK)) { if (isPatchsetRef(cmd.getRefName())) { cmd.setResult(Result.NOT_ATTEMPTED); + } else if (ticketService instanceof BranchTicketService + && BranchTicketService.BRANCH.equals(cmd.getRefName())) { + // the user is pushing an update to the BranchTicketService data + processPatchsets = false; } } @@ -292,7 +307,7 @@ continue; } - if (isPatchsetRef(cmd.getRefName())) { + if (isPatchsetRef(cmd.getRefName()) && processPatchsets) { if (ticketService == null) { sendRejection(cmd, "Sorry, the ticket service is unavailable and can not accept patchsets at this time."); continue; @@ -393,6 +408,8 @@ for (ReceiveCommand cmd : toApply) { if (cmd.getResult() == Result.NOT_ATTEMPTED) { sendRejection(cmd, "lock error: {0}", err.getMessage()); + LOGGER.error(MessageFormat.format("failed to lock {0}:{1}", + repository.name, cmd.getRefName()), err); } } } @@ -539,7 +556,7 @@ case MERGEABLE: break; default: - if (ticket == null || requireCleanMerge) { + if (ticket == null || requireMergeablePatchset) { sendError(""); sendError("Your patchset can not be cleanly merged into {0}.", forBranch); sendError("Please rebase your patchset and push again."); @@ -647,8 +664,7 @@ sendError(" 1. you created the ticket"); sendError(" 2. you created the first patchset"); sendError(" 3. you are specified as responsible for the ticket"); - sendError(" 4. you are listed as a reviewer for the ticket"); - sendError(" 5. you have push (RW) permission to {0}", repository.name); + sendError(" 4. you have push (RW) permissions to {0}", repository.name); sendError(""); sendRejection(cmd, "not permitted to push to ticket {0,number,0}", ticket.number); return null; -- Gitblit v1.9.1