CN117311788A - 一种处理git工作流的方法和装置 - Google Patents

一种处理git工作流的方法和装置 Download PDF

Info

Publication number
CN117311788A
CN117311788A CN202311264321.8A CN202311264321A CN117311788A CN 117311788 A CN117311788 A CN 117311788A CN 202311264321 A CN202311264321 A CN 202311264321A CN 117311788 A CN117311788 A CN 117311788A
Authority
CN
China
Prior art keywords
merging
target
identification information
requests
user
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
CN202311264321.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.)
Beijing Shangyin Microchip Technology Co ltd
Original Assignee
Beijing Shangyin Microchip 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 Beijing Shangyin Microchip Technology Co ltd filed Critical Beijing Shangyin Microchip Technology Co ltd
Priority to CN202311264321.8A priority Critical patent/CN117311788A/zh
Publication of CN117311788A publication Critical patent/CN117311788A/zh
Pending legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Computer Security & Cryptography (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种处理git工作流的方法和装置,所述方法包括:根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息;响应于第一用户选择的多个目标分支作为所述源分支的合并对象,根据所述多个目标分支中的各目标分支、所述源分支和所述第二标识信息创建多个合并请求;响应于第二用户的操作请求,从所述服务器中获取多个合并请求并将所述合并请求进行合并处理。针对同一项目中的多个目标分支与源分支的代码合并需求,开发人员一次性创建多个合并请求,审核人员一次处理多个合并请求,减少冗余操作,减小开发人员和审核人员的工作量。

Description

一种处理git工作流的方法和装置
技术领域
本申请涉及计算机技术领域,特别是涉及一种处理git工作流的方法和装置。
背景技术
随着DevOps(Development and Operations)的发展,代码版本管理成为持续集成阶段必不可少的工作。git作为代码托管系统,不可避免涉及到多人协作,进而衍生出git工作流。
在日常开发中,合并代码和审核代码需要符合公司要求的git工作流,而git工作流往往会有很多的冗余操作。比如,当生产环境的代码需要紧急更新迭代时,问题修复后代码会在发版分支,发版分支需要分别向预生产分支、测试分支和开发分支合并,分别创建合并请求并将合并请求并指向审核人员,待审核通过后合并代码。然而,在创建合并请求以及审核合并请求的过程中会存在诸多的冗余操作,增加开发人员和审核人员的工作量。
发明内容
基于上述问题,本申请提供了一种处理git工作流的方法和装置,减少冗余操作,减小开发人员和审核人员的工作量。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供一种处理git工作流的方法,所述方法包括:
根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息;
响应于第一用户选择的多个目标分支作为所述源分支的合并对象,根据所述多个目标分支中的各目标分支、所述源分支和所述第二标识信息创建多个合并请求,并将所述多个合并请求发送到服务器中;
响应于第二用户的操作请求,从所述服务器中获取多个合并请求并将所述多个合并请求进行合并处理。
可选地,所述根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息,具体包括:
响应于第一用户点击目标页面,通过预设插件获取所述目标页面对应的页面链接;
当所述页面链接对应的路径为非分组路径时,且所述路径为项目路径时,请求所述项目路径的接口获取目标项目的第一标识信息;
根据所述第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
可选地,所述根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息,具体包括:
获取所述第一用户在预设时间段内的提交记录;
根据所述提交记录获取所述目标项目的第一标识信息;
根据所述第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
可选地,所述响应于第二用户的操作请求,从所述服务器中获取多个合并请求并将所述多个合并请求进行合并处理,具体包括:
响应于第二用户的操作请求,从服务器中获得所有第二标识对应的合并请求;
根据所述合并请求的项目路径对所述合并请求进行分类,得到多个关于所述目标项目的合并请求;
将多个关于所述目标项目的合并请求进行合并处理。
可选地,所述将所述多个合并请求发送到服务器中之后,所述方法还包括:
生成合并请求链接;
调用办公通信软件的钩子函数,将所述合并请求链接发送给对应的第二用户。
可选地,所述响应于第二用户的操作请求,从所述服务器中获取多个合并请求并将所述多个合并请求进行合并处理,具体包括:
响应于第二用户点击所述合并请求链接,从服务器中获得多个关于所述目标项目的合并请求;
将多个关于所述目标项目的合并请求进行合并处理。
可选地,所述方法还包括:
判断所述合并请求之间是否存在合并冲突,并得到判断结果;
若所述判断结果指示所述合并请求之间存在合并冲突,关闭所述合并请求对应的目标项目下的所有第一用户的合并请求功能。
第二方面,本申请实施例提供一种处理git工作流的装置,所述装置包括:获取模块、创建模块、合并模块;
所述获取模块,用于根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息;
所述创建模块,用于响应于第一用户选择的多个目标分支作为所述源分支的合并对象,根据所述多个目标分支中的各目标分支、所述源分支和所述第二标识信息创建多个合并请求;
所述合并模块,用于响应于第二用户的操作请求,从所述服务器中获取多个合并请求并将所述多个合并请求进行合并处理。
可选地,获取模块,具体用于:
响应于第一用户点击目标页面,通过预设插件获取所述目标页面对应的页面链接;
当所述页面链接对应的路径为非分组路径时,且所述路径为项目路径时,请求所述项目路径的接口获取目标项目的第一标识信息;
根据所述第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
可选地,获取模块,具体用于:
获取所述第一用户在预设时间段内的提交记录;
根据所述提交记录获取所述目标项目的第一标识信息;
根据所述第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
可选地,合并模块,具体用于:
响应于第二用户的操作请求,从服务器中获得所有第二标识对应的合并请求;
根据所述合并请求的项目路径对所述合并请求进行分类,得到多个关于所述目标项目的合并请求;
将多个关于所述目标项目的合并请求进行合并处理。
可选地,所述装置还包括:生成模块;
所述生成模块,具体用于生成合并请求链接;调用办公通信软件的钩子函数,将所述合并请求链接发送给对应的第二用户。
可选地,合并模块,具体用于:
响应于第二用户点击所述合并请求链接,从服务器中获得多个关于所述目标项目的合并请求;
将多个关于所述目标项目的合并请求进行合并处理。
可选地,所述装置还包括:判断模块;
所述判断模块,用于判断所述合并请求之间存在合并冲突,并得到判断结果;若所述判断结果指示所述合并请求之间存在合并冲突,关闭所述合并请求对应的目标项目下的所有第一用户的合并请求功能。
相较于现有技术,本申请具有以下有益效果:
首先,根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息;然后,响应于第一用户选择的多个目标分支作为源分支的合并对象,根据多个目标分支中的各目标分支、源分支和第二标识信息创建多个合并请求;最后,响应于第二用户的操作请求,从服务器中获取多个合并请求并将多个合并请求进行合并处理。本申请针对同一项目中的多个目标分支与源分支的代码合并需求,一次性创建多个合并请求并将多个合并请求一起发送到服务器,然后审核人员从服务器中获取合并请求并将多个合并请求进行合并处理。对于开发人员而言,只需要进行一次操作便可创建多个合并请求;对于审核人员而言,将多个合并请求进行合并处理,均减少了冗余操作,减小了开发人员和审核人员的工作量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种处理git工作流的方法的流程图;
图2为本申请实施例提供的一种发起对象的操作界面示意图;
图3为本申请实施例提供的另一种处理git工作流的方法的流程图;
图4为本申请实施例提供的一种指派对象的操作界面示意图;
图5为本申请实施例提供的一种处理git工作流的装置的结构示意图。
具体实施方式
正如前文描述,在合并特性分支时,代码需要进入测试环境,发起对象需要向开发分支和测试分支的代码审核人员分别发起合并请求;代码需要进入预发版环境,发起对象需要向开发分支、测试分支和预生产分支的代码审核人员分别发起合并请求;当生产环境的代码需要紧急更新迭代时,问题修复后代码会在发版分支,发起对象需要向预生产分支、测试分支和开发分支的代码审核人员发起合并请求,待代码审核人员审核通过,分别将合并请求对应的分支进行合并。也就是说,开发人员需要进行多次操作创建多个合并请求,而审核人员则需要对每个合并请求进行操作,不管是对于开发人员还是审核人员在处理git工作流的时候均存在大量的冗余操作。
为解决上述技术问题,本申请实施例提供一种处理git工作流的方法,该方法包括:首先,根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息;然后,响应于第一用户选择的多个目标分支作为源分支的合并对象,根据多个目标分支中的各目标分支、源分支和第二标识信息创建多个合并请求,并将多个合并请求发送到服务器中;最后,响应于第二用户的操作请求,从服务器中获取多个合并请求并将多个合并请求进行合并处理。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,该图为本申请实施例提供的一种处理git工作流的方法的流程图。
如图1所示,该方法包括:
S101:根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
其中,第一用户可以是开发人员,第二用户可以是指派对象;第一标识信息可以是目标项目的ID或目标项目的名称,第二标识信息可以是指派对象的ID或指派对象的名称。需要注意的是,在本申请实施例中指派对象也是审核人员。
在一种可选的实施方式中,响应于第一用户点击目标页面,获取目标页面对应的页面链接;当页面链接对应的路径为非分组路径时,且所述路径为项目路径时,请求所述项目路径的接口获取目标项目的第一标识信息;根据第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
在目标页面中通过chrome插件匹配目标页面的页面链接,将页面链接以“/”分隔符进行截取得到路径数组。遍历路径数组中的每一个元素,检测是否存在分组路径;若不存在分组路径则继续检测是否为项目路径;若是项目路径则获取目标项目的项目ID或名称;继而根据目标项目的ID获取源分支、目标分支以及指派对象ID或名称。
作为示例,请求GitLab接口/groups检测数组中的元素是否为group,若不是group,则请求GitLab接口/projects获取projectId与projectName;请求GitLab接口/projects/:projectId/repository/branches,可以得到为源分支source_branch、目标分支target_branch以及指派对象assignee_id。
在另一种可选的实施方式中,获取第一用户在预设时间内的提交记录;根据提交记录获取目标项目的第一标识信息;根据第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。其中,预设时间可根据用户的需求自行设定或更改。
作为示例,请求GitLab接口/events,参数action为提交状态pushed,取返回值的第一条数据,判断创建时间参数created_at是否在预设时间内,如果条件成立,通过project_id获取项目信息,通过push_data.ref获取源分支和目标分支。
上述两种实施例中,通过判断分组路径以及项目路径获取项目信息的方式是在插件页面内所进行的;而通过预设时间内的提交记录获取项目信息的方式则不需要在目标页面中执行。
S102:响应于第一用户选择的多个目标分支作为源分支的合并对象,根据多个目标分支中的各目标分支、源分支和第二标识信息创建多个合并请求。
具体地,每一个目标分支、源分支和指派对象可生成一个合并请求,也就是说多个目标分支需要生成多个合并请求。当第一数目足够大时,生成合并请求的操作中存在的大量冗余操作将增加开发人员的工作量。
作为示例,调用GitLab接口/projects/:projectId/merge_requests,根据源分支source_branch、目标分支target_branch以及指派对象assignee_id在GitLab服务器中创建合并请求。
其中,第一数目为大于或等于2的整数,目标分支如图2中的develop分支、test1分支、test2分支、master分支、test3分支和test5分支,可以通过勾选的方式选择对应的目标分支和指派对象。也就是说,当第一用户选定所有的目标分支作为源分支的合并对象时,需要在在GitLab服务器中创建6个合并请求。
作为示例,若源分支为source_branch;目标分支为develop分支、test1分支、test2分支和master分支;指派对象为assignee_id1。则source_branch、develop分支和assignee_id1创建一个合并请求,source_branch、test1分支和assignee_id1创建一个合并请求,source_branch、test2分支和assignee_id1创建一个合并请求,source_branch、master分支和assignee_id1创建一个合并请求;当指派对象为assignee_id2创建的合并请求以此类推。S103:响应于第二用户的操作请求,从服务器中获取多个合并请求并将合并请求进行合并处理。
作为示例,指派对象从服务器中获取合并请求,若针对同一个项目下的多个合并请求,则将从服务器中获取到的合并请求进行合并处理。也就是说,假设有6个合并请求,指派对象将6个合并请求进行合并处理,即只需要进行一次操作便可对6个合并请求进行操作处理。
首先,根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息;然后,响应于第一用户选择的多个目标分支作为源分支的合并对象,根据多个目标分支中的各目标分支、源分支和第二标识信息创建多个合并请求,并将多个合并请求发送到服务器中;最后,响应于第二用户的操作请求,从服务器中获取多个合并请求并将多个合并请求进行合并处理。对于发起对象而言,只需发起一次合并请求便可以实现多分支合并,减少了大量的冗余操作进而提升了代码的合并效率;对于审核人员而言,只需要执行一次操作便可完成多个合并请求的处理,减少了大量的冗余操作进而提升了代码的合并效率。
参见图3,该图为本申请实施例提供的另一种处理git工作流的方法的流程图。
如图3所示,该方法包括:
S301:根据发起对象所在公司的内部GitLab链接,向chrome插件中的目标页面注入一段JavaScript代码和层叠样式表,实现一个入口按钮和弹窗,弹窗作为容器。
可以理解的是,为了使得插件操作GitLab的功能可用,访问人员需要具有相应的权限。本申请实施例中,在GitLab启用相应权限,生成个人权限凭证(Personal AccessTokens)。将权限凭证(Access Tokens)输入插件指定输入框,插件会调用chrome浏览器存储功能(chrome.storage.sync),将权限凭证存储下来,当每次加载插件的时候,都会首先调用浏览器存储功能,读取权限凭证。当插件中存在权限凭证,将权限凭证设置为插件ajaxrequest请求的headers的PRIVATE-TOKEN,实现鉴权,进而插件与GitLab服务器交互。
S302:根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
当第一用户输入PRIVATE-TOKEN,鉴权成功之后,根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
除此之外,还可以通过请求GitLab接口/user获取userId,即发起对象的信息。对于指派对象而言,可以收到多个发起对象发送的合并请求,比如,userId1、userId2和userId3。
S303:响应于第一用户选择的多个目标分支作为源分支的合并对象,根据多个目标分支中的各目标分支、源分支和第二标识信息创建多个合并请求。
在一种可选的实施方式中,当创建合并请求成功之后,合并请求接口返回信息指示合并请求创建成功,插件针对合并请求创建成功生成链接,调用办公通信软件的hook,将链接消息通知给指派对象,以便指派对象尽快处理相应的合并请求。
S304:判断合并请求之间是否存在合并冲突。
作为示例,当合并请求之间存在合并冲突时,请求GitLab接口/projects/:projectId/merge_requests,参数state为opened,author_id为当前用户id,接口返回合并请求列表,即可获取到每个合并请求id(iid),继而请求GitLab接口/projects/:projectId/merge_requests/:merge_request_iid,删除掉指定的合并请求,达到关闭该项目下所有当前用户的待合并请求功能,即将该用户创建的合并请求对应的状态设置为关闭状态。
通过对合并请求之间是否存在合并冲突进行判断,当合并请求之间存在合并冲突,或发起了错误的合并请求时,插件提供了关闭该项目下所有当前用户的待合并请求功能,避免误操作。
S305:响应于第二用户的操作请求,从服务器中获取多个合并请求并将合并请求进行合并处理。
在一种可选的实施方式中,指派对象请求GitLab接口/merge_requests,配置请求参数scope为assigned_to_me,state为opened,即指派给当前用户的合并请求,并且合并请求的状态是打开的。如图4所示,图4为本申请实施例提供的一种指派对象的操作界面示意图,在图4中,指派对象收到的合并请求包括以下两种:其一,dev-team-front/rtfe-biz-apps/rtfe-biz-order1;其二,feature-202307-edt->hotfeat-202307-edt等。
响应于指派对象的操作请求,从服务器中获取到指派给当前用户的合并请求信息,接口返回值是个数组,遍历数组,数组的每个元素都是一个合并请求信息,合并请求信息中的references.full含有项目路径。创建一个Map,根据项目路径将合并请求进行分组,进而渲染为以项目为组的一组组合并请求,将每个项目对应的一组合并请求进行合并操作。在分组时,为每一个合并请求添加一个是否合并过的标识,未合并过的标示渲染为可合并图标,已合并过的标示渲染为已合并字样。
作为示例,合并处理的处理过程中,首先判断该条合并请求的状态与是否合并过的标示,如果状态是can_be_merged,且标示未合并过,则请求GitLab接口/projects/:projectId/merge_requests/:merge_request_iid/merge,如果接口返回成功,则合并成功,将标示改变为已合并过;如果接口返回失败,则提示用户合并失败。
作为示例,首先判断该条合并请求的状态与是否合并过的标示,如果状态是can_be_merged,且标示未合并过,则请求GitLab接口/projects/:projectId/merge_requests/:merge_request_iid/merge,如果接口返回成功,则合并成功,将标示改变为已合并过;如果接口返回失败,则提示用户合并失败。
参见图5,该图为本申请实施例提供的本申请实施例提供一种处理git工作流的装置,装置包括:获取模块501、创建模块502、合并模块503;
获取模块501,用于根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息;
创建模块502,用于响应于第一用户选择的多个目标分支作为源分支的合并对象,根据多个目标分支中的各目标分支、源分支和第二标识信息创建多个合并请求;
合并模块503,用于响应于第二用户的操作请求,从服务器中获取多个合并请求并将多个合并请求进行合并处理。
可选地,获取模块501,具体用于:
响应于第一用户点击目标页面,通过预设插件获取目标页面对应的页面链接;
当页面链接对应的路径为非分组路径时,且路径为项目路径时,请求项目路径的接口获取目标项目的第一标识信息;
根据第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
可选地,获取模块501,具体用于:
获取第一用户在预设时间段内的提交记录;
根据提交记录获取目标项目的第一标识信息;
根据第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
可选地,合并模块503,具体用于:
响应于第二用户的操作请求,从服务器中获得所有第二标识对应的合并请求;
根据合并请求的项目路径对合并请求进行分类,得到多个关于目标项目的合并请求;
将多个关于目标项目的合并请求进行合并处理。
可选地,装置还包括:生成模块;
生成模块,具体用于生成合并请求链接;调用办公通信软件的钩子函数,将合并请求链接发送给对应的第二用户。
可选地,合并模块,具体用于:
响应于第二用户点击合并请求链接,从服务器中获得多个关于目标项目的合并请求;
将多个关于目标项目的合并请求进行合并处理。
可选地,装置还包括:判断模块;
判断模块,用于判断合并请求之间是否存在合并冲突,并得到判断结果;若判断结果指示合并请求之间存在合并冲突,关闭合并请求对应的目标项目下的所有第一用户的合并请求功能。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种处理git工作流的方法,其特征在于,所述方法包括:
根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息;
响应于第一用户选择的多个目标分支作为所述源分支的合并对象,根据所述多个目标分支中的各目标分支、所述源分支和所述第二标识信息创建多个合并请求;
响应于第二用户的操作请求,从所述服务器中获取多个合并请求并将所述合并请求进行合并处理。
2.根据权利要求1所述的方法,其特征在于,所述根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息,具体包括:
响应于第一用户点击目标页面,获取所述目标页面对应的页面链接;
当所述页面链接对应的路径为非分组路径时,且所述路径为项目路径时,请求所述项目路径的接口获取目标项目的第一标识信息;
根据所述第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
3.根据权利要求1所述的方法,其特征在于,所述根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息,具体包括:
获取所述第一用户在预设时间段内的提交记录;
根据所述提交记录获取所述目标项目的第一标识信息;
根据所述第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
4.根据权利要求1所述的方法,其特征在于,所述响应于第二用户的操作请求,从所述服务器中获取多个合并请求并将所述多个合并请求进行合并处理,具体包括:
响应于第二用户的操作请求,从服务器中获得所有第二标识对应的合并请求;
根据所述合并请求的项目路径对所述合并请求进行分类,得到多个关于所述目标项目的合并请求;
将多个关于所述目标项目的合并请求进行合并处理。
5.根据权利要求1所述的方法,其特征在于,所述将所述多个合并请求发送到服务器中之后,所述方法还包括:
生成合并请求链接;
调用办公通信软件的钩子函数,将所述合并请求链接发送给对应的第二用户。
6.根据权利要求5所述的方法,其特征在于,所述响应于第二用户的操作请求,从所述服务器中获取多个合并请求并将所述多个合并请求进行合并处理,具体包括:
响应于第二用户点击所述合并请求链接,从服务器中获得多个关于所述目标项目的合并请求;
将多个关于所述目标项目的合并请求进行合并处理。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
判断所述合并请求之间是否有存在合并冲突,并得到判断结果;
若所述判断结果指示所述合并请求之间存在合并冲突,关闭所述合并请求对应的目标项目下的所有第一用户的合并请求功能。
8.一种处理git工作流的装置,其特征在于,所述装置包括:获取模块、创建模块、合并模块;
所述获取模块,用于根据获取到的目标项目的第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息;
所述创建模块,用于响应于第一用户选择的多个目标分支作为所述源分支的合并对象,根据所述多个目标分支中的各目标分支、所述源分支和所述第二标识信息创建多个合并请求;
所述合并模块,用于响应于第二用户的操作请求,从所述服务器中获取多个合并请求并将所述多个合并请求进行合并处理。
9.根据权利要求8所述的装置,其特征在于,所述获取模块,具体用于:
响应于第一用户点击目标页面,获取所述目标页面对应的页面链接;
当所述页面链接对应的路径为非分组路径时,且所述路径为项目路径时,请求所述项目路径的接口获取目标项目的第一标识信息;
根据所述第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
10.根据权利要求8所述的装置,其特征在于,所述获取模块,具体用于:
获取所述第一用户在预设时间段内的提交记录;
根据所述提交记录获取所述目标项目的第一标识信息;
根据所述第一标识信息得到对应的源分支、目标分支和第二用户的第二标识信息。
CN202311264321.8A 2023-09-27 2023-09-27 一种处理git工作流的方法和装置 Pending CN117311788A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311264321.8A CN117311788A (zh) 2023-09-27 2023-09-27 一种处理git工作流的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311264321.8A CN117311788A (zh) 2023-09-27 2023-09-27 一种处理git工作流的方法和装置

Publications (1)

Publication Number Publication Date
CN117311788A true CN117311788A (zh) 2023-12-29

Family

ID=89287892

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311264321.8A Pending CN117311788A (zh) 2023-09-27 2023-09-27 一种处理git工作流的方法和装置

Country Status (1)

Country Link
CN (1) CN117311788A (zh)

Similar Documents

Publication Publication Date Title
CN108346028B (zh) 一种业务审批处理方法、装置及系统
CN108845940B (zh) 一种企业级信息系统自动化功能测试方法和系统
CN112104709B (zh) 智能合约的处理方法、装置、介质及电子设备
CN109460841B (zh) 用户开户方法、系统及存储介质
CN109814995A (zh) 任务调度方法、装置、计算机设备和存储介质
CN112364049B (zh) 数据同步脚本生成方法、系统、终端及存储介质
WO2021008576A1 (zh) 上下文信息管理方法、装置、系统及计算机可读存储介质
CN114637511A (zh) 代码测试系统、方法、装置、电子设备及可读存储介质
CN114741066B (zh) 区块链应用的生成方法及生成系统
CN116795701A (zh) 一种接口程序的通用测试实例的生成方法和装置
CN116719735A (zh) 一种测试用例生成方法及装置
CN117311788A (zh) 一种处理git工作流的方法和装置
CN112015715A (zh) 工业互联网数据管理服务测试方法及系统
CN112256978B (zh) 一种基于数据模型的数据处理方法、装置、介质
CN117667643A (zh) 测试用例集的演化方法、装置、计算设备集群及存储介质
CN114756224A (zh) 一种活动执行方法及装置
Habibi et al. Generating test as a web service (TaaWS) through a method-based attribute grammar
CN115330171A (zh) 业务流程控制方法、装置、计算机设备及可读存储介质
CN111427770B (zh) 一种资源测试方法及相关设备
CN115701591A (zh) 业务流程测试方法、装置、介质及电子设备
CN113495723A (zh) 一种调用功能组件的方法、装置及存储介质
CN113806327A (zh) 一种数据库设计方法、装置及相关设备
CN117435243B (zh) 一种自动化合包及部署方法与系统
CN116562884B (zh) 数据要素流通方法、装置、电子设备及存储介质
CN116305218B (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