Skip to content

Commit fba9308

Browse files
author
Glenn Snyder
committed
adding example for retrieving custom field values
1 parent 50c5331 commit fba9308

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

examples/get_bom_components.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,18 @@
55
import json
66
import logging
77
import sys
8-
import timestring
98

109
from blackduck.HubRestApi import HubInstance
1110

1211
parser = argparse.ArgumentParser("Retreive BOM component info for the given project and version")
1312
parser.add_argument("project_name")
1413
parser.add_argument("version")
1514
group = parser.add_mutually_exclusive_group()
15+
group.add_argument("-l", "--limit", default=10, help="Set limit on number of components to retrieve")
1616
group.add_argument("-u", "--unreviewed", action='store_true')
1717
group.add_argument("-r", "--reviewed", action='store_true')
1818
parser.add_argument("-v", "--vulnerabilities", action='store_true', help="Get the vulnerability info for each of the components")
19+
parser.add_argument("-c", "--custom_fields", action='store_true', help="Get the custom field info for each of the components")
1920

2021
args = parser.parse_args()
2122

@@ -31,7 +32,11 @@
3132

3233
components_url = hub.get_link(version, "components")
3334

34-
response = hub.execute_get(components_url)
35+
components_url += "?limit={}".format(args.limit)
36+
37+
custom_headers = {'Accept': 'application/vnd.blackducksoftware.bill-of-materials-6+json'}
38+
39+
response = hub.execute_get(components_url, custom_headers=custom_headers)
3540
if response.status_code == 200:
3641
components = response.json()
3742
components = components.get('items', [])
@@ -49,4 +54,14 @@
4954
if response.status_code == 200:
5055
vulnerabilities = response.json().get('items', [])
5156
component['vulnerabilities'] = vulnerabilities
57+
58+
if args.custom_fields:
59+
for component in components:
60+
custom_fields_url = hub.get_link(component, "custom-fields")
61+
response = hub.execute_get(custom_fields_url, custom_headers=custom_headers)
62+
custom_fields = []
63+
if response.status_code == 200:
64+
custom_fields = response.json().get('items', [])
65+
component['custom_fields'] = custom_fields
66+
5267
print(json.dumps(components))

0 commit comments

Comments
 (0)