@@ -1268,51 +1268,58 @@ def create_added_table(diff: Diff, md: MdUtils) -> MdUtils:
12681268 num_of_overview_columns = len (overview_table )
12691269
12701270 count = 0
1271- for added in diff .new_packages :
1272- added : Purl # Ensure `added` has scores and relevant attributes.
1273-
1274- package_url = f"[{ added .purl } ]({ added .url } )"
1275- diff_badge = f"[]({ added .url } )"
1276-
1277- # Scores dynamically converted to badge URLs and linked
1278- def score_to_badge (score ):
1279- score_percent = int (score * 100 ) # Convert to integer percentage
1280- return f"[]({ added .url } )"
1281-
1282- def get_score_for_badge (score_name : str ) -> float :
1283- scores = getattr (added , "scores" , None )
1284- if isinstance (scores , dict ):
1285- raw_score = scores .get (score_name )
1286- else :
1287- raw_score = getattr (scores , score_name , None ) if scores is not None else None
1288-
1289- if raw_score is None :
1290- return 1.0
1291-
1292- score = float (raw_score )
1293- if score > 1 :
1294- score = score / 100
1295- return max (0.0 , min (score , 1.0 ))
1296-
1297- # Generate badges for each score type
1298- supply_chain_risk_badge = score_to_badge (get_score_for_badge ("supplyChain" ))
1299- vulnerability_badge = score_to_badge (get_score_for_badge ("vulnerability" ))
1300- quality_badge = score_to_badge (get_score_for_badge ("quality" ))
1301- maintenance_badge = score_to_badge (get_score_for_badge ("maintenance" ))
1302- license_badge = score_to_badge (get_score_for_badge ("license" ))
1303-
1304- # Add the row for this package
1305- row = [
1306- diff_badge ,
1307- package_url ,
1308- supply_chain_risk_badge ,
1309- vulnerability_badge ,
1310- quality_badge ,
1311- maintenance_badge ,
1312- license_badge
1313- ]
1314- overview_table .extend (row )
1315- count += 1 # Count total packages
1271+ changes = (
1272+ ("Added" , diff .new_packages ),
1273+ ("Updated" , diff .updated_packages ),
1274+ ("Removed" , diff .removed_packages ),
1275+ ("Replaced" , diff .replaced_packages ),
1276+ )
1277+ for change , packages in changes :
1278+ for package in packages :
1279+ package : Purl
1280+
1281+ package_url = f"[{ package .purl } ]({ package .url } )"
1282+ diff_badge = f"**{ change } **"
1283+
1284+ # Scores dynamically converted to badge URLs and linked
1285+ def score_to_badge (score ):
1286+ score_percent = int (score * 100 ) # Convert to integer percentage
1287+ return f"[]({ package .url } )"
1288+
1289+ def get_score_for_badge (score_name : str ) -> float :
1290+ scores = getattr (package , "scores" , None )
1291+ if isinstance (scores , dict ):
1292+ raw_score = scores .get (score_name )
1293+ else :
1294+ raw_score = getattr (scores , score_name , None ) if scores is not None else None
1295+
1296+ if raw_score is None :
1297+ return 1.0
1298+
1299+ score = float (raw_score )
1300+ if score > 1 :
1301+ score = score / 100
1302+ return max (0.0 , min (score , 1.0 ))
1303+
1304+ # Generate badges for each score type
1305+ supply_chain_risk_badge = score_to_badge (get_score_for_badge ("supplyChain" ))
1306+ vulnerability_badge = score_to_badge (get_score_for_badge ("vulnerability" ))
1307+ quality_badge = score_to_badge (get_score_for_badge ("quality" ))
1308+ maintenance_badge = score_to_badge (get_score_for_badge ("maintenance" ))
1309+ license_badge = score_to_badge (get_score_for_badge ("license" ))
1310+
1311+ # Add the row for this package
1312+ row = [
1313+ diff_badge ,
1314+ package_url ,
1315+ supply_chain_risk_badge ,
1316+ vulnerability_badge ,
1317+ quality_badge ,
1318+ maintenance_badge ,
1319+ license_badge
1320+ ]
1321+ overview_table .extend (row )
1322+ count += 1
13161323
13171324 # Calculate total rows for table
13181325 num_of_overview_rows = count + 1 # Include header row
0 commit comments