|
48 | 48 | import java.util.Objects;
|
49 | 49 | import java.util.Set;
|
50 | 50 | import java.util.concurrent.ConcurrentHashMap;
|
51 |
| -import java.util.function.Predicate; |
52 | 51 | import java.util.logging.Level;
|
53 | 52 | import java.util.logging.Logger;
|
54 | 53 | import java.util.stream.Collectors;
|
| 54 | +import java.util.stream.Stream; |
55 | 55 | import jenkins.model.Jenkins;
|
56 | 56 | import jenkins.plugins.git.AbstractGitSCMSource;
|
57 | 57 | import jenkins.plugins.git.GitTagSCMRevision;
|
|
86 | 86 | import jenkins.scm.impl.trait.Selection;
|
87 | 87 | import org.apache.commons.lang.StringUtils;
|
88 | 88 | import org.gitlab4j.api.Constants;
|
| 89 | +import org.gitlab4j.api.Constants.MergeRequestState; |
89 | 90 | import org.gitlab4j.api.GitLabApi;
|
90 | 91 | import org.gitlab4j.api.GitLabApiException;
|
91 | 92 | import org.gitlab4j.api.models.AccessLevel;
|
@@ -332,41 +333,33 @@ protected void retrieve(
|
332 | 333 | if (request.isFetchBranches()) {
|
333 | 334 | request.setBranches(gitLabApi.getRepositoryApi().getBranches(gitlabProject));
|
334 | 335 | }
|
335 |
| - Predicate<MergeRequest> filter = ignore -> false; |
336 |
| - if (ctx.alwaysIgnoreMRWorkInProgress()) { |
337 |
| - filter = mr -> !mr.getWorkInProgress(); |
338 |
| - } |
339 | 336 | if (request.isFetchMRs() && gitlabProject.getMergeRequestsEnabled()) {
|
340 |
| - // If not authenticated GitLabApi cannot detect if it is a fork |
341 |
| - // If `forkedFromProject` is null it doesn't mean anything |
342 |
| - if (gitlabProject.getForkedFromProject() == null) { |
343 |
| - listener.getLogger() |
344 |
| - .format("%nUnable to detect if it is a mirror or not still fetching MRs anyway...%n"); |
345 |
| - List<MergeRequest> mrs = gitLabApi |
346 |
| - .getMergeRequestApi() |
347 |
| - .getMergeRequests(gitlabProject, Constants.MergeRequestState.OPENED); |
348 |
| - mrs = mrs.stream() |
349 |
| - .filter(mr -> mr.getSourceProjectId() != null) |
350 |
| - .filter(filter) |
351 |
| - .collect(Collectors.toList()); |
352 |
| - request.setMergeRequests(mrs); |
353 |
| - } else if (ctx.buildMRForksNotMirror()) { |
354 |
| - listener.getLogger() |
355 |
| - .format("%nCollecting MRs for fork except those that target its upstream...%n"); |
356 |
| - List<MergeRequest> mrs = gitLabApi |
357 |
| - .getMergeRequestApi() |
358 |
| - .getMergeRequests(gitlabProject, Constants.MergeRequestState.OPENED); |
359 |
| - mrs = mrs.stream() |
360 |
| - .filter(mr -> mr.getSourceProjectId() != null |
361 |
| - && !mr.getTargetProjectId() |
362 |
| - .equals(gitlabProject |
363 |
| - .getForkedFromProject() |
364 |
| - .getId())) |
365 |
| - .filter(filter) |
366 |
| - .collect(Collectors.toList()); |
367 |
| - request.setMergeRequests(mrs); |
368 |
| - } else { |
| 337 | + if (!ctx.buildMRForksNotMirror() && gitlabProject.getForkedFromProject() != null) { |
369 | 338 | listener.getLogger().format("%nIgnoring merge requests as project is a mirror...%n");
|
| 339 | + } else { |
| 340 | + // If not authenticated GitLabApi cannot detect if it is a fork |
| 341 | + // If `forkedFromProject` is null it doesn't mean anything |
| 342 | + listener.getLogger() |
| 343 | + .format( |
| 344 | + gitlabProject.getForkedFromProject() == null |
| 345 | + ? "%nUnable to detect if it is a mirror or not still fetching MRs anyway...%n" |
| 346 | + : "%nCollecting MRs for fork except those that target its upstream...%n"); |
| 347 | + Stream<MergeRequest> mrs = |
| 348 | + gitLabApi |
| 349 | + .getMergeRequestApi() |
| 350 | + .getMergeRequests(gitlabProject, MergeRequestState.OPENED) |
| 351 | + .stream() |
| 352 | + .filter(mr -> mr.getSourceProjectId() != null); |
| 353 | + if (ctx.buildMRForksNotMirror()) { |
| 354 | + mrs = mrs.filter(mr -> !mr.getTargetProjectId() |
| 355 | + .equals(gitlabProject.getForkedFromProject().getId())); |
| 356 | + } |
| 357 | + |
| 358 | + if (ctx.alwaysIgnoreMRWorkInProgress()) { |
| 359 | + mrs = mrs.filter(mr -> !mr.getWorkInProgress()); |
| 360 | + } |
| 361 | + |
| 362 | + request.setMergeRequests(mrs.collect(Collectors.toList())); |
370 | 363 | }
|
371 | 364 | }
|
372 | 365 | if (request.isFetchTags()) {
|
|
0 commit comments