diff --git a/eventhandler.py b/eventhandler.py index 032c168..b22acbc 100644 --- a/eventhandler.py +++ b/eventhandler.py @@ -14,6 +14,7 @@ 'labeled': 'on_issue_labeled', 'enqueued': 'on_pr_enqueued', 'dequeued': 'on_pr_dequeued', + 'ready_for_review': 'on_pr_ready_for_review', } @@ -36,6 +37,9 @@ def on_pr_enqueued(self, api, payload): def on_pr_dequeued(self, api, payload): pass + def on_pr_ready_for_review(self, api, payload): + pass + def on_issue_labeled(self, api, payload): pass diff --git a/handlers/status_update/__init__.py b/handlers/status_update/__init__.py index 0292819..59672a6 100644 --- a/handlers/status_update/__init__.py +++ b/handlers/status_update/__init__.py @@ -92,6 +92,12 @@ def on_pr_updated(self, api, payload): update_rebase_status(api, payload) handle_custom_labels(api, 'updated') + def on_pr_ready_for_review(self, api, payload): + clear_pr_labels(api) + api.add_label(AWAITING_REVIEW) + update_rebase_status(api, payload) + handle_custom_labels(api, 'ready') + def on_pr_closed(self, api, payload): handle_custom_labels(api, 'closed') if "pull_request" in payload and \ diff --git a/handlers/status_update/tests/pr_ready_for_review.json b/handlers/status_update/tests/pr_ready_for_review.json new file mode 100644 index 0000000..ca78c1d --- /dev/null +++ b/handlers/status_update/tests/pr_ready_for_review.json @@ -0,0 +1,23 @@ +{ + "expected": { + "labels": [ + "S-awaiting-review" + ] + }, + "initial": {}, + "payload": { + "number": 7076, + "pull_request": { + "mergeable": true, + "base": { + "repo": { + "owner": { + "login": "servo" + }, + "name": "servo" + } + } + }, + "action": "ready_for_review" + } +} diff --git a/handlers/status_update/tests/unmergeable_pr_ready_for_review.json b/handlers/status_update/tests/unmergeable_pr_ready_for_review.json new file mode 100644 index 0000000..ce211db --- /dev/null +++ b/handlers/status_update/tests/unmergeable_pr_ready_for_review.json @@ -0,0 +1,24 @@ +{ + "expected": { + "labels": [ + "S-awaiting-review", + "S-needs-rebase" + ] + }, + "initial": {}, + "payload": { + "number": 7076, + "pull_request": { + "mergeable": false, + "base": { + "repo": { + "owner": { + "login": "servo" + }, + "name": "servo" + } + } + }, + "action": "ready_for_review" + } +}