Skip to content

Commit 51e5ad4

Browse files
committed
- added two input fields to the Freestyle job build step form
1 parent 9e8a50b commit 51e5ad4

File tree

6 files changed

+96
-6
lines changed

6 files changed

+96
-6
lines changed

pom.xml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@
1414
<version>${revision}${changelist}</version>
1515
<packaging>hpi</packaging>
1616

17-
<name>TODO Plugin</name>
18-
<url>https://github.com/jenkinsci/${project.artifactId}-plugin</url>
17+
<!-- Plugin Name -->
18+
<name>Vigilnz Security</name>
19+
<url>https://dev.vigilnz.com/</url>
1920
<licenses>
2021
<license>
2122
<name>MIT License</name>
@@ -51,6 +52,13 @@
5152
<type>pom</type>
5253
<scope>import</scope>
5354
</dependency>
55+
56+
<dependency>
57+
<groupId>org.jenkins-ci.main</groupId>
58+
<artifactId>jenkins-core</artifactId>
59+
<version>${jenkins.version}</version>
60+
</dependency>
61+
5462
</dependencies>
5563
</dependencyManagement>
5664

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package io.jenkins.plugins;
2+
3+
import hudson.Extension;
4+
import hudson.Launcher;
5+
import hudson.model.AbstractBuild;
6+
import hudson.model.BuildListener;
7+
import hudson.tasks.BuildStepDescriptor;
8+
import hudson.tasks.Builder;
9+
import hudson.util.FormValidation;
10+
import hudson.util.Secret;
11+
import org.kohsuke.stapler.DataBoundConstructor;
12+
import org.kohsuke.stapler.QueryParameter;
13+
14+
import java.io.IOException;
15+
16+
// This file for Jenkins FreeStyle Job Method
17+
public class SecurityCheckBuilder extends Builder {
18+
19+
private final Secret token;
20+
private final String targetFile;
21+
22+
@DataBoundConstructor
23+
public SecurityCheckBuilder(Secret token, String targetFile) {
24+
this.token = token;
25+
this.targetFile = targetFile;
26+
}
27+
28+
public Secret getToken() {
29+
return token;
30+
}
31+
32+
public String getTargetFile() {
33+
return targetFile;
34+
}
35+
36+
// this function trigger when user click the build button
37+
@Override
38+
public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener)
39+
throws InterruptedException, IOException {
40+
String tokenText = token.getPlainText(); // actual value
41+
listener.getLogger().println("Your Token from Plugin: " + tokenText);
42+
listener.getLogger().println("Your Target File : " + targetFile);
43+
return true;
44+
}
45+
46+
@Extension
47+
public static class DescriptorImpl extends BuildStepDescriptor<Builder> {
48+
49+
@Override
50+
public String getDisplayName() {
51+
return "Invoke Vigilnz Security Task"; // 👈 This appears in dropdown
52+
}
53+
54+
@Override
55+
public boolean isApplicable(Class jobType) {
56+
return true;
57+
}
58+
59+
public FormValidation doCheckToken(@QueryParameter Secret token) {
60+
if (token == null || Secret.toString(token).isEmpty()) {
61+
return FormValidation.error("Token is required");
62+
}
63+
return FormValidation.ok();
64+
}
65+
}
66+
67+
}

src/main/resources/index.jelly

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?jelly escape-by-default='true'?>
2+
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
3+
4+
<f:entry title="Token" field="token">
5+
<f:password />
6+
</f:entry>
7+
8+
<f:entry title="Target File" field="targetFile">
9+
<f:textbox />
10+
</f:entry>
11+
12+
</j:jelly>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<div>
2+
This Target file is used to locate of the scan file of the project.
3+
</div>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<div>
2+
This token is used to authenticate with the external service.
3+
Please generate it from your dashboard and paste it here.
4+
</div>

0 commit comments

Comments
 (0)