diff --git a/advisors/check_upstream.py b/advisors/check_upstream.py index 3aeabea87de3de193230986a09b7ed9714d8349d..4717171b6be90e5243187c95e5e22772b784c666 100755 --- a/advisors/check_upstream.py +++ b/advisors/check_upstream.py @@ -14,10 +14,12 @@ """ This modules containers methods to check upstream version info """ +import os import re import sys import json import subprocess +import time from datetime import datetime from urllib.parse import urljoin import requests @@ -70,20 +72,31 @@ def load_last_query_result(info, force_reload=False): return "" - def clean_tags(tags, info): """ Clean up tags according to setting """ + result_list = [] if info.get("tag_pattern", "") != "" and info.get("tag_pattern", "") is not None: pattern_regex = re.compile(info["tag_pattern"]) - result_list = [pattern_regex.sub("\\1", x) for x in tags] + for tag in tags: + if pattern_regex.match(tag): + new_tag = pattern_regex.sub("\\1", tag) + result_list.append(new_tag) + elif info.get("tag_reorder", "") != "" and info.get("tag_reorder", "") is not None: pattern_regex = re.compile(info["tag_reorder"]) - result_list = [pattern_regex.sub(info["tag_neworder"], x) for x in tags] + for tag in tags: + if pattern_regex.match(tag): + new_tag = pattern_regex.sub(info["tag_neworder"], tag) + result_list.append(new_tag) + elif info.get("tag_prefix", "") != "" and info.get("tag_prefix", "") is not None: prefix_regex = re.compile(info["tag_prefix"]) - result_list = [prefix_regex.sub("", x) for x in tags] + for tag in tags: + if prefix_regex.match(tag): + new_tag = prefix_regex.sub("", tag) + result_list.append(new_tag) else: result_list = tags @@ -325,9 +338,45 @@ def __check_git_helper(repo_url): """ Helper to start git command """ - eprint("{repo} > Using git ls-remote".format(repo=repo_url)) - cmd_list = ["git", "ls-remote", "--tags", repo_url] - return __check_subprocess(cmd_list) + if os.path.isdir("git"): + os.chdir("git") + else: + os.mkdir("git") + os.chdir("git") + git_repo = os.path.basename(repo_url).split('.')[0] + if os.path.isdir(git_repo): + os.chdir(git_repo) + print("INFO:start to git pull", repo_url) + cmd_list = ["git", "pull", repo_url] + __check_subprocess(cmd_list) + os.chdir("..") + else: + cnt = 0 + while True: + print("INFO:start to git clone", repo_url) + cmd_list = ["git", "clone", repo_url] + __check_subprocess(cmd_list) + if os.path.isdir(git_repo): + break + elif cnt < 10: + time.sleep(1) + cnt = cnt + 1 + print("INFO:try to git clone repo {} cnt = {}".format(repo_url, cnt)) + continue + else: + print("ERROR:git clone {} failed".format(repo_url)) + break + try: + os.chdir(git_repo) + except FileNotFoundError as e: + print("ERROR: dir not find", e) + os.chdir("..") + return "" + cmd_list = ["git", "tag"] + print("INFO:start to git tag", repo_url) + resp = __check_subprocess(cmd_list) + os.chdir("../..") + return resp def __svn_resp_to_tags(resp): @@ -349,13 +398,8 @@ def __git_resp_to_tags(resp): Helpers to convert git response to tags """ tags = [] - pattern = re.compile(r"^([^ \t]*)[ \t]*refs\/tags\/([^ \t]*)") for line in resp.splitlines(): - match_result = pattern.match(line) - if match_result: - tag = match_result.group(2) - if not tag.endswith("^{}"): - tags.append(tag) + tags.append(line) return tags diff --git a/advisors/check_version.py b/advisors/check_version.py index 2cd0a2039513ab3b232e1c01c05b0d665a9cf530..8a51b41ada3658456cfc548f3e8b37f81dfa6501 100755 --- a/advisors/check_version.py +++ b/advisors/check_version.py @@ -52,9 +52,7 @@ def main(): index = 0 upgrade_list = [] for check_repo in repos: - # sleep 10 second, avoid limited by github\gitlab index = index + 1 - time.sleep(10) result = main_process(args.push, args.default, check_repo) if result: if result[1] != result[2]: diff --git a/upstream-info/hdf5.yaml b/upstream-info/hdf5.yaml index 343faff5efcfb8134a1560eca287920933b26e4e..2d460ea3a9b55b78084386447f6834dc7c789976 100644 --- a/upstream-info/hdf5.yaml +++ b/upstream-info/hdf5.yaml @@ -1,38 +1,6 @@ --- -git_url: https://github.com/live-clones/hdf5.git version_control: github -src_repo: live-clones/hdf5 -tag_prefix: hdf5- -separator: _ -git_tag: -- 2015-02-19 vms_last_support_trunk -- 2014-03-21 before_removing_mpiposix_vfd -- 2008-02-25 hdf5-1_0_0-alpha2 -- 2008-02-25 hdf5-1_8_0-beta5 -- 2008-02-25 hdf5-1_8_0-beta4 -- 2008-02-25 hdf5-1_8_0-beta3 -- 2008-02-25 hdf5-1_8_0-beta2 -- 2008-02-25 hdf5-1_8_0-beta1 -- 2008-02-25 hdf5-1_8_0-alpha4 -- 2008-02-25 hdf5-1_8_0-alpha3 -- 2008-02-25 hdf5-1_8_0-alpha2 -- 2008-02-06 hdf5-1_9-start -- 2006-04-20 before_removing_fphdf5 -- 2005-07-01 before_removing_docs -- 2005-01-07 before_removing_tbbt_code -- 2004-12-29 before_signed_unsigned_changes -- 2004-02-12 hdf5-1_6_2 -- 2003-10-16 hdf5-1_6_1 -- 2003-07-03 hdf5-1_6_0 -- 2001-04-06 hdf5-1_4_1 -- 2001-02-27 hdf5-1_4_0 -- 1999-12-21 hdf5-1_2_1 -- 1999-10-15 hdf5-1_2_0 -- 1999-10-01 hdf5-1_3_1 -- 1999-09-17 hdf5-1_3_0 -- 1999-08-24 hdf5-1_2_0-beta1-update2 -- 1999-08-02 hdf5-1_2_0beta -- 1999-01-04 hdf5-1_0_1 -- 1998-11-06 hdf5-1_0_0 -- 1998-09-15 r1_1beta1 -- 1997-10-17 proto1 +src_repo: HDFGroup/hdf5 +tag_prefix: "^hdf5-" +separator: "_" +git_url: https://github.com/HDFGroup/hdf5.git diff --git a/upstream-info/newlib.yaml b/upstream-info/newlib.yaml new file mode 100755 index 0000000000000000000000000000000000000000..2802adc74434f478b86b8c82234fe54aafcdfe07 --- /dev/null +++ b/upstream-info/newlib.yaml @@ -0,0 +1,4 @@ +version_control: git +src_repo: git://sourceware.org/git/newlib-cygwin.git +tag_prefix: "^newlib-" +separator: "." diff --git a/upstream-info/open-vm-tools.yaml b/upstream-info/open-vm-tools.yaml new file mode 100644 index 0000000000000000000000000000000000000000..90a3a1e292f3589227d5a6454f196f981bd2047c --- /dev/null +++ b/upstream-info/open-vm-tools.yaml @@ -0,0 +1,5 @@ +version_control: github +src_repo: vmware/open-vm-tools +tag_prefix: "^stable-" +separator: "." +git_url: https://github.com/vmware/open-vm-tools.git diff --git a/upstream-info/wisdom-advisor.yaml b/upstream-info/wisdom-advisor.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fd15b14ebabcee8da6102fc8eb9a39fa2208bf1e --- /dev/null +++ b/upstream-info/wisdom-advisor.yaml @@ -0,0 +1,4 @@ +version_control: gitee +src_repo: openEuler/wisdom-advisor +tag_prefix: "^v" +separator: "."