掌桥专利:专业的专利平台
掌桥专利
首页

实现代码分支流程和工作项工作流程双向联动的方法

文献发布时间:2024-01-17 01:27:33


实现代码分支流程和工作项工作流程双向联动的方法

技术领域

本发明涉及计算机软件开发技术领域,具体地涉及一种实现代码分支流程和工作项工作流程双向联动的方法、一种DevOps平台、一种计算机可读储存介质以及一种电子设备。

背景技术

DevOps平台是目前业界的一种为软件研发团队提供从产品构思到开发、测试、交付的一站式数字化研发协同平台。其中包括了软件工程师进行代码开发的代码管理模块以及用于工作项(在本文中,需求、缺陷等各项研发工作统称为工作项)管理的工作项管理模块。

在DevOps平台中,分支模型:众多的工程师在进行代码开发协同的时候,为了避免互相影响,通常会采取分支开发的方式,当工作项完成后,再合入集成分支,这样新建分支、开发、合入集成分支的团队开发流程,通常称之为分支模型。工作项工作流:在软件研发过程中,一个工作项需要有特定的流程,例如一个需求类的工作项,要经过需求调研、需求确认、需求开发、需求测试、需求上线等一系列协同研发流程与环节。此研发流程和环节通常称之为工作流。

分支模型中的开发流程与工作项工作流的关系:分支模型中的开发流程是整个工作项工作流中的一部分,是工作项进入代码开发、代码协同阶段的载体。两者具备非常密切的联系。其中,分支模型的开发流程中,能够和工作项工作产生关系的包括如下事件:拉取分支、代码提交、发起评审、评审通过、评审合入、分支删除、Tag创建、Tag删除等。

当前,对于代码分支模型进行代码协同开发的流程和工作项工作流两者之间关系的处理,现有技术通过webhook和脚本,在代码提交、分支合并等场景,调用工作项管理模块的API,从而触发对应的工作项状态变更;这种方案的缺点为不支持工作项的工作流反向控制分支模型中的代码协同流程。

发明内容

本发明实施方式的目的是提供一种实现代码分支流程和工作项工作流程双向联动的方法,以至少解决上述问题。

为了实现上述目的,本发明第一方面提供一种实现代码分支流程和工作项工作流程双向联动的方法,所述方法包括:

配置代码分支流程与工作项工作流程的联动规则信息;

实时侦听与发生代码分支流程事件对应的第一消息,根据所述第一消息在配置的联动规则信息中查询所述代码分支流程与工作项工作流程的联动规则,根据查询到的联动规则触发工作项工作流程进行流转;;

实时侦听与发生工作项工作流程事件对应的第二消息,根据所述第二消息在配置的联动规则信息中查询所述代码分支流程与工作项工作流程的联动规则,根据查询到的联动规则触发代码分支流程进行流转。

本发明实施例中,所述配置的联动规则信息中的联动规则包括:

在发生代码分支流程事件时,确定工作项工作流程从源状态流转至目标状态;

在发生工作项工作流程事件时,代码分支流程从目标状态流转至源状态。

本发明实施例中,所述根据所述第一消息查询代码分支流程与工作项工作流程的联动规则,根据代码分支流程与工作项工作流程的联动规则触发工作项工作流程流转,包括:

解析所述第一消息,获取所述第一消息中的代码信息以及代码事件类型信息;

根据所述代码事件类型信息查询所述代码分支流程与工作项工作流程的联动规则,根据所述代码分支流程与工作项工作流程的联动规则判断该代码分支流程事件是否需要触发工作项工作流程流转;

若是,则根据所述代码分支流程与工作项工作流程的联动规则获取工作项工作流程的流转状态,查询代码信息与工作项信息的关联关系,获取与代码信息关联的工作项信息,得到与所述工作项信息对应的工作项,所述工作项根据所述工作项工作流程的流转状态流转;

若否,则该代码分支流程事件流程终止。

本发明实施例中,所述根据所述第二消息查询代码分支流程与工作项工作流程的联动规则,根据代码分支流程与工作项工作流程的联动规则触发代码分支流程流转,包括:

解析所述第二消息,获取所述第二消息中的工作项信息以及工作项状态;

根据所述工作项状态查询代码分支流程与工作项工作流程的联动规则,根据所述代码分支流程与工作项工作流程的联动规则判断该工作项工作流程事件是否需要触发代码分支流程流程;

若是,则根据所述代码分支流程与工作项工作流程的联动规则获取代码分支流程的流转状态,查询代码信息与工作项信息的关联关系,获取与工作项信息关联的代码信息,得到与所述代码信息对应的代码分支模型,所述代码分支模型根据所述代码分支流程的流转状态流转;

若否,则该代码分支流程事件流程终止。

本发明实施例中,所述方法还包括:

代码分支流程事件发生时,储存代码信息以及与所述代码信息相对应的工作项信息,关联所述代码信息与所述工作项信息的关系;

工作项工作流程事件变更时,储存工作项信息以及工作项状态。

本发明第二方面提供一种DevOps平台,用于实现代码分支流程和工作项工作流双向联动,所述DevOps平台包括:

基础公共功能模块,用于配置代码分支流程与工作项工作流程的联动规则信息;

代码库管理模块,用于实时侦听与发生代码分支流程事件对应的第一消息,根据所述第一消息在配置的联动规则信息中查询所述代码分支流程与工作项工作流程的联动规则,根据查询到的联动规则触发工作项工作流程进行流转;

工作项管理模块,用于实时侦听与发生工作项工作流程事件对应的第二消息,根据所述第二消息在配置的联动规则信息中查询所述代码分支流程与工作项工作流程的联动规则,根据查询到的联动规则触发代码分支流程进行流转。

本发明实施例中,所述基础公共功能模块包括:

联动规则配置单元,用于配置所述代码分支流程与工作项工作流程的联动规则信息;

关联关系储存单元,用于储存代码信息、与代码信息相对应的工作项信息以及所述代码信息与所述工作项信息的关联关系;

消息队列服务单元,用于接收来自所述代码库管理模块的第一消息并将所述第一消息发送至所述工作项管理模块,接收来自所述工作项管理模块的第二消息并将所述第二消息发送至代码库管理模块。

本发明实施例中,所述代码库管理模块包括:

代码评审单元,用于处理代码评审流程以及配置代码评审和工作项的关联关系;

分支Tag管理单元,用于处理代码分支事件及代码Tag事件,配置代码分支事件与工作项的关联关系与代码Tag事件与工作项的关联关系;

代码库单元,用于储存代码,接收代码分支事件和代码Tag事件发生的代码分支流程事件,向所述基础公共功能模块发送代码信息以及代码信息相对应的工作项信息;

代码库事件发送单元,用于在发生代码分支流程事件时发送与发生的代码分支流程事件对应的第一消息;

第一消息侦听单元,用于侦听第二消息、解析所述第二消息以及根据所述第二消息下发变更代码分支流程的操作指令;

所述工作项管理模块包括:

工作项数据链管理单元,用于下发变更工作项工作流程状态的指令;

工作项操作单元,用于变更工作项工作流的状态;

工作项事件发送单元,用于在发生工作项工作流程事件时,发送与发生的工作项工作流程事件对应的第二消息;

第二消息侦听单元,用于侦听第一消息、解析所述第一消息以及根据所述第一消息下发变更工作项工作流程的操作指令。

本发明第三方面提供一种计算机可读储存介质,存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上所述的实现代码分支流程和工作项工作流程双向联动的方法。

本发明第四方面提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的实现代码分支流程和工作项工作流程双向联动的方法。

本发明通过预先配置代码分支流程与工作项工作流程的联动规则,通过查询代码分支流程与工作项工作流程的联动规则,根据代码分支流程与工作项工作流程的联动规则的流转状态自动流转,实现代码分支流程与工作项工作流程的双向联动。以下方法对上述技术方案进行详细阐述。

本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:

图1是本发明一种实施方式提供的一种实现代码分支流程和工作项工作流程双向联动的方法流程图;

图2是本发明一种实施方式提供的一种DevOps平台的结构框图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

如背景技术中所介绍的,目前实现代码分支流程与工作项工作流程的联动,主要为通过webhook和脚本,在代码提交、分支合并等场景,调用工作项管理模块的API,从而触发对应的工作项状态变更;这种方案的缺点一是:使用成本高,需要自行配置webhook和调用脚本;二是:目前不支持工作项的工作流反向控制分支模型中的代码协同流程。

为了实现代码分支流程与工作项工作流程的双向联动,本发明实施方式提供一种实现代码分支流程和工作项工作流程双向联动的方法,包括:配置代码分支流程与工作项工作流程的联动规则信息;实时侦听与发生代码分支流程事件对应的第一消息,根据所述第一消息在配置的联动规则信息中查询所述代码分支流程与工作项工作流程的联动规则,根据查询到的联动规则触发工作项工作流程流转;实时侦听与发生工作项工作流程事件对应的第二消息,根据所述第二消息在配置的联动规则信息中查询所述代码分支流程与工作项工作流程的联动规则,根据查询到的联动规则触发代码分支流程流转。本发明通过预先配置代码分支流程与工作项工作流程的联动规则,通过查询代码分支流程与工作项工作流程的联动规则,根据代码分支流程与工作项工作流程的联动规则的流转状态自动流转,实现代码分支流程与工作项工作流程的双向联动。以下方法对上述技术方案进行详细阐述。

图1是本发明一种实施方式提供的一种实现代码分支流程和工作项工作流程双向联动的方法流程图。如图1所示,本发明实施方式提供一种实现代码分支流程和工作项工作流程双向联动的方法,所述方法包括:

S1.配置代码分支流程与工作项工作流程的联动规则信息。

在本实施例中,所述配置的联动规则信息中的联动规则包括:

在发生代码分支流程事件时,确定工作项工作流程从源状态流转至目标状态;

在发生工作项工作流程事件时,代码分支流程从目标状态流转至源状态。

具体的,所述代码分支流程与工作项工作流程的联动规则的示例如下:

当代码提交入代码库的代码分支流程发生时,工作项工作流程自动由“新建”状态,自动变更为“开发中”状态。

S2.实时侦听与发生代码分支流程事件对应的第一消息,根据所述第一消息在配置的联动规则信息中查询所述代码分支流程与工作项工作流程的联动规则,根据查询到的联动规则触发工作项工作流程进行流转;

在本实施例中,所述根据所述第一消息查询代码分支流程与工作项工作流程的联动规则,根据代码分支流程与工作项工作流程的联动规则触发工作项工作流程流转,包括:

解析所述第一消息,获取所述第一消息中的代码信息以及代码事件类型信息;

根据所述代码事件类型信息查询所述代码分支流程与工作项工作流程的联动规则,根据所述代码分支流程与工作项工作流程的联动规则判断该代码分支流程事件是否需要触发工作项工作流程流转;

若是,则根据所述代码分支流程与工作项工作流程的联动规则获取工作项工作流程的流转状态,查询代码信息与工作项信息的关联关系,获取与代码信息关联的工作项信息,得到与所述工作项信息对应的工作项,所述工作项根据所述工作项工作流程的流转状态流转;

若否,则该代码分支流程事件流程终止。

S3.实时侦听与发生工作项工作流程事件对应的第二消息,根据所述第二消息在配置的联动规则信息中查询所述代码分支流程与工作项工作流程的联动规则,根据查询到的联动规则触发代码分支流程进行流转;

在本实施例中,所述根据所述第二消息查询代码分支流程与工作项工作流程的联动规则,根据代码分支流程与工作项工作流程的联动规则触发代码分支流程流转,包括:

解析所述第二消息,获取所述第二消息中的工作项信息以及工作项状态;

根据所述工作项状态查询代码分支流程与工作项工作流程的联动规则,根据所述代码分支流程与工作项工作流程的联动规则判断该工作项工作流程事件是否需要触发代码分支流程流程;

若是,则根据所述代码分支流程与工作项工作流程的联动规则获取代码分支流程的流转状态,查询代码信息与工作项信息的关联关系,获取与工作项信息关联的代码信息,得到与所述代码信息对应的代码分支模型,所述代码分支模型根据所述代码分支流程的流转状态流转;

若否,则该代码分支流程事件流程终止。

在本实施例中,所述方法还包括:

代码分支流程事件发生时,储存代码信息以及与所述代码信息相对应的工作项信息,关联所述代码信息与所述工作项信息的关系;

工作项工作流程事件变更时,储存工作项信息以及工作项状态。

在本实施例中,以发生代码提交这一代码分支流程事件为例,具体描述代码分支流程触发工作项工作流程流转如下:

步骤一:用户通过代码客户端向代码库单元提交代码Commit,并且在提交代码时,通过提交日志,填写相关的工作项信息;

步骤二:代码库单元向代码库事件发送单元发送动作事件;

步骤三:代码库单元提取步骤一中代码提交的Commit信息与相关的工作项信息,并存储到关联关系存储模块;

步骤四:代码库事件发送单元向消息队列服务单元发送代码提交事件,并将代码提交事件相关信息(包括代码Commit信息)包含在消息体内;

步骤五:工作项管理模块的第二消息侦听单元侦听到步骤四的消息并解析出其中的代码Commit信息、代码事件类型信息;

步骤六:第二消息侦听向工作项操作单元下发操作指令,并将步骤五中解析得到的Commit信息、代码事件类型信息传递给工作项操作单元;

步骤七:工作项操作单元根据步骤六中获得的代码事件类型信息查询联动规则配置单元中的代码分支流程与工作项工作流程的联动规则,以确认该代码事件是否需要自动触发工作项工作流的自动流转。如果需要,则进入步骤八,否则流程终止。

步骤八:工作项操作单元根据步骤六中得到的Commit信息,到关联关系储存单元查询步骤三中存储的代码提交的Commit信息与相关的工作项信息,得到该Commit对应的工作项,并根据步骤七中获得的工作项工作流程的流转状态,对该工作项进行自动工作流状态流转。

其他场景:其他代码分支流程事件触发工作项自动流转的场景与上述场景流程基本相同,此处不再赘述,区别仅在于不同的代码分支流程事件和工作项的关联方式不同。

代码提交事件是在代码提交的日志信息中填写对应的关联工作项信息;

代码评审事件是通过提取评审关联的代码提交日志信息中的关联工作项信息及界面配置双重模式实现代码评审事件与工作项的关联关系设定;

代码分支、Tag删除及创建事件是通过分支、Tag名称以及管理界面建立分支、Tag和工作项的关联关系。

在本实施例中,还具体描述工作项工作流触发代码分支流程流转如下:

步骤一:用户通过工作项数据链管理单元可以反向管理工作项和代码库数据的关联关系

步骤二:用户通过工作项操作单元变更工作项的状态流;

步骤三:工作项操作单元向工作项事件发送单元发送事件,并且将工作项信息、工作项状态信息作为消息报文内容一并发送;

步骤四:工作项事件发送单元向消息队列服务单元发送工作项状态变更消息,并且将工作项信息、工作项状态变更信息作为消息报文内容一并发送;

步骤五:代码库管理模块的第一消息侦听单元侦听到工作项状态信息事件

步骤六:第一消息侦听单元将事件连同工作项信息、工作项状态变更信息一同下发至代码库单元、代码评审处理模块、分支Tag管理单元

步骤七:代码库、代码评审处理模块、分支Tag管理单元从联动规则配置单元中根据代码分支流程与工作项工作流程的联动规则查询该工作项工作流事件是否需要触发代码分支流程事件变更,如果不需要,流程结束,如果需要进入流程八;

流程八:代码库单元、代码评审处理模块、分支Tag管理单元从关联关系储存单元查询步骤七中获得的与工作项信息关联的代码库提交、评审或者分支、Tag的代码信息,并且对这些分支流程事件相关实体进行自动状态变更。

图2是本发明一种实施方式提供的一种DevOps平台的结构框图。如图2所示,本发明实施方式提供本发明第二方面提供一种DevOps平台,用于实现代码分支流程和工作项工作流双向联动,所述DevOps平台包括:基础公共功能模块、代码库管理模块以及工作项管理模块。基础公共功能模块用于配置代码分支流程与工作项工作流程的联动规则信息。代码库管理模块用于实时侦听与发生代码分支流程事件对应的第一消息,根据所述第一消息在配置的联动规则信息中查询所述代码分支流程与工作项工作流程的联动规则,根据查询到的联动规则触发工作项工作流程进行流转。工作项管理模块用于实时侦听与发生工作项工作流程事件对应的第二消息,根据所述第二消息在配置的联动规则信息中查询所述代码分支流程与工作项工作流程的联动规则,根据查询到的联动规则触发代码分支流程进行流转。

本发明实施例中,所述基础公共功能模块包括:联动规则配置单元、关联关系储存单元以及消息队列服务单元。联动规则配置单元用于配置所述代码分支流程与工作项工作流程的联动规则信息;关联关系储存单元用于储存代码信息、与代码信息相对应的工作项信息以及所述代码信息与所述工作项信息的关联关系;消息队列服务单元用于接收来自所述代码库管理模块的第一消息并将所述第一消息发送至所述工作项管理模块,接收来自所述工作项管理模块的第二消息并将所述第二消息发送至代码库管理模块。

本发明实施例中,所述代码库管理模块包括:

代码评审单元,用于处理代码评审流程以及配置代码评审和工作项的关联关系;

分支Tag管理单元,用于处理代码分支事件及代码Tag事件,配置代码分支事件与工作项的关联关系与代码Tag事件与工作项的关联关系;

代码库单元,用于储存代码,接收代码分支事件和代码Tag事件发生的代码分支流程事件,向所述基础公共功能模块发送代码信息以及代码信息相对应的工作项信息;

代码库事件发送单元,用于在发生代码分支流程事件时发送与发生的代码分支流程事件对应的第一消息;

第一消息侦听单元,用于侦听第二消息、解析所述第二消息以及根据所述第二消息下发变更代码分支流程的操作指令;

所述工作项管理模块包括:

工作项数据链管理单元,用于下发变更工作项工作流程状态的指令;

工作项操作单元,用于变更工作项工作流的状态;

工作项事件发送单元,用于在发生工作项工作流程事件时,发送与发生的工作项工作流程事件对应的第二消息;

第二消息侦听单元,用于侦听第一消息、解析所述第一消息以及根据所述第一消息下发变更工作项工作流程的操作指令。

具体的,所述DevOps平台用于实现代码分支流程与工作项工作流程的双向联动,具体实现方法如下:

预先配置代码分支流程与工作项工作流程的联动规则信息。

当用户通过代码客户端向代码库单元提交代码commit并通过提交日志填写与代码相关的工作项信息时,代码库单元向代码库事件发送单元发送代码分支流程事件。代码库单元提取代码commit信息以及相关的工作项信息,将commit信息以及相关的工作项信息储存至基础公共功能模块的关联关系储存单元。代码库事件发送单元向基础公共功能模块的消息队列服务模块发送代码提交事件(代码提交事件属于本发明中的代码分支流程事件),并将该事件对应的第一消息发送至基础公共功能模块的消息队列服务模块。消息队列服务模块将第一消息发送至工作项管理模块的第二消息侦听单元,第二消息侦听单元侦听得到第一消息,并对第一消息进行解析,解析得到代码信息以及代码事件类型信息。第二消息侦听单元向工作项操作单元下发操作指令,并将代码信息以及代码事件类型信息传递给工作项操作单元。工作项操作单元根据代码事件类型信息查询联动规则配置单元中的代码分支流程与工作项工作流程的联动规则,根据联动规则判断工作项是否需要流转状态;若需要,则根据关联关系储存模块中存储的与代码信息关联的工作项信息,根据工作项信息确认需要流转的工作项。工作项操作模块再对该工作项基于确认的流转状态进行流转。

用户通过工作项数据链管理单元可以反向管理工作项和代码库数据的关联关系,用户通过工作项操作单元变更工作项的状态流。工作项操作单元向工作项事件发送单元发送事件,并且将工作项信息、工作项状态信息作为消息报文内容一并发送。工作项事件发送单元向消息队列服务单元发送工作项状态变更消息,并且将工作项信息、工作项状态变更信息作为消息报文内容一并发送。代码库管理模块的第一消息侦听单元侦听到工作项状态信息事件。第一消息侦听单元将事件连同工作项信息、工作项状态变更信息一同下发至代码库单元、代码评审处理模块、分支Tag管理单元。代码库、代码评审处理模块、分支Tag管理单元从联动规则配置单元中根据代码分支流程与工作项工作流程的联动规则查询该工作项工作流事件是否需要触发代码分支流程事件变更,如果不需要,流程结束,如果需要进入流程八。代码库单元、代码评审处理模块、分支Tag管理单元从关联关系储存单元查询步骤七中获得的与工作项信息关联的代码库提交、评审或者分支、Tag的代码信息,并且对这些分支流程事件相关实体进行自动状态变更。

本发明第三方面提供一种计算机可读储存介质,存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上所述的实现代码分支流程和工作项工作流程双向联动的方法。

本发明第四方面提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的实现代码分支流程和工作项工作流程双向联动的方法。

本领域技术人员可以理解实现上述实施方式的方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上结合附图详细描述了本发明的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式对各种可能的组合方式不再另行说明。

此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。

相关技术
  • 用于分析机器人流程自动化(RPA)的测试自动化工作流程的系统和计算机实现的方法
  • 可视化引导无代码构建工作流程并自动验证方法及系统
技术分类

06120116221063