From 2aa95c6a9c491eea25099ca3f514d07b4f82e02d Mon Sep 17 00:00:00 2001 From: SzuWei Lin Date: Wed, 19 Apr 2023 21:25:22 +0800 Subject: [PATCH] Support delete Bug: 278860852 Test: repo_review.py -g ... --delete "..." Change-Id: Ib986cdf0d99b5cd29e3abf8b2e282d1e586a478d --- tools/repo_pull/gerrit.py | 8 ++++++++ tools/repo_pull/repo_review.py | 10 ++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/tools/repo_pull/gerrit.py b/tools/repo_pull/gerrit.py index 5cc3f8a06..c93461d25 100755 --- a/tools/repo_pull/gerrit.py +++ b/tools/repo_pull/gerrit.py @@ -495,6 +495,14 @@ def restore(url_opener, gerrit_url, change_id): 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 d0d6f5862..c431ac817 100755 --- a/tools/repo_pull/repo_review.py +++ b/tools/repo_pull/repo_review.py @@ -32,7 +32,7 @@ except ImportError: 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 @@ def _parse_args(): 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 @@ def _has_task(args): 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 @@ def main(): 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 @@ def main(): 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)