Skip to content

Commit 223e6d6

Browse files
feat: link package names to registry URLs in reports (#170)
* feat: link package names to registry URLs in reports * style: format Python code with Black
1 parent 7074015 commit 223e6d6

1 file changed

Lines changed: 15 additions & 3 deletions

File tree

tool/report_static.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,18 @@ def load_data(filename):
3030
return json.load(f)
3131

3232

33-
def create_dataframe(data, deps_list):
33+
def get_printed_package_name(package_name, package_manager):
34+
if package_manager == "maven":
35+
ga, v = package_name.split("@")
36+
g, a = ga.split(":")
37+
return f"[{package_name}](https://central.sonatype.com/artifact/{g}/{a}/{v})"
38+
elif package_manager in ["npm", "yarn-berry", "yarn-classic", "pnpm"]:
39+
name_in_url = "/v/".join(package_name.rsplit("@", 1)) # replaces last occurrence of @ for /v/
40+
return f"[{package_name}](https://npmjs.com/package/{name_in_url})"
41+
return package_name
42+
43+
44+
def create_dataframe(data, deps_list, package_manager):
3445
"""
3546
Create a dataframe from the data got from static analysis.
3647
Aliased packages are added to the dataframe from the deps_list.
@@ -47,8 +58,9 @@ def create_dataframe(data, deps_list):
4758
aliased_package_name = aliased_packages.get(package_name, None)
4859

4960
# Create a row for each package
61+
printed_package_name = get_printed_package_name(package_name, package_manager)
5062
row = {
51-
"package_name": f"`{package_name}`",
63+
"package_name": printed_package_name,
5264
"deprecated_in_version": package_data.get("package_info", {}).get("deprecated_in_version"),
5365
"provenance_in_version": package_data.get("package_info", {}).get("provenance_in_version"),
5466
"all_deprecated": package_data.get("package_info", {}).get("all_deprecated", None),
@@ -650,7 +662,7 @@ def get_s_summary(
650662
Get a summary of the static analysis results.
651663
"""
652664

653-
df = create_dataframe(data, deps_list)
665+
df = create_dataframe(data, deps_list, package_manager)
654666
write_summary(
655667
df,
656668
project_name,

0 commit comments

Comments
 (0)