Episode 6
diff --git a/pom.xml b/pom.xml
index bbb5d5b..4b996ff 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,13 +21,13 @@
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
- <version>2.19</version>
+ <version>3.0</version>
<relativePath />
</parent>
<groupId>io.github.stephenc.apache</groupId>
<artifactId>asf-gitpubsub-jenkins</artifactId>
- <version>0.4-SNAPSHOT</version>
+ <version>0.5-SNAPSHOT</version>
<packaging>hpi</packaging>
<name>ASF GitPubSub Jenkins Notifications</name>
@@ -49,7 +49,7 @@
</scm>
<properties>
- <jenkins.version>1.642.3</jenkins.version>
+ <jenkins.version>2.73.1</jenkins.version>
</properties>
<repositories>
@@ -67,14 +67,25 @@
<dependencies>
<dependency>
+ <groupId>org.jenkins-ci</groupId>
+ <artifactId>annotation-indexer</artifactId>
+ <version>1.12</version>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.jenkins-ci.plugins</groupId>
+ <artifactId>structs</artifactId>
+ <version>1.10</version>
+ </dependency>
+ <dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>scm-api</artifactId>
- <version>2.2.3</version>
+ <version>2.2.5</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>git</artifactId>
- <version>3.6.2</version>
+ <version>3.6.4</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
@@ -86,6 +97,33 @@
<artifactId>jackson2-api</artifactId>
<version>2.7.3</version>
</dependency>
+ <dependency>
+ <groupId>org.jenkins-ci.plugins</groupId>
+ <artifactId>jsoup</artifactId>
+ <version>1.10.3</version>
+ </dependency>
+ <dependency>
+ <groupId>com.damnhandy</groupId>
+ <artifactId>handy-uri-templates</artifactId>
+ <version>2.1.6</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jenkins-ci.plugins</groupId>
+ <artifactId>junit</artifactId>
+ <version>1.3</version>
+ <optional>true</optional>
+ </dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jenkins-ci.tools</groupId>
+ <artifactId>maven-hpi-plugin</artifactId>
+ <configuration>
+ <maskClasses>com.damnhandy.uri.template</maskClasses>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
diff --git a/src/main/java/org/apache/jenkins/gitpubsub/ASFGitSCMFile.java b/src/main/java/org/apache/jenkins/gitpubsub/ASFGitSCMFile.java
new file mode 100644
index 0000000..2834ca4
--- /dev/null
+++ b/src/main/java/org/apache/jenkins/gitpubsub/ASFGitSCMFile.java
@@ -0,0 +1,37 @@
+package org.apache.jenkins.gitpubsub;
+
+import edu.umd.cs.findbugs.annotations.NonNull;
+import java.io.IOException;
+import java.io.InputStream;
+import jenkins.scm.api.SCMFile;
+
+public class ASFGitSCMFile extends SCMFile {
+ @NonNull
+ @Override
+ protected SCMFile newChild(@NonNull String name, boolean assumeIsDirectory) {
+ return null;
+ }
+
+ @NonNull
+ @Override
+ public Iterable<SCMFile> children() throws IOException, InterruptedException {
+ return null;
+ }
+
+ @Override
+ public long lastModified() throws IOException, InterruptedException {
+ return 0;
+ }
+
+ @NonNull
+ @Override
+ protected Type type() throws IOException, InterruptedException {
+ return null;
+ }
+
+ @NonNull
+ @Override
+ public InputStream content() throws IOException, InterruptedException {
+ return null;
+ }
+}
diff --git a/src/main/java/org/apache/jenkins/gitpubsub/ASFGitSCMFileSystem.java b/src/main/java/org/apache/jenkins/gitpubsub/ASFGitSCMFileSystem.java
new file mode 100644
index 0000000..34e6fec
--- /dev/null
+++ b/src/main/java/org/apache/jenkins/gitpubsub/ASFGitSCMFileSystem.java
@@ -0,0 +1,4 @@
+package org.apache.jenkins.gitpubsub;
+
+public class ASFGitSCMFileSystem {
+}
diff --git a/src/main/java/org/apache/jenkins/gitpubsub/GitPubSubPoll.java b/src/main/java/org/apache/jenkins/gitpubsub/GitPubSubPoll.java
index 9d437e0..86d6101 100644
--- a/src/main/java/org/apache/jenkins/gitpubsub/GitPubSubPoll.java
+++ b/src/main/java/org/apache/jenkins/gitpubsub/GitPubSubPoll.java
@@ -52,12 +52,14 @@
import jenkins.plugins.asynchttpclient.AHCUtils;
import jenkins.plugins.git.AbstractGitSCMSource;
import jenkins.plugins.git.GitSCMSource;
+import jenkins.plugins.git.traits.IgnoreOnPushNotificationTrait;
import jenkins.scm.api.SCMEvent;
import jenkins.scm.api.SCMHead;
import jenkins.scm.api.SCMHeadEvent;
import jenkins.scm.api.SCMNavigator;
import jenkins.scm.api.SCMRevision;
import jenkins.scm.api.SCMSource;
+import jenkins.scm.api.trait.SCMTrait;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.transport.RemoteConfig;
import org.eclipse.jgit.transport.URIish;
@@ -342,7 +344,7 @@
public Map<SCMHead, SCMRevision> heads(@NonNull SCMSource source) {
if (source instanceof GitSCMSource) {
GitSCMSource git = (GitSCMSource) source;
- if (git.isIgnoreOnPushNotifications() || remoteUri == null) {
+ if (SCMTrait.find(git.getTraits(), IgnoreOnPushNotificationTrait.class) != null || remoteUri == null) {
return Collections.emptyMap();
}
URIish remoteUri;