import requests from urllib import parse session = requests.Session() HEADERS = {'Content-Type': 'application/x-www-form-urlencoded'} def get_session(): payload = {"principal": 'admin', "password": 'Harbor12345'} data = parse.urlencode(payload) r = session.post("https://repository.anxinyun.cn/login", headers=HEADERS, data=data) print(r.status_code) def get_all_project(): url = "https://repository.anxinyun.cn/api/projects?page=1&page_size=100" rs = session.get(url) if rs.status_code == 200: projects = dict() for p in rs.json(): projects[p['name']] = p['project_id'] return projects def get_image_latest_tag(project, image): url = "https://repository.anxinyun.cn/api/repositories/{}/{}/tags?detail=1".format(project, image) r = session.get(url) if r.status_code == 200: tags = list(map(lambda t: {'created': t['created'], 'tag': t['name']}, r.json())) tags.sort(key=lambda x: x['created'], reverse=True) return tags[0]['tag'] if len(tags) == 1 else tags[0]['tag'] if tags[0]['tag'] != 'latest' else tags[1]['tag'] # if len(tags) >= 2: # return tags[0]['tag'] if tags[0]['tag'] != 'latest' else tags[1]['tag'] # else: # return tags[0]['tag']