Skip to content

Commit 1acd378

Browse files
committed
Provides direct link to the PR when toolstate is changed.
Fix rust-lang-nursery/rust-toolstate#1.
1 parent b1f8e6f commit 1acd378

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

src/tools/publish_toolstate.py

+26-7
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import copy
1818
import datetime
1919
import collections
20+
import textwrap
2021

2122
# List of people to ping when the status of a tool changed.
2223
MAINTAINERS = {
@@ -38,7 +39,12 @@ def read_current_status(current_commit, path):
3839
return {}
3940

4041

41-
def update_latest(current_commit, relevant_pr_number, current_datetime):
42+
def update_latest(
43+
current_commit,
44+
relevant_pr_number,
45+
relevant_pr_url,
46+
current_datetime
47+
):
4248
'''Updates `_data/latest.json` to match build result of the given commit.
4349
'''
4450
with open('_data/latest.json', 'rb+') as f:
@@ -50,8 +56,13 @@ def update_latest(current_commit, relevant_pr_number, current_datetime):
5056
}
5157

5258
slug = 'rust-lang/rust'
53-
message = '📣 Toolstate changed by {}!\n\nTested on commit {}@{}.\n\n' \
54-
.format(relevant_pr_number, slug, current_commit)
59+
message = textwrap.dedent('''\
60+
📣 Toolstate changed by {}!
61+
62+
Tested on commit {}@{}.
63+
Direct link to PR: <{}>
64+
65+
''').format(relevant_pr_number, slug, current_commit, relevant_pr_url)
5566
anything_changed = False
5667
for status in latest:
5768
tool = status['tool']
@@ -90,13 +101,21 @@ def update_latest(current_commit, relevant_pr_number, current_datetime):
90101
cur_commit_msg = sys.argv[2]
91102
save_message_to_path = sys.argv[3]
92103

93-
relevant_pr_match = re.search('#[0-9]+', cur_commit_msg)
104+
relevant_pr_match = re.search('#([0-9]+)', cur_commit_msg)
94105
if relevant_pr_match:
95-
relevant_pr_number = 'rust-lang/rust' + relevant_pr_match.group(0)
106+
number = relevant_pr_match.group(1)
107+
relevant_pr_number = 'rust-lang/rust#' + number
108+
relevant_pr_url = 'https://github.com/rust-lang/rust/pull/' + number
96109
else:
97110
relevant_pr_number = '<unknown PR>'
98-
99-
message = update_latest(cur_commit, relevant_pr_number, cur_datetime)
111+
relevant_pr_url = '<unknown>'
112+
113+
message = update_latest(
114+
cur_commit,
115+
relevant_pr_number,
116+
relevant_pr_url,
117+
cur_datetime
118+
)
100119
if message:
101120
print(message)
102121
with open(save_message_to_path, 'w') as f:

0 commit comments

Comments
 (0)