Skip to content

Commit 62f3c04

Browse files
authored
Merge pull request #256 from bhcopeland/fix-issues-json-output
results: fix --json flag for issues command
2 parents 8336453 + 885c792 commit 62f3c04

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

kcidev/subcommands/results/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -909,7 +909,7 @@ def issues(
909909
if not new and not missing:
910910
if not any([giturl, branch, commit]):
911911
data = dashboard_fetch_issue_list(origin, days, use_json)
912-
print_issues(data)
912+
print_issues(data, use_json)
913913
return
914914
if not all([giturl, branch, commit]):
915915
raise click.UsageError(

kcidev/subcommands/results/parser.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -997,14 +997,28 @@ def print_issue(issue, new_tag=False):
997997
kci_msg("")
998998

999999

1000-
def print_issues(data):
1000+
def print_issues(data, use_json=False):
10011001
"""Print a list of issues with formatting
10021002
data (dict): provide dictionary with 'issues' and 'extras' keys"""
10031003

10041004
if not data.get("issues") or not data.get("extras"):
10051005
kci_err("Please provide dictionary with 'issues' and 'extras' keys")
10061006
return
10071007

1008+
if use_json:
1009+
# Build JSON output with issues and their extras merged
1010+
output = []
1011+
issues = data["issues"]
1012+
extras = data["extras"]
1013+
for issue in issues:
1014+
issue_data = dict(issue)
1015+
extra = extras.get(issue.get("id"))
1016+
if extra:
1017+
issue_data["extra"] = {issue["id"]: extra}
1018+
output.append(issue_data)
1019+
kci_msg_json(output)
1020+
return
1021+
10081022
issues = data["issues"]
10091023
extras = data["extras"]
10101024
for issue in issues:

0 commit comments

Comments
 (0)