jenkinsci / gitlab-branch-source-plugin

A Jenkins Plugin for GitLab Multibranch Pipeline jobs and Folder Organization
https://plugins.jenkins.io/gitlab-branch-source
MIT License
124 stars 94 forks source link

Fix JENKINS-71955 NullPointerException because getMergeRequestsEnabled is null #456

Closed pbaumard closed 2 weeks ago

pbaumard commented 3 weeks ago

Fix https://issues.jenkins.io/browse/JENKINS-71955

NullPointerException: Cannot invoke "java.lang.Boolean.booleanValue()" because the return value of "org.gitlab4j.api.models.Project.getMergeRequestsEnabled()" is null

This is an alternative to https://github.com/jenkinsci/gitlab-branch-source-plugin/pull/406 since this PR really fixes the NPE.

Note that the current title of JENKINS-71955 "GitLab branch source scan fails with null pointer exception if credentials are not provided" is misleading since the NPE also occurs when credentials are provided.

A null getMergeRequestsEnabled seems to be a very common situation, and I cannot find any workaround for this bug in our current Gitlab version (17.5).

According to https://github.com/gitlab4j/gitlab4j-api/blob/fe96001fd18d9411f5b4fbbeeca2377bb3791864/src/main/java/org/gitlab4j/api/ProjectApi.java#L1195

mergeRequestsEnabled Whether Merge Requests should be enabled, otherwise null indicates to use GitLab default

And according to https://docs.gitlab.com/ee/api/projects.html#create-a-project

Attribute | Type | Required | Description merge_requests_enabled | boolean | No | (Deprecated) Enable merge requests for this project. Use merge_requests_access_level instead.

Testing done

Added GitLabSCMSourceTest.java

Submitter checklist

basil commented 2 days ago

Caused #460