Skip to content

Commit 0054b9d

Browse files
committed
Merge pull request #60 from hsingh/use-job-from-trigger
Add more logging and pass project from trigger
2 parents 86d1e4a + d8b034f commit 0054b9d

File tree

1 file changed

+47
-32
lines changed

1 file changed

+47
-32
lines changed

src/main/java/com/dabsquared/gitlabjenkins/GitLabPushTrigger.java

Lines changed: 47 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,15 @@ public void onPost(final GitLabPushRequest req) {
9595
getDescriptor().queue.execute(new Runnable() {
9696

9797
public void run() {
98-
LOGGER.log(Level.INFO, "{0} triggered.", job.getName());
99-
String name = " #" + job.getNextBuildNumber();
100-
GitLabPushCause cause = createGitLabPushCause(req);
101-
Action[] actions = createActions(req);
102-
if (job.scheduleBuild(job.getQuietPeriod(), cause, actions)) {
103-
LOGGER.log(Level.INFO, "GitLab Push Request detected in {0}. Triggering {1}", new String[]{job.getName(), name});
104-
} else {
105-
LOGGER.log(Level.INFO, "GitLab Push Request detected in {0}. Job is already in the queue.", job.getName());
106-
}
98+
LOGGER.log(Level.INFO, "{0} triggered for push.", job.getName());
99+
String name = " #" + job.getNextBuildNumber();
100+
GitLabPushCause cause = createGitLabPushCause(req);
101+
Action[] actions = createActions(req);
102+
if (job.scheduleBuild(job.getQuietPeriod(), cause, actions)) {
103+
LOGGER.log(Level.INFO, "GitLab Push Request detected in {0}. Triggering {1}", new String[]{job.getName(), name});
104+
} else {
105+
LOGGER.log(Level.INFO, "GitLab Push Request detected in {0}. Job is already in the queue.", job.getName());
106+
}
107107
}
108108

109109
private GitLabPushCause createGitLabPushCause(GitLabPushRequest req) {
@@ -128,8 +128,10 @@ private Action[] createActions(GitLabPushRequest req) {
128128
values.put("gitlabSourceBranch", new StringParameterValue("gitlabSourceBranch", branch));
129129
values.put("gitlabTargetBranch", new StringParameterValue("gitlabTargetBranch", branch));
130130
values.put("gitlabBranch", new StringParameterValue("gitlabBranch", branch));
131-
values.put("gitlabSourceRepoName", new StringParameterValue("gitlabSourceRepoName", getDesc().getSourceRepoNameDefault()));
132-
values.put("gitlabSourceRepoURL", new StringParameterValue("gitlabSourceRepoURL", getDesc().getSourceRepoURLDefault().toString()));
131+
132+
LOGGER.log(Level.INFO, "Trying to get name and URL for job: {0} using project {1} (push)", new String[]{job.getName(), getDesc().project.getName()});
133+
values.put("gitlabSourceRepoName", new StringParameterValue("gitlabSourceRepoName", getDesc().getSourceRepoNameDefault(job)));
134+
values.put("gitlabSourceRepoURL", new StringParameterValue("gitlabSourceRepoURL", getDesc().getSourceRepoURLDefault(job).toString()));
133135

134136
List<ParameterValue> listValues = new ArrayList<ParameterValue>(values.values());
135137

@@ -150,15 +152,15 @@ public void onPost(final GitLabMergeRequest req) {
150152
if (triggerOnMergeRequest) {
151153
getDescriptor().queue.execute(new Runnable() {
152154
public void run() {
153-
LOGGER.log(Level.INFO, "{0} triggered.", job.getName());
154-
String name = " #" + job.getNextBuildNumber();
155-
GitLabMergeCause cause = createGitLabMergeCause(req);
156-
Action[] actions = createActions(req);
157-
if (job.scheduleBuild(job.getQuietPeriod(), cause, actions)) {
158-
LOGGER.log(Level.INFO, "GitLab Merge Request detected in {0}. Triggering {1}", new String[]{job.getName(), name});
159-
} else {
160-
LOGGER.log(Level.INFO, "GitLab Merge Request detected in {0}. Job is already in the queue.", job.getName());
161-
}
155+
LOGGER.log(Level.INFO, "{0} triggered for merge request.", job.getName());
156+
String name = " #" + job.getNextBuildNumber();
157+
GitLabMergeCause cause = createGitLabMergeCause(req);
158+
Action[] actions = createActions(req);
159+
if (job.scheduleBuild(job.getQuietPeriod(), cause, actions)) {
160+
LOGGER.log(Level.INFO, "GitLab Merge Request detected in {0}. Triggering {1}", new String[]{job.getName(), name});
161+
} else {
162+
LOGGER.log(Level.INFO, "GitLab Merge Request detected in {0}. Job is already in the queue.", job.getName());
163+
}
162164
}
163165

164166
private GitLabMergeCause createGitLabMergeCause(GitLabMergeRequest req) {
@@ -177,23 +179,24 @@ private Action[] createActions(GitLabMergeRequest req) {
177179
Map<String, ParameterValue> values = new HashMap<String, ParameterValue>();
178180
values.put("gitlabSourceBranch", new StringParameterValue("gitlabSourceBranch", getSourceBranch(req)));
179181
values.put("gitlabTargetBranch", new StringParameterValue("gitlabTargetBranch", req.getObjectAttribute().getTargetBranch()));
180-
181-
String sourceRepoName = getDesc().getSourceRepoNameDefault();
182-
String sourceRepoURL = getDesc().getSourceRepoURLDefault().toString();
182+
183+
LOGGER.log(Level.INFO, "Trying to get name and URL for job: {0} using project {1}", new String[]{job.getName(), getDesc().project.getName()});
184+
String sourceRepoName = getDesc().getSourceRepoNameDefault(job);
185+
String sourceRepoURL = getDesc().getSourceRepoURLDefault(job).toString();
183186

184187
if (!getDescriptor().getGitlabHostUrl().isEmpty()) {
185188
// Get source repository if communication to Gitlab is possible
186189
try {
187190
sourceRepoName = req.getSourceProject(getDesc().getGitlab()).getPathWithNamespace();
188-
sourceRepoURL = req.getSourceProject(getDesc().getGitlab()).getSshUrl();
191+
sourceRepoURL = req.getSourceProject(getDesc().getGitlab()).getSshUrl();
189192
} catch (IOException ex) {
190193
LOGGER.log(Level.WARNING, "Could not fetch source project''s data from Gitlab. '('{0}':' {1}')'", new String[]{ex.toString(), ex.getMessage()});
191194
}
192195
}
193196

194197
values.put("gitlabSourceRepoName", new StringParameterValue("gitlabSourceRepoName", sourceRepoName));
195198
values.put("gitlabSourceRepoURL", new StringParameterValue("gitlabSourceRepoURL", sourceRepoURL));
196-
199+
197200
List<ParameterValue> listValues = new ArrayList<ParameterValue>(values.values());
198201

199202
ParametersAction parametersAction = new ParametersAction(listValues);
@@ -358,7 +361,7 @@ public List<String> getProjectBranches() {
358361
cannot search projects by namespace/name
359362
For now getting project id before getting project branches
360363
*/
361-
URIish sourceRepository = getSourceRepoURLDefault();
364+
URIish sourceRepository = getSourceRepoURLDefault(project);
362365
if (!gitlabHostUrl.isEmpty() && (null != sourceRepository)) {
363366
List<GitlabProject> projects = getGitlab().instance().getProjects();
364367
for (GitlabProject project : projects) {
@@ -386,11 +389,17 @@ public List<String> getProjectBranches() {
386389
*
387390
* @return URIish the default value of the source repository url
388391
*/
389-
protected URIish getSourceRepoURLDefault() {
392+
protected URIish getSourceRepoURLDefault(AbstractProject job) {
390393
URIish url = null;
391-
SCM scm = project.getScm();
394+
SCM scm = job.getScm();
392395
if(!(scm instanceof GitSCM)) {
393-
throw new IllegalArgumentException("This repo does not use git.");
396+
LOGGER.log(
397+
Level.WARNING,
398+
"Could not find GitSCM for project, found {0} instead (getSourceRepoURLDefault). Project = {1}, next build = {2}",
399+
new String[] { scm.getClass().getCanonicalName(),
400+
project.getName(),
401+
String.valueOf(project.getNextBuildNumber()) });
402+
throw new IllegalArgumentException("This repo does not use git:" + scm.getClass().getCanonicalName());
394403
}
395404
if (scm instanceof GitSCM) {
396405
List<RemoteConfig> repositories = ((GitSCM) scm).getRepositories();
@@ -411,11 +420,17 @@ protected URIish getSourceRepoURLDefault() {
411420
*
412421
* @return String with the default name of the source repository
413422
*/
414-
protected String getSourceRepoNameDefault() {
423+
protected String getSourceRepoNameDefault(AbstractProject job) {
415424
String result = null;
416-
SCM scm = project.getScm();
425+
SCM scm = job.getScm();
417426
if(!(scm instanceof GitSCM)) {
418-
throw new IllegalArgumentException("This repo does not use git.");
427+
LOGGER.log(
428+
Level.WARNING,
429+
"Could not find GitSCM for project, found {0} instead (getSourceRepoNameDefault). Project = {1}, next build = {2}",
430+
new String[] { scm.getClass().getCanonicalName(),
431+
project.getName(),
432+
String.valueOf(project.getNextBuildNumber()) });
433+
throw new IllegalArgumentException("This repo does not use git.:" + scm.getClass().getCanonicalName());
419434
}
420435
if (scm instanceof GitSCM) {
421436
List<RemoteConfig> repositories = ((GitSCM) scm).getRepositories();

0 commit comments

Comments
 (0)