Merge "Pagure - handles pull-request.closed event"
This commit is contained in:
commit
ad48d852a4
|
@ -101,6 +101,10 @@ the following options.
|
|||
|
||||
Pull request synchronized.
|
||||
|
||||
.. value:: closed
|
||||
|
||||
Pull request closed.
|
||||
|
||||
.. value:: comment
|
||||
|
||||
Comment added to pull request.
|
||||
|
|
|
@ -67,6 +67,28 @@
|
|||
comment: true
|
||||
sqlreporter:
|
||||
|
||||
- pipeline:
|
||||
name: promote
|
||||
post-review: true
|
||||
manager: supercedent
|
||||
precedence: high
|
||||
require:
|
||||
pagure.io:
|
||||
merged: True
|
||||
open: False
|
||||
trigger:
|
||||
pagure.io:
|
||||
- event: pg_pull_request
|
||||
action: closed
|
||||
success:
|
||||
pagure.io:
|
||||
comment: true
|
||||
sqlreporter:
|
||||
failure:
|
||||
pagure.io:
|
||||
comment: true
|
||||
sqlreporter:
|
||||
|
||||
- pipeline:
|
||||
name: post
|
||||
post-review: true
|
||||
|
|
|
@ -1157,6 +1157,15 @@ class FakePagurePullRequest(object):
|
|||
def getPullRequestOpenedEvent(self):
|
||||
return self._getPullRequestEvent('pull-request.new')
|
||||
|
||||
def getPullRequestClosedEvent(self, merged=True):
|
||||
if merged:
|
||||
self.is_merged = True
|
||||
self.status = 'Merged'
|
||||
else:
|
||||
self.is_merged = False
|
||||
self.status = 'Closed'
|
||||
return self._getPullRequestEvent('pull-request.closed')
|
||||
|
||||
def getPullRequestUpdatedEvent(self):
|
||||
self._addCommitInPR()
|
||||
self.addComment(
|
||||
|
|
|
@ -66,6 +66,22 @@
|
|||
pagure:
|
||||
status: 'success'
|
||||
|
||||
- pipeline:
|
||||
name: require-trigger-pg-closed-merged
|
||||
precedence: high
|
||||
manager: independent
|
||||
require:
|
||||
pagure:
|
||||
merged: True
|
||||
open: False
|
||||
trigger:
|
||||
pagure:
|
||||
- event: pg_pull_request
|
||||
action: closed
|
||||
success:
|
||||
pagure:
|
||||
comment: true
|
||||
|
||||
- job:
|
||||
name: base
|
||||
parent: null
|
||||
|
@ -102,5 +118,11 @@
|
|||
- project:
|
||||
name: org/project5
|
||||
require-tag:
|
||||
jobs:
|
||||
- project-test
|
||||
|
||||
- project:
|
||||
name: org/project6
|
||||
require-trigger-pg-closed-merged:
|
||||
jobs:
|
||||
- project-test
|
|
@ -406,6 +406,29 @@ class TestPagureDriver(ZuulTestCase):
|
|||
self.waitUntilSettled()
|
||||
self.assertEqual(1, len(self.history))
|
||||
|
||||
@simple_layout('layouts/requirements-pagure.yaml', driver='pagure')
|
||||
def test_pull_request_closed(self):
|
||||
|
||||
A = self.fake_pagure.openFakePullRequest(
|
||||
'org/project6', 'master', 'A')
|
||||
|
||||
self.fake_pagure.emitEvent(A.getPullRequestOpenedEvent())
|
||||
self.waitUntilSettled()
|
||||
self.assertEqual(0, len(self.history))
|
||||
|
||||
# Validate a closed but not merged PR does not trigger the pipeline
|
||||
self.fake_pagure.emitEvent(A.getPullRequestClosedEvent(merged=False))
|
||||
self.waitUntilSettled()
|
||||
self.assertEqual(0, len(self.history))
|
||||
|
||||
# Reset the status to Open
|
||||
# Validate a closed and merged PR triggers the pipeline
|
||||
A.status = 'Open'
|
||||
A.is_merged = False
|
||||
self.fake_pagure.emitEvent(A.getPullRequestClosedEvent())
|
||||
self.waitUntilSettled()
|
||||
self.assertEqual(1, len(self.history))
|
||||
|
||||
@simple_layout('layouts/merging-pagure.yaml', driver='pagure')
|
||||
def test_merge_action_in_independent(self):
|
||||
|
||||
|
|
|
@ -199,6 +199,7 @@ class PagureEventConnector(threading.Thread):
|
|||
r"^\*\*Metadata Update", re.MULTILINE)
|
||||
self.event_handler_mapping = {
|
||||
'pull-request.comment.added': self._event_issue_comment,
|
||||
'pull-request.closed': self._event_pull_request_closed,
|
||||
'pull-request.new': self._event_pull_request,
|
||||
'pull-request.flag.added': self._event_flag_added,
|
||||
'git.receive': self._event_ref_updated,
|
||||
|
@ -312,12 +313,18 @@ class PagureEventConnector(threading.Thread):
|
|||
return event
|
||||
|
||||
def _event_pull_request(self, body):
|
||||
""" Handles pull request event """
|
||||
""" Handles pull request opened event """
|
||||
# https://fedora-fedmsg.readthedocs.io/en/latest/topics.html#pagure-pull-request-new
|
||||
event, data = self._event_base(body)
|
||||
event.action = 'opened'
|
||||
return event
|
||||
|
||||
def _event_pull_request_closed(self, body):
|
||||
""" Handles pull request closed event """
|
||||
event, data = self._event_base(body)
|
||||
event.action = 'closed'
|
||||
return event
|
||||
|
||||
def _event_flag_added(self, body):
|
||||
""" Handles flag added event """
|
||||
# https://fedora-fedmsg.readthedocs.io/en/latest/topics.html#pagure-pull-request-flag-added
|
||||
|
|
Loading…
Reference in New Issue