Support delete
Bug: 278860852
Test: repo_review.py -g ... --delete "..."
Change-Id: Ib986cdf0d99b5cd29e3abf8b2e282d1e586a478d
diff --git a/tools/repo_pull/gerrit.py b/tools/repo_pull/gerrit.py
index 5cc3f8a..c93461d 100755
--- a/tools/repo_pull/gerrit.py
+++ b/tools/repo_pull/gerrit.py
@@ -495,6 +495,14 @@
return _make_json_post_request(url_opener, url, {})
+def delete(url_opener, gerrit_url, change_id):
+ """Delete a change list."""
+
+ url = '{}/a/changes/{}'.format(gerrit_url, change_id)
+
+ return _make_json_post_request(url_opener, url, {}, method='DELETE')
+
+
def set_topic(url_opener, gerrit_url, change_id, name):
"""Set the topic name."""
diff --git a/tools/repo_pull/repo_review.py b/tools/repo_pull/repo_review.py
index d0d6f58..c431ac8 100755
--- a/tools/repo_pull/repo_review.py
+++ b/tools/repo_pull/repo_review.py
@@ -32,7 +32,7 @@
from gerrit import (
abandon, add_common_parse_args, add_reviewers, create_url_opener_from_args,
- delete_reviewer, delete_topic, find_gerrit_name, normalize_gerrit_name,
+ delete, delete_reviewer, delete_topic, find_gerrit_name, normalize_gerrit_name,
query_change_lists, restore, set_hashtags, set_review, set_topic, submit
)
@@ -96,6 +96,7 @@
parser.add_argument('--abandon', help='Abandon a CL with a message')
parser.add_argument('--restore', action='store_true', help='Restore a CL')
+ parser.add_argument('--delete', action='store_true', help='Delete a CL')
parser.add_argument('--add-hashtag', action='append', help='Add hashtag')
parser.add_argument('--remove-hashtag', action='append',
@@ -126,6 +127,8 @@
return True
if args.restore:
return True
+ if args.delete:
+ return True
if args.add_hashtag or args.remove_hashtag:
return True
if args.set_topic or args.delete_topic:
@@ -196,7 +199,7 @@
if not _has_task(args):
print('error: Either --label, --message, --submit, --abandon, --restore, '
'--add-hashtag, --remove-hashtag, --set-topic, --delete-topic, '
- '--add-reviewer or --delete-reviewer must be specified',
+ '--add-reviewer, --delete-reviewer or --delete must be specified',
file=sys.stderr)
sys.exit(1)
@@ -247,6 +250,9 @@
if args.restore:
_do_task(change, restore, url_opener, args.gerrit, change['id'],
errors=errors)
+ if args.delete:
+ _do_task(change, delete, url_opener, args.gerrit, change['id'],
+ errors=errors)
if args.add_reviewer:
_do_task(change, add_reviewers, url_opener, args.gerrit,
change['id'], new_reviewers, errors=errors)