mirror of
https://github.com/odoo/runbot.git
synced 2025-03-27 13:25:47 +07:00
[IMP] runbot_merge: send feedback when merge method is changed
When a user changes the merge method via github messages, no feedback is sent. This could lead to strange behavior, for example when a user try to joke with the mergebot like this: > robodoo are you goin ti merge my PR rogntudju ! This sets the merge method to "merge" and the user is not aware of it.
This commit is contained in:
parent
e01ad86171
commit
549452f12d
@ -625,6 +625,12 @@ class PullRequests(models.Model):
|
|||||||
if is_admin:
|
if is_admin:
|
||||||
self.merge_method = param
|
self.merge_method = param
|
||||||
ok = True
|
ok = True
|
||||||
|
explanation = next(label for value, label in type(self).merge_method.selection if value == param)
|
||||||
|
Feedback.create({
|
||||||
|
'repository': self.repository.id,
|
||||||
|
'pull_request': self.number,
|
||||||
|
'message':"Merge method set to %s" % explanation
|
||||||
|
})
|
||||||
|
|
||||||
_logger.info(
|
_logger.info(
|
||||||
"%s %s(%s) on %s:%s by %s (%s)",
|
"%s %s(%s) on %s:%s by %s (%s)",
|
||||||
|
@ -337,6 +337,7 @@ def test_staging_merge_fail(env, repo, users):
|
|||||||
assert prx.labels == {'seen 🙂', 'error 🙅'}
|
assert prx.labels == {'seen 🙂', 'error 🙅'}
|
||||||
assert prx.comments == [
|
assert prx.comments == [
|
||||||
(users['reviewer'], 'hansen r+ rebase-merge'),
|
(users['reviewer'], 'hansen r+ rebase-merge'),
|
||||||
|
(users['user'], 'Merge method set to rebase and merge, using the PR as merge commit message'),
|
||||||
(users['user'], re_matches('^Unable to stage PR')),
|
(users['user'], re_matches('^Unable to stage PR')),
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -395,6 +396,7 @@ def test_staging_ci_failure_single(env, repo, users):
|
|||||||
|
|
||||||
assert prx.comments == [
|
assert prx.comments == [
|
||||||
(users['reviewer'], 'hansen r+ rebase-merge'),
|
(users['reviewer'], 'hansen r+ rebase-merge'),
|
||||||
|
(users['user'], "Merge method set to rebase and merge, using the PR as merge commit message"),
|
||||||
(users['user'], 'Staging failed: ci/runbot')
|
(users['user'], 'Staging failed: ci/runbot')
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -933,7 +935,7 @@ class TestMergeMethod:
|
|||||||
"""),
|
"""),
|
||||||
]
|
]
|
||||||
|
|
||||||
def test_pr_method_no_review(self, repo, env):
|
def test_pr_method_no_review(self, repo, env, users):
|
||||||
""" Configuring the method should be idependent from the review
|
""" Configuring the method should be idependent from the review
|
||||||
"""
|
"""
|
||||||
m0 = repo.make_commit(None, 'M0', None, tree={'m': '0'})
|
m0 = repo.make_commit(None, 'M0', None, tree={'m': '0'})
|
||||||
@ -953,12 +955,24 @@ class TestMergeMethod:
|
|||||||
|
|
||||||
prx.post_comment('hansen rebase-merge', "reviewer")
|
prx.post_comment('hansen rebase-merge', "reviewer")
|
||||||
assert pr.merge_method == 'rebase-merge'
|
assert pr.merge_method == 'rebase-merge'
|
||||||
|
run_crons(env)
|
||||||
|
|
||||||
prx.post_comment('hansen merge', "reviewer")
|
prx.post_comment('hansen merge', "reviewer")
|
||||||
assert pr.merge_method == 'merge'
|
assert pr.merge_method == 'merge'
|
||||||
|
run_crons(env)
|
||||||
|
|
||||||
prx.post_comment('hansen rebase-ff', "reviewer")
|
prx.post_comment('hansen rebase-ff', "reviewer")
|
||||||
assert pr.merge_method == 'rebase-ff'
|
assert pr.merge_method == 'rebase-ff'
|
||||||
|
run_crons(env)
|
||||||
|
|
||||||
|
assert prx.comments == [
|
||||||
|
(users['reviewer'], 'hansen rebase-merge'),
|
||||||
|
(users['user'], "Merge method set to rebase and merge, using the PR as merge commit message"),
|
||||||
|
(users['reviewer'], 'hansen merge'),
|
||||||
|
(users['user'], "Merge method set to merge directly, using the PR as merge commit message"),
|
||||||
|
(users['reviewer'], 'hansen rebase-ff'),
|
||||||
|
(users['user'], "Merge method set to rebase and fast-forward"),
|
||||||
|
]
|
||||||
|
|
||||||
def test_pr_rebase_merge(self, repo, env):
|
def test_pr_rebase_merge(self, repo, env):
|
||||||
""" test result on rebase-merge
|
""" test result on rebase-merge
|
||||||
|
Loading…
Reference in New Issue
Block a user