代码分析方法、装置、系统及电子设备与流程
- 国知局
- 2024-07-31 22:48:33
本发明涉及计算机软件开发,尤其涉及一种代码分析方法、装置、系统及电子设备。
背景技术:
1、sonarqube是一个非常受欢迎的代码质量管理工具,简称为sonar,被广泛应用于软件开发项目中,对代码进行检测,得到代码的质量指标数据,质量指标数据可以帮助开发团队识别代码中的一些常见问题,例如,质量指标数据包括单元测试覆盖率、代码重复、复杂性、潜在的错误和漏洞等。这些指标数据可以帮助团队更好地了解代码,并采取相应的措施对代码进行改进。
2、相关技术中,sonar开源版本只支持单个sonar节点的部署,通过sonar节点只能实现对一个代码的分析,从而降低了代码分析的效率。
技术实现思路
1、本发明提供一种代码分析方法、装置、系统及电子设备,用以解决现有技术中降低代码分析的效率的缺陷。
2、本发明提供一种代码分析方法,应用于服务器,所述服务器中预先部署有sonar集群,所述sonar集群中的每个sonar节点用于对相应的代码进行分析,所述方法包括:
3、接收客户终端发送的至少两个节点分配请求;所述节点分配请求包括目标代码标识;
4、针对各所述节点分配请求,在所述sonar集群中确定所述节点分配请求对应的目标sonar节点;
5、基于所述目标sonar节点对所述节点分配请求包括的目标代码标识对应的目标代码进行分析。
6、根据本发明提供的一种代码分析方法,所述基于所述目标sonar节点对所述节点分配请求包括的目标代码标识对应的目标代码进行分析,包括:
7、基于所述目标sonar节点对所述目标代码的质量指标检测结果进行分析,得到结构化的质量指标数据。
8、根据本发明提供的一种代码分析方法,所述节点分配请求还包括用户提交的所述目标代码对应的目标仓库的标识和所述目标仓库中目标分支的标识;
9、所述在所述sonar集群中确定所述节点分配请求对应的目标sonar节点,包括:
10、对所述节点分配请求对应的所述目标仓库的标识和所述目标分支的标识进行哈希运算,得到哈希值;
11、将所述哈希值对所述sonar集群中sonar节点的数量进行取模运算,得到目标值;
12、将序号为所述目标值的sonar节点确定为所述目标sonar节点。
13、根据本发明提供的一种代码分析方法,所述方法还包括:
14、向所述客户终端发送节点分配响应,所述节点分配响应包括所述目标sonar节点的地址信息;所述节点分配响应用于指示所述客户终端基于所述地址信息向所述目标sonar节点发送分析请求,所述分析请求用于指示所述目标sonar节点对所述目标代码的质量指标检测结果进行分析;
15、接收所述客户终端发送的目标分析任务的标识,所述目标分析任务的标识为所述目标sonar节点对所述质量指标检测结果进行分析时创建的目标分析任务的标识。
16、根据本发明提供的一种代码分析方法,所述方法还包括:
17、轮询任务队列中的分析任务的标识,基于所述任务队列中仓库的标识、分支的标识和分析任务的标识的关联关系,确定当前轮询的分析任务的标识对应的第一仓库的标识和第一分支的标识;
18、基于仓库的标识、分支的标识和sonar节点的对应关系,确定所述第一仓库的标识和所述第一分支的标识对应的待查询sonar节点;
19、从所述待查询sonar节点中查询所述当前轮询的分析任务的标识对应的结构化的质量指标数据。
20、根据本发明提供的一种代码分析方法,所述从所述待查询sonar节点中查询所述当前轮询的分析任务的标识对应的结构化的质量指标数据,包括:
21、向所述待查询sonar节点发送任务状态请求;所述任务状态请求包括所述当前轮询的分析任务的标识;
22、接收所述待查询sonar节点发送的针对所述当前轮询的分析任务的标识对应的任务状态;
23、在所述任务状态为成功状态的情况下,获取所述当前轮询的分析任务的标识对应的结构化的质量指标数据。
24、本发明还提供一种代码分析方法,应用于客户终端,所述方法包括:
25、向服务器发送至少两个节点分配请求,所述节点分配请求中包括目标代码标识,所述节点分配请求用于指示所述服务器在sonar集群中确定所述节点分配请求对应的目标sonar节点;基于所述目标sonar节点对所述节点分配请求包括的目标代码标识对应的目标代码进行分析。
26、根据本发明提供的一种代码分析方法,所述方法还包括:
27、接收所述服务器发送的节点分配响应,所述节点分配响应包括所述目标sonar节点的地址信息;
28、基于所述地址信息向所述目标sonar节点发送分析请求,所述分析请求用于指示所述目标sonar节点对所述目标代码的质量指标检测结果进行分析;
29、接收所述目标sonar节点发送的分析响应,所述分析响应包括目标分析任务的标识,所述目标分析任务的标识为所述目标sonar节点对所述质量指标检测结果进行分析时创建的目标分析任务的标识;
30、向所述服务器发送所述目标分析任务的标识。
31、根据本发明提供的一种代码分析方法,所述节点分配响应还包括所述目标代码对应的待分析项目的标识,所述待分析项目的标识为基于哈希值和所述sonar集群中sonar节点的数量确定的,所述哈希值为对用户提交的所述目标代码对应的目标仓库的标识和目标分支的标识进行哈希运算后得到的;
32、所述分析请求还包括所述待分析项目的标识,所述分析请求用于指示所述目标sonar节点将所述目标代码的质量指标检测结果和所述待分析项目的标识进行关联。
33、根据本发明提供的一种代码分析方法,所述向服务器发送至少两个节点分配请求,包括:
34、在通过流水线脚本监测到用户将所述目标代码提交至目标仓库的目标分支的情况下,向所述服务器发送所述至少两个节点分配请求,所述流水线脚本为基于sonarscanner cli对持续集成ci模板进行修改后得到的。
35、本发明还提供一种代码分析装置,应用于服务器,所述装置包括:
36、第一接收单元,用于接收客户终端发送的至少两个节点分配请求,所述节点分配请求包括目标代码标识;
37、第一确定单元,用于针对各所述节点分配请求,在所述sonar集群中确定所述节点分配请求对应的目标sonar节点;
38、分析单元,用于基于所述目标sonar节点对所述节点分配请求包括的目标代码标识对应的目标代码进行分析。
39、本发明还提供一种代码分析装置,应用于客户终端,所述装置包括:
40、第一发送单元,用于向服务器发送至少两个节点分配请求,所述节点分配请求中包括目标代码标识,所述节点分配请求用于指示所述服务器在sonar集群中确定所述节点分配请求对应的目标sonar节点;基于所述目标sonar节点对所述节点分配请求包括的目标代码标识对应的目标代码进行分析。
41、本发明还提供一种代码分析系统,包括客户终端和服务器,所述服务器包括sonar集群;
42、所述客户终端,用于向服务器发送至少两个节点分配请求,所述节点分配请求中包括目标代码标识;
43、所述服务器,用于针对各所述节点分配请求,在所述sonar集群中确定所述节点分配请求对应的目标sonar节点;
44、所述目标sonar节点,用于对所述节点分配请求包括的目标代码标识对应的目标代码进行分析。
45、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述代码分析方法。
46、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述代码分析方法。
47、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述代码分析方法。
48、本发明提供的代码分析方法、装置、系统及电子设备,服务器在接收到客户终端发送的至少两个节点分配请求时,在sonar集群中确定节点分配请求对应的目标sonar节点,通过目标sonar节点对节点分配请求包括目标代码标识对应的目标代码进行分析。可知,本发明能够在sonar集群中确定各节点分配请求对应的目标sonar节点,通过目标sonar节点实现对对应代码的分析,实现了同时对多个代码的分析,从而提高了代码分析的效率。
本文地址:https://www.jishuxx.com/zhuanli/20240730/194728.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。