jenkinsci / jenkinsci/gitlab-plugin

acceptGitlabMR doesn`t throw exception in case of merge failure

Open
#1,591 1 comment 0 reactions 0 assignees View on GitHub
bug
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.