From f45ba19c2249375eda85c9fadc0b92a323d53a6f Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Sun, 20 Feb 2022 15:17:56 +0800 Subject: [PATCH 1/3] =?UTF-8?q?obs=5Fmeta=20=E6=8F=90=E4=BA=A4=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=A0=A1=E9=AA=8C=E6=98=AF=E5=90=A6=E5=9C=A8release?= =?UTF-8?q?=5Fmanagement=E7=9A=84=E5=9B=BA=E5=AE=9A=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E4=B8=AD,=E5=A6=82=E6=9E=9C=E6=9C=89=E6=8B=92=E7=BB=9D?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/check_meta_service.py | 67 +++++++++++++++++++++++++++++++++----- 1 file changed, 59 insertions(+), 8 deletions(-) diff --git a/core/check_meta_service.py b/core/check_meta_service.py index 9f203e3..3f0375e 100644 --- a/core/check_meta_service.py +++ b/core/check_meta_service.py @@ -114,6 +114,7 @@ class CheckMetaPull(object): """ log.info("line:%s" % line) new_file_path = '' + complete_new_file_path = '' log_list = list(line.split()) temp_log_type = log_list[0] if len(log_list) == 3: @@ -125,11 +126,15 @@ class CheckMetaPull(object): raise SystemExit("*******PLEASE CHECK YOUR PR*******") else: new_file_path = list(line.split())[2] + complete_new_file_path = list(line.split())[2] + print ("**************************{}".format(new_file_path)) elif len(log_list) == 2: if temp_log_type != "D": new_file_path = list(line.split())[1] + complete_new_file_path = list(line.split())[1] log.info(new_file_path) - return new_file_path + print ('----------------------------------{}'.format(new_file_path)) + return new_file_path, complete_new_file_path def _check_file_format(self, file_path): """ @@ -404,12 +409,15 @@ class CheckMetaPull(object): self._get_latest_obs_meta() changefile = self._get_change_file() changelist = [] + complete_changelist = [] for msg in changefile: - parse_git = self._parse_git_log(msg) + parse_git, complete_parse_git = self._parse_git_log(msg) if parse_git: changelist.append(parse_git) - if changelist: - return changelist + if complete_parse_git: + complete_changelist.append(complete_parse_git) + if changelist or complete_changelist: + return changelist, complete_changelist else: log.info("Finish!!There are no file need to check") sys.exit() @@ -526,12 +534,30 @@ class CheckMetaPull(object): log.info(service_path_list) self._check_service_meta(service_path_list) + def _check_pr_rule(self, release_manage, pr_file): + log.info("************************************** CHECK PR RULE**********************") + if release_manage: + for change_file in pr_file: + path_info = self._get_path_info(change_file) + if path_info[1] in release_manage: + log.error("check pr rule failed repository path:{}".format(change_file)) + else: + log.info("check pr rule success repository path:{}".format(change_file)) + else: + log.error("get release management data failed,please check network and token**********************") + log.info("************************************** CHECK PR RULE**********************") + log.info("check pr rule finished,please wait other check!!!") + return True + + def do_all(self): """ make the get obs_meta change fuction and check fuction doing """ if self.prid and self.token: - change_result = self._get_all_change_file() + release_management_data = self._release_management_tree() + change_result, complete_change_result = self._get_all_change_file() + pr_check_result = self._check_pr_rule(release_management_data, complete_change_result) check_result = self._check_service_meta(change_result) elif not self.prid and self.branch: self._clean() @@ -540,11 +566,36 @@ class CheckMetaPull(object): else: log.error("ERROR_INPUT:PLEASE CHECK YOU INPUT") + def _release_management_tree(self): + log.info("************************************** GET RELASE MANAGEMENT DATA**********************") + release_management_data = [] + sha_api_url = "https://gitee.com/api/v5/repos/openeuler/release-management/branches/master?access_token={}".format(self.token) + sha_value = self._gitee_api_request(sha_api_url)['commit'].get('sha', '') + if sha_value: + api_url = "https://gitee.com/api/v5/repos/openeuler/release-management/git/trees/{}?access_token={}".format(sha_value, self.token) + release_manage_value = self._gitee_api_request(api_url)['tree'] + for current_file in release_manage_value: + if current_file['type'] == 'tree': + release_management_data.append(current_file['path']) + log.info("************************************** GET RELASE MANAGEMENT DATA**********************") + return release_management_data + + def _gitee_api_request(self, url): + """ + gitee api interface + """ + try: + response = requests.request(method='get', url=url) + response_value = response.json() + return response_value + except Exception as e: + log.error("error to request {}".format(url)) + if __name__ == "__main__": kw = {} - kw['pr_id'] = "780" + kw['pr_id'] = "1282" kw['branch'] = "" - kw['access_token'] = "" + kw['access_token'] = "e91ca14f2d98cf2eb0dbf3e96d4dd79a" kw['obs_meta_path'] = "" check = CheckMetaPull(**kw) - check.do_all() + check.do_all() \ No newline at end of file -- Gitee From 2203d5b34ab42afd60fc886b6f788d9ae08a86d3 Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Mon, 21 Feb 2022 11:32:25 +0800 Subject: [PATCH 2/3] =?UTF-8?q?1.=E5=88=A0=E9=99=A4=E5=8E=9F=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E4=B8=AD=E6=B5=8B=E8=AF=95=E5=85=A5=E5=8F=A3=202.?= =?UTF-8?q?=E4=BC=98=E5=8C=96obs=5Fmeta=E6=8F=90=E4=BA=A4=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=EF=BC=8C=E6=8B=A6=E6=88=AA=E5=90=91=E4=B8=BB=E5=B7=A5?= =?UTF-8?q?=E7=A8=8B=E7=9A=84pr=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/check_meta_service.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/core/check_meta_service.py b/core/check_meta_service.py index 3f0375e..0577931 100644 --- a/core/check_meta_service.py +++ b/core/check_meta_service.py @@ -535,19 +535,25 @@ class CheckMetaPull(object): self._check_service_meta(service_path_list) def _check_pr_rule(self, release_manage, pr_file): + """ + check openeuler_meta pull request + """ log.info("************************************** CHECK PR RULE**********************") + failed_flag = [] if release_manage: for change_file in pr_file: path_info = self._get_path_info(change_file) if path_info[1] in release_manage: log.error("check pr rule failed repository path:{}".format(change_file)) + failed_flag.append('yes') else: log.info("check pr rule success repository path:{}".format(change_file)) + if failed_flag: + raise SystemExit("*******PLEASE CHECK YOUR PR*******") else: log.error("get release management data failed,please check network and token**********************") log.info("************************************** CHECK PR RULE**********************") log.info("check pr rule finished,please wait other check!!!") - return True def do_all(self): @@ -567,6 +573,9 @@ class CheckMetaPull(object): log.error("ERROR_INPUT:PLEASE CHECK YOU INPUT") def _release_management_tree(self): + """ + get release_management tree + """ log.info("************************************** GET RELASE MANAGEMENT DATA**********************") release_management_data = [] sha_api_url = "https://gitee.com/api/v5/repos/openeuler/release-management/branches/master?access_token={}".format(self.token) @@ -589,13 +598,4 @@ class CheckMetaPull(object): response_value = response.json() return response_value except Exception as e: - log.error("error to request {}".format(url)) - -if __name__ == "__main__": - kw = {} - kw['pr_id'] = "1282" - kw['branch'] = "" - kw['access_token'] = "e91ca14f2d98cf2eb0dbf3e96d4dd79a" - kw['obs_meta_path'] = "" - check = CheckMetaPull(**kw) - check.do_all() \ No newline at end of file + log.error("error to request {}".format(url)) \ No newline at end of file -- Gitee From 45be30cc221e3099bab7b680265e2163513f0712 Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Mon, 21 Feb 2022 14:34:06 +0800 Subject: [PATCH 3/3] delete test code --- core/check_meta_service.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/core/check_meta_service.py b/core/check_meta_service.py index 0577931..ea615e2 100644 --- a/core/check_meta_service.py +++ b/core/check_meta_service.py @@ -127,13 +127,11 @@ class CheckMetaPull(object): else: new_file_path = list(line.split())[2] complete_new_file_path = list(line.split())[2] - print ("**************************{}".format(new_file_path)) elif len(log_list) == 2: if temp_log_type != "D": new_file_path = list(line.split())[1] complete_new_file_path = list(line.split())[1] log.info(new_file_path) - print ('----------------------------------{}'.format(new_file_path)) return new_file_path, complete_new_file_path def _check_file_format(self, file_path): -- Gitee