Skip to content

Commit 747c52b

Browse files
baymacjetersen
andauthored
Add Invisible entry for project id (#83)
* Fetch project id in SCMSource constructor * Add invisible entry to set project id in DescriptoImpl * Remove number clazz from projectId textbox and instead modify getProjectId * Use int over string * Use StringUtils to check for empty strings Co-authored-by: Joseph Petersen <[email protected]>
1 parent b9e9b03 commit 747c52b

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

src/main/java/io/jenkins/plugins/gitlabbranchsource/GitLabSCMSource.java

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public class GitLabSCMSource extends AbstractGitSCMSource {
113113
private String sshRemote;
114114
private String httpRemote;
115115
private transient Project gitlabProject;
116-
private int projectId = -1;
116+
private int projectId;
117117

118118
/**
119119
* The cache of {@link ObjectMetadataAction} instances for each open MR.
@@ -203,6 +203,7 @@ protected Project getGitlabProject(GitLabApi gitLabApi) {
203203
gitlabProject = gitLabApi.getProjectApi().getProject(projectPath);
204204
sshRemote = gitlabProject.getSshUrlToRepo();
205205
httpRemote = gitlabProject.getHttpUrlToRepo();
206+
projectId = gitlabProject.getId();
206207
} catch (GitLabApiException e) {
207208
throw new IllegalStateException("Failed to retrieve project " + projectPath, e);
208209
}
@@ -219,7 +220,7 @@ public HashMap<String, AccessLevel> getMembers() {
219220
members.put(m.getUsername(), m.getAccessLevel());
220221
}
221222
} catch (GitLabApiException e) {
222-
LOGGER.log(Level.WARNING, "Exception caught:" + e, e);
223+
LOGGER.log(Level.WARNING, "Exception while fetching members" + e, e);
223224
return new HashMap<>();
224225
}
225226
return members;
@@ -792,6 +793,27 @@ context, StandardUsernameCredentials.class, fromUri(getServerUrlFromName(serverN
792793
return result;
793794
}
794795

796+
public int getProjectId(@QueryParameter String projectPath, @QueryParameter String serverName) {
797+
List<GitLabServer> gitLabServers = GitLabServers.get().getServers();
798+
if (gitLabServers.size() == 0) {
799+
return -1;
800+
}
801+
try {
802+
GitLabApi gitLabApi;
803+
if (StringUtils.isBlank(serverName)) {
804+
gitLabApi = apiBuilder(gitLabServers.get(0).getName());
805+
} else {
806+
gitLabApi = apiBuilder(serverName);
807+
}
808+
if (StringUtils.isNotBlank(projectPath)) {
809+
return gitLabApi.getProjectApi().getProject(projectPath).getId();
810+
}
811+
} catch (GitLabApiException e) {
812+
return -1;
813+
}
814+
return -1;
815+
}
816+
795817
public ListBoxModel doFillProjectPathItems(@AncestorInPath SCMSourceOwner context,
796818
@QueryParameter String serverName, @QueryParameter String projectOwner) {
797819
List<GitLabServer> gitLabServers = GitLabServers.get().getServers();

src/main/resources/io/jenkins/plugins/gitlabbranchsource/GitLabSCMSource/config-detail.jelly

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
<f:entry title="${%Behaviours}">
1717
<scm:traits field="traits"/>
1818
</f:entry>
19+
<f:invisibleEntry>
20+
<f:number clazz="project-id" field="projectId"/>
21+
</f:invisibleEntry>
1922
<script>
2023
// var projectOwner = document.getElementsByClassName('project-owner');
2124
//

0 commit comments

Comments
 (0)