System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及金融科技领域,尤其涉及一种基于合并请求增量的代码评审方法、客服系统、电子设备及介质。
技术介绍
1、现有技术中,代码质量管理一直以来都是开发团队所关注的,也是衡量业务功能质量的标准之一,代码质量管理通常包括基本语法使用是否正确,是否存在安全问题,是否方便审阅和维护等方面,其中,虽然业界内也提供了很多工具进行规范扫描,但这些工具大多都是需要改造代码工程架构,对于历史包袱重,代码量多的工程使用效果较差,故当前主流的代码质量管理通常还是以人工代码评审的方式呈现。
2、然而,人工代码评审需要由开发人员在开发的同时还要分出人力对全部代码逐行进行检阅,以判断代码中的业务逻辑是否正确,检阅过程中难免会经常遇见低级代码规范审阅,如行数,条件判断嵌套程度等,会大量占用开发人员用于开发的时间,进而影响开发人员的功能开发进度,导致项目开发效率低下。
技术实现思路
1、本申请实施例的主要目的在于提出一种基于合并请求增量的代码评审方法、系统、设备及介质,可以在不改造代码工程架构的情况下,自动对合并请求对应的增量代码进行代码评审,对代码规范进行把控,以解决代码评审占用开发人员的时间,进而影响开发人员的功能开发进度,导致项目开发效率低下的技术问题。
2、为实现上述目的,本申请实施例的第一方面提出了一种基于合并请求增量的代码评审方法,所述方法包括:
3、接收代码开发端提交的合并请求,并获取所述合并请求携带的推送代码;
4、根据所述推送代码和目标代码库确定增
5、响应于评审指令,对所述增量代码进行解析处理,得到抽象语法树文件;
6、根据所述目标代码库的规则清单对所述抽象语法树文件进行规范扫描处理,得到代码评审结果,并根据所述代码评审结果确定所述增量代码中是否包括问题代码段;
7、在所述增量代码包括所述问题代码段的情况下,将所述代码评审结果发送至所述代码开发端,以使所述代码开发端根据所述代码评审结果对所述问题代码段进行修改;
8、在所述增量代码不包括所述问题代码段的情况下,将所述增量代码合并入库至所述目标代码库。
9、在一些实施例中,所述根据所述推送代码和目标代码库确定增量代码,包括:
10、获取所述推送代码对应的第一文件列表;
11、获取所述目标代码库对应的第二文件列表;
12、对所述第一文件列表和所述第二文件列表进行对比处理,获取变动文件名称;
13、根据所述变动文件名称从所述第二文件列表中确定增量代码。
14、在一些实施例中,所述根据所述变动文件名称从所述第二文件列表中确定增量代码,包括:
15、从所述第二文件列表中得到所述变动文件名称对应的第三文件列表,所述第三文件列表包括在所述第二文件列表中被修改、添加或者删除的代码文件;
16、根据预设的过滤文件类型对所述第三文件列表中代码文件进行筛选处理,并将筛选出的代码文件确定为增量代码。
17、在一些实施例中,所述对所述增量代码进行解析处理,得到抽象语法树文件,包括:
18、对预设的语法解析器进行初始化处理;
19、将所述增量代码输入至所述语法解析器,以使所述语法解析器对所述增量代码分别进行词法分析和语法分析处理;
20、获取所述语法解析器生成的解析代码,并根据所述解析代码得到抽象语法树文件。
21、在一些实施例中,所述根据所述目标代码库的规则清单对所述抽象语法树文件进行规范扫描处理,得到代码评审结果,包括:
22、获取所述目标代码库配置的规则清单和位置标号;
23、根据所述规则清单配置规则引擎;
24、根据所述位置标号确定所述抽象语法树文件的存储位置;
25、根据所述存储位置和所述规则引擎对所述抽象语法树文件进行规范扫描处理,得到代码评审结果。
26、在一些实施例中,所述将所述代码评审结果发送至所述代码开发端之后,还包括:
27、接收所述代码开发端发送的对所述问题代码段进行修改得到的修改代码;
28、对所述修改代码依次进行所述解析处理和所述规范扫描处理,得到修改代码评审结果;
29、在所述修改代码评审结果确定所述修改代码对应的所述增量代码不包括所述问题代码段的情况下,将所述增量代码合并入库至所述目标代码库。
30、在一些实施例中,所述代码评审结果包括所述增量代码中问题代码段的数量信息、位置信息、规范描述信息和修改示例信息。
31、为实现上述目的,本申请实施例的第二方面提出了一种基于合并请求增量的代码评审系统,所述系统包括:
32、请求接收单元,用于接收代码开发端提交的合并请求,并获取所述合并请求携带的推送代码;
33、增量确定单元,用于根据所述推送代码和目标代码库确定增量代码;
34、增量解析单元,用于响应于评审指令,对所述增量代码进行解析处理,得到抽象语法树文件;
35、增量扫描单元,用于根据所述目标代码库的规则清单对所述抽象语法树文件进行规范扫描处理,得到代码评审结果,并根据所述代码评审结果确定所述增量代码中是否包括问题代码段;
36、结果发送单元,用于在所述增量代码包括所述问题代码段的情况下,将所述代码评审结果发送至所述代码开发端,以使所述代码开发端根据所述代码评审结果对所述问题代码段进行修改;
37、合并入库单元,用于在所述增量代码不包括所述问题代码段的情况下,将所述增量代码合并入库至所述目标代码库。
38、为实现上述目的,本申请实施例的第三方面提出了一种电子设备,所述电子设备包括存储器、处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。
39、为实现上述目的,本申请实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。
40、本申请提出的基于合并请求增量的代码评审方法、系统、设备及介质,其通过接收代码开发端提交的合并请求,并获取所述合并请求携带的推送代码,实现与开发端的无缝集成,以获取最新的推送代码,确保评审的代码是最新的版本;进一步的,根据所述推送代码和目标代码库确定增量代码,即通过对比推送代码和目标代码库,确定具体的增量变更的方式,避免对整个代码库进行评审,进而在进行增量代码评审时,无需对工程代码架构进行修改或增加额外的软件依赖,可以有效减少代码变动和环境配置的复杂性,节省评审时间和评审所消耗资源;进一步的,响应于评审指令,对所述增量代码进行解析处理,得到抽象语法树文件,通过解析和处理抽象语法树文件,可以进行更加深入的代码静态分析,发现隐蔽的问题和潜在的风险;进一步的,根据所述目标代码库的规则清单对所述抽象语法树文件进行规范扫描处理,得到代码评审结果,并根据所本文档来自技高网...
【技术保护点】
1.一种基于合并请求增量的代码评审方法,其特征在于,所述方法包括:
2.根据权利要求1所述的基于合并请求增量的代码评审方法,其特征在于,所述根据所述推送代码和目标代码库确定增量代码,包括:
3.根据权利要求2所述的基于合并请求增量的代码评审方法,其特征在于,所述根据所述变动文件名称从所述第二文件列表中确定增量代码,包括:
4.根据权利要求1所述的基于合并请求增量的代码评审方法,其特征在于,所述对所述增量代码进行解析处理,得到抽象语法树文件,包括:
5.根据权利要求1所述的基于合并请求增量的代码评审方法,其特征在于,所述根据所述目标代码库的规则清单对所述抽象语法树文件进行规范扫描处理,得到代码评审结果,包括:
6.根据权利要求1所述的基于合并请求增量的代码评审方法,其特征在于,所述将所述代码评审结果发送至所述代码开发端之后,还包括:
7.根据权利要求1至6中任意一项所述的基于合并请求增量的代码评审方法,其特征在于,所述代码评审结果包括所述增量代码中问题代码段的数量信息、位置信息、规范描述信息和修改示例信息。
...【技术特征摘要】
1.一种基于合并请求增量的代码评审方法,其特征在于,所述方法包括:
2.根据权利要求1所述的基于合并请求增量的代码评审方法,其特征在于,所述根据所述推送代码和目标代码库确定增量代码,包括:
3.根据权利要求2所述的基于合并请求增量的代码评审方法,其特征在于,所述根据所述变动文件名称从所述第二文件列表中确定增量代码,包括:
4.根据权利要求1所述的基于合并请求增量的代码评审方法,其特征在于,所述对所述增量代码进行解析处理,得到抽象语法树文件,包括:
5.根据权利要求1所述的基于合并请求增量的代码评审方法,其特征在于,所述根据所述目标代码库的规则清单对所述抽象语法树文件进行规范扫描处理,得到代码评审结果,包括:
6.根据权利要求1所述的基于合并请求增量的代码评审方...
【专利技术属性】
技术研发人员:臧金锐,
申请(专利权)人:中国平安人寿保险股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。