Skip to content
Snippets Groups Projects
Commit 14241bbc authored by Karl Fogel's avatar Karl Fogel
Browse files

Add 'get-issues' subcommand

Also, wrap GitLab issue object to naturalize JSON string output.
parent bb8784f2
No related branches found
No related tags found
No related merge requests found
......@@ -92,13 +92,28 @@ def list_instance(args):
# print(f"*** {board} ({board.id}):")
class Issue():
"""Wrapper class for gitlab issue object. 'Nuff said."""
def __init__(self, gl_issue):
"""GL_ISSUE is a gitlab.v4.objects.issues.ProjectIssue"""
self.gl_issue = gl_issue
def __str__(self):
return json.dumps(vars(self.gl_issue)['_attrs'], indent=2)
def get_issue(args):
"""TBD: doc string for get_issue()"""
issue = args.project.issues.get(vars(args)['issue-id'])
print(f"{json.dumps(vars(issue)['_attrs'], indent=2)}")
# issues = args.project.issues.list(get_all=True)
# for issue in issues:
# print(f"{issue}\n")
"""Print issue identified by args['issue-id'] as JSON."""
issue = Issue(args.project.issues.get(vars(args)['issue-id']))
print(f"{issue}")
def get_issues(args):
"""Print all issues in the project as JSON."""
gl_issues = args.project.issues.list(get_all=True)
print("[")
print(",\n".join([str(Issue(x)) for x in gl_issues]))
print("]")
def main():
......@@ -129,10 +144,13 @@ def main():
get_issue_parser = subcommand_parsers.add_parser(
'get-issue', help=get_issue.__doc__)
get_issue_parser.set_defaults(func=get_issue)
get_issue_parser.add_argument('issue-id', type=int)
get_issues_parser = subcommand_parsers.add_parser(
'get-issues', help=get_issue.__doc__)
get_issues_parser.set_defaults(func=get_issues)
list_instance_parser = subcommand_parsers.add_parser(
'list-instance', help=list_instance.__doc__)
list_instance_parser.set_defaults(func=list_instance)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment