Skip to content
This repository was archived by the owner on Mar 14, 2023. It is now read-only.

Commit 56e1480

Browse files
Adjust to provide better return messages to GitHub
1 parent 662d478 commit 56e1480

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

highfive/newpr.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,13 @@ def run(self, event):
6565
return "Ping received! The webhook is configured correctly!\n"
6666
elif event == "pull_request" and self.payload["action"] == "opened":
6767
self.new_pr()
68-
return 'OK\n'
68+
return 'OK, handled new PR\n'
6969
elif event == "issue_comment" and self.payload["action"] == "created":
70-
self.new_comment()
71-
return 'OK\n'
70+
msg = self.new_comment()
71+
if msg is None:
72+
return 'OK\n'
73+
else:
74+
return f"OK: {msg}\n"
7275
else:
7376
return 'Unsupported webhook event.\n'
7477

@@ -430,12 +433,12 @@ def new_comment(self):
430433
# Check the issue is a PR and is open.
431434
if self.payload['issue', 'state'] != 'open' \
432435
or 'pull_request' not in self.payload['issue']:
433-
return
436+
return "skipped - closed issue"
434437

435438
commenter = self.payload['comment', 'user', 'login']
436439
# Ignore our own comments.
437440
if commenter == self.integration_user:
438-
return
441+
return "skipped - our own comment"
439442

440443
owner = self.payload['repository', 'owner', 'login']
441444
repo = self.payload['repository', 'name']
@@ -448,7 +451,7 @@ def new_comment(self):
448451
)):
449452
# Check if commenter is a collaborator.
450453
if not self.is_collaborator(commenter, owner, repo):
451-
return
454+
return "skipped, comment not by author, collaborator, or assignee"
452455

453456
# Check for r? and set the assignee.
454457
msg = self.payload['comment', 'body']
@@ -459,3 +462,6 @@ def new_comment(self):
459462
reviewer, owner, repo, issue, self.integration_user,
460463
author, None
461464
)
465+
return f"set assignee to {reviewer}"
466+
else:
467+
return "no reviewer found"

highfive/tests/test_newpr.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -980,7 +980,7 @@ def make_handler(
980980
def test_not_open(self):
981981
handler = self.make_handler(state='closed')
982982

983-
assert handler.new_comment() is None
983+
assert handler.new_comment() == 'skipped - closed issue'
984984
self.mocks['is_collaborator'].assert_not_called()
985985
self.mocks['find_reviewer'].assert_not_called()
986986
self.mocks['set_assignee'].assert_not_called()
@@ -996,7 +996,7 @@ def test_not_pr(self):
996996
def test_commenter_is_integration_user(self):
997997
handler = self.make_handler(commenter='integrationUser')
998998

999-
assert handler.new_comment() is None
999+
assert handler.new_comment() == 'skipped - our own comment'
10001000
self.mocks['is_collaborator'].assert_not_called()
10011001
self.mocks['find_reviewer'].assert_not_called()
10021002
self.mocks['set_assignee'].assert_not_called()
@@ -1007,7 +1007,7 @@ def test_unauthorized_assigner(self):
10071007
)
10081008

10091009
self.mocks['is_collaborator'].return_value = False
1010-
assert handler.new_comment() is None
1010+
assert handler.new_comment() == 'skipped, comment not by author, collaborator, or assignee'
10111011
self.mocks['is_collaborator'].assert_called_with(
10121012
'userB', 'repo-owner', 'repo-name'
10131013
)
@@ -1315,14 +1315,14 @@ def handler_mock(self, payload):
13151315
def test_newpr(self):
13161316
payload = Payload({'action': 'opened'})
13171317
m = self.handler_mock(payload)
1318-
assert m.handler.run('pull_request') == 'OK\n'
1318+
assert m.handler.run('pull_request') == 'OK, handled new PR\n'
13191319
self.mocks['new_pr'].assert_called_once_with()
13201320
self.mocks['new_comment'].assert_not_called()
13211321

13221322
def test_new_comment(self):
13231323
payload = Payload({'action': 'created'})
13241324
m = self.handler_mock(payload)
1325-
assert m.handler.run('issue_comment') == 'OK\n'
1325+
assert m.handler.run('issue_comment').startswith('OK')
13261326
self.mocks['new_pr'].assert_not_called()
13271327
self.mocks['new_comment'].assert_called_once_with()
13281328

0 commit comments

Comments
 (0)