repo-review: Add set/delete topic and set hashtags

Test: ./repo_review.py --set-topic test [query]
Test: ./repo_review.py --delete-topic [query]
Test: ./repo_review.py --add-hashtag test [query]
Test: ./repo_review.py --remove-hashtag test [query]
Change-Id: Ie7a1b82022d81850754543366202892c437f7968
This commit is contained in:
Logan Chien
2018-09-07 11:47:37 +08:00
parent e1f29c1ee0
commit 2da2f27813
2 changed files with 93 additions and 20 deletions

View File

@@ -182,6 +182,42 @@ def abandon(url_opener, gerrit_url, change_id, message):
return _make_json_post_request(url_opener, url, data)
def set_topic(url_opener, gerrit_url, change_id, name):
"""Set the topic name."""
url = '{}/a/changes/{}/topic'.format(gerrit_url, change_id)
data = {'topic': name}
return _make_json_post_request(url_opener, url, data, method='PUT')
def delete_topic(url_opener, gerrit_url, change_id):
"""Delete the topic name."""
url = '{}/a/changes/{}/topic'.format(gerrit_url, change_id)
request = Request(url)
request.get_method = lambda: 'DELETE'
response_file = url_opener.open(request)
try:
return (response_file.getcode(), response_file.read())
finally:
response_file.close()
def set_hashtags(url_opener, gerrit_url, change_id, add_tags=None,
remove_tags=None):
"""Add or remove hash tags."""
url = '{}/a/changes/{}/hashtags'.format(gerrit_url, change_id)
data = {}
if add_tags:
data['add'] = add_tags
if remove_tags:
data['remove'] = remove_tags
return _make_json_post_request(url_opener, url, data)
def get_patch(url_opener, gerrit_url, change_id, revision_id='current'):
"""Download the patch file."""