MCPcopy Create free account
hub / github.com/Tencent/CodeAnalysis / ProjectMgr

Class ProjectMgr

client/node/localtask/projectmgr.py:29–242  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27
28
29class ProjectMgr(object):
30 def __init__(self, scan_plan, scheme_template_ids, scheme_templates, languages,
31 dog_server, org_sid, team_name, source_dir, include_paths, exclude_paths,
32 proj_id, scm_info, report_file, admins, scm_auth_info, front_end_url,
33 labels, machine_tag, ref_scheme_id, proj_env, create_from, enable_module):
34 self._repo_id = None
35 self._scan_plan = scan_plan
36 self._scheme_template_ids = scheme_template_ids
37 self._scheme_templates = scheme_templates
38 self._languages = languages
39 self._dog_server = dog_server
40 self._org_sid = org_sid
41 self._team_name = team_name
42 self._source_dir = source_dir
43 self._include_paths = include_paths
44 self._exclude_paths = exclude_paths
45 self._proj_id = proj_id
46 self._scm_info = scm_info
47 self._report_file = report_file
48 self._admins = admins
49 self._scm_auth_info = scm_auth_info
50 self._front_end_url = front_end_url
51 self._labels = labels
52 self._machine_tag = machine_tag
53 self._ref_scheme_id = ref_scheme_id
54 self._proj_env = proj_env
55 self._create_from = create_from
56 self._enable_module = enable_module
57
58 def __check_project_exist(self, branch, scheme_name, scan_path):
59 """
60 判断项目是否已存在
61 :return:
62 """
63 # 向serer查询是否已创建项目
64 try:
65 proj_info_list = self._dog_server.get_proj_info(branch=branch, scan_scheme=scheme_name,
66 repo_id=self._repo_id, org_sid=self._org_sid,
67 team_name=self._team_name, scan_path=scan_path)
68 except ResfulApiError as err:
69 logger.error("获取项目ID失败,退出!\n%s", err.msg)
70 sys.exit(-1)
71
72 if proj_info_list:
73 if len(proj_info_list) == 1:
74 return proj_info_list[0]
75 else:
76 proj_info_list_str = json.dumps(proj_info_list, indent=2, ensure_ascii=False)
77 err_msg = f"该仓库(id: {self._repo_id})下的{branch}分支, 使用 {scheme_name} 分析方案的项目有多个," \
78 f"请联系代码分析管理员排查原因.\n{proj_info_list_str}"
79 raise NodeError(code=errcode.E_NODE_TASK_CONFIG, msg=err_msg)
80 else:
81 return None
82
83 def __check_and_create_repo(self, repo_url):
84 is_existed, repo_id = self._dog_server.is_repo_existed(repo_url, self._org_sid, self._team_name)
85 if is_existed:
86 return repo_id

Callers 1

runMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected