summaryrefslogtreecommitdiff
path: root/src/tools/publish_toolstate.py
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2018-02-21 22:58:06 +0800
committerkennytm <kennytm@gmail.com>2018-02-23 03:30:10 +0800
commite18105079e4d0b925897fbb786cebb9539662e13 (patch)
tree67e97a097958a62d227a33035fb83b13a0c7fc80 /src/tools/publish_toolstate.py
parent1acd3789bb70c39f23c8fb13f0db50402ebb146a (diff)
downloadrust-e18105079e4d0b925897fbb786cebb9539662e13.tar.gz
Submit a comment to the PR in additional to pushing a commit.
Fix rust-lang-nursery/rust-toolstate#2.
Diffstat (limited to 'src/tools/publish_toolstate.py')
-rwxr-xr-xsrc/tools/publish_toolstate.py30
1 files changed, 25 insertions, 5 deletions
diff --git a/src/tools/publish_toolstate.py b/src/tools/publish_toolstate.py
index e2dbdb301e2..40abe81c449 100755
--- a/src/tools/publish_toolstate.py
+++ b/src/tools/publish_toolstate.py
@@ -18,6 +18,10 @@ import copy
import datetime
import collections
import textwrap
+try:
+ import urllib2
+except ImportError:
+ import urllib.request as urllib2
# List of people to ping when the status of a tool changed.
MAINTAINERS = {
@@ -100,6 +104,7 @@ if __name__ == '__main__':
cur_datetime = datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ')
cur_commit_msg = sys.argv[2]
save_message_to_path = sys.argv[3]
+ github_token = sys.argv[4]
relevant_pr_match = re.search('#([0-9]+)', cur_commit_msg)
if relevant_pr_match:
@@ -107,6 +112,7 @@ if __name__ == '__main__':
relevant_pr_number = 'rust-lang/rust#' + number
relevant_pr_url = 'https://github.com/rust-lang/rust/pull/' + number
else:
+ number = '-1'
relevant_pr_number = '<unknown PR>'
relevant_pr_url = '<unknown>'
@@ -116,9 +122,23 @@ if __name__ == '__main__':
relevant_pr_url,
cur_datetime
)
- if message:
- print(message)
- with open(save_message_to_path, 'w') as f:
- f.write(message)
- else:
+ if not message:
print('<Nothing changed>')
+ sys.exit(0)
+
+ print(message)
+ with open(save_message_to_path, 'w') as f:
+ f.write(message)
+
+ # Write the toolstate comment on the PR as well.
+ gh_url = 'https://api.github.com/repos/rust-lang/rust/issues/{}/comments' \
+ .format(number)
+ response = urllib2.urlopen(urllib2.Request(
+ gh_url,
+ json.dumps({'body': message}),
+ {
+ 'Authorization': 'token ' + github_token,
+ 'Content-Type': 'application/json',
+ }
+ ))
+ response.read()