Skip to content

Commit 6d6950a

Browse files
authored
Merge pull request #181 from campbeje/master
script to list BOM components and their matching Protex IDs for a giv…
2 parents ce8065b + 64eeb96 commit 6d6950a

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#!/usr/bin/env python
2+
3+
4+
# this script will fetch the list of components in a project version and identify their matching Protex IDs
5+
6+
import argparse
7+
import json
8+
import logging
9+
import sys
10+
11+
from blackduck.HubRestApi import HubInstance, object_id
12+
13+
14+
15+
parser = argparse.ArgumentParser("get the component suite ids in project / version")
16+
parser.add_argument("project")
17+
parser.add_argument("version")
18+
19+
args = parser.parse_args()
20+
21+
22+
logging.basicConfig(format='%(asctime)s:%(levelname)s:%(message)s', stream=sys.stderr, level=logging.DEBUG)
23+
logging.getLogger("requests").setLevel(logging.WARNING)
24+
logging.getLogger("urllib3").setLevel(logging.WARNING)
25+
logging.getLogger("blackduck").setLevel(logging.WARNING)
26+
27+
hub = HubInstance()
28+
headers = hub.get_headers()
29+
headers['Accept'] = '*/*'
30+
31+
version = hub.get_project_version_by_name(args.project, args.version)
32+
33+
if version:
34+
components_url = hub.get_link(version, "components") + "?limit=9999"
35+
components = hub.execute_get(components_url).json().get('items', [])
36+
logging.debug(f"Found {len(components)} components in {args.project}-{args.version}")
37+
for component in components:
38+
component_url = component['_meta']['href']
39+
#logging.info(f"Component: {component['componentName']} , Version: {component.get('componentVersionName', '?')} URL: {component_url}")
40+
suite_url = "{}/{}/".format(component['component'], "legacy-suite-ids")
41+
suite_json = hub.execute_get(suite_url,custom_headers=headers).json().get('items',[])
42+
logging.info(f"Component: {component['componentName']} - Protex Ids: {suite_json}")
43+
else:
44+
logging.error(f"Did not find the project-version: {args.project}-{args.version}")

0 commit comments

Comments
 (0)