Skip to content

Commit 4c79cde

Browse files
authored
Add checks before a few variables received by hook & skip pipeline notification exception (#89)
* Add checks before a few variables received by hook and remove a few that needs extra work * Hide cannot transition status error messages (considering they are harmless) * Skip exception in sendNotifications as well
1 parent dceb26f commit 4c79cde

File tree

4 files changed

+17
-58
lines changed

4 files changed

+17
-58
lines changed

README.md

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -727,28 +727,6 @@ GITLAB_CHANGES_UPDATED_BY_ID_PREV
727727
GITLAB_CHANGES_UPDATED_BY_ID_CURR
728728
GITLAB_CHANGES_UPDATED_AT_PREV
729729
GITLAB_CHANGES_UPDATED_AT_CURR
730-
GITLAB_CHANGES_LABELS_PREV_COUNT
731-
GITLAB_CHANGES_LABEL_PREV_ID_#
732-
GITLAB_CHANGES_LABEL_PREV_TITLE_#
733-
GITLAB_CHANGES_LABEL_PREV_COLOR_#
734-
GITLAB_CHANGES_LABEL_PREV_PROJECT_ID_#
735-
GITLAB_CHANGES_LABEL_PREV_CREATED_AT_#
736-
GITLAB_CHANGES_LABEL_PREV_UPDATED_AT_#
737-
GITLAB_CHANGES_LABEL_PREV_TEMPLATE_#
738-
GITLAB_CHANGES_LABEL_PREV_DESCRIPTION_#
739-
GITLAB_CHANGES_LABEL_PREV_TYPE_#
740-
GITLAB_CHANGES_LABEL_PREV_GROUP_ID_#
741-
GITLAB_CHANGES_LABELS_CURR_COUNT
742-
GITLAB_CHANGES_LABEL_CURR_ID_#
743-
GITLAB_CHANGES_LABEL_CURR_TITLE_#
744-
GITLAB_CHANGES_LABEL_CURR_COLOR_#
745-
GITLAB_CHANGES_LABEL_CURR_PROJECT_ID_#
746-
GITLAB_CHANGES_LABEL_CURR_CREATED_AT_#
747-
GITLAB_CHANGES_LABEL_CURR_UPDATED_AT_#
748-
GITLAB_CHANGES_LABEL_CURR_TEMPLATE_#
749-
GITLAB_CHANGES_LABEL_CURR_DESCRIPTION_#
750-
GITLAB_CHANGES_LABEL_CURR_TYPE_#
751-
GITLAB_CHANGES_LABEL_PREV_GROUP_ID_#
752730
```
753731
754732
</details>

src/main/java/io/jenkins/plugins/gitlabbranchsource/Cause/GitLabMergeRequestCauseData.java

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,11 @@ public GitLabMergeRequestCauseData(MergeRequestEvent mergeRequestEvent) {
9999
this.variables.put("GITLAB_OA_WIP", defaultBooleanString(mergeRequestEvent.getObjectAttributes().getWorkInProgress()));
100100
this.variables.put("GITLAB_OA_URL", defaultString(mergeRequestEvent.getObjectAttributes().getUrl()));
101101
this.variables.put("GITLAB_OA_ACTION", defaultString(mergeRequestEvent.getObjectAttributes().getAction()));
102-
this.variables.put("GITLAB_OA_ASSIGNEE_NAME", defaultString(mergeRequestEvent.getObjectAttributes().getAssignee().getName()));
103-
this.variables.put("GITLAB_OA_ASSIGNEE_USERNAME", defaultString(mergeRequestEvent.getObjectAttributes().getAssignee().getUsername()));
104-
this.variables.put("GITLAB_OA_ASSIGNEE_AVATAR_URL", defaultString(mergeRequestEvent.getObjectAttributes().getAssignee().getAvatarUrl()));
102+
if(mergeRequestEvent.getObjectAttributes().getAssignee() != null) {
103+
this.variables.put("GITLAB_OA_ASSIGNEE_NAME", defaultString(mergeRequestEvent.getObjectAttributes().getAssignee().getName()));
104+
this.variables.put("GITLAB_OA_ASSIGNEE_USERNAME", defaultString(mergeRequestEvent.getObjectAttributes().getAssignee().getUsername()));
105+
this.variables.put("GITLAB_OA_ASSIGNEE_AVATAR_URL", defaultString(mergeRequestEvent.getObjectAttributes().getAssignee().getAvatarUrl()));
106+
}
105107
int totalLabels = defaultListSize(mergeRequestEvent.getLabels());
106108
this.variables.put("GITLAB_LABELS_COUNT", defaultIntString(totalLabels));
107109
for(int i = 0; i < totalLabels; i++) {
@@ -116,37 +118,13 @@ public GitLabMergeRequestCauseData(MergeRequestEvent mergeRequestEvent) {
116118
this.variables.put("GITLAB_LABEL_TYPE_" + i, defaultLabelString(mergeRequestEvent.getLabels().get(i).getType()));
117119
this.variables.put("GITLAB_LABEL_GROUP_ID_" + i, defaultIntString(mergeRequestEvent.getLabels().get(i).getGroupId()));
118120
}
119-
this.variables.put("GITLAB_CHANGES_UPDATED_BY_ID_PREV", defaultString(mergeRequestEvent.getChanges().getUpdatedById().getPrevious().toString()));
120-
this.variables.put("GITLAB_CHANGES_UPDATED_BY_ID_CURR", defaultString(mergeRequestEvent.getChanges().getUpdatedById().getCurrent().toString()));
121-
this.variables.put("GITLAB_CHANGES_UPDATED_AT_PREV", defaultString(mergeRequestEvent.getChanges().getUpdatedAt().getPrevious().toString()));
122-
this.variables.put("GITLAB_CHANGES_UPDATED_AT_CURR", defaultString(mergeRequestEvent.getChanges().getUpdatedAt().getPrevious().toString()));
123-
int totalChangeLabelsPrev = defaultListSize(mergeRequestEvent.getChanges().getLabels().getCurrent());
124-
this.variables.put("GITLAB_CHANGES_LABELS_PREV_COUNT", defaultIntString(totalChangeLabelsPrev));
125-
for(int i = 0; i < totalChangeLabelsPrev; i++) {
126-
this.variables.put("GITLAB_CHANGES_LABEL_PREV_ID_" + i, defaultIntString(mergeRequestEvent.getChanges().getLabels().getPrevious().get(i).getId()));
127-
this.variables.put("GITLAB_CHANGES_LABEL_PREV_TITLE_" + i, defaultString(mergeRequestEvent.getChanges().getLabels().getPrevious().get(i).getTitle()));
128-
this.variables.put("GITLAB_CHANGES_LABEL_PREV_COLOR_" + i, defaultString(mergeRequestEvent.getChanges().getLabels().getPrevious().get(i).getColor()));
129-
this.variables.put("GITLAB_CHANGES_LABEL_PREV_PROJECT_ID_" + i, defaultIntString(mergeRequestEvent.getChanges().getLabels().getPrevious().get(i).getProjectId()));
130-
this.variables.put("GITLAB_CHANGES_LABEL_PREV_CREATED_AT_" + i, defaultDateString(mergeRequestEvent.getChanges().getLabels().getPrevious().get(i).getCreatedAt()));
131-
this.variables.put("GITLAB_CHANGES_LABEL_PREV_UPDATED_AT_" + i, defaultDateString(mergeRequestEvent.getChanges().getLabels().getPrevious().get(i).getUpdatedAt()));
132-
this.variables.put("GITLAB_CHANGES_LABEL_PREV_TEMPLATE_" + i, defaultBooleanString(mergeRequestEvent.getChanges().getLabels().getPrevious().get(i).getTemplate()));
133-
this.variables.put("GITLAB_CHANGES_LABEL_PREV_DESCRIPTION_" + i, defaultString(mergeRequestEvent.getChanges().getLabels().getPrevious().get(i).getDescription()));
134-
this.variables.put("GITLAB_CHANGES_LABEL_PREV_TYPE_" + i, defaultLabelString(mergeRequestEvent.getChanges().getLabels().getPrevious().get(i).getType()));
135-
this.variables.put("GITLAB_CHANGES_LABEL_PREV_GROUP_ID_" + i, defaultIntString(mergeRequestEvent.getChanges().getLabels().getPrevious().get(i).getGroupId()));
136-
121+
if(mergeRequestEvent.getChanges().getUpdatedById() != null) {
122+
this.variables.put("GITLAB_CHANGES_UPDATED_BY_ID_PREV", defaultIntString(mergeRequestEvent.getChanges().getUpdatedById().getPrevious()));
123+
this.variables.put("GITLAB_CHANGES_UPDATED_BY_ID_CURR", defaultIntString(mergeRequestEvent.getChanges().getUpdatedById().getCurrent()));
137124
}
138-
this.variables.put("GITLAB_CHANGES_LABELS_CURR_COUNT", defaultIntString(totalChangeLabelsPrev));
139-
for(int i = 0; i < totalChangeLabelsPrev; i++) {
140-
this.variables.put("GITLAB_CHANGES_LABEL_CURR_ID_" + i, defaultIntString(mergeRequestEvent.getChanges().getLabels().getCurrent().get(i).getId()));
141-
this.variables.put("GITLAB_CHANGES_LABEL_CURR_TITLE_" + i, defaultString(mergeRequestEvent.getChanges().getLabels().getCurrent().get(i).getTitle()));
142-
this.variables.put("GITLAB_CHANGES_LABEL_CURR_COLOR_" + i, defaultString(mergeRequestEvent.getChanges().getLabels().getCurrent().get(i).getColor()));
143-
this.variables.put("GITLAB_CHANGES_LABEL_CURR_PROJECT_ID_" + i, defaultIntString(mergeRequestEvent.getChanges().getLabels().getCurrent().get(i).getProjectId()));
144-
this.variables.put("GITLAB_CHANGES_LABEL_CURR_CREATED_AT_" + i, defaultDateString(mergeRequestEvent.getChanges().getLabels().getCurrent().get(i).getCreatedAt()));
145-
this.variables.put("GITLAB_CHANGES_LABEL_CURR_UPDATED_AT_" + i, defaultDateString(mergeRequestEvent.getChanges().getLabels().getCurrent().get(i).getUpdatedAt()));
146-
this.variables.put("GITLAB_CHANGES_LABEL_CURR_TEMPLATE_" + i, defaultBooleanString(mergeRequestEvent.getChanges().getLabels().getCurrent().get(i).getTemplate()));
147-
this.variables.put("GITLAB_CHANGES_LABEL_CURR_DESCRIPTION_" + i, defaultString(mergeRequestEvent.getChanges().getLabels().getCurrent().get(i).getDescription()));
148-
this.variables.put("GITLAB_CHANGES_LABEL_CURR_TYPE_" + i, defaultLabelString(mergeRequestEvent.getChanges().getLabels().getCurrent().get(i).getType()));
149-
this.variables.put("GITLAB_CHANGES_LABEL_PREV_GROUP_ID_" + i, defaultIntString(mergeRequestEvent.getChanges().getLabels().getCurrent().get(i).getGroupId()));
125+
if(mergeRequestEvent.getChanges().getUpdatedAt() != null) {
126+
this.variables.put("GITLAB_CHANGES_UPDATED_AT_PREV", defaultDateString(mergeRequestEvent.getChanges().getUpdatedAt().getPrevious()));
127+
this.variables.put("GITLAB_CHANGES_UPDATED_AT_CURR", defaultDateString(mergeRequestEvent.getChanges().getUpdatedAt().getPrevious()));
150128
}
151129
}
152130

src/main/java/io/jenkins/plugins/gitlabbranchsource/Environment/GitLabWebHookEnvironmentContributor.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ public class GitLabWebHookEnvironmentContributor extends EnvironmentContributor
1515
@Override
1616
public void buildEnvironmentFor(@Nonnull Run r, @Nonnull EnvVars envs, @Nonnull TaskListener listener) {
1717
GitLabWebHookCause gitLabWebHookCause = null;
18-
System.out.println(r.getClass().getName());
1918
if (r instanceof WorkflowRun) {
2019
gitLabWebHookCause = (GitLabWebHookCause) r.getCause(GitLabWebHookCause.class);
2120
}

src/main/java/io/jenkins/plugins/gitlabbranchsource/helpers/GitLabPipelineStatusNotifier.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,9 @@ private static void sendNotifications(Run<?, ?> build, TaskListener listener) {
283283
status);
284284
listener.getLogger().format("[GitLab Pipeline Status] Notified%n");
285285
} catch (GitLabApiException e) {
286-
LOGGER.log(Level.WARNING, "Exception caught adding commit status:" + e, e);
286+
if(!e.getMessage().contains(("Cannot transition status"))) {
287+
LOGGER.log(Level.WARNING, String.format("Exception caught: %s",e.getMessage()));
288+
}
287289
}
288290
}
289291

@@ -378,7 +380,9 @@ public void onEnterWaiting(final Queue.WaitingItem wi) {
378380
status);
379381
LOGGER.log(Level.INFO, "{0} Notified", job.getFullName());
380382
} catch (GitLabApiException e) {
381-
LOGGER.log(Level.WARNING, "Exception caught: " + e, e);
383+
if(!e.getMessage().contains("Cannot transition status")) {
384+
LOGGER.log(Level.WARNING, String.format("Exception caught: %s", e.getMessage()));
385+
}
382386
}
383387
} catch (IOException | InterruptedException e) {
384388
LOGGER.log(Level.INFO,

0 commit comments

Comments
 (0)