private OneShotEvent doHandle(MergeRequestHookTriggerHandler mergeRequestHookTriggerHandler, MergeRequestObjectAttributesBuilder objectAttributes) throws GitAPIException, IOException, NoHeadException, NoMessageException, UnmergedPathsException, ConcurrentRefUpdateException, WrongRepositoryStateException, AmbiguousObjectException, IncorrectObjectTypeException, MissingObjectException, InterruptedException { Git.init().setDirectory(tmp.getRoot()).call(); tmp.newFile("test"); Git git = Git.open(tmp.getRoot()); git.add().addFilepattern("test"); RevCommit commit = git.commit().setMessage("test").call(); ObjectId head = git.getRepository().resolve(Constants.HEAD); String repositoryUrl = tmp.getRoot().toURI().toString(); final OneShotEvent buildTriggered = new OneShotEvent(); FreeStyleProject project = jenkins.createFreeStyleProject(); project.setScm(new GitSCM(repositoryUrl)); project.getBuildersList().add(new TestBuilder() { @Override public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { buildTriggered.signal(); return true; } }); project.setQuietPeriod(0); mergeRequestHookTriggerHandler.handle(project, mergeRequestHook() .withObjectAttributes(objectAttributes .withTargetBranch("refs/heads/" + git.nameRev().add(head).call().get(head)) .withLastCommit(commit().withAuthor(user().withName("test").build()).withId(commit.getName()).build()) .build()) .withProject(project() .withWebUrl("https://gitlab.org/test.git") .build() ) .build(), true, BranchFilterFactory.newBranchFilter(branchFilterConfig().build(BranchFilterType.All)), newMergeRequestLabelFilter(null)); buildTriggered.block(10000); return buildTriggered; }
public Git call(final GitOperationsStep gitOperationsStep, Git git, CredentialsProvider cp, String gitRepoUrl, File gitRepoFolder) throws IllegalArgumentException, IOException, NoHeadException, NoMessageException, UnmergedPathsException, ConcurrentRefUpdateException, WrongRepositoryStateException, GitAPIException { CommitCommand cc = git .commit() .setAuthor( gitOperationsStep .environmentSubstitute(this.authorName == null ? "" : this.authorName), gitOperationsStep .environmentSubstitute(this.authorEmail == null ? "" : this.authorEmail)) .setCommitter( gitOperationsStep .environmentSubstitute(this.committerName == null ? "" : this.committerName), gitOperationsStep .environmentSubstitute(this.committerEmail == null ? "" : this.committerName)); if (!Const.isEmpty(this.commitMessage)) { cc = cc.setMessage(gitOperationsStep .environmentSubstitute(this.commitMessage)); } cc.setAll(all).setInsertChangeId(insertChangeId).setAmend(amend).call(); return git; }
@Before public void createVersionFactory() throws IOException, NoHeadException, NoMessageException, UnmergedPathsException, ConcurrentRefUpdateException, WrongRepositoryStateException, GitAPIException { repo = createRepository(); git = initializeGitFlow(repo); versionFactory = new TagBasedVersionFactory(); }
@Test public void testCommitCount() throws NoHeadException, NoMessageException, UnmergedPathsException, ConcurrentRefUpdateException, WrongRepositoryStateException, GitAPIException, NoWorkTreeException, IOException { tag("v0.1.1-rc"); makeCommit(); makeCommit(); RevCommit head = makeCommit(); validateUnstable("0.1.1-rc", 3, head, Dirty.NO, DOT); }
public static void commit(Repo repo, boolean stageAll, boolean isAmend, String msg, String authorName, String authorEmail) throws Exception, NoHeadException, NoMessageException, UnmergedPathsException, ConcurrentRefUpdateException, WrongRepositoryStateException, GitAPIException, StopTaskException { Context context = SGitApplication.getContext(); StoredConfig config = repo.getGit().getRepository().getConfig(); String committerEmail = config.getString("user", null, "email"); String committerName = config.getString("user", null, "name"); if (committerName == null || committerName.equals("")) { committerName = Profile.getUsername(context); } if (committerEmail == null || committerEmail.equals("")) { committerEmail = Profile.getEmail(context); } if (committerName.isEmpty() || committerEmail.isEmpty()) { throw new Exception("Please set your name and email"); } if (msg.isEmpty()) { throw new Exception("Please include a commit message"); } CommitCommand cc = repo.getGit().commit() .setCommitter(committerName, committerEmail).setAll(stageAll) .setAmend(isAmend).setMessage(msg); if (authorName != null && authorEmail != null) { cc.setAuthor(authorName, authorEmail); } cc.call(); repo.updateLatestCommitInfo(); }
private RevCommit makeCommit() throws NoHeadException, NoMessageException, UnmergedPathsException, ConcurrentRefUpdateException, WrongRepositoryStateException, GitAPIException { return git.commit().setCommitter(COMMITTER).setMessage("some commit").call(); }