1#!/usr/bin/env python 2# 3# Copyright 2020 Google Inc. 4# 5# Use of this source code is governed by a BSD-style license that can be 6# found in the LICENSE file. 7 8 9"""Bulk abandon Gerrit CLs.""" 10 11 12import argparse 13import os 14import re 15import subprocess 16import sys 17 18from infra import git 19from infra import go 20 21 22def run_abandon_cls(args): 23 """Bulk abandon Gerrit CLs.""" 24 go.mod_download() 25 go.install(go.INFRA_GO+'/scripts/abandon_gerrit_cls') 26 subprocess.check_call([ 27 'abandon_gerrit_cls', 28 '--gerrit_instance', args.gerrit_instance, 29 '--abandon_reason', args.abandon_reason, 30 '--last_modified_before_days', str(args.last_modified_before_days), 31 ]) 32 33 34def main(): 35 # TODO(rmistry): Instead of attempting to keep these args in sync, defer to 36 # abandon_gerrit_cls for argument parsing. 37 d = 'Helper script for bulk abandoning gerrit CLs' 38 parser = argparse.ArgumentParser(description=d) 39 parser.add_argument( 40 '--gerrit-instance', '-g', default='https://skia-review.googlesource.com', 41 help='Name of the gerrit instance.') 42 parser.add_argument( 43 '--abandon-reason', '-a', default='', 44 help='Will be used as reason for abandoning.') 45 parser.add_argument( 46 '--last-modified-before-days', '-l', default=0, 47 help='If 3 is specified then all CLs that were modified after 3 days ago ' 48 'will be returned.') 49 args = parser.parse_args() 50 51 go.check() 52 run_abandon_cls(args) 53 54 55if __name__ == '__main__': 56 main() 57