From aae58435191c1b4e73ef7c5447e7a0832c7f0e53 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 06 Mar 2014 13:49:02 -0500 Subject: [PATCH] Merged #22 "Tie mirroring, pushing, and the BranchTicketService together" --- src/main/java/com/gitblit/service/MirrorService.java | 32 ++++++++++++++++++++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gitblit/service/MirrorService.java b/src/main/java/com/gitblit/service/MirrorService.java index 9833d93..cf9ccb5 100644 --- a/src/main/java/com/gitblit/service/MirrorService.java +++ b/src/main/java/com/gitblit/service/MirrorService.java @@ -28,6 +28,8 @@ import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.StoredConfig; import org.eclipse.jgit.transport.FetchResult; +import org.eclipse.jgit.transport.ReceiveCommand; +import org.eclipse.jgit.transport.ReceiveCommand.Type; import org.eclipse.jgit.transport.RemoteConfig; import org.eclipse.jgit.transport.TrackingRefUpdate; import org.slf4j.Logger; @@ -35,9 +37,11 @@ import com.gitblit.IStoredSettings; import com.gitblit.Keys; +import com.gitblit.git.ReceiveCommandEvent; import com.gitblit.manager.IRepositoryManager; import com.gitblit.models.RepositoryModel; import com.gitblit.models.UserModel; +import com.gitblit.tickets.BranchTicketService; import com.gitblit.utils.JGitUtils; /** @@ -145,6 +149,7 @@ FetchResult result = git.fetch().setRemote(mirror.getName()).setDryRun(testing).call(); Collection<TrackingRefUpdate> refUpdates = result.getTrackingRefUpdates(); if (refUpdates.size() > 0) { + ReceiveCommand ticketBranchCmd = null; for (TrackingRefUpdate ru : refUpdates) { StringBuilder sb = new StringBuilder(); sb.append("updated mirror "); @@ -161,6 +166,33 @@ sb.append(".."); sb.append(ru.getNewObjectId() == null ? "" : ru.getNewObjectId().abbreviate(7).name()); logger.info(sb.toString()); + + if (BranchTicketService.BRANCH.equals(ru.getLocalName())) { + ReceiveCommand.Type type = null; + switch (ru.getResult()) { + case NEW: + type = Type.CREATE; + break; + case FAST_FORWARD: + type = Type.UPDATE; + break; + case FORCED: + type = Type.UPDATE_NONFASTFORWARD; + break; + default: + type = null; + break; + } + + if (type != null) { + ticketBranchCmd = new ReceiveCommand(ru.getOldObjectId(), + ru.getNewObjectId(), ru.getLocalName(), type); + } + } + } + + if (ticketBranchCmd != null) { + repository.fireEvent(new ReceiveCommandEvent(model, ticketBranchCmd)); } } } catch (Exception e) { -- Gitblit v1.9.1