Skip to content

Commit

Permalink
Submit a comment to the PR in additional to pushing a commit.
Browse files Browse the repository at this point in the history
  • Loading branch information
kennytm committed Feb 22, 2018
1 parent 1acd378 commit e181050
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Expand Up @@ -188,7 +188,7 @@ matrix:
script:
MESSAGE_FILE=$(mktemp -t msg.XXXXXX);
. src/ci/docker/x86_64-gnu-tools/repo.sh;
commit_toolstate_change "$MESSAGE_FILE" "$TRAVIS_BUILD_DIR/src/tools/publish_toolstate.py" "$(git rev-parse HEAD)" "$(git log --format=%s -n1 HEAD)" "$MESSAGE_FILE"
commit_toolstate_change "$MESSAGE_FILE" "$TRAVIS_BUILD_DIR/src/tools/publish_toolstate.py" "$(git rev-parse HEAD)" "$(git log --format=%s -n1 HEAD)" "$MESSAGE_FILE" "$TOOLSTATE_REPO_ACCESS_TOKEN";

env:
global:
Expand Down
30 changes: 25 additions & 5 deletions src/tools/publish_toolstate.py
Expand Up @@ -18,6 +18,10 @@
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 = {
Expand Down Expand Up @@ -100,13 +104,15 @@ def update_latest(
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:
number = relevant_pr_match.group(1)
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>'

Expand All @@ -116,9 +122,23 @@ def update_latest(
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()

0 comments on commit e181050

Please sign in to comment.