List of usage examples for org.eclipse.jgit.transport ReceiveCommand ReceiveCommand
private ReceiveCommand(@Nullable String oldTarget, String newTarget, String name)
From source file:com.gitblit.git.PatchsetReceivePack.java
License:Apache License
/** * Creates or updates an ticket with the specified patchset. * * @param cmd/*from www. j a v a 2s. c om*/ * @return a ticket if the creation or update was successful */ private TicketModel processPatchset(PatchsetCommand cmd) { Change change = cmd.getChange(); if (cmd.isNewTicket()) { // create the ticket object TicketModel ticket = ticketService.createTicket(repository, cmd.getTicketId(), change); if (ticket != null) { sendInfo(""); sendHeader("#{0,number,0}: {1}", ticket.number, StringUtils.trimString(ticket.title, Constants.LEN_SHORTLOG)); sendInfo("created proposal ticket from patchset"); sendInfo(ticketService.getTicketUrl(ticket)); sendInfo(""); // log the new patch ref RefLogUtils.updateRefLog(user, getRepository(), Arrays.asList(new ReceiveCommand(cmd.getOldId(), cmd.getNewId(), cmd.getRefName()))); // call any patchset hooks for (PatchsetHook hook : gitblit.getExtensions(PatchsetHook.class)) { try { hook.onNewPatchset(ticket); } catch (Exception e) { LOGGER.error("Failed to execute extension", e); } } return ticket; } else { sendError("FAILED to create ticket"); } } else { // update an existing ticket TicketModel ticket = ticketService.updateTicket(repository, cmd.getTicketId(), change); if (ticket != null) { sendInfo(""); sendHeader("#{0,number,0}: {1}", ticket.number, StringUtils.trimString(ticket.title, Constants.LEN_SHORTLOG)); if (change.patchset.rev == 1) { // new patchset sendInfo("uploaded patchset {0} ({1})", change.patchset.number, change.patchset.type.toString()); } else { // updated patchset sendInfo("added {0} {1} to patchset {2}", change.patchset.added, change.patchset.added == 1 ? "commit" : "commits", change.patchset.number); } sendInfo(ticketService.getTicketUrl(ticket)); sendInfo(""); // log the new patchset ref RefLogUtils.updateRefLog(user, getRepository(), Arrays.asList(new ReceiveCommand(cmd.getOldId(), cmd.getNewId(), cmd.getRefName()))); // call any patchset hooks final boolean isNewPatchset = change.patchset.rev == 1; for (PatchsetHook hook : gitblit.getExtensions(PatchsetHook.class)) { try { if (isNewPatchset) { hook.onNewPatchset(ticket); } else { hook.onUpdatePatchset(ticket); } } catch (Exception e) { LOGGER.error("Failed to execute extension", e); } } // return the updated ticket return ticket; } else { sendError("FAILED to upload {0} for ticket {1,number,0}", change.patchset, cmd.getTicketId()); } } return null; }
From source file:com.gitblit.git.PatchsetReceivePack.java
License:Apache License
/** * Merge the specified patchset to the integration branch. * * @param ticket// w w w .ja v a2s . c om * @param patchset * @return true, if successful */ public MergeStatus merge(TicketModel ticket) { PersonIdent committer = new PersonIdent(user.getDisplayName(), StringUtils.isEmpty(user.emailAddress) ? (user.username + "@gitblit") : user.emailAddress); Patchset patchset = ticket.getCurrentPatchset(); String message = MessageFormat.format("Merged #{0,number,0} \"{1}\"", ticket.number, ticket.title); Ref oldRef = null; try { oldRef = getRepository().findRef(ticket.mergeTo); } catch (IOException e) { LOGGER.error("failed to get ref for " + ticket.mergeTo, e); } MergeResult mergeResult = JGitUtils.merge(getRepository(), patchset.tip, ticket.mergeTo, getRepositoryModel().mergeType, committer, message); if (StringUtils.isEmpty(mergeResult.sha)) { LOGGER.error("FAILED to merge {} to {} ({})", new Object[] { patchset, ticket.mergeTo, mergeResult.status.name() }); return mergeResult.status; } Change change = new Change(user.username); change.setField(Field.status, Status.Merged); change.setField(Field.mergeSha, mergeResult.sha); change.setField(Field.mergeTo, ticket.mergeTo); if (StringUtils.isEmpty(ticket.responsible)) { // unassigned tickets are assigned to the closer change.setField(Field.responsible, user.username); } long ticketId = ticket.number; ticket = ticketService.updateTicket(repository, ticket.number, change); if (ticket != null) { ticketNotifier.queueMailing(ticket); if (oldRef != null) { ReceiveCommand cmd = new ReceiveCommand(oldRef.getObjectId(), ObjectId.fromString(mergeResult.sha), oldRef.getName()); cmd.setResult(Result.OK); List<ReceiveCommand> commands = Arrays.asList(cmd); logRefChange(commands); updateIncrementalPushTags(commands); updateGitblitRefLog(commands); } // call patchset hooks for (PatchsetHook hook : gitblit.getExtensions(PatchsetHook.class)) { try { hook.onMergePatchset(ticket); } catch (Exception e) { LOGGER.error("Failed to execute extension", e); } } return mergeResult.status; } else { LOGGER.error("FAILED to resolve ticket {} by merge from web ui", ticketId); } return mergeResult.status; }
From source file:com.gitblit.plugin.tbacl.Tests.java
License:Apache License
protected void push(User username, Branch branch, boolean expectSuccess) { RepositoryModel repo = new RepositoryModel(); repo.name = "test.git"; repo.owners = Arrays.asList(User.owner.name()); IGitblit gitblit = new MockGitblit(); gitblit.getSettings().overrideSetting(Plugin.SETTING_USE_TEAM_NAMESPACES, branch.useNamespace()); try {/*from ww w . j a v a2 s .c o m*/ gitblit.updateRepositoryModel(repo.name, repo, false); } catch (GitBlitException e) { } UserModel user = gitblit.getUserModel(username.name()); Repository db = gitblit.getRepository(repo.name); GitblitReceivePack rp = new GitblitReceivePack(gitblit, db, repo, user); ObjectId sha1 = ObjectId.fromString("2d291de884b4bb3164fda516ebc8510f757495b7"); ObjectId sha2 = ObjectId.fromString("42972d830611fa4b1aa2c2c49c824a15e1987597"); List<ReceiveCommand> commands = Arrays .asList(new ReceiveCommand(sha1, sha2, "refs/heads/" + branch.toString())); TBACLReceiveHook hook = new TBACLReceiveHook(); hook.onPreReceive(rp, commands); for (ReceiveCommand cmd : commands) { assertEquals(cmd.getMessage(), expectSuccess, Result.NOT_ATTEMPTED == cmd.getResult()); } }
From source file:com.gitblit.tests.GroovyScriptTest.java
License:Apache License
@Test public void testFogbugz() throws Exception { MockGitblit gitblit = new MockGitblit(); MockLogger logger = new MockLogger(); MockClientLogger clientLogger = new MockClientLogger(); List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>(); commands.add(new ReceiveCommand(ObjectId.fromString("c18877690322dfc6ae3e37bb7f7085a24e94e887"), ObjectId.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master")); commands.add(new ReceiveCommand(ObjectId.fromString("c18877690322dfc6ae3e37bb7f7085a24e94e887"), ObjectId.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master2")); RepositoryModel repository = repositories().getRepositoryModel("helloworld.git"); repository.customFields = new HashMap<String, String>(); repository.customFields.put("fogbugzUrl", "http://bugs.test.com"); repository.customFields.put("fogbugzRepositoryId", "1"); repository.customFields.put("fogbugzCommitMessageRegex", "\\s*[Bb][Uu][Gg][(Zz)(Ss)]*\\s*[(IDs)]*\\s*[#:; ]+((\\d+[ ,:;#]*)+)"); test("fogbugz.groovy", gitblit, logger, clientLogger, commands, repository); }
From source file:com.gitblit.tests.GroovyScriptTest.java
License:Apache License
@Test public void testSendHtmlMail() throws Exception { MockGitblit gitblit = new MockGitblit(); MockLogger logger = new MockLogger(); MockClientLogger clientLogger = new MockClientLogger(); List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>(); commands.add(new ReceiveCommand(ObjectId.fromString("c18877690322dfc6ae3e37bb7f7085a24e94e887"), ObjectId.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master")); commands.add(new ReceiveCommand(ObjectId.fromString("c18877690322dfc6ae3e37bb7f7085a24e94e887"), ObjectId.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master2")); RepositoryModel repository = repositories().getRepositoryModel("helloworld.git"); repository.mailingLists.add("list@helloworld.git"); test("sendmail-html.groovy", gitblit, logger, clientLogger, commands, repository); assertEquals(1, logger.messages.size()); assertEquals(1, gitblit.messages.size()); MockMail m = gitblit.messages.get(0); assertEquals(5, m.toAddresses.size()); assertTrue(m.message.contains("BIT")); assertTrue(m.message.contains("<html>")); }
From source file:com.gitblit.tests.GroovyScriptTest.java
License:Apache License
@Test public void testSendMail() throws Exception { MockGitblit gitblit = new MockGitblit(); MockLogger logger = new MockLogger(); MockClientLogger clientLogger = new MockClientLogger(); List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>(); commands.add(new ReceiveCommand(ObjectId.fromString("c18877690322dfc6ae3e37bb7f7085a24e94e887"), ObjectId.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master")); commands.add(new ReceiveCommand(ObjectId.fromString("c18877690322dfc6ae3e37bb7f7085a24e94e887"), ObjectId.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master2")); RepositoryModel repository = repositories().getRepositoryModel("helloworld.git"); repository.mailingLists.add("list@helloworld.git"); test("sendmail.groovy", gitblit, logger, clientLogger, commands, repository); assertEquals(1, logger.messages.size()); assertEquals(1, gitblit.messages.size()); MockMail m = gitblit.messages.get(0); assertEquals(5, m.toAddresses.size()); assertTrue(m.message.contains("BIT")); }
From source file:com.gitblit.tests.GroovyScriptTest.java
License:Apache License
@Test public void testProtectRefsCreateBranch() throws Exception { MockGitblit gitblit = new MockGitblit(); MockLogger logger = new MockLogger(); MockClientLogger clientLogger = new MockClientLogger(); List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>(); commands.add(new ReceiveCommand(ObjectId.zeroId(), ObjectId.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master")); RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date()); test("protect-refs.groovy", gitblit, logger, clientLogger, commands, repository); }
From source file:com.gitblit.tests.GroovyScriptTest.java
License:Apache License
@Test public void testProtectRefsCreateTag() throws Exception { MockGitblit gitblit = new MockGitblit(); MockLogger logger = new MockLogger(); MockClientLogger clientLogger = new MockClientLogger(); List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>(); commands.add(new ReceiveCommand(ObjectId.zeroId(), ObjectId.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/tags/v1.0")); RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date()); test("protect-refs.groovy", gitblit, logger, clientLogger, commands, repository); assertEquals(0, logger.messages.size()); }
From source file:com.gitblit.tests.GroovyScriptTest.java
License:Apache License
@Test public void testProtectRefsFastForward() throws Exception { MockGitblit gitblit = new MockGitblit(); MockLogger logger = new MockLogger(); MockClientLogger clientLogger = new MockClientLogger(); List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>(); commands.add(new ReceiveCommand(ObjectId.fromString("c18877690322dfc6ae3e37bb7f7085a24e94e887"), ObjectId.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master")); RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date()); test("protect-refs.groovy", gitblit, logger, clientLogger, commands, repository); assertEquals(0, logger.messages.size()); }
From source file:com.gitblit.tests.GroovyScriptTest.java
License:Apache License
@Test public void testProtectRefsDeleteMasterBranch() throws Exception { MockGitblit gitblit = new MockGitblit(); MockLogger logger = new MockLogger(); MockClientLogger clientLogger = new MockClientLogger(); List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>(); ReceiveCommand command = new ReceiveCommand(ObjectId.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), ObjectId.zeroId(), "refs/heads/master"); commands.add(command);/*from w w w . j av a 2s .c o m*/ RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date()); test("protect-refs.groovy", gitblit, logger, clientLogger, commands, repository); assertEquals(ReceiveCommand.Result.REJECTED_NODELETE, command.getResult()); assertEquals(0, logger.messages.size()); }