Skip to content
This repository has been archived by the owner on Dec 10, 2019. It is now read-only.

Commit

Permalink
Migrate to v4 API (#91)
Browse files Browse the repository at this point in the history
  • Loading branch information
paulerickson authored and Argelbargel committed Feb 11, 2019
1 parent 24ce26f commit 107ceb8
Show file tree
Hide file tree
Showing 13 changed files with 91 additions and 107 deletions.
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
dist: precise
dist: trusty
language: java
jdk:
- oraclejdk7
- oraclejdk8

install: true
script: ./travis.sh
Expand Down
75 changes: 38 additions & 37 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@
</parent>

<properties>
<jenkins.version>2.7.1</jenkins.version>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<jenkins.version>2.7.1</jenkins.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<java.level>8</java.level>
</properties>

<groupId>argelbargel.jenkins.plugins</groupId>
Expand All @@ -36,27 +37,27 @@
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>branch-api</artifactId>
<version>2.0.9</version>
<version>2.0.20</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>cloudbees-folder</artifactId>
<version>6.0.4</version>
<version>6.4</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>credentials</artifactId>
<version>2.1.13</version>
<version>2.1.16</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>git</artifactId>
<version>3.3.0</version>
<version>3.9.1</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>git-client</artifactId>
<version>2.4.5</version>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
Expand All @@ -66,17 +67,17 @@
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>scm-api</artifactId>
<version>2.1.1</version>
<version>2.2.7</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-api</artifactId>
<version>2.13</version>
<version>2.27</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-cps</artifactId>
<version>2.30</version>
<version>2.53</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
Expand All @@ -86,62 +87,62 @@
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-multibranch</artifactId>
<version>2.14</version>
<version>2.19</version>
</dependency>
<dependency>
<groupId>org.gitlab</groupId>
<artifactId>java-gitlab-api</artifactId>
<version>1.2.7</version>
<version>4.0.0</version>
</dependency>

<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>pipeline-stage-step</artifactId>
<version>2.2</version>
<version>2.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-basic-steps</artifactId>
<version>2.4</version>
<version>2.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-durable-task-step</artifactId>
<version>2.11</version>
<version>2.19</version>
<scope>test</scope>
</dependency>

<!-- without this the build fails because of cyclic-dependencies -->
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-scm-step</artifactId>
<version>2.4</version>
<version>2.6</version>
</dependency>

<!-- by default 1.4 is installed which causes an StackOverflowError -->
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>structs</artifactId>
<version>1.6</version>
<version>1.14</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>github-branch-source</artifactId>
<version>2.0.5</version>
<version>2.3.6</version>
<scope>test</scope>
</dependency>
<!-- Fix NoClassDefFoundError org/jenkinsci/plugins/workflow/steps/SynchronousStepExecution on startup -->
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-step-api</artifactId>
<version>2.15</version>
<scope>test</scope>
</dependency>
<!-- TODO: i'd like to have those for local development but not when building with travis...

<!-- TODO: i'd like to have those for local development but not when building with travis...
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>timestamper</artifactId>
Expand All @@ -162,18 +163,18 @@
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-basic-steps</artifactId>
<version>2.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-durable-task-step</artifactId>
<version>2.8</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-basic-steps</artifactId>
<version>2.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-durable-task-step</artifactId>
<version>2.8</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-step-api</artifactId>
<version>2.7</version>
<scope>test</scope>
Expand Down Expand Up @@ -202,7 +203,7 @@
<version>1.3</version>
<scope>test</scope>
</dependency>
-->
-->
</dependencies>

<repositories>
Expand Down Expand Up @@ -283,7 +284,7 @@
<build>
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings
<!--This plugin's configuration is used to store Eclipse m2e settings
only. It has no influence on the Maven build itself. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import jenkins.scm.api.SCMHead;
import jenkins.scm.api.SCMSource;
import jenkins.scm.api.SCMSourceDescriptor;
import jenkins.scm.api.SCMRevision;
import jenkins.scm.api.mixin.TagSCMHead;
import net.sf.json.JSONObject;
import org.kohsuke.stapler.StaplerRequest;
Expand All @@ -26,7 +27,6 @@ public boolean isAutomaticBuild(SCMSource source, SCMHead head) {
if (source instanceof GitLabSCMSource) {
return isAutomaticBuild((GitLabSCMSource) source, head);
}

return !TagSCMHead.class.isInstance(head);
}

Expand All @@ -47,6 +47,14 @@ private boolean isAutomaticBuild(GitLabSCMSource source, SCMHead head) {
return true;
}

@Override
public boolean isAutomaticBuild(SCMSource source, SCMHead head, SCMRevision var3, SCMRevision var4) {
if (source instanceof GitLabSCMSource) {
return isAutomaticBuild((GitLabSCMSource) source, head);
}
return !TagSCMHead.class.isInstance(head);
}

private boolean isAutomaticBuild(GitLabSCMSource source, GitLabSCMMergeRequestHead head) {
if (!head.isMerged()) {
return true;
Expand All @@ -66,7 +74,7 @@ boolean isApplicable(BranchSource branchSource) {

private GitLabSCMBranchBuildStrategy() { /* singleton */ }


@Extension
public static class DescriptorImpl extends BranchBuildStrategyDescriptor {
@Nonnull
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,6 @@ static String iconFilePathPattern(String name) {

private static String groupAvatarUrl(GitlabProject project, String connectionName) throws GitLabAPIException {
GitlabNamespace namespace = project.getNamespace();
if (namespace.getOwnerId() != null) {
return null;
}

GitLabGroup group = gitLabAPI(connectionName).getGroup(namespace.getId());
return group.getAvatarUrl();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package argelbargel.jenkins.plugins.gitlab_branch_source;


import argelbargel.jenkins.plugins.gitlab_branch_source.api.GitLabAPI;
import argelbargel.jenkins.plugins.gitlab_branch_source.api.GitLabAPIException;
import argelbargel.jenkins.plugins.gitlab_branch_source.api.GitLabMergeRequest;
Expand All @@ -13,12 +12,10 @@
import argelbargel.jenkins.plugins.gitlab_branch_source.heads.GitLabSCMTagHead;
import com.dabsquared.gitlabjenkins.gitlab.hook.model.MergeRequestObjectAttributes;
import hudson.model.TaskListener;
import jenkins.branch.MultiBranchProject;
import jenkins.model.ParameterizedJobMixIn;
import jenkins.plugins.git.AbstractGitSCMSource.SCMRevisionImpl;
import jenkins.scm.api.SCMHead;
import jenkins.scm.api.SCMHeadEvent;
import jenkins.scm.api.SCMHeadObserver;
import jenkins.scm.api.SCMRevision;
import jenkins.scm.api.SCMSourceCriteria;
import jenkins.scm.api.*;
import org.gitlab.api.models.GitlabBranch;
import org.gitlab.api.models.GitlabTag;

Expand Down Expand Up @@ -116,7 +113,7 @@ private void retrieveMergeRequest(SCMSourceCriteria criteria, @Nonnull SCMHeadOb
String targetBranch = attributes.getTargetBranch();

if (!source.isExcluded(targetBranch)) {
int mrId = attributes.getId();
int mrId = attributes.getIid();
log(listener, Messages.GitLabSCMSource_retrievingMergeRequest(mrId));
try {
GitLabMergeRequest mr = api().getMergeRequest(source.getProjectId(), mrId);
Expand Down Expand Up @@ -230,27 +227,24 @@ private void observe(SCMSourceCriteria criteria, @Nonnull SCMHeadObserver observ

private void observe(SCMSourceCriteria criteria, @Nonnull SCMHeadObserver observer, GitLabMergeRequest mergeRequest, @Nonnull TaskListener listener) throws IOException, InterruptedException {
log(listener, Messages.GitLabSCMSource_monitoringMergeRequest(mergeRequest.getIid()));

String targetBranch = mergeRequest.getTargetBranch();
GitLabSCMMergeRequestHead head = createMergeRequest(
mergeRequest.getId(),
mergeRequest.getIid(),
mergeRequest.getTitle(),
mergeRequest.getIid(),
createBranch(mergeRequest.getSourceProjectId(), mergeRequest.getSourceBranch(), mergeRequest.getSha()),
createBranch(mergeRequest.getTargetProjectId(), targetBranch, retrieveBranchRevision(targetBranch)), Objects.equals(mergeRequest.getMergeStatus(), CAN_BE_MERGED));
if (source.getSourceSettings().buildUnmerged(head)) {
observe(criteria, observer, head, listener);
}

if (source.getSourceSettings().buildMerged(head)) {
if (!head.isMergeable() && buildOnlyMergeableRequests(head)) {
log(listener, Messages.GitLabSCMSource_willNotBuildUnmergeableRequest(mergeRequest.getIid(), mergeRequest.getTargetBranch(), mergeRequest.getMergeStatus()));
}
observe(criteria, observer, head.merged(), listener);
}

if (!source.getSourceSettings().getBranchMonitorStrategy().getBuildBranchesWithMergeRequests() && head.fromOrigin()) {
branchesWithMergeRequests(listener).put(mergeRequest.getId(), mergeRequest.getSourceBranch());
branchesWithMergeRequests(listener).put(mergeRequest.getIid(), mergeRequest.getSourceBranch());
}
}

Expand All @@ -272,7 +266,6 @@ private boolean matches(SCMSourceCriteria criteria, GitLabSCMHead head, TaskList
} catch (IOException e) {
log(listener, "error checking criteria: " + e.getMessage());
}

return false;
}

Expand All @@ -288,11 +281,9 @@ private Map<Integer, String> branchesWithMergeRequests(TaskListener listener) th
if (source.getSourceSettings().getBranchMonitorStrategy().getBuildBranchesWithMergeRequests()) {
return emptyMap();
}

if (branchesWithMergeRequestsCache == null) {
retrieveMergeRequests(ALL_CRITERIA, NOOP_OBSERVER, listener);
}

return branchesWithMergeRequestsCache;
}

Expand All @@ -304,7 +295,6 @@ private boolean buildOnlyMergeableRequests(SCMHead head) {
source.getSourceSettings().getOriginMonitorStrategy().getBuildOnlyMergeableMerged(),
source.getSourceSettings().getForksMonitorStrategy().getBuildOnlyMergeableMerged());
}

return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public final class GitLabSCMAcceptMergeRequestAction extends InvisibleAction imp

public GitLabSCMAcceptMergeRequestAction(GitLabMergeRequest MR, int mergeRequestScopedId, String commitMessage, boolean removeSourceBranch) {
this.mergeRequestPID = MR.getProjectId();
this.mergeRequestID = MR.getId();
this.mergeRequestID = MR.getIid();
this.mergeRequestScopedId = mergeRequestScopedId;
this.commitMessage = commitMessage;
this.removeSourceBranch = removeSourceBranch;
Expand Down
Loading

0 comments on commit 107ceb8

Please sign in to comment.