From 11d534969b36dd016d7ab8045bc250f83241cc95 Mon Sep 17 00:00:00 2001
From: dongjie110 <17621827400@163.com>
Date: Wed, 22 Nov 2023 16:06:18 +0800
Subject: [PATCH] add check obs_to and current dir
---
 core/check_release_management.py | 31 +++++++++++++++++++++++++++----
 1 file changed, 27 insertions(+), 4 deletions(-)
diff --git a/core/check_release_management.py b/core/check_release_management.py
index 5414641..402b498 100644
--- a/core/check_release_management.py
+++ b/core/check_release_management.py
@@ -767,7 +767,7 @@ class CheckReleaseManagement(object):
         check the key and brach from in your yaml compliance with rules
         """
         error_flag = False
-        keylist = ['source_dir', 'obs_from', 'name', 'destination_dir', 'obs_to', 'date', 'quality_level']
+        keylist = ['source_dir', 'obs_from', 'name', 'destination_dir', 'obs_to', 'date', 'quality_level', 'c_dir']
         for branch,info in change_info.items():
             if info:
                 log.info("branch:{} yaml key check".format(branch))
@@ -914,6 +914,25 @@ class CheckReleaseManagement(object):
             raise SystemExit("ERROR: Please check your PR")
         return change_infos
 
+    def _check_obs_to_dir(self, change_infos):
+        '''
+        compare with obs_to and branch dir
+        '''
+        error_flag = False
+        log.info("obs_to and relase branch dir check")
+        for branch,pkgs in change_infos.items():
+            for pkg in pkgs:
+                if 'Epol' in pkg['obs_to']:
+                    if pkg['c_dir'] != 'epol':
+                        log.error("pkg:{} obs_to is not adapt release-management branch dir {}".format(pkg['name'], pkg['c_dir']))
+                        error_flag = True
+                else:
+                    if pkg['c_dir'] == 'epol':
+                        log.error("pkg:{} obs_to is not adapt release-management branch dir {}".format(pkg['name'], pkg['c_dir']))
+                        error_flag = True
+                        self.job_result['check_package_add'] = 'failed'
+        return error_flag
+
     def _check_internal_move(self, old_msg, new_msg):
         '''
         compare with old and new yaml msg, make sure internal move pkgs not repeat
@@ -1013,7 +1032,10 @@ class CheckReleaseManagement(object):
                 if os.path.exists(release_path):
                     with open(release_path, 'r', encoding='utf-8') as f:
                         result = yaml.load(f, Loader=yaml.FullLoader)
-                        all_branch_pkgs.extend(result['packages'])
+                        for pkg in result['packages']:
+                            pkg['c_dir'] = c_dir
+                            all_branch_pkgs.append(pkg)
+                        # all_branch_pkgs.extend(result['packages'])
         return all_branch_pkgs
 
     def _get_master_yaml_msg(self, path_list, manage_path):
@@ -1076,7 +1098,7 @@ class CheckReleaseManagement(object):
         comment_tips.append("1)本次构建号为{2}/{1},点击可查看构建详情: #{1}\n".format(build_url,job_id,job_name))
         comment_tips.append("2)若有检查失败项目,请勿合入")
         comment_tips.append("3)若您对如何创建提交PR有疑问," \
-                       "可参考" \
+                       "可参考" \
                        "开发者提交PR指导手册")
         details = {
                     'check_yaml_format':"检查yaml格式是否正确",
@@ -1136,11 +1158,12 @@ class CheckReleaseManagement(object):
             self._check_key_in_yaml_new(change_infos)
             self._check_valid_release_branch(change_infos)
             date_flag = self._check_pkg_date(change_infos)
+            obs_to_flag = self._check_obs_to_dir(change_infos)
             branch_flag = self._check_pkg_branch_exist(change_infos, check_type='other')
             correct_from, error_from = self._check_pkg_from_new(self.meta_path, change_infos)
             error_flag_add = self._check_pkg_parent_from(change_infos, correct_from, error_from, add_infos)
             error_flag_del = self._check_pkg_delete_new(self.meta_path, change_delete_infos)
-            if error_flag_add or error_flag_del or date_flag or branch_flag:
+            if error_flag_add or error_flag_del or date_flag or branch_flag or obs_to_flag:
                 self._comment_to_pr()
                 raise SystemExit("Please check your commit")
         if change_file:
-- 
Gitee