@@ -36,6 +36,8 @@ def get_req(path, params=None):
3636        params  =  {}
3737    response  =  requests .get (get_url (path ), headers = get_base_headers (), params = params )
3838    if  not  response .ok :
39+         if  response .status_code  ==  404 :
40+             return  None 
3941        raise  Exception (response .text )
4042    return  response .json ()
4143
@@ -49,7 +51,9 @@ def get_list_req(path, params=None):
4951    another_page  =  True 
5052    result  =  []
5153    while  another_page :
52-         result .extend (get_req (path , params = params ))
54+         response  =  get_req (path , params = params )
55+         if  response  is  not   None :
56+             result .extend (response )
5357        if  "next"  in  response .links :
5458            url  =  response .links ["next" ]["url" ]
5559            if  "page"  in  params :
@@ -60,17 +64,20 @@ def get_list_req(path, params=None):
6064
6165
6266def  get_list_packages (owner , repo_name , owner_type , package_name ):
63-     all_org_pkg  =  get_list_req (
67+     if  package_name :
68+         response  =  get_req (f"/{ owner_type }  s/{ owner }  /packages/container/{ package_name }  " )
69+         result  =  []
70+         if  response  is  not   None :
71+             result .extend (response )
72+         return  result 
73+ 
74+     all_org_pkg  =  get_req (
6475        f"/{ owner_type }  s/{ owner }  /packages?package_type=container" )
6576    if  repo_name :
6677        all_org_pkg  =  [
6778            pkg  for  pkg  in  all_org_pkg  if  pkg .get ("repository" )
6879            and  pkg ["repository" ]["name" ].lower () ==  repo_name 
6980        ]
70-     if  package_name :
71-         all_org_pkg  =  [
72-             pkg  for  pkg  in  all_org_pkg  if  pkg ["name" ] ==  package_name 
73-         ]
7481    return  all_org_pkg 
7582
7683
0 commit comments