@@ -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