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

Migrate to v4 API #91

Merged
merged 1 commit into from
Feb 11, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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