mirror of
https://github.com/odoo/runbot.git
synced 2025-03-15 23:45:44 +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:
|
||||
self.merge_method = param
|
||||
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(
|
||||
"%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.comments == [
|
||||
(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')),
|
||||
]
|
||||
|
||||
@ -395,6 +396,7 @@ def test_staging_ci_failure_single(env, repo, users):
|
||||
|
||||
assert prx.comments == [
|
||||
(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')
|
||||
]
|
||||
|
||||
@ -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
|
||||
"""
|
||||
m0 = repo.make_commit(None, 'M0', None, tree={'m': '0'})
|
||||
@ -953,12 +955,24 @@ class TestMergeMethod:
|
||||
|
||||
prx.post_comment('hansen rebase-merge', "reviewer")
|
||||
assert pr.merge_method == 'rebase-merge'
|
||||
run_crons(env)
|
||||
|
||||
prx.post_comment('hansen merge', "reviewer")
|
||||
assert pr.merge_method == 'merge'
|
||||
run_crons(env)
|
||||
|
||||
prx.post_comment('hansen rebase-ff', "reviewer")
|
||||
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):
|
||||
""" test result on rebase-merge
|
||||
|
Loading…
Reference in New Issue
Block a user