Add --issue to set-commit and set-close too.
R=phajdan.jr@chromium.org, tandrii@chromium.org, vadimsh@chromium.org
BUG=
Review-Url: https://codereview.chromium.org/2245263007
diff --git a/git_cl.py b/git_cl.py
index 9b162f8..9fabcc3 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -2608,6 +2608,22 @@
}
+def _add_codereview_issue_select_options(parser, extra=""):
+ _add_codereview_select_options(parser)
+
+ text = ('Operate on this issue number instead of the current branch\'s '
+ 'implicit issue.')
+ if extra:
+ text += ' '+extra
+ parser.add_option('-i', '--issue', type=int, help=text)
+
+
+def _process_codereview_issue_select_options(parser, options):
+ _process_codereview_select_options(parser, options)
+ if options.issue is not None and not options.forced_codereview:
+ parser.error('--issue must be specified with either --rietveld or --gerrit')
+
+
def _add_codereview_select_options(parser):
"""Appends --gerrit and --rietveld options to force specific codereview."""
parser.codereview_group = optparse.OptionGroup(
@@ -3290,25 +3306,21 @@
help='print only specific field (desc|id|patch|status|url)')
parser.add_option('-f', '--fast', action='store_true',
help='Do not retrieve review status')
- parser.add_option('-i', '--issue', type=int,
- help='Operate on this issue number instead of the current'
- ' branch\'s implicit issue. Only valid with --field.')
parser.add_option(
'-j', '--maxjobs', action='store', type=int,
help='The maximum number of jobs to use when retrieving review status')
auth.add_auth_options(parser)
- _add_codereview_select_options(parser)
+ _add_codereview_issue_select_options(
+ parser, 'Must be in conjunction with --field.')
options, args = parser.parse_args(args)
- _process_codereview_select_options(parser, options)
+ _process_codereview_issue_select_options(parser, options)
if args:
parser.error('Unsupported args: %s' % args)
auth_config = auth.extract_auth_config_from_options(options)
- if options.issue is not None:
- if not options.field or not options.forced_codereview:
- parser.error('--issue may only be specified in conjunction with --field'
- ' and either --rietveld or --gerrit')
+ if options.issue is not None and not options.field:
+ parser.error('--field must be specified with --issue')
if options.field:
cl = Changelist(auth_config=auth_config, issue=options.issue,
@@ -4751,16 +4763,17 @@
parser.add_option('-c', '--clear', action='store_true',
help='stop CQ run, if any')
auth.add_auth_options(parser)
- _add_codereview_select_options(parser)
+ _add_codereview_issue_select_options(parser)
options, args = parser.parse_args(args)
- _process_codereview_select_options(parser, options)
+ _process_codereview_issue_select_options(parser, options)
auth_config = auth.extract_auth_config_from_options(options)
if args:
parser.error('Unrecognized args: %s' % ' '.join(args))
if options.dry_run and options.clear:
parser.error('Make up your mind: both --dry-run and --clear not allowed')
- cl = Changelist(auth_config=auth_config, codereview=options.forced_codereview)
+ cl = Changelist(auth_config=auth_config, issue=options.issue,
+ codereview=options.forced_codereview)
if options.clear:
state = _CQState.NONE
elif options.dry_run:
@@ -4775,12 +4788,15 @@
def CMDset_close(parser, args):
"""Closes the issue."""
+ _add_codereview_issue_select_options(parser)
auth.add_auth_options(parser)
options, args = parser.parse_args(args)
+ _process_codereview_issue_select_options(parser, options)
auth_config = auth.extract_auth_config_from_options(options)
if args:
parser.error('Unrecognized args: %s' % ' '.join(args))
- cl = Changelist(auth_config=auth_config)
+ cl = Changelist(auth_config=auth_config, issue=options.issue,
+ codereview=options.forced_codereview)
# Ensure there actually is an issue to close.
cl.GetDescription()
cl.CloseIssue()