Skip to content

Commit 73d6375

Browse files
committed
Don't update status on draft PRs.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
1 parent 0555510 commit 73d6375

File tree

8 files changed

+72
-1
lines changed

8 files changed

+72
-1
lines changed

handlers/status_update/__init__.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ def handle_custom_labels(api, event):
5151

5252

5353
def update_rebase_status(api, payload):
54+
if "pull_request" not in payload:
55+
return
56+
5457
mergeable = payload['pull_request']['mergeable']
5558

5659
# If mergeable is null, the data wasn't available yet.
@@ -64,23 +67,33 @@ def update_rebase_status(api, payload):
6467
api.add_label(NEED_REBASE)
6568

6669

70+
def is_draft_pr(payload):
71+
return "pull_request" in payload and payload["pull_request"]["draft"] == True
72+
73+
6774
class StatusUpdateHandler(EventHandler):
6875
def on_pr_opened(self, api, payload):
76+
if is_draft_pr(payload):
77+
return
78+
6979
labels = api.get_labels()
7080
if AWAITING_REVIEW not in labels:
7181
api.add_label(AWAITING_REVIEW)
7282
update_rebase_status(api, payload)
7383
handle_custom_labels(api, 'opened')
7484

7585
def on_pr_updated(self, api, payload):
86+
if is_draft_pr(payload):
87+
return
88+
7689
clear_pr_labels(api)
7790
api.add_label(AWAITING_REVIEW)
7891
update_rebase_status(api, payload)
7992
handle_custom_labels(api, 'updated')
8093

8194
def on_pr_closed(self, api, payload):
8295
handle_custom_labels(api, 'closed')
83-
if "pull_request" in payload and payload['pull_request']['merged']:
96+
if "pull_request" in payload and payload['pull_request']['merged'] == True:
8497
api.remove_label(AWAITING_MERGE)
8598
handle_custom_labels(api, 'merged')
8699

handlers/status_update/tests/new_pr.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"payload": {
99
"number": 7076,
1010
"pull_request": {
11+
"draft": false,
1112
"mergeable": true,
1213
"base": {
1314
"repo": {
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"expected": {
3+
"labels": [
4+
]
5+
},
6+
"initial": {},
7+
"payload": {
8+
"number": 7076,
9+
"pull_request": {
10+
"draft": true,
11+
"base": {
12+
"repo": {
13+
"owner": {
14+
"login": "servo"
15+
},
16+
"name": "servo"
17+
}
18+
}
19+
},
20+
"action": "opened"
21+
}
22+
}

handlers/status_update/tests/new_pr_unmergeable.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"payload": {
1010
"number": 7076,
1111
"pull_request": {
12+
"draft": false,
1213
"mergeable": false,
1314
"base": {
1415
"repo": {

handlers/status_update/tests/synchronize.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"payload": {
1515
"number": 7062,
1616
"pull_request": {
17+
"draft": false,
1718
"mergeable": true,
1819
"base": {
1920
"repo": {

handlers/status_update/tests/synchronize_changes.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"payload": {
77
"number": 7062,
88
"pull_request": {
9+
"draft": false,
910
"mergeable": true,
1011
"base": {
1112
"repo": {
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"expected": {
3+
"labels": [
4+
"S-needs-code-changes",
5+
"S-tests-failed",
6+
"S-awaiting-merge"
7+
]
8+
},
9+
"initial": {
10+
"labels": [
11+
"S-needs-code-changes",
12+
"S-tests-failed",
13+
"S-awaiting-merge"
14+
]
15+
},
16+
"payload": {
17+
"number": 7062,
18+
"pull_request": {
19+
"draft": true,
20+
"base": {
21+
"repo": {
22+
"owner": {
23+
"login": "servo"
24+
},
25+
"name": "servo"
26+
}
27+
}
28+
},
29+
"action": "synchronize"
30+
}
31+
}

handlers/status_update/tests/synchronize_mergeable.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,7 @@
314314
"payload": {
315315
"number": 7062,
316316
"pull_request": {
317+
"draft": false,
317318
"mergeable": null,
318319
"base": {
319320
"repo": {

0 commit comments

Comments
 (0)