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