jenkinsci / jenkinsci/gitlab-plugin
acceptGitlabMR doesn`t throw exception in case of merge failure
- Dominant language
- Java
- Stars
- 1.4k
- Forks
- 615
- Avg merge
- 4h 32m
- Merged PRs (30d)
- 10
Description
### Jenkins and plugins versions report
Environment
```text
Paste the output here
```
### What Operating System are you using (both controller, and any agents involved in the problem)?
Gitlab plugin version: 1.5.33
Gitlab version: 15.11.13
Jenkins version: 2.401.1 (running as a Docker container on Red Hat Enterprise Linux v8.8 Ootpa)
Job type: Pipeline
### Reproduction steps
1. Set a GitLab connection in Jenkins with GitLab plugin, using API token
2. Set a Webhook in GitLab to Jenkins job (200 status is shown when event is pushed)
3. Create MR and make it unmergeable (for example, need a rebase on destination branch)
4. Get GitLab MR info with the Webhook event and try to accept it using acceptGitLabMR
Source code (Groovy):
```
properties([
gitLabConnection('project_gitlab'),
pipelineTriggers([
[
$class: 'GitLabPushTrigger',
triggerOnPush: true,
triggerOnMergeRequest: true,
ciSkip: false,
setBuildDescription: true,
addNoteOnMergeRequest: true,
addCiMessage: true,
addVoteOnMergeRequest: true,
acceptMergeRequestOnSuccess: true
...
]
])
])
...some build steps...
acceptGitLabMR(useMRDescription: true, removeSourceBranch: true)
```
5. Get result "Success" and following message in Console logs "Failed to accept merge request for project '24': HTTP 422 Unprocessable Entity".
Also, if command is assigned to variable, it`s value is always "null". Example:
`acceptGitLabMR = acceptGitLabMR(useMRDescription: true, removeSourceBranch: true)
`
### Expected Results
acceptGitlabMR throws Exception if for some reason merging MR has failed. For example, if MR needs a rebase and GitLab configured to not allow auto-merging such MRs
### Actual Results
acceptGitlabMR always returns "Success" even if MR is not actually merged. Currently it`s not possible to validate if MR was successfully merged or not
### Anything else?
Result of command acceptGitlabMR() needs to be handled and validated. For example, to be able to use it in try-catch section.
Contributor guide
Assessment
This issue has not been assessed yet.