-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major
-
Component/s: gitlab-branch-source-plugin
-
None
Given a project configured as:
organizationFolder("Org1/Org2") {
organizations {
gitLabSCMNavigator {
projectOwner("Org1/Org2")
credentialsId("cee-gitlab-token")
serverName("cee-gitlab-server")
traits {
gitLabBranchDiscovery {
strategyId(3) // discover all branches
}
originMergeRequestDiscoveryTrait {
strategyId(1) // discover MRs and merge them with target branch
}
logComment {
logSuccess(true)
}
mrTriggerComment {
commentBody("jenkins rebuild")
onlyTrustedMembersCanTrigger(true)
}
}
}
}
// "Traits" ("Behaviours" in the GUI) that are NOT "declarative-compatible"
// For some 'traits', we need to configure this stuff by hand until JobDSL handles it
// https://issues.jenkins.io/browse/JENKINS-45504
configure {
def traits = it / navigators / 'io.jenkins.plugins.gitlabbranchsource.GitLabSCMNavigator' / traits
traits << 'io.jenkins.plugins.gitlabbranchsource.ForkMergeRequestDiscoveryTrait' {
strategyId(2)
trust(class: 'io.jenkins.plugins.gitlabbranchsource.ForkMergeRequestDiscoveryTrait$TrustPermission')
}
}
projectFactories {
workflowMultiBranchProjectFactory {
scriptPath 'Jenkinsfile'
}
}
// "Orphaned Item Strategy"
orphanedItemStrategy {
discardOldItems {
daysToKeep(10)
numToKeep(5)
}
}
// "Scan Organization Folder Triggers" : 1 day
// We need to configure this stuff by hand because JobDSL only allow 'periodic(int min)' for now
triggers {
periodicFolderTrigger {
interval('1d')
}
}
}
Scanning for branches/MRs gets aborted on a first MR that is from a private repository. MRs from public forks and from that repository itself are detected correctly.
Checking merge requests..
Checking merge request !9
ERROR: [Wed Aug 03 07:08:00 UTC 2022] Could not fetch branches from source io.jenkins.plugins.gitlabbranchsource.GitLabSCMNavigator::https://gitlab.example.com::Org1/Org2::Org1/Org2/my-repo
[Wed Aug 03 07:08:00 UTC 2022] Finished branch indexing. Indexing took 0.99 sec
FATAL: Failed to recompute children of Org1 » Org2 » Org1/Org2/my-repo
org.gitlab4j.api.GitLabApiException: 404 Project Not Found
at org.gitlab4j.api.AbstractApi.validate(AbstractApi.java:633)
at org.gitlab4j.api.AbstractApi.get(AbstractApi.java:213)
at org.gitlab4j.api.ProjectApi.getProject(ProjectApi.java:673)
at io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.retrieve(GitLabSCMSource.java:417)
Caused: java.io.IOException: Failed to fetch latest heads
at io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.retrieve(GitLabSCMSource.java:538)
at jenkins.scm.api.SCMSource._retrieve(SCMSource.java:373)
at jenkins.scm.api.SCMSource.fetch(SCMSource.java:283)
at jenkins.branch.MultiBranchProject.computeChildren(MultiBranchProject.java:641)
at com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:278)
at com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:166)
at jenkins.branch.MultiBranchProject$BranchIndexing.run(MultiBranchProject.java:1032)
at hudson.model.ResourceController.execute(ResourceController.java:99)
at hudson.model.Executor.run(Executor.java:431)
Finished: FAILURE
There are essentially 2 consequences:
- None other MRs are discovered, even when they would not run into this bug. The scanning is aborted on first such MR.
- There is no indication why exactly the MR cannot be discovered. The log points to the target repo, while the problem is in reading from the source one.