本地任务执行器
| 40 | |
| 41 | |
| 42 | class LocalRunner(TaskRunner): |
| 43 | """本地任务执行器 |
| 44 | """ |
| 45 | # 启动场景类别 |
| 46 | CI_START = "CI" # CI启动场景 |
| 47 | |
| 48 | def __init__(self, args): |
| 49 | """ |
| 50 | 构造函数 |
| 51 | :param 命令行参数 |
| 52 | :return: |
| 53 | """ |
| 54 | TaskRunner.__init__(self) |
| 55 | self._origin_os_env = None |
| 56 | |
| 57 | # 任务心跳线程 |
| 58 | self._job_heartbeat = None |
| 59 | |
| 60 | self._args = args |
| 61 | |
| 62 | self._start_type = None # 启动方式,是否为CI/CR启动 |
| 63 | self._token = None |
| 64 | self._org_sid = None # 团队编号 |
| 65 | self._team_name = None # 项目名称 |
| 66 | self._source_dir = None |
| 67 | self._languages = [] |
| 68 | self._scan_plan = None # 分析方案名称 |
| 69 | self._branch = None |
| 70 | self._scan_path = None |
| 71 | self._total_scan = False # 默认为False,即增量扫描 |
| 72 | self._exclude_paths = [] |
| 73 | self._include_paths = [] |
| 74 | self._pre_cmd = "" |
| 75 | self._build_cmd = "" |
| 76 | self._ref_scheme_id = None # 参照扫描方案ID |
| 77 | self._report_file = os.path.abspath("scan_status.json") # 默认值 |
| 78 | |
| 79 | self._labels = None |
| 80 | self._proj_env = "" # 项目环境变量,是一个字符串 |
| 81 | self._config_file = None |
| 82 | self._admins = [] |
| 83 | |
| 84 | self._compare_branch = None # 对比分支 |
| 85 | self._scheme_templates = [] # 官方分析方案模板 |
| 86 | self._scheme_template_ids = [] # 官方分析方案模板id |
| 87 | self._server_url = None # 连接的 server url |
| 88 | self._front_end_url = None # 前端展示url,和server url是对应的 |
| 89 | self._scan_history_url = None # 项目执行历史页面地址 |
| 90 | self._job_web_url = None |
| 91 | self._create_from = "codedog_client" |
| 92 | self._job_start_time = None # 当前扫描任务开始时间,报给server,方便server计算和展示整个任务的执行时间 |
| 93 | self._repo_id = None # 仓库id |
| 94 | self._machine_tag = settings.OS_TAG_MAP[sys.platform] # 执行机标签,默认根据当前机器操作系统决定,也允许用户指定 |
| 95 | # 启用的扫描组件,可选值:lint,cc,dup,cloc(代码检查、圈复杂度、重复代码、代码统计件),多项可用英文逗号(,)分隔,新建项目默认只启用代码检查组件 |
| 96 | self._enable_module = None |
| 97 | # CI流水线任务的链接和触发人 |
| 98 | self._ci_job_url = None |
| 99 | self._ci_job_trigger = None |