77import logging
88import re
99import yaml
10+ import requests
1011import fosslight_util .constant as constant
1112import fosslight_dependency .constant as const
1213from fosslight_dependency ._package_manager import PackageManager
@@ -76,11 +77,13 @@ def parse_oss_information(self, f_name):
7677 if oss_item .homepage and oss_item .homepage .startswith ('git@' ):
7778 oss_item .homepage = oss_item .homepage .replace ('git@' , 'https://' )
7879 if oss_item .homepage is None or oss_item .homepage .startswith (self .unity_internal_url ):
79- if license_name != proprietary_license :
80+ if ( license_name != proprietary_license ) and license_name != '' :
8081 oss_item .homepage = f'{ self .mirror_url } { oss_item .name } '
8182 if oss_item .homepage is None :
8283 oss_item .homepage = ''
83-
84+ else :
85+ if not check_url_alive (oss_item .homepage ):
86+ oss_item .homepage = f'https://docs.unity3d.com/Packages/{ oss_item .name } @{ oss_item .version } '
8487 oss_item .download_location = oss_item .homepage
8588 dep_item .purl = get_url_to_purl (oss_item .download_location , self .package_manager_name )
8689 if dep_item .purl == 'None' :
@@ -102,3 +105,16 @@ def parse_oss_information(self, f_name):
102105 logger .error (f"Fail to parse unity oss information: { e } " )
103106
104107 return
108+
109+
110+ def check_url_alive (url ):
111+ alive = False
112+ try :
113+ response = requests .get (url )
114+ if response .status_code == 200 :
115+ alive = True
116+ else :
117+ logger .debug (f"{ url } returned status code { response .status_code } " )
118+ except requests .exceptions .RequestException as e :
119+ logger .debug (f"Check if url({ url } )is alive err: { e } " )
120+ return alive
0 commit comments