# GET /projects defget_projects(self, project_name=None, is_public=None): # TODO: support parameter result = [] page = 1 page_size = 15
whileTrue: path = '%s://%s/api/v2.0/projects?page=%s&page_size=%s' % (self.protocol, self.host, page, page_size) response = requests.get(path, cookies={'sid': self.session_id}) if response.status_code == 200: logging.debug("Successfully get projects result: {}".format( result)) if isinstance(response.json(), list): result.extend(response.json()) page += 1 else: break else: logging.error("Fail to get projects result") result = None break return result
# GET /projects/{project_name}/repositories defget_repositories(self, project_name, query_string=None): # TODO: support parameter result = [] page = 1 page_size = 15
whileTrue: path = '%s://%s/api/v2.0/projects/%s/repositories?page=%s&page_size=%s' % ( self.protocol, self.host, project_name, page, page_size) response = requests.get(path, cookies={'sid': self.session_id}) if response.status_code == 200: logging.debug( "Successfully get repositories with name: {}, result: {}".format( project_name, result)) if len(response.json()): result.extend(response.json()) page += 1 else: break else: logging.error("Fail to get repositories result with name: {}".format( project_name)) result = None break return result
# GET /projects/{project_name}/repositories/{repository_name}/artifacts # GET /projects/{project_name}/repositories/{repository_name}/artifacts?with_tag=true&with_scan_overview=true&with_label=true&page_size=15&page=1 defget_repository_artifacts(self, project_name, repository_name): result = [] page = 1 page_size = 15
whileTrue: path = '%s://%s/api/v2.0/projects/%s/repositories/%s/artifacts?with_tag=true&with_scan_overview=true&with_label=true&page_size=%s&page=%s' % ( self.protocol, self.host, project_name, repository_name, page_size, page) response = requests.get(path, cookies={'sid': self.session_id}, timeout=60) if response.status_code == 200: logging.debug( "Successfully get repositories artifacts with name: {}, {}, result: {}".format( project_name, repository_name, result)) if len(response.json()): result.extend(response.json()) page += 1 else: break else: logging.error("Fail to get repositories artifacts result with name: {}, {}".format( project_name, repository_name)) result = None break return result
# DELETE /projects/{project_name}/repositories/{repository_name} defdelete_repository(self, project_name, repository_name, tag=None): # TODO: support to check tag # TODO: return 200 but the repo is not deleted, need more test result = False path = '%s://%s/api/v2.0/projects/%s/repositories/%s' % ( self.protocol, self.host, project_name, repository_name) response = requests.delete(path, cookies=self.cookies_new, headers=self.headers) if response.status_code == 200: result = True print("Delete {} successful!".format(repository_name)) logging.debug("Successfully delete repository: {}".format( repository_name)) else: logging.error("Fail to delete repository: {}".format(repository_name)) return result
# Get /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags defget_repository_tags(self, project_name, repository_name, reference_hash): result = None path = '%s://%s/api/v2.0/projects/%s/repositories/%s/artifacts/%s/tags' % ( self.protocol, self.host, project_name, repository_name, reference_hash) response = requests.get(path, cookies={'sid': self.session_id}, timeout=60) if response.status_code == 200: result = response.json() logging.debug( "Successfully get tag with repository name: {}, result: {}".format( repository_name, result)) else: logging.error("Fail to get tags with repository name: {}".format( repository_name)) return result
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。
Rocky Linux
Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。