@@ -98,14 +98,28 @@ def write_to_sheet(sheet, data):
98
98
usages = response .json ().get ('items' , [])
99
99
logging .debug ("Found {} usages for license {}" .format (len (usages ), license ['name' ]))
100
100
for usage in usages :
101
+ component_version = usage .get ('componentVersionName' , 'Unknown' )
102
+ component_name_str = f"{ usage ['componentName' ]} :{ component_version } "
101
103
# usage === component that referenced the license
102
104
logging .debug ("Retrieving project-versions that use component {}:{} (license={}" .format (
103
- usage ['componentName' ], usage ['componentVersionName' ], license ['name' ]))
104
- component_url = hub .get_link (usage , "componentVersion" )
105
+ usage ['componentName' ], component_version , license ['name' ]))
106
+ component_url = hub .get_link (usage , "componentVersion" ) or hub .get_link (usage , 'component' )
107
+ #TODO Figure out how to handle the case where the component version is not known
108
+ logging .debug (f"component_url: { component_url } " )
109
+ if not component_url :
110
+ logging .warning (f"Component { component_name_str } had no URL, skipping..." )
111
+ continue
112
+ else :
113
+ logging .debug (f"Retrieving component info for { component_name_str } " )
105
114
response = hub .execute_get (component_url )
106
115
component = response .json ()
107
116
usage ['component_details' ] = component
108
117
project_version_references_url = hub .get_link (component , "references" )
118
+ if not project_version_references_url :
119
+ logging .warning (f"Component { component_name_str } has no 'references' link, skipping..." )
120
+ continue
121
+ else :
122
+ logging .debug (f"Retrieving project references for { component_name_str } " )
109
123
project_version_references_url = project_version_references_url + "?limit=1000"
110
124
response = hub .execute_get (project_version_references_url )
111
125
project_references = response .json ().get ('items' , [])
@@ -116,11 +130,11 @@ def write_to_sheet(sheet, data):
116
130
for i , project_ref in enumerate (project_references ):
117
131
row = offset + i + 1
118
132
logging .debug ("Adding license {}, used in component {}:{}, and project-version {}:{} to row {}" .format (
119
- license ['name' ], usage ['componentName' ], usage [ 'componentVersionName' ] , project_ref ['projectName' ], project_ref ['versionName' ], row ))
133
+ license ['name' ], usage ['componentName' ], component_version , project_ref ['projectName' ], project_ref ['versionName' ], row ))
120
134
data_to_write .extend ([
121
135
(row , 0 , license ['name' ]),
122
136
(row , 1 , usage ['componentName' ]),
123
- (row , 2 , usage [ 'componentVersionName' ] ),
137
+ (row , 2 , component_version ),
124
138
(row , 3 , project_ref ['projectName' ]),
125
139
(row , 4 , project_ref ['versionName' ]),
126
140
(row , 5 , project_ref ['projectUrl' ]),
@@ -133,7 +147,7 @@ def write_to_sheet(sheet, data):
133
147
data_to_write .extend ([
134
148
(row , 0 , license ['name' ]),
135
149
(row , 1 , usage ['componentName' ]),
136
- (row , 2 , usage [ 'componentVersionName' ] ),
150
+ (row , 2 , component_version ),
137
151
(row , 3 , "None" ),
138
152
(row , 4 , "None" ),
139
153
(row , 5 , "NA" ),
0 commit comments