mirror of
https://github.com/odoo/runbot.git
synced 2025-03-15 23:45:44 +07:00
[CHG] runbot_merge: treat github reviews as regular comments
Treating them specially turns out to be inconvenient: it becomes harder/riskier to ask for informal reviews (for which GH reviews are useful).
This commit is contained in:
parent
7fc7b78a04
commit
6df9a68af2
@ -235,28 +235,27 @@ def handle_comment(env, event):
|
||||
return pr._parse_commands(partner, comment)
|
||||
|
||||
def handle_review(env, event):
|
||||
partner = env['res.partner'].search([('github_login', '=', event['review']['user']['login'])])
|
||||
repo = event['repository']['full_name']
|
||||
comment = event['review']['body'] or ''
|
||||
author = event['review']['user']['login']
|
||||
|
||||
partner = env['res.partner'].search([('github_login', '=', author)])
|
||||
if not partner:
|
||||
_logger.info('ignoring comment from %s: not in system', event['review']['user']['login'])
|
||||
_logger.info('ignoring comment from %s: not in system', author)
|
||||
return 'ignored'
|
||||
|
||||
repository = env['runbot_merge.repository'].search([('name', '=', repo)])
|
||||
if not repository.project_id._find_commands(comment):
|
||||
return "No commands, ignoring"
|
||||
|
||||
pr = env['runbot_merge.pull_requests']._get_or_schedule(
|
||||
event['repository']['full_name'],
|
||||
event['pull_request']['number'],
|
||||
repo, event['pull_request']['number'],
|
||||
event['pull_request']['base']['ref']
|
||||
)
|
||||
if not pr:
|
||||
return "Unknown PR, scheduling fetch"
|
||||
|
||||
firstline = ''
|
||||
state = event['review']['state'].lower()
|
||||
if state == 'approved':
|
||||
firstline = pr.repository.project_id.github_prefix + ' r+'
|
||||
elif state == 'request_changes':
|
||||
firstline = pr.repository.project_id.github_prefix + ' r-'
|
||||
|
||||
body = event['review']['body']
|
||||
return pr._parse_commands(partner, firstline + (('\n' + body) if body else ''))
|
||||
return pr._parse_commands(partner, comment)
|
||||
|
||||
def handle_ping(env, event):
|
||||
print("Got ping! {}".format(event['zen']))
|
||||
|
@ -1675,6 +1675,8 @@ class TestReviewing(object):
|
||||
]).state == 'ready'
|
||||
|
||||
def test_actual_review(self, env, repo):
|
||||
""" treat github reviews as regular comments
|
||||
"""
|
||||
m = repo.make_commit(None, 'initial', None, tree={'m': 'm'})
|
||||
m2 = repo.make_commit(m, 'second', None, tree={'m': 'm', 'm2': 'm2'})
|
||||
repo.make_ref('heads/master', m2)
|
||||
@ -1692,6 +1694,15 @@ class TestReviewing(object):
|
||||
|
||||
prx.post_review('APPROVE', 'reviewer', "hansen priority=2")
|
||||
assert pr.priority == 2
|
||||
assert pr.state == 'opened'
|
||||
|
||||
prx.post_review('REQUEST_CHANGES', 'reviewer', 'hansen priority=1')
|
||||
assert pr.priority == 1
|
||||
assert pr.state == 'opened'
|
||||
|
||||
|
||||
prx.post_review('COMMENT', 'reviewer', 'hansen r+')
|
||||
assert pr.priority == 1
|
||||
assert pr.state == 'approved'
|
||||
|
||||
class TestUnknownPR:
|
||||
|
Loading…
Reference in New Issue
Block a user