本发明涉及增量代码走查系统及方法,尤其涉及基于devops平台自动实现增量代码走查系统及增量代码走查方法,其属于代码走查。
背景技术:
1、代码走查是每个进行软件开发和维护的公司所必须的工作,目前业内针对代码走查工作有两种实现方式:
2、第一种是手动提交代码,但代码量大,开发人员代码分支权限不会开放给代码走查人员,导致开发人员需手动将代码移库到指定路径进行代码走查,面对数量众多的文件,复杂的路径,手动抽取的结果就是抽查文件不全面,代码走查范围不全,代码质量反馈不真实,效果不理想,抽查结果没有记录,质量问题后续跟踪难,过程不闭环。如果对全部代码进行走查,则会非常耗时,相同代码重复走查,造成资源浪费。
3、第二种是通过使用jenkins插件拉取全量代码的方式,在jenkins中安装svn插件,并进行相应的配置,包括设置svn服务器的地址、认证信息等。在jenkins中创建一个新的任务,选择构建类型为“freestyle project”或其他适合的任务类型。在任务的配置页面中,选择源码管理为svn,并填写相应的svn仓库地址、凭证等信息。在任务的构建步骤中,可以配置执行特定的命令或脚本,用于拉取全量代码。通常情况下,可以使用svn命令行工具或jenkins的svn插件提供的步骤来拉取代码。根据需要配置构建触发器,例如定时触发、轮询svn仓库等,以确定何时进行代码拉取。保存任务的配置,并手动触发任务运行或设置自动触发。jenkins将按照配置的步骤从svn仓库拉取全量代码,但这样会占用较多的存储空间,特别是在频繁构建或拉取大量历史代码时,拉取全量代码可能会导致服务器存储空间不足,随着公司的发展,代码量日益增多,拉取时间越来越长,不够灵活。
4、授权公告号为cn111309441b的中国发明专利,公开了一种基于jenkins实现devops的微服务部署方法,其通过提前规范和统一化配置,利用gitlab+jenkins流水线完成自动的构建、打包,生成可以管理镜像和配置文件的helm chart,从而部署到各个环境,大大降低了人为的沟通成本和误操作的可能,提高了效率。该专利公开的是基于jenkins与devops的部署方法,其并未公开关于代码走查方法,因此该方案不适用于代码走查方法的优化,无法解决本申请中存在的问题。
技术实现思路
1、技术目的:为了克服现有技术中存在的不足,本发明提供了基于devops平台自动实现增量代码走查系统及增量代码走查方法,能够通过走查人员与前端页面交互,实现增量代码自动抽取并进行代码走查生成走查报告,同时增量代码及目录结构压缩存放文件服务器可供走查人员进行下载,简化工作的同时保证了代码走查的全面性,提高了整体的代码质量。
2、技术方案:为实现上述目的,本发明公开的基于devops平台自动实现增量代码走查系统,包括devops平台、web服务器、文件服务器、sonarqube代码质量分析模块和jenkins服务器;jenkins服务器将devops平台、web服务器、文件服务器、sonarqube代码质量分析模块集成起来,然后通过jenkins流水线和脚本文件来实现增量代码走查。
3、基于devops平台自动实现增量代码走查系统的增量代码走查方法,包括以下步骤:
4、步骤s1、devops平台根据用户输入获取代码抽取参数,以此生成相应的任务指令,并通过web服务器安全地将这些指令转发到后端服务;
5、步骤s2、jenkins服务器接收来自后端服务参数,并配置执行相应的jenkins流水线任务,jenkins流水线任务根据预定义的脚本和参数,触发增量代码抽取脚本;
6、步骤s3、增量代码抽取脚本在jenkins流水线中运行;
7、步骤s4、jenkins流水线将步骤s3抽取的增量代码通过安全的数据传输协议发送到sonarqube代码质量分析模块,jenkins流水线执行shell脚本将增量代码和目录结构压缩后,文件存储模块将压缩后的文件安全地存储到文件服务器中,供走查人员进行下载;
8、步骤s5、sonarqube代码质量分析模块接收增量代码后,运用其内置的代码审查规则和算法,对增量代码进行深入的静态分析并生成走查报告;
9、步骤s6、devops平台将走查报告通过devops用户界面模块反馈给用户,若走查报告存在问题,开发人员可以根据这些信息进行代码优化和修复,在优化和修复后将代码重新提交到svn版本控制系统,提交完成后重新执行步骤s1,进行新一轮的增量代码扫描,重复以上操作直到结果无问题。
10、更进一步的,在步骤s3中,所述增量代码抽取脚本逻辑为:
11、(1)根据用户传入的抽取参数,借助svn diff命令获取svn变动情况的xml文件;
12、(2)使用python脚本提取出变动的文件列表,筛选出只有修改操作的svn文件路径;
13、(3)遍历这个文件列表,对每一个文件:
14、a)使用svn info命令判断在最新版本中该文件是否存在;
15、b)获取指定时间到目前内,该文件最后修改的用户工号,并结合用户映射表,获取用户名称;
16、c)使用svn export命令下载该文件;
17、d)判断是否是链接文件,是链接文件则删除;
18、e)借助grep、sed、awk命令,计算文件的总行数及有效行数;
19、f)使用svn diff获取该文件从指定时间到目前的所有变动情况,并计算出有效修改行数;
20、g)根据用户选择,过滤掉修改行数不达标,或者修改率不达标的文件;
21、h)根据文件在 svn 服务器上的相对路径,构造目录结构;
22、i)将修改的文件信息整合成json,返回给用户。
23、更进一步的,在步骤s1中,所述抽取参数包括但不限于版本号、文件路径、抽取范围、文件类型、时间、配置库地址和账号。
24、更进一步的,在步骤s4中,所述存储的过程包括数据加密、访问控制和版本管理。
25、更进一步的,在步骤s5中,所述静态分析包括但不限于代码复杂度评估、潜在错误检测和代码风格检查。
26、更进一步的,所述有效行数是去除空白行和空白字符后的行数,所述有效修改行数是去除空白行和空白字符后,新增或者修改行数之和。
27、有益效果:本发明通过jenkins服务器将devops平台、web服务器、文件服务器、sonarqube代码质量分析模块集成起来,帮助走查人员实现增量代码走查工作自动化,减少走查人员工作量,减轻服务器因全量抽取代码带来的储存空间压力,提升工作效率;该方法能够通过走查人员与前端页面交互,在有效简化代码走查工作流程的同时,实现任意范围的代码走查覆盖,结合自动化静态扫描,从根本上提高代码走查质量。
1.基于devops平台自动实现增量代码走查系统,其特征在于:包括devops平台、web服务器、文件服务器、sonarqube代码质量分析模块和jenkins服务器;jenkins服务器将devops平台、web服务器、文件服务器、sonarqube代码质量分析模块集成起来,然后通过jenkins流水线和脚本文件来实现增量代码走查。
2.基于权利要求1所述基于devops平台自动实现增量代码走查系统的增量代码走查方法,其特征在于,包括以下步骤:
3.根据权利要求2所述的增量代码走查方法,其特征在于:在步骤s3中,所述增量代码抽取脚本逻辑为:
4.根据权利要求2所述的增量代码走查方法,其特征在于:在步骤s1中,所述抽取参数包括但不限于版本号、文件路径、抽取范围、文件类型、时间、配置库地址和账号。
5.根据权利要求2所述的增量代码走查方法,其特征在于:在步骤s4中,所述存储的过程包括数据加密、访问控制和版本管理。
6.根据权利要求2所述的增量代码走查方法,其特征在于:在步骤s5中,所述静态分析包括但不限于代码复杂度评估、潜在错误检测和代码风格检查。
7.根据权利要求3所述的增量代码走查方法,其特征在于:所述有效行数是去除空白行和空白字符后的行数,所述有效修改行数是去除空白行和空白字符后,新增或者修改行数之和。