Merge pull request #44 from kasper-f/addNoteOnMergeRequest
Add note on merge request when build completes
This commit is contained in:
commit
3472c31422
|
@ -26,6 +26,10 @@ public class GitLabMergeCause extends SCMTrigger.SCMTriggerCause {
|
|||
this.mergeRequest = mergeRequest;
|
||||
}
|
||||
|
||||
public GitLabMergeRequest getMergeRequest() {
|
||||
return mergeRequest;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getShortDescription() {
|
||||
return "GitLab Merge Request #" + this.mergeRequest.getObjectAttribute().getIid() + " : " + this.mergeRequest.getObjectAttribute().getSourceBranch() +
|
||||
|
|
|
@ -2,14 +2,7 @@ package com.dabsquared.gitlabjenkins;
|
|||
|
||||
import hudson.Extension;
|
||||
import hudson.Util;
|
||||
import hudson.model.AbstractBuild;
|
||||
import hudson.model.Cause;
|
||||
import hudson.model.Action;
|
||||
import hudson.model.Item;
|
||||
import hudson.model.ParameterValue;
|
||||
import hudson.model.AbstractProject;
|
||||
import hudson.model.ParametersAction;
|
||||
import hudson.model.StringParameterValue;
|
||||
import hudson.model.*;
|
||||
import hudson.plugins.git.RevisionParameterAction;
|
||||
import hudson.plugins.git.GitSCM;
|
||||
import hudson.scm.SCM;
|
||||
|
@ -49,6 +42,8 @@ public class GitLabPushTrigger extends Trigger<AbstractProject<?, ?>> {
|
|||
private boolean triggerOnMergeRequest = true;
|
||||
private boolean triggerOpenMergeRequestOnPush = true;
|
||||
private boolean setBuildDescription = true;
|
||||
private boolean addNoteOnMergeRequest = true;
|
||||
|
||||
private List<String> allowedBranches;
|
||||
|
||||
// compatibility with earlier plugins
|
||||
|
@ -84,6 +79,10 @@ public class GitLabPushTrigger extends Trigger<AbstractProject<?, ?>> {
|
|||
return setBuildDescription;
|
||||
}
|
||||
|
||||
public boolean getAddNoteOnMergeRequest() {
|
||||
return addNoteOnMergeRequest;
|
||||
}
|
||||
|
||||
public List<String> getAllowedBranches() {
|
||||
return allowedBranches;
|
||||
}
|
||||
|
@ -225,7 +224,35 @@ public class GitLabPushTrigger extends Trigger<AbstractProject<?, ?>> {
|
|||
}
|
||||
}
|
||||
|
||||
public void onCompleted(AbstractBuild abstractBuild){
|
||||
public void onCompleted(AbstractBuild build){
|
||||
Cause mCause= build.getCause(GitLabMergeCause.class);
|
||||
if (mCause != null && mCause instanceof GitLabMergeCause) {
|
||||
onCompleteMergeRequest(build,(GitLabMergeCause) mCause);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void onCompleteMergeRequest(AbstractBuild abstractBuild,GitLabMergeCause cause){
|
||||
if(addNoteOnMergeRequest) {
|
||||
StringBuilder msg = new StringBuilder();
|
||||
if (abstractBuild.getResult() == Result.SUCCESS) {
|
||||
msg.append(":white_check_mark:");
|
||||
} else {
|
||||
msg.append(":anguished:");
|
||||
}
|
||||
msg.append(" Jenkins Build ").append(abstractBuild.getResult().color.getDescription());
|
||||
String buildUrl = Jenkins.getInstance().getRootUrl() + abstractBuild.getUrl();
|
||||
msg.append("\n\nResults available at: ")
|
||||
.append("[").append("Jenkins").append("](").append(buildUrl).append(")");
|
||||
try {
|
||||
GitlabProject proj = cause.getMergeRequest().getSourceProject(this.getDescriptor().getGitlab());
|
||||
org.gitlab.api.models.GitlabMergeRequest mr = this.getDescriptor().getGitlab().instance().getMergeRequest(proj,cause.getMergeRequest().getObjectAttribute().getId());
|
||||
this.getDescriptor().getGitlab().instance().createNote(mr,msg.toString());
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onStarted(AbstractBuild abstractBuild) {
|
||||
|
|
|
@ -12,6 +12,9 @@
|
|||
<f:entry title="Set build description to build cause (eg. Merge request or Git Push )" field="setBuildDescription">
|
||||
<f:checkbox default="true" />
|
||||
</f:entry>
|
||||
<f:entry title="Add note with build status on merge requests" field="addNoteOnMergeRequest">
|
||||
<f:checkbox default="true" />
|
||||
</f:entry>
|
||||
<f:entry title="Filter branches" help="/plugin/gitlab-plugin/help/help-allowedBranches.html">
|
||||
<j:invoke on="${descriptor}" method="getProjectBranches" var="projectBranches" />
|
||||
<j:set var="optionsSize" value="${projectBranches.size()}"/>
|
||||
|
|
Loading…
Reference in New Issue