Skip to content

Commit 0b58f82

Browse files
authored
Change dependson to purl (#192)
Signed-off-by: jiyeong.seok <[email protected]>
1 parent 731c869 commit 0b58f82

File tree

11 files changed

+42
-55
lines changed

11 files changed

+42
-55
lines changed

src/fosslight_dependency/_package_manager.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,18 @@ def parse_dependency_tree(self, f_name):
189189
except Exception as e:
190190
logger.warning(f'Fail to parse gradle dependency tree:{e}')
191191

192+
def change_dep_to_purl(self, sheet_list):
193+
try:
194+
for oss_item in sheet_list:
195+
if len(oss_item) < 10:
196+
break
197+
deps_list = oss_item[9]
198+
deps_purl = list(map(lambda x: self.purl_dict.get(x, ''), deps_list))
199+
oss_item[9] = ','.join(deps_purl)
200+
except Exception as e:
201+
logger.warning(f'Fail to change depend_on to purl:{e}')
202+
return sheet_list
203+
192204

193205
def get_url_to_purl(url, pkg_manager, oss_name='', oss_version=''):
194206
purl_prefix = f'pkg:{pkg_manager}'

src/fosslight_dependency/package_manager/Android.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,7 @@ def parse_oss_information(self, f_name):
6969
except Exception as e:
7070
logger.error(f"Fail to find oss scope in dependency tree: {e}")
7171
comment = ','.join(comment_list)
72-
deps = ','.join(deps_list)
73-
7472
sheet_list.append([purl, oss_name, oss_version, license_name, dn_loc, homepage,
75-
'', '', comment, deps])
76-
73+
'', '', comment, deps_list])
74+
sheet_list = self.change_dep_to_purl(sheet_list)
7775
return sheet_list

src/fosslight_dependency/package_manager/Cocoapods.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,8 @@ def parse_oss_information(self, f_name):
9292
else:
9393
comment_list.append('transitive')
9494
if f'{pod_oss_name_origin}({oss_version})' in self.relation_tree:
95-
rel_items = [f'{self.package_manager_name}:{ri}'
96-
for ri in self.relation_tree[f'{pod_oss_name_origin}({oss_version})']]
97-
deps_list.extend(rel_items)
95+
deps_list.extend(self.relation_tree[f'{pod_oss_name_origin}({oss_version})'])
9896
comment = ','.join(comment_list)
99-
deps = ','.join(deps_list)
10097

10198
oss_name_report = f'{self.package_manager_name}:{pod_oss_name_origin}'
10299
pod_oss_name = pod_oss_name_origin
@@ -138,10 +135,10 @@ def parse_oss_information(self, f_name):
138135
logger.warning(f'{pod_oss_name_origin} has different version({pod_oss_version})\
139136
with spec version({oss_version})')
140137
sheet_list.append([purl, oss_name_report, pod_oss_version, license_name, dn_loc, homepage,
141-
'', '', comment, deps])
138+
'', '', comment, deps_list])
142139
except Exception as e:
143140
logger.warning(f"Fail to get {pod_oss_name_origin}:{e}")
144-
141+
sheet_list = self.change_dep_to_purl(sheet_list)
145142
return sheet_list
146143

147144
def get_oss_in_podspec(self, spec_file_path):

src/fosslight_dependency/package_manager/Go.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,7 @@ def parse_oss_information(self, f_name):
101101
comment_list.append('direct')
102102

103103
if f'{package_path}({oss_version})' in self.relation_tree:
104-
rel_items = [f'{self.package_manager_name}:{ri}'
105-
for ri in self.relation_tree[f'{package_path}({oss_version})']]
106-
deps_list.extend(rel_items)
104+
deps_list.extend(self.relation_tree[f'{package_path}({oss_version})'])
107105

108106
homepage_set = []
109107
homepage = self.dn_url + package_path
@@ -149,8 +147,7 @@ def parse_oss_information(self, f_name):
149147
continue
150148

151149
comment = ','.join(comment_list)
152-
deps = ','.join(deps_list)
153150
sheet_list.append([purl, oss_name, oss_version, license_name, dn_loc, homepage,
154-
'', '', comment, deps])
155-
151+
'', '', comment, deps_list])
152+
sheet_list = self.change_dep_to_purl(sheet_list)
156153
return sheet_list

src/fosslight_dependency/package_manager/Gradle.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,9 @@ def parse_oss_information(self, f_name):
9191
except Exception as e:
9292
logger.error(f"Fail to find oss scope in dependency tree: {e}")
9393
comment = ','.join(comment_list)
94-
deps = ','.join(deps_list)
95-
9694
sheet_list.append([purl, oss_name, oss_version, license_name, dn_loc, homepage,
97-
'', '', comment, deps])
98-
95+
'', '', comment, deps_list])
96+
sheet_list = self.change_dep_to_purl(sheet_list)
9997
return sheet_list
10098

10199

src/fosslight_dependency/package_manager/Maven.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -253,9 +253,7 @@ def parse_oss_information(self, f_name):
253253
except Exception as e:
254254
logger.error(f"Fail to find oss scope in dependency tree: {e}")
255255
comment = ','.join(comment_list)
256-
deps = ','.join(deps_list)
257-
258256
sheet_list.append([purl, oss_name, oss_version, license_name, dn_loc, homepage,
259-
'', '', comment, deps])
260-
257+
'', '', comment, deps_list])
258+
sheet_list = self.change_dep_to_purl(sheet_list)
261259
return sheet_list

src/fosslight_dependency/package_manager/Npm.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -197,24 +197,23 @@ def parse_oss_information(self, f_name):
197197
comment_list.append('transitive')
198198

199199
if f'{oss_init_name}({oss_version})' in self.relation_tree:
200-
rel_items = [f'npm:{ri}' for ri in self.relation_tree[f'{oss_init_name}({oss_version})']]
201-
deps_list.extend(rel_items)
200+
deps_list.extend(self.relation_tree[f'{oss_init_name}({oss_version})'])
202201

203202
manifest_file_path = os.path.join(package_path, const.SUPPORT_PACKAE.get(self.package_manager_name))
204203
multi_license, license_comment, multi_flag = check_multi_license(license_name, manifest_file_path)
205204

206205
comment = ','.join(comment_list)
207-
deps = ','.join(deps_list)
208206
if multi_flag:
209207
comment = f'{comment}, {license_comment}'
210-
sheet_list.append([purl, oss_name, oss_version, multi_license, dn_loc, homepage,
211-
'', '', comment, deps])
208+
license_name = multi_license
212209
else:
213210
license_name = license_name.replace(",", "")
214211
license_name = check_unknown_license(license_name, manifest_file_path)
215-
sheet_list.append([purl, oss_name, oss_version, license_name, dn_loc, homepage,
216-
'', '', comment, deps])
217212

213+
sheet_list.append([purl, oss_name, oss_version, license_name, dn_loc, homepage,
214+
'', '', comment, deps_list])
215+
216+
sheet_list = self.change_dep_to_purl(sheet_list)
218217
return sheet_list
219218

220219

src/fosslight_dependency/package_manager/Nuget.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,17 +109,14 @@ def parse_oss_information(self, f_name):
109109
comment_list.append('transitive')
110110

111111
if f'{oss_origin_name}({oss_version})' in self.relation_tree:
112-
rel_items = [f'{self.package_manager_name}:{ri}'
113-
for ri in self.relation_tree[f'{oss_origin_name}({oss_version})']]
114-
deps_list.extend(rel_items)
112+
deps_list.extend(self.relation_tree[f'{oss_origin_name}({oss_version})'])
115113

116114
comment = ','.join(comment_list)
117-
deps = ','.join(deps_list)
118-
sheet_list.append([purl, oss_name, oss_version, license_name, dn_loc, homepage, '', '', comment, deps])
115+
sheet_list.append([purl, oss_name, oss_version, license_name, dn_loc, homepage, '', '', comment, deps_list])
119116

120117
except Exception as e:
121118
logger.warning(f"Failed to parse oss information: {e}")
122-
119+
sheet_list = self.change_dep_to_purl(sheet_list)
123120
if os.path.isfile(tmp_license_txt_file_name):
124121
os.remove(tmp_license_txt_file_name)
125122

src/fosslight_dependency/package_manager/Pub.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -155,16 +155,13 @@ def parse_oss_information(self, f_name):
155155
comment_list.append('transitive')
156156

157157
if f'{oss_origin_name}({oss_version})' in self.relation_tree:
158-
rel_items = [f'{self.package_manager_name}:{ri}'
159-
for ri in self.relation_tree[f'{oss_origin_name}({oss_version})']]
160-
deps_list.extend(rel_items)
158+
deps_list.extend(self.relation_tree[f'{oss_origin_name}({oss_version})'])
161159
comment = ','.join(comment_list)
162-
deps = ','.join(deps_list)
163160
sheet_list.append([purl, oss_name, oss_version, license_name, dn_loc, homepage,
164-
'', '', comment, deps])
161+
'', '', comment, deps_list])
165162
except Exception as e:
166163
logger.error(f"Fail to parse pub oss information: {e}")
167-
164+
sheet_list = self.change_dep_to_purl(sheet_list)
168165
if os.path.isfile(tmp_license_txt_file_name):
169166
os.remove(tmp_license_txt_file_name)
170167

src/fosslight_dependency/package_manager/Pypi.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -305,17 +305,14 @@ def parse_oss_information(self, f_name):
305305
else:
306306
comment_list.append('transitive')
307307
if f'{oss_init_name}({oss_version})' in self.relation_tree:
308-
rel_items = [f'{self.package_manager_name}:{ri}'
309-
for ri in self.relation_tree[f'{oss_init_name}({oss_version})']]
310-
deps_list.extend(rel_items)
308+
deps_list.extend(self.relation_tree[f'{oss_init_name}({oss_version})'])
311309
comment = ','.join(comment_list)
312-
deps = ','.join(deps_list)
313310
sheet_list.append([purl, oss_name, oss_version,
314-
license_name, dn_loc, homepage, '', '', comment, deps])
311+
license_name, dn_loc, homepage, '', '', comment, deps_list])
315312

316313
except Exception as ex:
317314
logger.warning(f"Fail to parse oss information: {oss_init_name}({ex})")
318-
315+
sheet_list = self.change_dep_to_purl(sheet_list)
319316
return sheet_list
320317

321318
def get_dependencies(self, dependencies, package):

0 commit comments

Comments
 (0)