add command "issue validate"
This commit is contained in:
parent
1e40d313ee
commit
cf670cfae3
7
README
7
README
|
@ -100,6 +100,13 @@ Apply patched atteched to issue 9999.::
|
|||
|
||||
git redmine issue apply --issue 9999
|
||||
|
||||
issue validate
|
||||
--------------
|
||||
|
||||
Validate the current issue or a target issue (--issue).
|
||||
|
||||
git redmine issue validate [--issue 9999]
|
||||
|
||||
link
|
||||
----
|
||||
|
||||
|
|
|
@ -75,6 +75,7 @@ def get_redmine_api():
|
|||
redmine.statuses = {status.name: status for status in redmine.issue_status.all()}
|
||||
redmine.nouveau = redmine.statuses['Nouveau']
|
||||
redmine.solution = redmine.statuses['Solution proposée']
|
||||
redmine.solution_validee = redmine.statuses['Solution validée']
|
||||
redmine.resolu_a_deployer = redmine.statuses['Résolu (à déployer)']
|
||||
redmine.developpement = [tr for tr in redmine.tracker.all() if tr.name == 'Développement'][0]
|
||||
redmine.rustine = [cf for cf in redmine.custom_field.all() if cf.name == 'Rustine proposée'][0]
|
||||
|
@ -266,7 +267,7 @@ def take(issue_number, reference):
|
|||
current_user = api.user.get('current')
|
||||
if (not hasattr(issue, 'assigned_to') or issue.assigned_to.id != current_user.id) and click.confirm(
|
||||
'Do you want to assign the issue to yourself ?',
|
||||
default=not hasattr(issue, 'assigned_to') and issue.status == api.nouveau,
|
||||
default=not hasattr(issue, 'assigned_to') and issue.status.id == api.nouveau.id,
|
||||
):
|
||||
issue.assigned_to_id = current_user.id
|
||||
issue.save()
|
||||
|
@ -282,6 +283,33 @@ def apply(issue):
|
|||
apply_attachments(repo, issue)
|
||||
|
||||
|
||||
def get_comment(message, default=False):
|
||||
if not click.confirm(message, default=default):
|
||||
return
|
||||
|
||||
message = '\n' + MARKER
|
||||
message = click.edit(message)
|
||||
if message is not None:
|
||||
message = message.split(MARKER, 1)[0].rstrip('\n')
|
||||
return message
|
||||
|
||||
|
||||
@issue.command()
|
||||
@click.option('--issue', default=None, type=int)
|
||||
def validate(issue):
|
||||
api = get_redmine_api()
|
||||
issue = get_issue(issue)
|
||||
if issue.status.id != api.solution.id:
|
||||
click.secho('Issue %s has no solution proposed.' % issue.id, fg='red')
|
||||
return False
|
||||
comment = get_comment('Do you want to add a coment to your validation?')
|
||||
kwargs = {}
|
||||
if comment:
|
||||
kwargs['notes'] = comment
|
||||
kwargs['status_id'] = api.solution_validee.id
|
||||
api.issue.update(issue.id, **kwargs)
|
||||
|
||||
|
||||
@issue.command()
|
||||
@click.option('--issue', default=None, type=int)
|
||||
def show(issue):
|
||||
|
|
Loading…
Reference in New Issue