add new link command to link to another issue

This commit is contained in:
Benjamin Dauvergne 2021-11-25 12:01:54 +01:00
parent 24889c7f02
commit a476266393
2 changed files with 29 additions and 0 deletions

7
README
View File

@ -99,6 +99,13 @@ Apply patched atteched to issue 9999.::
git redmine issue apply --issue 9999
link
----
git redmine link 9999
Link current branch issue to issue 9999.
merge-and-push
..............

View File

@ -344,6 +344,28 @@ def new(ctx, reference):
ctx.invoke(take, issue_number=issue.id, reference=reference)
@issue.command()
@click.argument('issue', type=int)
def link(issue):
'''Create link with another issue'''
api = get_redmine_api()
current_issue = get_issue()
try:
target_issue = api.issue.get(issue)
except Exception:
raise click.UsageError(
'Cannot find issue %s' % issue)
if len(api.issue_relation.filter(issue_id=current_issue.id, issue_to_id=target_issue.id)):
click.echo(click.style('Already linked.', fg='green'))
return
if click.confirm(f'Link issue {current_issue.id } - « {current_issue.subject} » to {target_issue.id} - « {target_issue.subject} »', default=False, abort=True):
api.issue_relation.create(
issue_id=current_issue.id,
issue_to_id=target_issue.id,
relation_type='relates')
click.echo(click.style('Linked.', fg='green'))
class MyProgressPrinter(git.RemoteProgress):
def update(self, op_code, cur_count, max_count=None, message=''):
print(op_code, cur_count, max_count, cur_count / (max_count or 100.0), message or "NO MESSAGE")