Merge "gitlab: support the MR merged event"

This commit is contained in:
Zuul 2020-09-03 13:24:51 +00:00 committed by Gerrit Code Review
commit a0de74bef8
6 changed files with 57 additions and 0 deletions

View File

@ -65,6 +65,27 @@
approval: false
sqlreporter:
- pipeline:
name: promote
post-review: true
manager: supercedent
precedence: high
require:
gitlab.com:
merged: true
trigger:
gitlab.com:
- event: gl_merge_request
action: merged
success:
gitlab.com:
comment: true
sqlreporter:
failure:
gitlab.com:
comment: true
sqlreporter:
- pipeline:
name: post
post-review: true

View File

@ -120,6 +120,10 @@ the following options.
Merge request synchronized.
.. value:: merged
Merge request merged.
.. value:: comment
Comment added to merge request.

View File

@ -1859,6 +1859,10 @@ class FakeGitlabMergeRequest(object):
self.addCommit()
return self.getMergeRequestEvent(action='update')
def getMergeRequestMergedEvent(self):
self.mergeMergeRequest()
return self.getMergeRequestEvent(action='merge')
def getMergeRequestApprovedEvent(self):
self.approved = True
return self.getMergeRequestEvent(action='approved')

View File

@ -43,6 +43,15 @@
labels:
- gateit
- pipeline:
name: promote
manager: independent
trigger:
gitlab:
- event: gl_merge_request
action:
- merged
- pipeline:
name: post
post-review: true
@ -90,6 +99,10 @@
name: project-test-labeled
run: playbooks/project-test-labeled.yaml
- job:
name: project-promote
run: playbooks/project-promote.yaml
- project:
name: org/project
check:
@ -102,6 +115,9 @@
check-labeled:
jobs:
- project-test-labeled
promote:
jobs:
- project-promote
post:
jobs:
- project-post-job

View File

@ -176,6 +176,16 @@ class TestGitlabDriver(ZuulTestCase):
self.waitUntilSettled()
self.assertEqual(1, len(self.history))
@simple_layout('layouts/basic-gitlab.yaml', driver='gitlab')
def test_merge_request_merged(self):
A = self.fake_gitlab.openFakeMergeRequest('org/project', 'master', 'A')
self.fake_gitlab.emitEvent(A.getMergeRequestMergedEvent())
self.waitUntilSettled()
self.assertEqual(1, len(self.history))
self.assertHistory([{'name': 'project-promote'}])
@simple_layout('layouts/basic-gitlab.yaml', driver='gitlab')
def test_merge_request_updated_builds_aborted(self):

View File

@ -130,6 +130,8 @@ class GitlabEventConnector(threading.Thread):
event.change_number)
if attrs['action'] == 'open':
event.action = 'opened'
elif attrs['action'] == 'merge':
event.action = 'merged'
elif attrs['action'] == 'update' and "labels" not in body:
event.action = 'changed'
elif attrs['action'] == 'update' and "labels" in body: