Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
10 changes: 7 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>4.88</version>
<version>5.1</version>
<relativePath />
</parent>

<artifactId>git</artifactId>
<version>${revision}${changelist}</version>
<packaging>hpi</packaging>

<name>Git plugin</name>
<url>https://github.com/${gitHubRepo}</url>
<inceptionYear>2007</inceptionYear>
Expand Down Expand Up @@ -64,8 +65,11 @@
<revision>5.5.3</revision>
<changelist>-SNAPSHOT</changelist>
<gitHubRepo>jenkinsci/${project.artifactId}-plugin</gitHubRepo>
<jenkins.baseline>2.440</jenkins.baseline>
<jenkins.version>${jenkins.baseline}.3</jenkins.version>
<!-- https://www.jenkins.io/doc/developer/plugin-development/choosing-jenkins-baseline/ -->
<jenkins.baseline>2.462</jenkins.baseline>
<!-- TODO Replace with the standard jenkins.baseline references after LTS requires Java 17 -->
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This TODO can now be completed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<!-- <jenkins.version>${jenkins.baseline}.1</jenkins.version> -->
<jenkins.version>2.479</jenkins.version>
<no-test-jar>false</no-test-jar>
<!-- Jenkins.MANAGE is still in Beta -->
<useBeta>true</useBeta>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import org.kohsuke.accmod.Restricted;
import org.kohsuke.accmod.restrictions.NoExternalUse;
import org.kohsuke.stapler.HttpResponse;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerRequest2;
import org.kohsuke.stapler.interceptor.RequirePOST;

import java.io.Serializable;
Expand Down Expand Up @@ -58,7 +58,7 @@ public GlobalConfigurationCategory getCategory() {
}

@RequirePOST
public HttpResponse doGenerate(StaplerRequest req) {
public HttpResponse doGenerate(StaplerRequest2 req) {
Jenkins.get().checkPermission(Jenkins.ADMINISTER);

String apiTokenName = req.getParameter("apiTokenName");
Expand Down Expand Up @@ -102,7 +102,7 @@ private static byte[] hashedBytes(byte[] tokenBytes) {
}

@RequirePOST
public HttpResponse doRevoke(StaplerRequest req) {
public HttpResponse doRevoke(StaplerRequest2 req) {
Jenkins.get().checkPermission(Jenkins.ADMINISTER);

String apiTokenUuid = req.getParameter("apiTokenUuid");
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/hudson/plugins/git/GitPublisher.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
import org.jenkinsci.plugins.gitclient.UnsupportedCommand;
import org.kohsuke.stapler.*;

import javax.servlet.ServletException;
import jakarta.servlet.ServletException;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
Expand Down Expand Up @@ -437,7 +437,7 @@ public FormValidation doCheckNoteMsg(@QueryParameter String value) {
}

public FormValidation doCheckRemote(
@AncestorInPath AbstractProject project, StaplerRequest req)
@AncestorInPath AbstractProject project, StaplerRequest2 req)
throws IOException, ServletException {
String remote = req.getParameter("value");
boolean isMerge = req.getParameter("isMerge") != null;
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/hudson/plugins/git/GitSCM.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.DataBoundSetter;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerRequest2;
import org.kohsuke.stapler.export.Exported;

import javax.servlet.ServletException;
import jakarta.servlet.ServletException;

import java.io.File;
import java.io.IOException;
Expand Down Expand Up @@ -1884,7 +1884,7 @@ public static PreBuildMergeOptions createMergeOptions(UserMergeOptions mergeOpti
return mergeOptions;
}

public FormValidation doGitRemoteNameCheck(StaplerRequest req)
public FormValidation doGitRemoteNameCheck(StaplerRequest2 req)
throws IOException, ServletException {
String mergeRemoteName = req.getParameter("value");
boolean isMerge = req.getParameter("isMerge") != null;
Expand All @@ -1905,7 +1905,7 @@ public FormValidation doGitRemoteNameCheck(StaplerRequest req)
}

@Override
public boolean configure(StaplerRequest req, JSONObject formData) throws FormException {
public boolean configure(StaplerRequest2 req, JSONObject formData) throws FormException {
req.bindJSON(this, formData);
save();
return true;
Expand Down
87 changes: 78 additions & 9 deletions src/main/java/hudson/plugins/git/GitStatus.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequest;

import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
import static javax.servlet.http.HttpServletResponse.SC_OK;
import static jakarta.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
import static jakarta.servlet.http.HttpServletResponse.SC_OK;
import jenkins.model.Jenkins;
import jenkins.model.ParameterizedJobMixIn;
import jenkins.scm.api.SCMEvent;
Expand Down Expand Up @@ -115,6 +115,75 @@ public String toString() {
return s.toString();
}

/**
* Copied from scm API plugin.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not maintainable; better to depend on jenkinsci/scm-api-plugin#282 which migrates this method (compatibly!) to EE 9.

* Helper method to get the origin of an event from a {@link HttpServletRequest}. The current format is the
* list of hostname / ip addresses from the request (parsing {@code X-Forwarded-For} headers) separated by
* {@code} followed by a {@code} and finally the requested URL (omitting the query portion of the URL).
*
* @param req the {@link HttpServletRequest} or {@code null} (this is to allow passing
* {@link Stapler#getCurrentRequest()} without having to check for {@code null})
* @return the origin of the event or {@code null} if the {@link HttpServletRequest} is null.
* @since 2.0.3
*/
@CheckForNull
private String originOf(@CheckForNull HttpServletRequest req) {
if (req == null) {
return null;
}
String last = null;
StringBuilder result = new StringBuilder();
// TODO RFC 7239 support once standard is approved
String header = req.getHeader("X-Forwarded-For");
if (StringUtils.isNotBlank(header)) {
for (String remote : header.split("(,\\s*)")) {
if (StringUtils.isBlank(remote)) {
continue;
}
if (last != null) {
result.append(" → ");
}
last = StringUtils.trim(remote);
result.append(last);
}
}
String remoteHost = req.getRemoteHost();
String remoteAddr = req.getRemoteAddr();
if (last == null || (!(StringUtils.equals(last, remoteHost) || StringUtils.equals(last, remoteAddr)))) {
if (last != null) {
result.append(" → ");
}
if (!StringUtils.isBlank(remoteHost) && !remoteHost.equals(remoteAddr)) {
result.append(remoteHost);
result.append('/');
}
result.append(remoteAddr);
}
result.append(" ⇒ ");
String scheme = StringUtils.defaultIfBlank(req.getHeader("X-Forwarded-Proto"), req.getScheme());
result.append(scheme);
result.append("://");
result.append(req.getServerName());
String portStr = req.getHeader("X-Forwarded-Port");
int port;
if (portStr != null) {
try {
port = Integer.parseInt(portStr);
} catch (NumberFormatException e) {
port = req.getLocalPort();
}
} else {
port = req.getLocalPort();
}
if (!("http".equals(scheme) && port == 80 || "https".equals(scheme) && port == 443)) {
result.append(':');
result.append(port);
}
result.append(req.getRequestURI());
// omit query as may contain "secrets"
return result.toString();
}

public HttpResponse doNotifyCommit(HttpServletRequest request, @QueryParameter(required=true) String url,
@QueryParameter() String branches, @QueryParameter() String sha1,
@QueryParameter() String token) {
Expand Down Expand Up @@ -173,14 +242,14 @@ public HttpResponse doNotifyCommit(HttpServletRequest request, @QueryParameter(r

final List<ResponseContributor> contributors = new ArrayList<>();
Jenkins jenkins = Jenkins.get();
String origin = SCMEvent.originOf(request);
String origin = originOf(request);
for (Listener listener : jenkins.getExtensionList(Listener.class)) {
contributors.addAll(listener.onNotifyCommit(origin, uri, sha1, buildParameters, branchesArray));
}

return new HttpResponse() {
@Override
public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException {
public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) throws IOException {
rsp.setStatus(SC_OK);
rsp.setContentType("text/plain");
for (int i = 0; i < contributors.size(); i++) {
Expand Down Expand Up @@ -232,7 +301,7 @@ public static class ResponseContributor {
* @param rsp the response.
* @since 1.4.1
*/
public void addHeaders(StaplerRequest req, StaplerResponse rsp) {
public void addHeaders(StaplerRequest2 req, StaplerResponse2 rsp) {
}

/**
Expand All @@ -243,7 +312,7 @@ public void addHeaders(StaplerRequest req, StaplerResponse rsp) {
* @param w the writer.
* @since 1.4.1
*/
public void writeBody(StaplerRequest req, StaplerResponse rsp, PrintWriter w) {
public void writeBody(StaplerRequest2 req, StaplerResponse2 rsp, PrintWriter w) {
writeBody(w);
}

Expand Down Expand Up @@ -543,7 +612,7 @@ public PollingScheduledResponseContributor(Item project) {
*/
@Override
@SuppressWarnings("deprecation")
public void addHeaders(StaplerRequest req, StaplerResponse rsp) {
public void addHeaders(StaplerRequest2 req, StaplerResponse2 rsp) {
// Calls a deprecated getAbsoluteUrl() method because this is a remote API case
// as described in the Javadoc of the deprecated getAbsoluteUrl() method.
rsp.addHeader("Triggered", project.getAbsoluteUrl());
Expand Down Expand Up @@ -578,7 +647,7 @@ public ScheduledResponseContributor(Item project) {
*/
@Override
@SuppressWarnings("deprecation")
public void addHeaders(StaplerRequest req, StaplerResponse rsp) {
public void addHeaders(StaplerRequest2 req, StaplerResponse2 rsp) {
// Calls a deprecated getAbsoluteUrl() method because this is a remote API case
// as described in the Javadoc of the deprecated getAbsoluteUrl() method.
rsp.addHeader("Triggered", project.getAbsoluteUrl());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
import hudson.Extension;
import hudson.security.csrf.CrumbExclusion;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/hudson/plugins/git/GitTagAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@
import jenkins.model.*;
import org.jenkinsci.plugins.gitclient.Git;
import org.jenkinsci.plugins.gitclient.GitClient;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import org.kohsuke.stapler.StaplerRequest2;
import org.kohsuke.stapler.StaplerResponse2;
import org.kohsuke.stapler.export.Exported;
import org.kohsuke.stapler.export.ExportedBean;
import org.kohsuke.stapler.interceptor.RequirePOST;

import javax.servlet.ServletException;
import jakarta.servlet.ServletException;
import java.io.File;
import java.io.IOException;
import java.util.*;
Expand Down Expand Up @@ -149,7 +149,7 @@ public String getTooltip() {
* @throws ServletException on servlet error
*/
@RequirePOST
public synchronized void doSubmit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException {
public synchronized void doSubmit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException {
getACL().checkPermission(getPermission());

try (MultipartFormDataParser parser = new MultipartFormDataParser(req)) {
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/hudson/plugins/git/browser/AssemblaWeb.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.interceptor.RequirePOST;
import org.kohsuke.stapler.QueryParameter;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerRequest2;

import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import javax.servlet.ServletException;
import jakarta.servlet.ServletException;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
Expand Down Expand Up @@ -98,7 +98,7 @@ public String getDisplayName() {
@Override
@SuppressFBWarnings(value = "NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE",
justification = "Inherited javadoc commits that req is non-null")
public AssemblaWeb newInstance(StaplerRequest req, @NonNull JSONObject jsonObject) throws FormException {
public AssemblaWeb newInstance(StaplerRequest2 req, @NonNull JSONObject jsonObject) throws FormException {
return req.bindJSON(AssemblaWeb.class, jsonObject);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import net.sf.json.JSONObject;
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerRequest2;

import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
Expand Down Expand Up @@ -81,7 +81,7 @@ public String getDisplayName() {
@Override
@SuppressFBWarnings(value = "NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE",
justification = "Inherited javadoc commits that req is non-null")
public BitbucketServer newInstance(StaplerRequest req, @NonNull JSONObject jsonObject) throws FormException {
public BitbucketServer newInstance(StaplerRequest2 req, @NonNull JSONObject jsonObject) throws FormException {
return req.bindJSON(BitbucketServer.class, jsonObject);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/hudson/plugins/git/browser/BitbucketWeb.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import net.sf.json.JSONObject;
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerRequest2;

import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
Expand Down Expand Up @@ -82,7 +82,7 @@ public String getDisplayName() {
@Override
@SuppressFBWarnings(value = "NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE",
justification = "Inherited javadoc commits that req is non-null")
public BitbucketWeb newInstance(StaplerRequest req, @NonNull JSONObject jsonObject) throws FormException {
public BitbucketWeb newInstance(StaplerRequest2 req, @NonNull JSONObject jsonObject) throws FormException {
return req.bindJSON(BitbucketWeb.class, jsonObject);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/hudson/plugins/git/browser/CGit.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import net.sf.json.JSONObject;
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerRequest2;

import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
Expand Down Expand Up @@ -92,7 +92,7 @@ public String getDisplayName() {
@Override
@SuppressFBWarnings(value = "NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE",
justification = "Inherited javadoc commits that req is non-null")
public CGit newInstance(StaplerRequest req, @NonNull JSONObject jsonObject) throws FormException {
public CGit newInstance(StaplerRequest2 req, @NonNull JSONObject jsonObject) throws FormException {
return req.bindJSON(CGit.class, jsonObject);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.interceptor.RequirePOST;
import org.kohsuke.stapler.QueryParameter;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerRequest2;

import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import javax.servlet.ServletException;
import jakarta.servlet.ServletException;
import java.io.IOException;
import java.net.URL;
import java.util.regex.Pattern;
Expand Down Expand Up @@ -79,7 +79,7 @@ public String getDisplayName() {
@Override
@SuppressFBWarnings(value = "NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE",
justification = "Inherited javadoc commits that req is non-null")
public FisheyeGitRepositoryBrowser newInstance(StaplerRequest req, @NonNull JSONObject jsonObject) throws FormException {
public FisheyeGitRepositoryBrowser newInstance(StaplerRequest2 req, @NonNull JSONObject jsonObject) throws FormException {
return req.bindJSON(FisheyeGitRepositoryBrowser.class, jsonObject);
}

Expand Down
Loading