CN114461270A - 项目处理方法及装置 - Google Patents

项目处理方法及装置 Download PDF

Info

Publication number
CN114461270A
CN114461270A CN202210126052.8A CN202210126052A CN114461270A CN 114461270 A CN114461270 A CN 114461270A CN 202210126052 A CN202210126052 A CN 202210126052A CN 114461270 A CN114461270 A CN 114461270A
Authority
CN
China
Prior art keywords
code
information
processing
target
change
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
Application number
CN202210126052.8A
Other languages
English (en)
Inventor
侯晓
史传倩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202210126052.8A priority Critical patent/CN114461270A/zh
Publication of CN114461270A publication Critical patent/CN114461270A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

申请提供项目处理方法及装置,其中所述项目处理方法包括:针对目标项目中的第一代码,利用第一代码的代码类型对应的监听方式,监听第一代码的代码状态,第一代码为目标项目中的任一代码,监听方式针对不同的代码类型对应预先配置;若代码状态为变更状态,则调用预设扫描接口扫描第一代码,获得第一代码的变更信息;对变更信息进行处理。本方案可以提高对代码的变更信息的处理效率和准确度。

Description

项目处理方法及装置
技术领域
本申请涉及计算机技术领域,特别涉及一种项目处理方法。本申请同时涉及一种项目处理装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
随着计算机技术的发展,项目的体量日益增多,用于实现项目的代码也随之增多。
相关技术中,代码的开发具有迭代的特点,使得需要针对每次迭代均进行测试。因此,当代码因迭代发生变更,需要及时获取代码的变更信息。
但是,代码的开发人员和测试人员并不相同。因此,无法及时获取代码的变更信息,甚至出现遗漏,导致项目的处理效率和准确度降低。
发明内容
有鉴于此,本申请实施例提供了一种项目处理方法。本申请同时涉及一种项目处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的项目的处理效率和准确度降低。
根据本申请实施例的第一方面,提供了一种项目处理方法,包括:
针对目标项目中的第一代码,利用所述第一代码的代码类型对应的监听方式,监听所述第一代码的代码状态,其中,所述第一代码为所述目标项目中的任一代码,所述监听方式针对不同的代码类型对应预先配置;
若所述代码状态为变更状态,则调用预设扫描接口扫描所述第一代码,获得所述第一代码的变更信息;
对所述变更信息进行处理。
根据本申请实施例的第二方面,提供了一种项目处理装置,包括:
状态监听模块,被配置为针对目标项目中的第一代码,利用所述第一代码的代码类型对应的监听方式,监听所述第一代码的代码状态,其中,所述第一代码为所述目标项目中的任一代码,所述监听方式针对不同的代码类型对应预先配置;
代码扫描模块,被配置为若所述代码状态为变更状态,则调用预设扫描接口扫描所述第一代码,获得所述第一代码的变更信息;
信息处理模块,被配置为对所述变更信息进行处理。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述项目处理方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述项目处理方法的步骤。
本申请一实施例实现了针对目标项目中的第一代码,利用第一代码的代码类型对应的监听方式,监听第一代码的代码状态,第一代码为目标项目中的任一代码,监听方式针对不同的代码类型对应预先配置;若代码状态为变更状态,则调用预设扫描接口扫描第一代码,获得第一代码的变更信息;对变更信息进行处理。这样,利用与第一代码的代码类型对应的预先配置的监听方式,监听第一代码的代码状态,可以在代码状态为变更状态的情况下,即调用预设扫描接口扫描第一代码,获得第一代码的变更信息。因此,可以保证获得第一代码的变更信息的时机与第一代码的代码状态变更的时机匹配,及时对第一代码的变更信息进行处理。可见本方案可以提高代码的变更信息的获取及时性,减少代码的变更信息的获取遗漏,从而提高对代码所属项目的处理效率和准确度。
附图说明
图1是本申请一实施例提供的一种项目处理方法的流程图;
图2是本申请一实施例提供的一种项目处理方法中,Webhook应用的配置界面示例图;
图3是本申请一实施例提供的一种项目处理方法中,合入记录的示例图;
图4是本申请一实施例提供的一种项目处理方法中,提交记录的示例图;
图5是本申请一实施例提供的一种项目处理方法的应用场景示例图;
图6是本申请另一实施例提供的一种项目处理方法的流程示例图;
图7是本申请一实施例提供的一种项目处理装置的结构示意图;
图8是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
Gitlab:一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。其中,Git是一个开源的分布式版本控制软件,可以用于管理Linux内核开发中的版本控制。
Webhook:一种“用户定义的超文本传输协议(HTTP,Hyper Text TransferProtocol)回调”。Webhook通常被某些事件激活,是应用给其它应用提供实时信息的一种方式。
微服务框架(microservice):一种有效的拆分应用,实现敏捷开发和部署的架构。提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通,每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。例如通常是基于HTTP的RESTful API的服务。其中,RESTful(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。API指Application Programming Interface,也就是应用程序接口,例如预先定义的接口,或指软件系统不同组成部分衔接的约定。
持续集成(CI,Continuous Integration)流程:按照一定频率(例如一天多次)将代码集成到主干。持续集成的目的,就是让产品可以快速迭代,并且,还能保持高质量。持续集成流程的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
统一资源定位器(URL,Uniform Resource Locator):是因特网的万维网服务程序上用于指定信息位置的表示方法。因特网上的可用资源可以用简单字符串来表示,这些字符串则被称为URL。
远程字典服务(Redis,Remote Dictionary Server):一种开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、键-值(Key-Value)数据库,并提供多种语言的API。
Jenkins:是一个功能强大的应用程序,允许持续集成和持续交付项目。Jenkins是一个免费的源代码,可以处理任何类型的构建或持续集成。
在具体应用中,某一项目的代码往往是庞大的,因此,对某一项目的开发及更新维护可以采用流水线的形式。具体的,可以基于一个项目的代码也就是主干代码,获得多个分支代码。并且,一个分支代码可以对应一个开发端。代码合入也就是响应合并请求(mr,merge request),指将上述分支代码添加至主干代码中。在项目进行代码提交、合入等代码状态变更的情况下,需要及时进行变更信息的获取,以提高项目处理效率和准确。并且,通常情况下,gitlab提供的接入Webhook的方式,仅能提供项目的属性信息,无法提供代码状态变更信息,也就无法提高项目处理效率和准确度。
在本申请中,提供了一种项目处理方法,本申请同时涉及一种项目处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了本申请一实施例提供的一种项目处理方法的流程图,具体包括以下步骤:
S102,针对目标项目中的第一代码,利用第一代码的代码类型对应的监听方式,监听第一代码的代码状态,其中,第一代码为目标项目中的任一代码,监听方式针对不同的代码类型对应预先配置。
在具体应用中,目标项目是指需要获取代码的变更信息的项目,可以按照具体需求选择。并且,发生变更的代码在目标项目中的角色不同,则状态变更产生的事件不同。例如,主干代码发生状态变更,产生的事件可以是分支代码合入至主干代码中;分支代码发生状态变更,产生的事件可以是提交分支代码。因此,为了保证监听第一代码的代码状态的成功性,第一代码的代码类型可以按照第一代码在目标项目中的角色差异划分。例如,主干变更类型,分支变更类型。
其中,监听方式为用于获得第一代码的代码状态的方式,具体可以是多种的。示例性的,监听方式可以包括:按照预设周期解析第一代码的修改日志,将修改日志的内容是否变更作为第一代码的代码状态。例如,修改日志的内容未变更,则第一代码的代码状态为未变更状态,修改日志的内容变更,则第一代码的状态为变更状态。或者,示例性的,监听方式可以包括:Webhook应用。为了便于理解和合理布局,后续以可选实施例的形式对第二种示例进行具体说明。
任何可以监听第一代码的代码状态的监听方式,均可用于本申请,本实施例对此不作限制。
另外,针对不同的代码类型对应预先配置监听方式,可以是直接在用于实现本申请提供的项目处理方法的代码中,人工写入上述配置方式,或者,可以通过配置界面输入配置信息,根据配置信息,获得监听方式,这都是合理的。为了便于理解和合理布局,后续以可选实施例的形式对通过配置界面进行监听方式配置的情况进行具体说明。任何可以对不同的代码类型对应的监听方式进行配置的方式,均可用于本申请,本实施例对此不作限制。
S104,若代码状态为变更状态,则调用预设扫描接口扫描第一代码,获得第一代码的变更信息。
在具体应用中,代码状态为变更状态,则表明代码存在变更,因此,可以通过配置界面。其中,预设扫描接口可以是存储第一代码的前端提供的接口,或者,指定的用于进行代码测试、维护等功能的服务端提供的接口,这都是合理的。并且,调用预设扫描接口扫描第一代码,获得第一代码的变更信息的方式,可以是多种的。示例性的,可以调用预设扫描接口比较第一代码和历史第一代码,将获得的代码差异信息作为第一代码的变更信息。其中,历史第一代码是指保存时间在第一代码之前、且距离第一代码的保存时间最近的代码。代码差异信息可以包括:第一代码和历史代码间存在差异的代码内容、该代码内容的位置信息、该代码内容的产生时间、修改人员等等信息。
或者,示例性的,可以调用预设扫描接口扫描第一代码的修改日志,获得与当前时间点间的差异达到预设差异条件的信息,作为第一代码的变更信息。或者,示例性的,可以扫描与代码类型对应的目标状态变更记录,获得第一代码的变更信息,例如,对主干变更类型可以扫描合入记录,对分支变更类型可以扫描提交记录。或者,示例性的,为了减少变更信息的遗漏以及滞后,可以按照第一代码的变更频率设置。为了便于理解和合理布局,后续以可选实施例的形式对第三种示例进行具体说明。
任何可以调用预设扫描接口扫描第一代码,获得第一代码的变更信息的方式,均可用于本申请,本实施例对此不作限制。
S106,对变更信息进行处理。
在具体应用中,可以针对不同的处理场景,采用不同的处理方式对变更信息进行处理。例如,输出变更信息、利用变更信息进行代码测试、利用变更信息进行目标项目的时间节点管理、利用变更信息执行持续集成流程等等。为了便于理解和合理布局,后续以可选实施例的形式进行具体说明。
任何可以通过对变更信息进行处理实现项目处理的方式,均可用于本申请,本实施例对此不作限制。
本申请一实施例,利用与第一代码的代码类型对应的预先配置的监听方式,监听第一代码的代码状态,可以在代码状态为变更状态的情况下,即调用预设扫描接口扫描第一代码,获得第一代码的变更信息。因此,可以保证获得第一代码的变更信息的时机与第一代码的代码状态变更的时机匹配,及时对第一代码的变更信息进行处理。可见本方案可以提高代码的变更信息的获取及时性,减少代码的变更信息的获取遗漏,从而提高对代码所属项目的处理效率和准确度。
在一种可选的实施方式中,监听方式可以包括:Webhook应用;
相应地,在上述利用第一代码的代码类型对应的监听方式,监听第一代码的代码状态之前,本申请实施例提供的项目处理方法,还可以包括如下步骤:
针对目标项目中的第一代码,配置包含的触发事件与第一代码的代码类型匹配的Webhook应用。
其中,Webhook应用具体可以是应用程序接口(API,Application ProgrammingInterface)的形式。一般为了及时通知消息,可以由Webhook应用调用作为被通知方的服务端例如预设扫描接口,达到消息及时通知的作用。在具体应用中,Gitlab可以提供Webhook应用,对此,可以利用Gitlab中Webhook应用配置界面,配置与第一代码的代码类型对应的Webhook应用。具体的,可以将Webhook应用中的触发事件配置为与第一代码的代码类型匹配。这样,可以通过不同的配置,达到对变更的条件不同的代码触发扫描的效果。
示例性的,图2是本申请一实施例提供的一种项目处理方法中,Webhook应用的配置界面示例图;在Webhook的配置中,通过Webhook配置界面中预设扫描接口的地址配置栏配置预设扫描接口的地址,例如,被调用服务器的URL;通过Webhook配置界面中的触发(Trigger)事件(push events)信息配置栏,配置触发事件也就是哪种场景为第一代码的状态变更。触发事件可以为主干代码(master)合入的场景,即会在代码合入master的时机下,触发Webhook的消息通知。另外,具体的可以指定或者不指定合入主干代码的分支代码。触发事件可以为分支级别的场景,即在分支代码有提交等变动的时机下,触发Webhook的消息通知。其中,配置中可以指定分支代码。在一种情况中,可以根据具体需求,在触发事件中限定被扫描的代码的标签(tag)、提交者(comments)、提交的原因(issue)类型等等条件。这样,可以按照不同的需求更加精准地获取变更信息,减少冗余信息的获取和处理,进一步提高项目处理的准确度和效率。
在具体应用中,Webhook配置在相应的第一代码的开发端中。当触发事件发生的情况下,原网站也就是该开发端将向为Webhook配置的URL发送HTTP请求。由于Webhook使用HTTP,因此,可以被无缝整合入网页服务而无需添加新的基础设施。另外,除使用HTTP外,还可以构建一个消息队列服务,如包括IronMQ和RestMS在内的一些表征态转移(RESTful,Representational State Transfer)软件。其中,RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用可扩展标记语言(XML,Extensible Markup Language)格式定义或JS对象简谱(JSON,JavaScript Object Notation)格式定义。
在一种可选的实施方式中,上述调用预设扫描接口扫描第一代码,具体可以包括如下步骤:
根据代码类型,确定第一代码的目标扫描方式;
调用预设扫描接口利用目标扫描方式,扫描第一代码。
在具体应用中,为了更加精准、快速地获得第一代码的变更信息,可以针对不同的代码类型,利用不同的扫描方式扫描第一代码。其中,代码类型即上述第一代码的代码类型。根据代码类型,确定第一代码的目标扫描方式可以包括:从预先建立的代码类型和扫描方式的对应关系中,查找第一代码的代码类型对应的目标扫描方式。为了便于理解,下面以可选实施例的形式具体说明调用预设扫描接口利用目标扫描方式,扫描第一代码的方式。
在一种可选的实施方式中,代码类型包括:主干变更类型;
相应地,上述调用预设扫描接口利用目标扫描方式,扫描第一代码,获得第一代码的变更信息,具体可以包括如下步骤:
调用预设扫描接口获取第一代码的合入记录;
扫描合入记录,获得达到第一扫描条件的信息,作为第一代码的变更信息。
其中,主干变更类型即主干代码发生变更,并且,该变更通常由合入请求引起。第一代码的代码类型包括主干变更类型,则第一代码为主干代码(master)。因此,可以调用预设扫描接口获取第一代码的合入记录。合入记录是指请求合入至第一代码的请求的记录。示例性的,当对主干代码进行操作,Webhook通过捕获到用户对主干代码的操作也就是发出合入请求,触发对预设扫描接口的调用,该接口对第一代码进行扫描:对第一代码的合入记录,也就是合入请求(MR)记录记录进行扫描,获得每条记录中的合入请求所属的分支代码信息(target_branch)、权限名单(sismenber)、更改者信息(author)、标签(tag)、合入记录的标识(merge_id)等等可以作为变更信息的合入详细信息。
示例性的,如图3本申请一实施例提供的一种项目处理方法中,合入记录的示例图所示:合入记录中可以包含记录类型栏和记录详细信息栏。其中,记录类型栏查找对合入请求的处理差异划分,可以包括打开类型、已合入类型、已关闭类型等等。记录详细信息也就是上述合入详细信息。另外,为了进一步提高项目处理的准确度,上述变更信息中还可以包括目标项目的项目信息。为此,可以获取目标项目的项目信息,并发送项目信息至预设扫描接口;将项目信息和上述扫描得到的信息,作为第一代码的变更信息。具体的,可以将目标项目的基本信息通过URL发送到预设扫描接口例如被通知方的服务端,消息包含如下信息:项目标识(project)、项目功能(namespace)等项目信息。
在一种可选的实施方式中,代码类型包括:分支变更类型;
相应地,上述调用预设扫描接口利用目标扫描方式,扫描第一代码,获得第一代码的变更信息,具体可以包括如下步骤:
调用预设扫描接口获取第一代码的提交记录;
扫描提交记录,获得达到第二扫描条件的信息,作为第一代码的变更信息。
其中,分支变更类型即分支代码发生变更,并且,该变更发生的情况下,会产生分支代码的提交。第一代码的代码类型包括分支变更类型,则第一代码为分支代码。因此,可以调用预设扫描接口获取第一代码的提交记录。提交记录是指第一代码进行提交的记录。示例性的,当对分支代码进行操作,Webhook通过捕获到用户对分支的提交,此时触发预设扫描接口的扫描,获得每条记录中的提交详细信息,作为变更信息。其中,变更信息与上述主干变更类型情况下的变更信息可以相同,在此不再赘述,具体详见上述关于主干变更类型情况的实施例的描述。
示例性的,如图4本申请一实施例提供的一种项目处理方法中,提交记录的示例图所示:提交记录可以包括提交详细信息。另外,为了进一步提高项目处理的准确度,上述变更信息中还可以包括目标项目的项目信息。为此,可以获取目标项目的项目信息,并发送项目信息至预设扫描接口;将项目信息和上述扫描得到的信息,作为第一代码的变更信息。具体的,可以将目标项目的基本信息通过URL发送到预设扫描接口例如被通知方的服务端,消息包含如下信息:项目标识(project)、项目功能(namespace)等项目信息。
在一种可选的实施方式中,目标扫描方式包括:扫描与代码类型对应的目标状态变更记录;
相应地,上述调用预设扫描接口利用目标扫描方式,扫描第一代码,具体可以包括如下步骤:
调用预设扫描接口,扫描第一代码的预设数量个目标状态变更记录,其中,预设数量为根据与代码类型对应的代码变更频率,确定的数量。
本实施例可以实现对扫描粒度的设定:针对不同代码类型的第一代码的变更频率,确定需要扫描的目标状态变更记录的个数,也就是预设数量。这样,可以保证扫描记录有所变更状态的尽可能全面的变更信息的目标状态变更记录,从而减少变更信息的遗漏,进一步提高扫描准确度。示例性的,master合入的场景下,扫描MR信息,根据master合入的频率做粒度设定。例如:master每隔5分钟左右会同时有3个记录合入,为防止漏统计,则每次通过代码扫描3个MR信息。监听分支变动的场景下,扫描Commits信息,根据分支提交的频率做粒度设定。例如:分支每10分钟会有4次左右提交,为防止漏统计,则每次通过代码扫描4个Commits信息。
在一种可选的实施方式中,上述对变更信息进行处理,具体可以包括如下步骤:
获取已存储的历史变更信息的第一信息标识,以及第一代码的变更信息的第二信息标识;
若第一信息标识与第二信息标识不同,则对变更信息进行处理,并存储第二信息标识。
在具体应用中,可以在扫描得到变更信息的情况下,对未存储过的变更信息进行存储,形成历史变更信息。并且,存储中记录变更信息的信息标识。这样,可以通过比较历史变更信息和第一代码的变更信息,避免对已经获取的变更信息的重复处理。示例性的,Redis缓存处理用到Redis缓存记录扫描到的每条记录的唯一id也就是信息标识,用于防止重复处理扫描到的记录。具体的,可以在获取到的代码合入的详细信息后,针对merge_id进行Redis缓存的检查,查到记录存在,则不做任何操作。记录不存在,则写入Redis中,并进行后续操作。其中,记录相当于上述变更信息。
在一种可选的实施方式中,上述对变更信息进行处理,具体可以包括如下步骤:
获取第一代码的处理场景信息,确定与处理场景信息对应的目标处理方式;
利用目标处理方式,处理变更信息。
在具体应用中,第一代码的处理场景信息为表明利用变更信息对第一代码进行处理的场景的信息。具体可以为场景名称或者标识。通过对不同处理场景采用不同的处理方式,可以保证项目处理的准确度,以及扩展本申请实施例提供的项目处理方法的应用场景的适用范围。其中,获取第一代码的处理场景信息的方式可以是多种的。示例性的,可以接收用户输入的第一代码的处理场景信息。用户具体可以为第一代码所属目标项目的开发人员、运维人员、测试人员等等。用户输入上述处理场景信息的方式可以是在输入框中键入、下拉菜单中选择等等。或者,示例性的,可以根据具体需求,预先设置好第一代码的处理场景信息,进而直接读取该预设的处理场景信息,这都是合理的。任何可以获取第一代码的处理场景信息的方式均可用于本申请,本实施例对此不做限制。
另外,确定与处理场景信息对应的目标处理方式可以包括:从预先建立的处理场景信息与处理方式的对应关系中,查找第一代码的处理场景信息对应的目标处理方式。
在一种可选的实施方式中,处理场景信息包括:信息推送场景信息;
相应地,上述利用目标处理方式,处理变更信息,具体可以包括如下步骤:
输出变更信息。
在具体应用中,输出变更信息的作用是向目标用户告知变更信息,以便目标用户及时利用变更信息进行第一代码所属目标项目的项目处理。输出变更信息的具体方式可以是多种的。示例性的,可以将包含变更信息的文字提示信息、图像提示信息、音频提示信息、视频提示信息等等提示信息,发送至目标人员的客户端,例如开发端、测试端等等;进而,该客户端可以对所接收的提示信息进行展示,实现对变更信息的输出。
并且,用于输出变更信息的变更信息展示界面可以展示变更信息属性信息、变更信息摘要、变更信息详情中的至少一种。示例性的,如图5本申请一实施例提供的一种项目处理方法的应用场景示例图所示:用于输出变更信息的变更信息展示界面中,具体可以展示变更信息属性信息、变更信息摘要以及变更信息详情。其中,变更信息属性信息可以包括变更信息的主题、修改者信息、标签、标识等等。变更信息摘要可以包括:变更信息针对的代码内容的位置、个数、所属文件标识等等。其中,代码内容的位置可以是代码变动文件、改动行数、提交人等。
在一种可选的实施方式中,处理场景信息包括:用例推荐场景信息;
相应地,上述利用目标处理方式,处理变更信息,具体可以包括如下步骤:
查找与变更信息匹配的测试数据、以及目标测试端;
发送测试数据至目标测试端。
其中,测试数据具体可以为测试用例、样本数据等等。目标测试端是指对变更信息所属第一代码进行测试的测试端。在具体应用中,查找与变更信息匹配的测试数据、以及目标测试端,具体可以包括:提取变更信息中的代码属性信息,例如主题信息、提交人信息、项目标识等等;从预先建立的代码属性信息与测试数据的对应关系中,查找与所提取的代码属性信息对应的测试数据;从预先建立的代码属性信息与测试端的对应关系中,查找与所提取的代码属性信息对应的目标测试端。这样,可以发送测试数据至目标测试端,从而目标测试端无需检视变更信息所属的第一代码,即可利用测试数据对该第一代码进行测试,提高项目处理的效率。
在一种可选的实施方式中,处理场景信息包括:卡点场景信息;
相应地,上述利用目标处理方式,处理变更信息,具体可以包括如下步骤:
获取变更信息的产生时间点;
根据预先建立的时间规则,确定与产生时间点对应的响应时间点;
生成与响应时间点对应的提示信息,并输出提示信息。
在具体应用中,代码出现状态变更,则需要进行响应,例如,对状态变更的代码进行测试、检查、评审等等响应。对此,为了保证项目各节点的完成时间,可以通过本实施例生成与响应时间点对应的提示信息,并输出提示信息。其中,预先建立的时间规则为第一代码所属目标项目的响应时间管理规则。例如,代码变更后,一天内或者三天内等指定时间段内进行响应。因此,示例性的,根据预先建立的时间规则,确定与产生时间点对应的响应时间点,可以包括:从预先建立的时间规则中提取响应时间间隔,计算响应时间间隔和上述产生时间点之间的和,得到响应时间点。
下述结合附图6,以本申请提供的项目处理方法在项目处理的应用为例,对项目处理方法进行进一步说明。其中,图6示出了本申请另一实施例提供的一种项目处理方法的流程示例图,具体包括以下步骤:
前期准备:步骤1:配置Gitlab中项目的Webhook应用,具体包括:针对主干类型配置Webhook应用,例如,针对master级别的代码配置Webhook应用;针对分支类型配置Webhook应用,例如,分支级别的配置Webhook应用;针对其他维度配置Webhook应用等等。
触发以及实时扫描流程:步骤2:Webhook应用的消息通知到达的时候,触发对第一代码的扫描,获得代码变更信息,具体包括:Webhook应用监听代码合入的触发消息;Webhook应用监听代码提交的触发消息;Webhook应用监听其他维度的触发消息;监听到触发消息,则感知到代码的变更,触发扫描;根据代码类型,确定第一代码的目标扫描方式,调用预设扫描接口利用目标扫描方式,扫描第一代码,例如,对第一代码的master信息扫描、对第一代码的commit信息扫描、对第一代码的其他维度信息扫描等等;检查缓存,例如检查Redis缓存;缓存存在,则结束;缓存不存在,则针对可支持的后续场景进行变更信息处理,并将变更信息标识写入缓存中。
可支持的后续场景:持续集成流程:将变化信息推送给测试人员,以进行CI的评审;消息推送:推送代码变更信息;用例推荐:根据代码变更信息,查找匹配的测试用例,并推荐给测试人员;流程卡点:根据代码变更信息,对项目开发时间节点进行确定以及提醒等等。
本实施例中的各步骤与上述图1实施例及可选实施例中作用相同的各步骤相同,区别在于本实施例为了便于理解采用不同的表述方式。对于相同部分在此不再赘述,详见上述图1实施例及可选实施例中的相关描述。另外,上述的其他维度是指从除主干类型和分支类型以外的维度,对需要扫描的代码的给出的筛选类型,用于表征代码类型,
与上述方法实施例相对应,本申请还提供了项目处理装置实施例,图7示出了本申请一实施例提供的一种项目处理装置的结构示意图。如图7所示,该装置包括:
状态监听模块702,被配置为针对目标项目中的第一代码,利用第一代码的代码类型对应的监听方式,监听第一代码的代码状态,第一代码为目标项目中的任一代码,监听方式针对不同的代码类型对应预先配置;
代码扫描模块704,被配置为若代码状态为变更状态,则调用预设扫描接口扫描第一代码,获得第一代码的变更信息;
信息处理模块706,被配置为对变更信息进行处理。
本申请一实施例,利用与第一代码的代码类型对应的预先配置的监听方式,监听第一代码的代码状态,可以在代码状态为变更状态的情况下,即调用预设扫描接口扫描第一代码,获得第一代码的变更信息。因此,可以保证获得第一代码的变更信息的时机与第一代码的代码状态变更的时机匹配,及时对第一代码的变更信息进行处理。可见本方案可以提高代码的变更信息的获取及时性,减少代码的变更信息的获取遗漏,从而提高对代码所属项目的处理效率和准确度。
在一种可选的实施方式中,代码扫描模块704,进一步被配置为:
根据代码类型,确定第一代码的目标扫描方式;
调用预设扫描接口利用目标扫描方式,扫描第一代码。
在一种可选的实施方式中,代码类型包括:主干变更类型;
相应地,代码扫描模块704,进一步被配置为:
调用预设扫描接口获取第一代码的合入记录;
扫描合入记录,获得达到第一扫描条件的信息,作为第一代码的变更信息。
在一种可选的实施方式中,代码类型包括:分支变更类型;
相应地,代码扫描模块704,进一步被配置为:
调用预设扫描接口获取第一代码的提交记录;
扫描提交记录,获得达到第二扫描条件的信息,作为第一代码的变更信息。
在一种可选的实施方式中,目标扫描方式包括:扫描与代码类型对应的目标状态变更记录;
相应地,代码扫描模块704,进一步被配置为:
调用预设扫描接口,扫描第一代码的预设数量个目标状态变更记录,其中,预设数量为根据与代码类型对应的代码变更频率,确定的数量。
在一种可选的实施方式中,信息处理模块706,进一步被配置为:
获取已存储的历史变更信息的第一信息标识,以及第一代码的变更信息的第二信息标识;
若第一信息标识与第二信息标识不同,则对变更信息进行处理,并存储第二信息标识。
在一种可选的实施方式中,信息处理模块706,进一步被配置为:
获取第一代码的处理场景信息,确定与处理场景信息对应的目标处理方式;
利用目标处理方式,处理变更信息。
在一种可选的实施方式中,处理场景信息包括:信息推送场景信息;
相应地,信息处理模块706,进一步被配置为:
输出变更信息。
在一种可选的实施方式中,处理场景信息包括:用例推荐场景信息;
相应地,信息处理模块706,进一步被配置为:
查找与变更信息匹配的测试数据、以及目标测试端;
发送测试数据至目标测试端。
在一种可选的实施方式中,处理场景信息包括:卡点场景信息;
相应地,信息处理模块706,进一步被配置为:
获取变更信息的产生时间点;
根据预先建立的时间规则,确定与产生时间点对应的响应时间点;
生成与响应时间点对应的提示信息,并输出提示信息。
在一种可选的实施方式中,监听方式包括:Webhook应用;
该装置还包括:配置模块,被配置为:
针对目标项目中的第一代码,配置包含的触发事件与第一代码的代码类型匹配的Webhook应用。
上述为本实施例的一种项目处理装置的示意性方案。需要说明的是,该项目处理装置的技术方案与上述的项目处理方法的技术方案属于同一构思,项目处理装置的技术方案未详细描述的细节内容,均可以参见上述项目处理方法的技术方案的描述。
图8示出了根据本申请一实施例提供的一种计算设备的结构框图。该计算设备800的部件包括但不限于存储器810和处理器820。处理器820与存储器810通过总线830相连接,数据库850用于保存数据。
计算设备800还包括接入设备840,接入设备840使得计算设备800能够经由一个或多个网络860通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备840可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Networks)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)接口,等等。
在本申请的一个实施例中,计算设备800的上述部件以及图8中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图8所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备800可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备800还可以是移动式或静止式的服务器。
其中,处理器820执行所述计算机指令时实现所述的项目处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的项目处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述项目处理方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述项目处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的项目处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述项目处理方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (14)

1.一种项目处理方法,其特征在于,包括:
针对目标项目中的第一代码,利用所述第一代码的代码类型对应的监听方式,监听所述第一代码的代码状态,其中,所述第一代码为所述目标项目中的任一代码,所述监听方式针对不同的代码类型对应预先配置;
若所述代码状态为变更状态,则调用预设扫描接口扫描所述第一代码,获得所述第一代码的变更信息;
对所述变更信息进行处理。
2.根据权利要求1所述的方法,其特征在于,所述调用预设扫描接口扫描所述第一代码,包括:
根据所述代码类型,确定所述第一代码的目标扫描方式;
调用预设扫描接口利用所述目标扫描方式,扫描所述第一代码。
3.根据权利要求2所述的方法,其特征在于,所述代码类型包括:主干变更类型;
所述调用预设扫描接口利用所述目标扫描方式,扫描所述第一代码,获得所述第一代码的变更信息,包括:
调用预设扫描接口获取所述第一代码的合入记录;
扫描所述合入记录,获得达到第一扫描条件的信息,作为所述第一代码的变更信息。
4.根据权利要求2所述的方法,其特征在于,所述代码类型包括:分支变更类型;
所述调用预设扫描接口利用所述目标扫描方式,扫描所述第一代码,获得所述第一代码的变更信息,包括:
调用预设扫描接口获取所述第一代码的提交记录;
扫描所述提交记录,获得达到第二扫描条件的信息,作为所述第一代码的变更信息。
5.根据权利要求2所述的方法,其特征在于,所述目标扫描方式包括:扫描与所述代码类型对应的目标状态变更记录;
所述调用预设扫描接口利用所述目标扫描方式,扫描所述第一代码,包括:
调用预设扫描接口,扫描所述第一代码的预设数量个所述目标状态变更记录,其中,所述预设数量为根据与所述代码类型对应的代码变更频率,确定的数量。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述对所述变更信息进行处理,包括:
获取已存储的历史变更信息的第一信息标识,以及所述第一代码的变更信息的第二信息标识;
若所述第一信息标识与所述第二信息标识不同,则对所述变更信息进行处理,并存储所述第二信息标识。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述对所述变更信息进行处理,包括:
获取所述第一代码的处理场景信息,确定与所述处理场景信息对应的目标处理方式;
利用所述目标处理方式,处理所述变更信息。
8.根据权利要求7所述的方法,其特征在于,所述处理场景信息包括:信息推送场景信息;
所述利用所述目标处理方式,处理所述变更信息,包括:
输出所述变更信息。
9.根据权利要求7所述的方法,其特征在于,所述处理场景信息包括:用例推荐场景信息;
所述利用所述目标处理方式,处理所述变更信息,包括:
查找与所述变更信息匹配的测试数据、以及目标测试端;
发送所述测试数据至所述目标测试端。
10.根据权利要求7所述的方法,其特征在于,所述处理场景信息包括:卡点场景信息;
所述利用所述目标处理方式,处理所述变更信息,包括:
获取所述变更信息的产生时间点;
根据预先建立的时间规则,确定与所述产生时间点对应的响应时间点;
生成与所述响应时间点对应的提示信息,并输出所述提示信息。
11.根据权利要求1至5、8至10中任一项所述的方法,其特征在于,所述监听方式包括:Webhook应用;
在所述利用所述第一代码的代码类型对应的监听方式,监听所述第一代码的代码状态之前,所述方法还包括:
针对目标项目中的第一代码,配置包含的触发事件与所述第一代码的代码类型匹配的Webhook应用。
12.一种项目处理装置,其特征在于,包括:
状态监听模块,被配置为针对目标项目中的第一代码,利用所述第一代码的代码类型对应的监听方式,监听所述第一代码的代码状态,其中,所述第一代码为所述目标项目中的任一代码,所述监听方式针对不同的代码类型对应预先配置;
代码扫描模块,被配置为若所述代码状态为变更状态,则调用预设扫描接口扫描所述第一代码,获得所述第一代码的变更信息;
信息处理模块,被配置为对所述变更信息进行处理。
13.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述计算机指令时实现权利要求1-11任意一项所述方法的步骤。
14.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-11任意一项所述方法的步骤。
CN202210126052.8A 2022-02-10 2022-02-10 项目处理方法及装置 Pending CN114461270A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210126052.8A CN114461270A (zh) 2022-02-10 2022-02-10 项目处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210126052.8A CN114461270A (zh) 2022-02-10 2022-02-10 项目处理方法及装置

Publications (1)

Publication Number Publication Date
CN114461270A true CN114461270A (zh) 2022-05-10

Family

ID=81414433

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210126052.8A Pending CN114461270A (zh) 2022-02-10 2022-02-10 项目处理方法及装置

Country Status (1)

Country Link
CN (1) CN114461270A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118394407A (zh) * 2024-06-25 2024-07-26 中邮消费金融有限公司 基于Git源码的接口扫描方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170123963A1 (en) * 2015-11-04 2017-05-04 Sap Portals Israel Ltd. Source code change resolver
CN108228256A (zh) * 2018-02-05 2018-06-29 武汉斗鱼网络科技有限公司 代码同步方法、装置、计算机可读介质及终端
CN108241502A (zh) * 2016-12-26 2018-07-03 航天信息股份有限公司 一种代码持续集成的方法及装置
CN109002295A (zh) * 2018-10-19 2018-12-14 武汉斗鱼网络科技有限公司 一种静态代码扫描方法、系统、服务器及存储介质
CN109783128A (zh) * 2018-12-13 2019-05-21 平安普惠企业管理有限公司 代码改动通知方法、设备、存储介质及装置
CN112612506A (zh) * 2020-12-18 2021-04-06 平安普惠企业管理有限公司 代码变更通知方法、装置、设备及存储介质
CN113961228A (zh) * 2021-09-09 2022-01-21 浙江吉利控股集团有限公司 一种变更提醒方法、装置、设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170123963A1 (en) * 2015-11-04 2017-05-04 Sap Portals Israel Ltd. Source code change resolver
CN108241502A (zh) * 2016-12-26 2018-07-03 航天信息股份有限公司 一种代码持续集成的方法及装置
CN108228256A (zh) * 2018-02-05 2018-06-29 武汉斗鱼网络科技有限公司 代码同步方法、装置、计算机可读介质及终端
CN109002295A (zh) * 2018-10-19 2018-12-14 武汉斗鱼网络科技有限公司 一种静态代码扫描方法、系统、服务器及存储介质
CN109783128A (zh) * 2018-12-13 2019-05-21 平安普惠企业管理有限公司 代码改动通知方法、设备、存储介质及装置
CN112612506A (zh) * 2020-12-18 2021-04-06 平安普惠企业管理有限公司 代码变更通知方法、装置、设备及存储介质
CN113961228A (zh) * 2021-09-09 2022-01-21 浙江吉利控股集团有限公司 一种变更提醒方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WXSM: "Auto Changelog with GitLab", pages 1 - 8, Retrieved from the Internet <URL:https://wxsm.space/2020/auto-changelog-with-gitlab/> *
程序员小富: "拉仇恨!webhook + 企业微信 给同事做了个代码提交监听工具", pages 1 - 10, Retrieved from the Internet <URL:https://mp.weixin.qq.com/s/GYLWccRxAsJlLPeI2vfuRQ> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118394407A (zh) * 2024-06-25 2024-07-26 中邮消费金融有限公司 基于Git源码的接口扫描方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US12039310B1 (en) Information technology networked entity monitoring with metric selection
US11226977B1 (en) Application of event subtypes defined by user-specified examples
US11093518B1 (en) Information technology networked entity monitoring with dynamic metric and threshold selection
US10331422B1 (en) System and method for generating API devlopment code for integrating platforms
US11601324B1 (en) Composite display of multi-sourced IT incident related information
US20190095478A1 (en) Information technology networked entity monitoring with automatic reliability scoring
US20070244650A1 (en) Service-oriented architecture for deploying, sharing, and using analytics
US20140156828A1 (en) Method and system for abstracting restful web service http between a client and a server
CN110321544B (zh) 用于生成信息的方法和装置
US11620541B1 (en) Custom use case framework in computer analytics system
US20190272169A1 (en) System and method for generating api devlopment code for integrating platforms
US10102239B2 (en) Application event bridge
CN110928934A (zh) 一种用于业务分析的数据处理方法和装置
CN108984544A (zh) 一种分布式系统修改配置信息的方法和装置
CN112202598B (zh) 一种日志记录方法及装置
CN110019158A (zh) 一种监控数据质量的方法和装置
WO2023092580A1 (zh) 页面显示方法、装置、存储介质及电子设备
CN114443905A (zh) 接口文档更新方法、装置、电子设备及可读存储介质
CN114461270A (zh) 项目处理方法及装置
CN113312242B (zh) 接口信息管理方法、装置、设备及存储介质
US20230089365A1 (en) Data virtualization adapter in an integration platform
CN110740046B (zh) 分析服务契约的方法和装置
CN118227189B (zh) 数据处理方法及异常提示方法
CN115378996B (zh) 一种系统间数据传输的方法、装置、设备和存储介质
CN112052231B (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