From 88a525441bfb5ae5df821cd896fccaa6b560047f Mon Sep 17 00:00:00 2001 From: Pat Riehecky Date: Feb 07 2020 15:19:36 +0000 Subject: Add detail about known koji signatures to buildinfo --- diff --git a/cli/koji_cli/commands.py b/cli/koji_cli/commands.py index 7949208..6b0d17e 100644 --- a/cli/koji_cli/commands.py +++ b/cli/koji_cli/commands.py @@ -3167,7 +3167,12 @@ def anon_handle_buildinfo(goptions, session, args): if rpms: print("RPMs:") for rpm in rpms: - print(os.path.join(koji.pathinfo.build(info), koji.pathinfo.rpm(rpm))) + keys = [] + if 'sigkeys' in rpm: + for keyid in rpm['sigkeys']: + if keyid: + keys.append(keyid) + print('%s\tSignatures:%s' % (os.path.join(koji.pathinfo.build(info), koji.pathinfo.rpm(rpm)), keys)) if options.changelog: changelog = session.getChangelogEntries(info['id']) if changelog: diff --git a/hub/kojihub.py b/hub/kojihub.py index cf54b24..3c076c6 100644 --- a/hub/kojihub.py +++ b/hub/kojihub.py @@ -4043,6 +4043,8 @@ def get_next_release(build_info): def _fix_rpm_row(row): if 'extra' in row: row['extra'] = parse_json(row['extra'], desc='rpm extra') + if 'sigkeys' in row: + row['sigkeys'] = [x for x in row['sigkeys'] if x is not None] return row #alias for now, may change in the future @@ -4191,8 +4193,9 @@ def list_rpms(buildID=None, buildrootID=None, imageID=None, componentBuildrootID ('external_repo.name', 'external_repo_name'), ('rpminfo.metadata_only', 'metadata_only'), ('rpminfo.extra', 'extra'), + ('sigs_json.sigkeys', 'sigkeys'), ] - joins = ['LEFT JOIN external_repo ON rpminfo.external_repo_id = external_repo.id'] + joins = ['LEFT JOIN external_repo ON rpminfo.external_repo_id = external_repo.id', "LEFT JOIN (select rpmsigs.rpm_id, array_agg(rpmsigs.sigkey ORDER BY rpmsigs.sigkey) as sigkeys from rpmsigs group by rpmsigs.rpm_id) as sigs_json ON rpminfo.id = sigs_json.rpm_id" ] clauses = [] if buildID != None: