CN117609057A - 基于合并请求增量的代码评审方法、系统、设备及介质 - Google Patents
基于合并请求增量的代码评审方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN117609057A CN117609057A CN202311630757.4A CN202311630757A CN117609057A CN 117609057 A CN117609057 A CN 117609057A CN 202311630757 A CN202311630757 A CN 202311630757A CN 117609057 A CN117609057 A CN 117609057A
- Authority
- CN
- China
- Prior art keywords
- code
- increment
- review
- file
- codes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012552 review Methods 0.000 title claims abstract description 187
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000011161 development Methods 0.000 claims abstract description 70
- 238000012545 processing Methods 0.000 claims abstract description 40
- 238000004458 analytical method Methods 0.000 claims description 41
- 230000008569 process Effects 0.000 claims description 31
- 230000004048 modification Effects 0.000 claims description 24
- 238000012986 modification Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012216 screening Methods 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 9
- 230000018109 developmental process Effects 0.000 description 61
- 230000006870 function Effects 0.000 description 23
- 230000008859 change Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000006872 improvement Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 230000008439 repair process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 238000003339 best practice Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3628—Software debugging of optimised code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请提供了一种基于合并请求增量的代码评审方法、系统、电子设备及介质,属于金融科技领域。本申请方法包括:获取合并请求携带的推送代码,并根据推送代码和目标代码库确定增量代码,对增量代码进行解析处理,得到抽象语法树文件,根据目标代码库的规则清单对抽象语法树文件进行规范扫描处理,得到代码评审结果,在增量代码包括问题代码段的情况下,将代码评审结果发送至代码开发端,以使代码开发端根据代码评审结果对问题代码段进行修改,使得本申请可以在不改造代码工程架构的情况下,自动对合并请求对应的增量代码进行代码评审,对代码规范进行把控,以有效提高代码开发效率。
Description
技术领域
本申请涉及金融科技领域,尤其涉及一种基于合并请求增量的代码评审方法、客服系统、电子设备及介质。
背景技术
现有技术中,代码质量管理一直以来都是开发团队所关注的,也是衡量业务功能质量的标准之一,代码质量管理通常包括基本语法使用是否正确,是否存在安全问题,是否方便审阅和维护等方面,其中,虽然业界内也提供了很多工具进行规范扫描,但这些工具大多都是需要改造代码工程架构,对于历史包袱重,代码量多的工程使用效果较差,故当前主流的代码质量管理通常还是以人工代码评审的方式呈现。
然而,人工代码评审需要由开发人员在开发的同时还要分出人力对全部代码逐行进行检阅,以判断代码中的业务逻辑是否正确,检阅过程中难免会经常遇见低级代码规范审阅,如行数,条件判断嵌套程度等,会大量占用开发人员用于开发的时间,进而影响开发人员的功能开发进度,导致项目开发效率低下。
发明内容
本申请实施例的主要目的在于提出一种基于合并请求增量的代码评审方法、系统、设备及介质,可以在不改造代码工程架构的情况下,自动对合并请求对应的增量代码进行代码评审,对代码规范进行把控,以解决代码评审占用开发人员的时间,进而影响开发人员的功能开发进度,导致项目开发效率低下的技术问题。
为实现上述目的,本申请实施例的第一方面提出了一种基于合并请求增量的代码评审方法,所述方法包括:
接收代码开发端提交的合并请求,并获取所述合并请求携带的推送代码;
根据所述推送代码和目标代码库确定增量代码;
响应于评审指令,对所述增量代码进行解析处理,得到抽象语法树文件;
根据所述目标代码库的规则清单对所述抽象语法树文件进行规范扫描处理,得到代码评审结果,并根据所述代码评审结果确定所述增量代码中是否包括问题代码段;
在所述增量代码包括所述问题代码段的情况下,将所述代码评审结果发送至所述代码开发端,以使所述代码开发端根据所述代码评审结果对所述问题代码段进行修改;
在所述增量代码不包括所述问题代码段的情况下,将所述增量代码合并入库至所述目标代码库。
在一些实施例中,所述根据所述推送代码和目标代码库确定增量代码,包括:
获取所述推送代码对应的第一文件列表;
获取所述目标代码库对应的第二文件列表;
对所述第一文件列表和所述第二文件列表进行对比处理,获取变动文件名称;
根据所述变动文件名称从所述第二文件列表中确定增量代码。
在一些实施例中,所述根据所述变动文件名称从所述第二文件列表中确定增量代码,包括:
从所述第二文件列表中得到所述变动文件名称对应的第三文件列表,所述第三文件列表包括在所述第二文件列表中被修改、添加或者删除的代码文件;
根据预设的过滤文件类型对所述第三文件列表中代码文件进行筛选处理,并将筛选出的代码文件确定为增量代码。
在一些实施例中,所述对所述增量代码进行解析处理,得到抽象语法树文件,包括:
对预设的语法解析器进行初始化处理;
将所述增量代码输入至所述语法解析器,以使所述语法解析器对所述增量代码分别进行词法分析和语法分析处理;
获取所述语法解析器生成的解析代码,并根据所述解析代码得到抽象语法树文件。
在一些实施例中,所述根据所述目标代码库的规则清单对所述抽象语法树文件进行规范扫描处理,得到代码评审结果,包括:
获取所述目标代码库配置的规则清单和位置标号;
根据所述规则清单配置规则引擎;
根据所述位置标号确定所述抽象语法树文件的存储位置;
根据所述存储位置和所述规则引擎对所述抽象语法树文件进行规范扫描处理,得到代码评审结果。
在一些实施例中,所述将所述代码评审结果发送至所述代码开发端之后,还包括:
接收所述代码开发端发送的对所述问题代码段进行修改得到的修改代码;
对所述修改代码依次进行所述解析处理和所述规范扫描处理,得到修改代码评审结果;
在所述修改代码评审结果确定所述修改代码对应的所述增量代码不包括所述问题代码段的情况下,将所述增量代码合并入库至所述目标代码库。
在一些实施例中,所述代码评审结果包括所述增量代码中问题代码段的数量信息、位置信息、规范描述信息和修改示例信息。
为实现上述目的,本申请实施例的第二方面提出了一种基于合并请求增量的代码评审系统,所述系统包括:
请求接收单元,用于接收代码开发端提交的合并请求,并获取所述合并请求携带的推送代码;
增量确定单元,用于根据所述推送代码和目标代码库确定增量代码;
增量解析单元,用于响应于评审指令,对所述增量代码进行解析处理,得到抽象语法树文件;
增量扫描单元,用于根据所述目标代码库的规则清单对所述抽象语法树文件进行规范扫描处理,得到代码评审结果,并根据所述代码评审结果确定所述增量代码中是否包括问题代码段;
结果发送单元,用于在所述增量代码包括所述问题代码段的情况下,将所述代码评审结果发送至所述代码开发端,以使所述代码开发端根据所述代码评审结果对所述问题代码段进行修改;
合并入库单元,用于在所述增量代码不包括所述问题代码段的情况下,将所述增量代码合并入库至所述目标代码库。
为实现上述目的,本申请实施例的第三方面提出了一种电子设备,所述电子设备包括存储器、处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。
为实现上述目的,本申请实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。
本申请提出的基于合并请求增量的代码评审方法、系统、设备及介质,其通过接收代码开发端提交的合并请求,并获取所述合并请求携带的推送代码,实现与开发端的无缝集成,以获取最新的推送代码,确保评审的代码是最新的版本;进一步的,根据所述推送代码和目标代码库确定增量代码,即通过对比推送代码和目标代码库,确定具体的增量变更的方式,避免对整个代码库进行评审,进而在进行增量代码评审时,无需对工程代码架构进行修改或增加额外的软件依赖,可以有效减少代码变动和环境配置的复杂性,节省评审时间和评审所消耗资源;进一步的,响应于评审指令,对所述增量代码进行解析处理,得到抽象语法树文件,通过解析和处理抽象语法树文件,可以进行更加深入的代码静态分析,发现隐蔽的问题和潜在的风险;进一步的,根据所述目标代码库的规则清单对所述抽象语法树文件进行规范扫描处理,得到代码评审结果,并根据所述代码评审结果确定所述增量代码中是否包括问题代码段,即通过对抽象语法树文件进行规范扫描,实现对潜在的代码缺陷、不规范的编码风格等问题的自动检测,并生成代码评审结果;进一步的,在所述增量代码包括所述问题代码段的情况下,将所述代码评审结果发送至所述代码开发端,进而可以以及时通知代码开发端,以使所述代码开发端根据所述代码评审结果对所述问题代码段进行修改,提高代码质量和可维护性;进一步的,在所述增量代码不包括所述问题代码段的情况下,表示增量代码符合规范和要求,可以直接将其合并入目标代码库,故将所述增量代码合并入库至所述目标代码库,加快代码的集成和发布过程,综上,本申请通过系统的自动化评审根据目标代码库的规则清单进行规范扫描的方式提高代码的可读性和可维护性的同时,可以有效减少开发人员逐行代码检查的工作量,减少评审的时间和精力消耗,并使得评审结果能够及时返回给代码开发端,帮助开发人员快速了解问题并进行修改,以确保代码开发质量,有效提高开发人员的代码开发效率,加快功能和项目开发进度。
在一些实施例中,本申请可以应用到金融科技领域中的银行系统开发过程中,由于银行系统作为关键的金融系统,对代码的可靠性和功能实现的及时性均要求极高,故可以引入本申请中自动化代码评审过程,以提高代码质量和加快代码交付速度,从而满足银行系统对代码的可靠性和功能实现的及时性的高要求。
附图说明
图1是本申请实施例提供的基于合并请求增量的代码评审方法的流程图;
图2是图1中的步骤S120的流程图;
图3是图2中的步骤S240的流程图;
图4是图1中的步骤S130的流程图;
图5是图1中的步骤S140的流程图;
图6是图1中的步骤S150之后附加步骤的流程图;
图7是本申请实施例提供的基于合并请求增量的代码评审系统的结构示意图;
图8是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在系统示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于系统中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解析:
合并请求:也称为拉取请求,是版本控制系统(如Git)中一种将代码变更从一个分支合并到另一个分支的机制。开发人员可以提交合并请求,请求将其修改的代码合并到目标代码库的特定分支中。
推送代码:指开发者将其修改后的代码提交到版本控制系统(如Git)的代码库中的操作。推送代码是提交代码变更的过程,将代码从开发者的本地仓库(本地版本控制)推送到远程代码库(例如GitLab、GitHub等)。
增量代码:指与上一版本相比,进行合并请求或代码推送时所引入的变更代码。本申请中的增量代码是相对于目标代码库的最新版本而言的,仅包含了开发者进行合并请求或推送操作时所做的代码改动部分。
抽象语法树:是源代码的结构化抽象表示形式。在代码评审过程中,将增量代码解析处理,并生成抽象语法树文件。在本申请中抽象语法树文件可以提供对代码结构、语法和逻辑的详细分析和理解。
规则清单:在代码评审中,规则清单是一组预定义的规则或标准,用于检查代码是否符合编码规范、模式、最佳实践和安全性要求等。在本申请中,规则清单会根据目标代码库的需求和约定而指定,用于规范扫描和检测代码中存在的问题。
问题代码段:在代码评审结果中,指被标识为潜在问题、存在缺陷、不符合规范的代码片段。在本申请中,问题代码段需要开发者进行修改或改进,以满足编码规范、安全性、最佳实践等要求。
目标代码库:也称为目标分支或主分支,是版本控制系统中用于集成、存储和发布代码的主要代码库。在本申请中,增量代码最终将合并或提交到目标代码库,以成为新的代码库版本。
现有技术中,代码质量管理一直以来都是开发团队所关注的,也是衡量业务功能质量的标准之一,特别是在金融科技领域中的银行系统开发过程中,由于银行系统作为关键的金融系统,对代码的可靠性和功能实现的及时性均要求极高,代码质量管理通常包括基本语法使用是否正确,是否存在安全问题,是否方便审阅和维护等方面,其中,虽然业界内也提供了很多工具进行规范扫描,但这些工具大多都是需要改造代码工程架构,对于历史包袱重,代码量多的工程使用效果较差,故当前主流的代码质量管理通常还是以人工代码评审的方式呈现;然而,人工代码评审需要由开发人员在开发的同时还要分出人力对全部代码逐行进行检阅,以判断代码中的业务逻辑是否正确,检阅过程中难免会经常遇见低级代码规范审阅,如行数,条件判断嵌套程度等,会大量占用开发人员用于开发的时间,进而影响开发人员的功能开发进度,导致项目开发效率低下,导致现有人工代码评审的方式难以满足银行系统对代码的可靠性和功能实现的及时性的高要求。
基于此,本申请提出一种基于合并请求增量的代码评审方法、系统、设备及介质,可以在不改造代码工程架构的情况下,自动对合并请求对应的增量代码进行代码评审,对代码规范进行把控,以解决代码评审占用开发人员的时间,进而影响开发人员的功能开发进度,导致项目开发效率低下的技术问题,以满足银行系统对代码的可靠性和功能实现的及时性的高要求。
本申请实施例提供的基于合并请求增量的代码评审方法和系统、电子设备及存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的基于合并请求增量的代码评审方法。
本申请实施例提供的基于合并请求增量的代码评审方法,涉及金融科技技术领域。本申请实施例提供的基于合并请求增量的代码评审方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现基于合并请求增量的代码评审方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中,具体的,应用到金融科技领域中的银行系统开发过程中,接收银行代码开发端提交的合并请求,并获取合并请求携带的理财商品推荐功能对应的推送代码,通过确定增量代码、得到抽象语法树文件、规范扫描处理的过程,最终开始有效的完成理财商品推荐功能对应增量代码的审核,并将增量代码合并入库至银行的目标代码库中,以使理财商品推荐功能能及时上线银行系统,使得银行系统能及时有效的为用户提供理财商品推荐服务,提高用户体验。
图1是本发明实施例提供的基于合并请求增量的代码评审方法的一个可选的流程图,方法应用于评审系统,方法可以包括但不限于有步骤S110至步骤S160。
步骤S110,接收代码开发端提交的合并请求,并获取合并请求携带的推送代码;
步骤S120,根据推送代码和目标代码库确定增量代码;
步骤S130,响应于评审指令,对增量代码进行解析处理,得到抽象语法树文件;
步骤S140,根据目标代码库的规则清单对抽象语法树文件进行规范扫描处理,得到代码评审结果,并根据代码评审结果确定增量代码中是否包括问题代码段;
步骤S150,在增量代码包括问题代码段的情况下,将代码评审结果发送至代码开发端,以使代码开发端根据代码评审结果对问题代码段进行修改;
步骤S160,在增量代码不包括问题代码段的情况下,将增量代码合并入库至目标代码库。
本申请实施例所示意的步骤S110至步骤S160,通过接收代码开发端提交的合并请求,并获取合并请求携带的推送代码,实现与开发端的无缝集成,以获取最新的推送代码,确保评审的代码是最新的版本;进一步的,根据推送代码和目标代码库确定增量代码,即通过对比推送代码和目标代码库,确定具体的增量变更的方式,避免对整个代码库进行评审,进而在进行增量代码评审时,无需对工程代码架构进行修改或增加额外的软件依赖,可以有效减少代码变动和环境配置的复杂性,节省评审时间和评审所消耗资源;进一步的,响应于评审指令,对增量代码进行解析处理,得到抽象语法树文件,通过解析和处理抽象语法树文件,可以进行更加深入的代码静态分析,发现隐蔽的问题和潜在的风险;进一步的,根据目标代码库的规则清单对抽象语法树文件进行规范扫描处理,得到代码评审结果,并根据代码评审结果确定增量代码中是否包括问题代码段,即通过对抽象语法树文件进行规范扫描,实现对潜在的代码缺陷、不规范的编码风格等问题的自动检测,并生成代码评审结果;进一步的,在增量代码包括问题代码段的情况下,将代码评审结果发送至代码开发端,进而可以以及时通知代码开发端,以使代码开发端根据代码评审结果对问题代码段进行修改,提高代码质量和可维护性;进一步的,在增量代码不包括问题代码段的情况下,表示增量代码符合规范和要求,可以直接将其合并入目标代码库,故将增量代码合并入库至目标代码库,加快代码的集成和发布过程。
综上,本申请通过系统的自动化评审根据目标代码库的规则清单进行规范扫描的方式提高代码的可读性和可维护性的同时,可以有效减少开发人员逐行代码检查的工作量,减少评审的时间和精力消耗,并使得评审结果能够及时返回给代码开发端,帮助开发人员快速了解问题并进行修改,以确保代码开发质量,有效提高开发人员的代码开发效率,加快功能和项目开发进度。
在一些实施例中,本申请可以应用到金融科技领域中的银行系统开发过程中,由于银行系统作为关键的金融系统,对代码的可靠性和功能实现的及时性均要求极高,故可以引入本申请中自动化代码评审过程,以提高代码质量和加快代码交付速度,从而满足银行系统对代码的可靠性和功能实现的及时性的高要求。
以上是对步骤S110至步骤S160的总体描述,下面分别对步骤S110至步骤S160进行详细描述。
在步骤S110中,接收代码开发端提交的合并请求,并获取合并请求携带的推送代码;
在一些实施例中,步骤S110用于获取开发人员提交的代码变更,并进行后续处理和评审操作,其中,当开发人员完成功能代码开发后,进行代码提交,发起合并请求给评审系统进行代码合并入库,评审系统接收并获取代码开发端提交的合并请求,并获得合并请求携带的推送代码,为后续的增量代码处理和代码评审做准备。
在一些实施例中,合并请求包含了开发人员所做的代码修改、新增或删除的部分,即包含了将要合并到目标代码库的变更内容,这些变更内容被称为推送代码。
在步骤S120中,根据推送代码和目标代码库确定增量代码;
请参阅图2,图2是图1中的步骤S120的流程图,在一些实施例中,步骤S120可以包括但不限于有步骤S210至步骤S240:
步骤S210,获取推送代码对应的第一文件列表;
步骤S220,获取目标代码库对应的第二文件列表;
步骤S230,对第一文件列表和第二文件列表进行对比处理,获取变动文件名称;
步骤S240,根据变动文件名称从第二文件列表中确定增量代码。
下面对上述步骤S210至步骤S240进行详细描述。
在一些实施例的步骤S210中,评审系统从合并请求中获取推送代码所涉及的文件列表,这些文件列表记录了开发人员在合并请求中进行的代码修改、新增或删除操作,通过获取这些文件列表,评审系统可以了解开发人员所提交的代码变更范围。
在一些实施例的步骤S220中,评审系统获取目标代码库的文件列表,该列表包含了目标代码库中当前最新版本的所有文件,目标代码库是开发人员将代码变更合并入的主要代码库。
在一些实施例的步骤S230中,评审系统将第一文件列表(推送代码)和第二文件列表(目标代码库)进行对比处理。目的是找出在合并请求中发生了哪些文件的修改、新增或删除,通过比较过程,评审系统能够识别出变动文件的名称。
在一些实施例的步骤S240中,增量代码指的是代码库中发生的变动代码,即开发人员在进行功能开发后所提交的代码变更部分,评审系统根据步骤S230中获取到的变动文件名称,从目标代码库的文件列表中筛选出与变动文件名称对应的文件。筛选出的文件即为增量代码,代表了在合并请求中开发人员所做的具体代码变动。
通过上述步骤S210至步骤S240,评审系统能够准确地确定出增量代码,也就是开发人员在合并请求中所做的具体代码变更,上述步骤帮助评审系统了解变更范围,为后续的代码解析、规范扫描和评审结果的生成提供了基础,以使评审系统可以在此基础上进行详细的代码分析和评审工作,确保代码质量和一致性,且使得本申请仅对提交的新增代码进行评审,而不需要修改工程代码结构。
请参阅图3,图3是图2中的步骤S240的流程图,在一些实施例中,步骤S240可以包括但不限于有步骤S310至步骤S320:
步骤S310,从第二文件列表中得到变动文件名称对应的第三文件列表,第三文件列表包括在第二文件列表中被修改、添加或者删除的代码文件;
步骤S320,根据预设的过滤文件类型对第三文件列表中代码文件进行筛选处理,并将筛选出的代码文件确定为增量代码。
下面对上述步骤S310至步骤S320进行详细描述。
在一些实施例的步骤S310中,评审系统将根据步骤S230获取到的变动文件名称,从第二文件列表(目标代码库)中筛选出与变动文件名称对应的文件。这个筛选的结果形成了第三文件列表,其中,第三文件列表包括了在合并请求中被修改、添加或删除的代码文件,它记录了变动文件的详细信息,如路径、文件大小等,通过得到第三文件列表,评审系统可以针对具体的变动文件进行后续的筛选和处理。
在一些实施例的步骤S320中,评审系统将根据预设的过滤文件类型,对第三文件列表中的代码文件进行进一步的筛选和处理。预设的过滤文件类型可以是基于文件扩展名或其他标识来定义,例如只选择JavaScript文件、Java文件等;通过根据预设的过滤规则,评审系统筛选出符合条件的代码文件,并将这些筛选出的代码文件确定为增量代码。这些代码文件是开发人员在合并请求中进行的具体代码变动的部分。
通过上述步骤S310至步骤S320,评审系统可以根据需求和预设规则,从第二文件列表中准确定位并提取出与变动文件对应的代码文件,从而得到最终的增量代码,这个过程确保了对变动代码的准确识别和提取效果,以使后续步骤中的的代码解析、规范扫描和评审结果的生成能有效进行。
在步骤S130中,响应于评审指令,对增量代码进行解析处理,得到抽象语法树文件;
请参阅图4,图4是图1中的步骤S130的流程图,在一些实施例中,步骤S130可以包括但不限于有步骤S410至步骤S430:
步骤S410,对预设的语法解析器进行初始化处理;
步骤S420,将增量代码输入至语法解析器,以使语法解析器对增量代码分别进行词法分析和语法分析处理;
步骤S430,获取语法解析器生成的解析代码,并根据解析代码得到抽象语法树文件。
下面对上述步骤S410至步骤S430进行详细描述。
在一些实施例的步骤S410中,评审系统会对预设的语法解析器进行初始化处理。语法解析器是一种工具或库,用于将代码转换为抽象语法树(AST)或其他数据结构,以便进行进一步的分析和处理。通过对语法解析器进行初始化,评审系统设置了解析代码所需的环境和配置,确保后续的代码解析过程能够顺利进行。
在一些实施例的步骤S420中,评审系统将增量代码作为输入,将其传递给语法解析器。语法解析器会对增量代码进行词法分析和语法分析处理。词法分析阶段将增量代码拆分为标记或词法单元,例如变量名、关键字、操作符等。语法分析阶段则根据语法规则以及词法单元之间的关系,构建出抽象语法树(AST)。AST是一个树状结构,代表了代码的语法结构,便于后续的静态分析和处理。
在一些实施例的步骤S430中,评审系统从语法解析器中获取生成的解析代码,并根据这些解析代码生成相应的抽象语法树文件。解析代码是语法解析器根据增量代码进行词法分析和语法分析后生成的表示代码结构的信息。评审系统可以利用这些解析代码生成抽象语法树文件,每个文件对应一个增量代码文件的语法结构。抽象语法树文件是一种以树状形式表示代码语法结构的数据文件,它可以提供更高层次的代码信息,例如函数调用、循环结构、变量依赖等。抽象语法树文件为后续进一步的代码分析和规范扫描提供了基础。
通过上述步骤S410至步骤S430,使得评审系统能够利用预设的语法解析器将增量代码转化为抽象语法树,使得代码的语法结构可以被进一步分析和处理,这些步骤为后续的静态代码分析、规则检查和评审结果生成提供了重要的支持。
在步骤S140中,根据目标代码库的规则清单对抽象语法树文件进行规范扫描处理,得到代码评审结果,并根据代码评审结果确定增量代码中是否包括问题代码段;
请参阅图5,图5是图1中的步骤S140的流程图,在一些实施例中,步骤S140可以包括但不限于有步骤S510至步骤S540:
步骤S510,获取目标代码库配置的规则清单和位置标号;
步骤S520,根据规则清单配置规则引擎;
步骤S530,根据位置标号确定抽象语法树文件的存储位置;
步骤S540,根据存储位置和规则引擎对抽象语法树文件进行规范扫描处理,得到代码评审结果。
下面对上述步骤S510至步骤S540进行详细描述。
在一些实施例的步骤S510中,评审系统会获取目标代码库配置的规则清单和位置标号,规则清单包含了一系列定义的评审规则,这些规则描述了代码的最佳实践、代码风格、安全性等方面的要求,位置标号则指示了这些规则应该应用于抽象语法树文件的哪些位置,其中,规则清单和位置标号的配置是基于评审策略和要求,用于指导后续的规范扫描和代码评审过程。
在一些实施例的步骤S520中,评审系统根据规则清单配置规则引擎其中,规则引擎是一个用于执行评审规则的组件或工具,而通过根据规则清单配置规则引擎,可以确保评审系统在后续的规范扫描过程中正确应用规则,并基于这些规则评估代码的合规性和质量。
在一些实施例的步骤S530中,评审系统根据位置标号确定抽象语法树文件的存储位置,并针对这些位置对抽象语法树文件进行读取处理。位置标号是在步骤S510中获取的,用于指示存储抽象语法树文件的位置或路径。
在一些实施例的步骤S540中,通过根据位置标号确定存储位置,并对存储的抽象语法树文件进行读取处理,使得评审系统能够准确获取需要进行规范扫描的代码文件,并利用配置好的规则引擎对抽象语法树文件进行规范扫描处理,其中,规则引擎会遵循规则清单中定义的规则,并根据这些规则对抽象语法树文件进行评审,通过执行规则引擎的规范扫描处理,评审系统能够识别和评估抽象语法树文件中的代码违规、潜在问题或建议改进。这些评审结果提供了代码质量和合规性的反馈,以便开发人员进行相应的修复和改进。
在一些实施例中,规则清单的文件位置配置按照代码库的唯一id进行划分,待扫描的文件暂存的位置也可以进行自定义的位置指定,或者是按照默认路径生成规则进行暂存。
通过上述步骤S510至步骤S540,可以使评审系统能够根据目标代码库的配置和规则要求,对抽象语法树文件进行规范扫描和评审过程,生成代码评审结果,这些结果可以指导开发人员进行代码修复和质量改进,最终提高代码的可读性、可维护性和安全性。
在步骤S150中,在增量代码包括问题代码段的情况下,将代码评审结果发送至代码开发端,以使代码开发端根据代码评审结果对问题代码段进行修改;
请参阅图6,图6是图1中的步骤S150之后附加步骤的流程图,在一些实施例中,步骤S150之后附加步骤包括但不限于有步骤S610至步骤S630:
步骤S610,接收代码开发端发送的对问题代码段进行修改得到的修改代码;
步骤S620,对修改代码依次进行解析处理和规范扫描处理,得到修改代码评审结果;
步骤S630,在修改代码评审结果确定修改代码对应的增量代码不包括问题代码段的情况下,将增量代码合并入库至目标代码库。
下面对上述步骤S610至步骤S630进行详细描述。
在一些实施例的步骤S610中,评审系统将接收来自代码开发端的对问题代码段进行修改得到的修改代码,这意味着开发人员已经修改了在评审过程中被指出的问题或建议,生成了相应的修改代码,评审系统将接收这些修改代码,以便对其进行进一步的处理和评审。
在一些实施例的步骤S620中,评审系统会对接收到的修改代码依次进行解析处理和规范扫描处理,解析处理包括将修改代码转换为抽象语法树(AST)或其他表示形式,以便进一步分析和处理,规范扫描处理是基于预设的规则和标准,对修改代码进行评审和分析,其中,通过对修改代码进行解析处理和规范扫描处理,评审系统能够识别潜在的问题、违规行为或改进点,并生成修改代码的评审结果,这些结果提供了对修改代码质量和合规性的反馈。
在一些实施例的步骤S630中,在根据修改代码评审结果确定修改代码对应的增量代码不包含问题代码段的情况下,评审系统会将这些增量代码合并入库至目标代码库,这意味着修改代码经过评审后被认为符合要求,不再包含任何问题或违规行为,因此,评审系统会将这些修改代码作为增量代码直接合并入目标代码库,以确保代码的更新和改进被整体接受和应用。
通过上述步骤S610至步骤S630,使得评审系统能够接收并处理开发人员对问题代码段进行的修改,生成评审结果,直至代码符合要求,并将符合要求的增量代码合并入库,确保了开发人员的修改得到审查和验证,促进了代码质量的提升和问题修复的落实。
在步骤S160中,在增量代码不包括问题代码段的情况下,将增量代码合并入库至目标代码库。
在一些实施例中,代码评审结果包括增量代码中问题代码段的数量信息、位置信息、规范描述信息和修改示例信息,通过上述信息,评审系统可以使得开发人员可以了解在评审过程中发现的问题的数量,快速定位问题代码,通过规范描述信息快速了解代码违规或不符合要求的具体规范或标准,并根据修改示例信息中展示了对问题代码的改进或修复建议更好地理解和应用修复策略,即通过上述信息,通过提供以上信息,使得评审结果能够为开发人员提供详尽的反馈,帮助他们理解问题所在,并采取适当的行动进行修复,进而促进开发团队的代码质量和一致性,并提高整体的软件开发效率。
通过上述步骤S110至步骤S160,可以使开发人员只需关注功能开发,而代码规范把控交由评审系统来完成,可以有效的节约人工评审所带来的人力成本,解放人力,提升效率,且自动化的评审过程去除了个人代码风格习惯影响,可以统一化规则标准,使得扫描程序具有高可靠性,进而促进工程代码逐步优化,提升可维护性,对项目整体起到良性循环作用。
请参阅图7,本申请实施例还提供一种基于合并请求增量的代码评审系统,可以实现上述代码评审方法,该装置包括:
请求接收单元701,用于接收代码开发端提交的合并请求,并获取合并请求携带的推送代码;
增量确定单元702,用于根据推送代码和目标代码库确定增量代码;
增量解析单元703,用于响应于评审指令,对增量代码进行解析处理,得到抽象语法树文件;
增量扫描单元704,用于根据目标代码库的规则清单对抽象语法树文件进行规范扫描处理,得到代码评审结果,并根据代码评审结果确定增量代码中是否包括问题代码段;
结果发送单元705,用于在增量代码包括问题代码段的情况下,将代码评审结果发送至代码开发端,以使代码开发端根据代码评审结果对问题代码段进行修改;
合并入库单元706,用于在增量代码不包括问题代码段的情况下,将增量代码合并入库至目标代码库。
在一些实施例中,增量确定单元还用于获取推送代码对应的第一文件列表;获取目标代码库对应的第二文件列表;对第一文件列表和第二文件列表进行对比处理,获取变动文件名称;根据变动文件名称从第二文件列表中确定增量代码。
在一些实施例中,增量确定单元还用于从第二文件列表中得到变动文件名称对应的第三文件列表,第三文件列表包括在第二文件列表中被修改、添加或者删除的代码文件;根据预设的过滤文件类型对第三文件列表中代码文件进行筛选处理,并将筛选出的代码文件确定为增量代码。
在一些实施例中,增量解析单元还用于对预设的语法解析器进行初始化处理;将增量代码输入至语法解析器,以使语法解析器对增量代码分别进行词法分析和语法分析处理;获取语法解析器生成的解析代码,并根据解析代码得到抽象语法树文件。
在一些实施例中,增量扫描单元还用于获取目标代码库配置的规则清单和位置标号;根据规则清单配置规则引擎;根据位置标号确定抽象语法树文件的存储位置,并根据存储位置对抽象语法树文件进行读取处理;根据规则引擎对抽象语法树文件进行规范扫描处理,得到代码评审结果。
在一些实施例中,结果发送单元还用于接收代码开发端发送的对问题代码段进行修改得到的修改代码;对修改代码依次进行解析处理和规范扫描处理,得到修改代码评审结果;在修改代码评审结果确定修改代码对应的增量代码不包括问题代码段的情况下,将增量代码合并入库至目标代码库。
本申请实施例还提供了一种电子设备,电子设备包括:存储器、处理器、存储在存储器上并可在处理器上运行的程序以及用于实现处理器和存储器之间的连接通信的数据总线,程序被处理器执行时实现上述代码评审方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
请参阅图8,图8示意了另一实施例的电子设备的硬件结构,电子设备包括:
处理器801,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器802,可以采用只读存储器(ReadOnlyMemory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)等形式实现。存储器802可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器802中,并由处理器801来调用执行本申请实施例的代码评审方法;
输入/输出接口803,用于实现信息输入及输出;
通信接口804,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线805,在设备的各个组件(例如处理器801、存储器802、输入/输出接口803和通信接口804)之间传输信息;
其中处理器801、存储器802、输入/输出接口803和通信接口804通过总线805实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述代码评审方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例提供的基于合并请求增量的代码评审方法、系统、电子设备及介质,属于金融科技领域。本申请方法包括:获取合并请求携带的推送代码,并根据推送代码和目标代码库确定增量代码,对增量代码进行解析处理,得到抽象语法树文件,根据目标代码库的规则清单对抽象语法树文件进行规范扫描处理,得到代码评审结果,在增量代码包括问题代码段的情况下,将代码评审结果发送至代码开发端,以使代码开发端根据代码评审结果对问题代码段进行修改,在增量代码不包括问题代码段的情况下,将增量代码合并入库至目标代码库,其中,本申请可以在不改造代码工程架构的情况下,自动对合并请求对应的增量代码进行代码评审,对代码规范进行把控,以有效提高代码开发效率。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图1至6中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是
单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (10)
1.一种基于合并请求增量的代码评审方法,其特征在于,所述方法包括:
接收代码开发端提交的合并请求,并获取所述合并请求携带的推送代码;
根据所述推送代码和目标代码库确定增量代码;
响应于评审指令,对所述增量代码进行解析处理,得到抽象语法树文件;
根据所述目标代码库的规则清单对所述抽象语法树文件进行规范扫描处理,得到代码评审结果,并根据所述代码评审结果确定所述增量代码中是否包括问题代码段;
在所述增量代码包括所述问题代码段的情况下,将所述代码评审结果发送至所述代码开发端,以使所述代码开发端根据所述代码评审结果对所述问题代码段进行修改;
在所述增量代码不包括所述问题代码段的情况下,将所述增量代码合并入库至所述目标代码库。
2.根据权利要求1所述的基于合并请求增量的代码评审方法,其特征在于,所述根据所述推送代码和目标代码库确定增量代码,包括:
获取所述推送代码对应的第一文件列表;
获取所述目标代码库对应的第二文件列表;
对所述第一文件列表和所述第二文件列表进行对比处理,获取变动文件名称;
根据所述变动文件名称从所述第二文件列表中确定增量代码。
3.根据权利要求2所述的基于合并请求增量的代码评审方法,其特征在于,所述根据所述变动文件名称从所述第二文件列表中确定增量代码,包括:
从所述第二文件列表中得到所述变动文件名称对应的第三文件列表,所述第三文件列表包括在所述第二文件列表中被修改、添加或者删除的代码文件;
根据预设的过滤文件类型对所述第三文件列表中代码文件进行筛选处理,并将筛选出的代码文件确定为增量代码。
4.根据权利要求1所述的基于合并请求增量的代码评审方法,其特征在于,所述对所述增量代码进行解析处理,得到抽象语法树文件,包括:
对预设的语法解析器进行初始化处理;
将所述增量代码输入至所述语法解析器,以使所述语法解析器对所述增量代码分别进行词法分析和语法分析处理;
获取所述语法解析器生成的解析代码,并根据所述解析代码得到抽象语法树文件。
5.根据权利要求1所述的基于合并请求增量的代码评审方法,其特征在于,所述根据所述目标代码库的规则清单对所述抽象语法树文件进行规范扫描处理,得到代码评审结果,包括:
获取所述目标代码库配置的规则清单和位置标号;
根据所述规则清单配置规则引擎;
根据所述位置标号确定所述抽象语法树文件的存储位置;
根据所述存储位置和所述规则引擎对所述抽象语法树文件进行规范扫描处理,得到代码评审结果。
6.根据权利要求1所述的基于合并请求增量的代码评审方法,其特征在于,所述将所述代码评审结果发送至所述代码开发端之后,还包括:
接收所述代码开发端发送的对所述问题代码段进行修改得到的修改代码;
对所述修改代码依次进行所述解析处理和所述规范扫描处理,得到修改代码评审结果;
在所述修改代码评审结果确定所述修改代码对应的所述增量代码不包括所述问题代码段的情况下,将所述增量代码合并入库至所述目标代码库。
7.根据权利要求1至6中任意一项所述的基于合并请求增量的代码评审方法,其特征在于,所述代码评审结果包括所述增量代码中问题代码段的数量信息、位置信息、规范描述信息和修改示例信息。
8.一种基于合并请求增量的代码评审系统,其特征在于,所述系统包括:
请求接收单元,用于接收代码开发端提交的合并请求,并获取所述合并请求携带的推送代码;
增量确定单元,用于根据所述推送代码和目标代码库确定增量代码;
增量解析单元,用于响应于评审指令,对所述增量代码进行解析处理,得到抽象语法树文件;
增量扫描单元,用于根据所述目标代码库的规则清单对所述抽象语法树文件进行规范扫描处理,得到代码评审结果,并根据所述代码评审结果确定所述增量代码中是否包括问题代码段;
结果发送单元,用于在所述增量代码包括所述问题代码段的情况下,将所述代码评审结果发送至所述代码开发端,以使所述代码开发端根据所述代码评审结果对所述问题代码段进行修改;
合并入库单元,用于在所述增量代码不包括所述问题代码段的情况下,将所述增量代码合并入库至所述目标代码库。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的基于合并请求增量的代码评审方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的基于合并请求增量的代码评审方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311630757.4A CN117609057A (zh) | 2023-11-29 | 2023-11-29 | 基于合并请求增量的代码评审方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311630757.4A CN117609057A (zh) | 2023-11-29 | 2023-11-29 | 基于合并请求增量的代码评审方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117609057A true CN117609057A (zh) | 2024-02-27 |
Family
ID=89949542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311630757.4A Pending CN117609057A (zh) | 2023-11-29 | 2023-11-29 | 基于合并请求增量的代码评审方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117609057A (zh) |
-
2023
- 2023-11-29 CN CN202311630757.4A patent/CN117609057A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210334093A1 (en) | Automating Identification of Code Snippets for Library Suggestion Models | |
US11494181B2 (en) | Automating generation of library suggestion engine models | |
US8572566B2 (en) | Systems and methods for analyzing changes in application code from a previous instance of the application code | |
US11907107B2 (en) | Auto test generator | |
CN110688307B (zh) | JavaScript代码检测方法、装置、设备和存储介质 | |
CN108763091B (zh) | 用于回归测试的方法、装置及系统 | |
US20120159434A1 (en) | Code clone notification and architectural change visualization | |
US20110282995A1 (en) | Systems and methods for dynamically deploying an application transformation tool over a network | |
CN110837356B (zh) | 一种数据处理方法和装置 | |
CN110381101B (zh) | Api网关控制系统、控制方法、设备和介质 | |
CN113326247B (zh) | 云端数据的迁移方法、装置及电子设备 | |
CN115033894B (zh) | 一种基于知识图谱的软件组件供应链安全检测方法及装置 | |
CN113688134A (zh) | 基于多维数据的可视化变量管理方法、系统及设备 | |
CN113032256A (zh) | 自动化测试方法、装置、计算机系统和可读存储介质 | |
CN113064811A (zh) | 基于工作流的自动化测试方法、装置以及电子设备 | |
CN116737535A (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
CN115794858A (zh) | 查询语句处理方法、装置、设备及存储介质 | |
CN117609057A (zh) | 基于合并请求增量的代码评审方法、系统、设备及介质 | |
CN111177501B (zh) | 一种标签处理方法、装置及系统 | |
CN115510446A (zh) | 一种漏洞修复信息检索方法及电子设备 | |
CN113419738A (zh) | 接口文档的生成方法、装置及接口管理设备 | |
CN115878079B (zh) | 需求管理方法、装置、电子设备及存储介质 | |
CN111214831B (zh) | 一种基于游戏引擎的特效编辑方法 | |
CN116185468A (zh) | 应用程序迁移方法、装置、设备及存储介质 | |
CN118468816A (zh) | 项目文件生成方法、装置、设备、介质及计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |