11# -------------------------------------------------------------------------------
2- # Copyright (c) 2019-2024 Siemens
2+ # Copyright (c) 2019-2025 Siemens
33# All Rights Reserved.
4455#
@@ -214,11 +214,13 @@ def try_find_component_metadata(self, bomitem: Component, package_source: str) -
214214 version )
215215 return bomitem
216216
217- val = info .get ("homepage" , "" )
218- if val :
217+ homepage : str = info .get ("homepage" , "" )
218+ if homepage :
219+ if homepage .endswith ("#readme" ):
220+ homepage = homepage [:- 7 ]
219221 ext_ref = ExternalReference (
220222 type = ExternalReferenceType .WEBSITE ,
221- url = XsUri (val ))
223+ url = XsUri (homepage ))
222224 bomitem .external_references .add (ext_ref )
223225
224226 repository = info .get ("repository" )
@@ -238,11 +240,18 @@ def try_find_component_metadata(self, bomitem: Component, package_source: str) -
238240 if not str (url ).startswith ("http" ):
239241 url = "https://" + url
240242 url = self .find_source_file (url , bomitem .name , version )
241- CycloneDxSupport .update_or_set_ext_ref (
242- bomitem ,
243- ExternalReferenceType .DISTRIBUTION ,
244- CaPyCliBom .SOURCE_URL_COMMENT ,
245- url )
243+ if url :
244+ CycloneDxSupport .update_or_set_ext_ref (
245+ bomitem ,
246+ ExternalReferenceType .DISTRIBUTION ,
247+ CaPyCliBom .SOURCE_URL_COMMENT ,
248+ url )
249+ else :
250+ print_yellow (
251+ " No source archive found for component " +
252+ bomitem .name +
253+ ", " +
254+ version )
246255 bomitem .description = info .get ("description" , "" )
247256 if not CycloneDxSupport .get_binary_file_hash (bomitem ):
248257 ext_ref2 = CycloneDxSupport .get_ext_ref (
0 commit comments