use of argelbargel.jenkins.plugins.gitlab_branch_source.api.GitLabMergeRequest in project gitlab-branch-source-plugin by Argelbargel.
the class SourceActions method retrieve.
@Nonnull
private List<Action> retrieve(@Nonnull GitLabSCMHead head, @CheckForNull SCMHeadEvent event, @Nonnull TaskListener listener) throws IOException, InterruptedException {
List<Action> actions = new ArrayList<>();
actions.add(new GitLabSCMPublishAction(head, source.getSourceSettings()));
Action linkAction;
if (head instanceof ChangeRequestSCMHead) {
GitLabMergeRequest mr = retrieveMergeRequest((ChangeRequestSCMHead) head, listener);
linkAction = GitLabLinkAction.toMergeRequest(mr.getWebUrl());
if (acceptMergeRequest(head)) {
boolean removeSourceBranch = mr.getRemoveSourceBranch() || removeSourceBranch(head);
actions.add(new GitLabSCMAcceptMergeRequestAction(mr.getProjectId(), mr.getId(), mr.getIid(), source.getSourceSettings().getMergeCommitMessage(), removeSourceBranch));
}
} else {
linkAction = (head instanceof TagSCMHead) ? GitLabLinkAction.toTag(source.getProject(), head.getName()) : GitLabLinkAction.toBranch(source.getProject(), head.getName());
if (head instanceof GitLabSCMBranchHead && StringUtils.equals(source.getProject().getDefaultBranch(), head.getName())) {
actions.add(new PrimaryInstanceMetadataAction());
}
}
actions.add(linkAction);
return actions;
}
use of argelbargel.jenkins.plugins.gitlab_branch_source.api.GitLabMergeRequest in project gitlab-branch-source-plugin by Argelbargel.
the class SourceHeads method retrieveMergeRequests.
private void retrieveMergeRequests(@CheckForNull SCMSourceCriteria criteria, @Nonnull SCMHeadObserver observer, @Nonnull TaskListener listener) throws IOException, InterruptedException {
branchesWithMergeRequestsCache = new HashMap<>();
if (source.getProject().isMergeRequestsEnabled() && source.getSourceSettings().shouldMonitorMergeRequests()) {
log(listener, Messages.GitLabSCMSource_retrievingMergeRequests());
GitLabMergeRequestFilter filter = source.getSourceSettings().createMergeRequestFilter(listener);
for (GitLabMergeRequest mr : filter.filter(api().getMergeRequests(source.getProjectId()))) {
checkInterrupt();
if (!source.isExcluded(mr.getTargetBranch())) {
observe(criteria, observer, mr, listener);
}
}
}
}
use of argelbargel.jenkins.plugins.gitlab_branch_source.api.GitLabMergeRequest in project gitlab-branch-source-plugin by Argelbargel.
the class SourceHeads method retrieveMergeRequest.
private void retrieveMergeRequest(SCMSourceCriteria criteria, @Nonnull SCMHeadObserver observer, @Nonnull GitLabSCMMergeRequestEvent event, @Nonnull TaskListener listener) throws IOException, InterruptedException {
MergeRequestObjectAttributes attributes = event.getPayload().getObjectAttributes();
String targetBranch = attributes.getTargetBranch();
if (!source.isExcluded(targetBranch)) {
int mrId = attributes.getId();
log(listener, Messages.GitLabSCMSource_retrievingMergeRequest(mrId));
try {
GitLabMergeRequest mr = api().getMergeRequest(source.getProjectId(), mrId);
observe(criteria, observer, mr, listener);
} catch (NoSuchElementException e) {
log(listener, Messages.GitLabSCMSource_removedMergeRequest(mrId));
branchesWithMergeRequests(listener).remove(mrId);
}
int sourceProjectId = attributes.getSourceProjectId();
if (sourceProjectId == source.getProjectId()) {
observe(criteria, observer, createBranch(source.getProjectId(), attributes.getSourceBranch(), attributes.getLastCommit().getId()), listener);
}
}
}
Aggregations