System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种代码入库方法、装置、设备及存储介质制造方法及图纸_技高网

一种代码入库方法、装置、设备及存储介质制造方法及图纸

技术编号:40649948 阅读:4 留言:0更新日期:2024-03-13 21:28
本申请公开了一种代码入库方法、装置、设备及存储介质,涉及软件开发领域,包括:获取若干代码仓库的若干待入库测试代码,并通过Git add命令将若干待入库测试代码添加到对应的暂存区;将首次Git提交生成的Change‑Id写入若干代码仓库的提交消息中;获取基于提交消息生成的推送命令触发持续集成流水线,通过持续集成流水线解析提交消息中的Change‑Id;基于解析结果对待入库测试代码进行编译,判断是否将待入库测试代码合并至预设远端代码仓库。通过将开发者首次提交的Change‑Id写入多仓上库的所有提交消息中,再通过解析Change‑Id同步至本次提交的所有仓库的测试代码,解决多个仓库互相依赖的问题。

【技术实现步骤摘要】

本专利技术涉及软件开发领域,特别涉及一种代码入库方法、装置、设备及存储介质


技术介绍

1、在软件开发过程中,编译门禁系统是一种用于确保代码质量和安全性的技术手段,但是当开发者将互相依赖的多个代码仓库测试代码依次提交时,现有门禁方案不支持多仓库同时代码提交会,导致编译报错门禁拦截开发者提交的测试代码。目前的门禁技术方案对单个仓库代码提交时,可以在获取提交的单个仓库代码后,对测试代码进行编译生成测试结果,并设置代码门禁进行拦截。

2、但是若有一套完整的软件系统由a、b、c...甚至更多的代码仓库模块组成,且在编译构建过程中,存在仓库a依赖仓库b、仓库b依赖仓库c、或者仓库之前互相依赖的场景,该场景由于历史原因无法解耦,这就导致现有的门禁方案只能单个仓库拉取本次的测试代码,但是单仓库的代码又无法编译成功,使门禁报错无法merge代码。因此,如何进行多仓库同时代码提交是本领域有待解决的问题。


技术实现思路

1、有鉴于此,本专利技术的目的在于提供一种代码入库方法、装置、设备及存储介质,通过将开发者首次提交的change-id写入多仓上库的所有提交消息commit-msg中,再通过解析change-id同步至本次提交的所有仓库的测试代码,解决多个仓库互相依赖的问题。其具体方案如下:

2、第一方面,本申请提供了一种代码入库方法,包括:

3、获取若干代码仓库对应的若干待入库测试代码,并通过git add命令将若干所述待入库测试代码添加到对应的若干所述代码仓库的暂存区;

4、将首次git提交生成的change-id写入若干所述代码仓库对应的提交消息中;

5、获取开发者基于所述提交消息生成的推送命令,并根据所述推送命令触发持续集成流水线,以及通过所述持续集成流水线解析所述提交消息中的所述change-id得到解析结果;

6、基于所述解析结果对所述待入库测试代码进行编译,以判断是否将所述待入库测试代码合并至预设远端代码仓库。

7、可选的,所述将首次git提交生成的change-id写入若干所述代码仓库对应的提交消息中,包括:

8、通过git钩子自动将所述首次git提交生成的所述change-id写入若干所述代码仓库对应的提交消息中。

9、可选的,所述基于所述解析结果对所述待入库测试代码进行编译,包括:

10、基于所述解析结果将所述暂存区的若干所述待入库测试代码同步至所述持续集成流水线的本地,以利用所述持续集成流水线对所述待入库测试代码进行编译。

11、可选的,所述通过所述持续集成流水线解析所述提交消息中的所述change-id得到解析结果,包括:

12、通过所述持续集成流水线解析所述提交消息中的所述change-id获取对应的所有commit-id,和所述commit-id对应的目标代码仓库。

13、可选的,所述基于所述解析结果将所述暂存区的若干所述待入库测试代码同步至所述持续集成流水线的本地,包括:

14、基于所述commit-id和所述目标代码仓库的仓库名将所述暂存区对应的待入库测试代码同步至所述持续集成流水线的本地。

15、可选的,所述基于所述解析结果对所述待入库测试代码进行编译,以判断是否将所述待入库测试代码合并至预设远端代码仓库,包括:

16、基于所述解析结果对所述待入库测试代码执行编译构建得到编译结果,并基于预设代码测试流程进行代码测试得到测试结果;

17、基于所述编译结果或所述测试结果判断是否将所述待入库测试代码合并至所述预设远端代码仓库。

18、可选的,所述基于所述编译结果或所述测试结果判断是否将所述待入库测试代码合并至所述预设远端代码仓库,包括:

19、基于所述编译结果或所述测试结果根据预设打分规则确定所述待入库测试代码的得分;

20、若所述得分大于零,则通过预设接口将所述待入库测试代码合并至所述预设远端代码仓库;

21、若所述得分不大于零,则拒绝将所述待入库测试代码合并至所述预设远端代码仓库。

22、第二方面,本申请提供了一种代码入库装置,包括:

23、代码获取模块,用于获取若干代码仓库对应的若干待入库测试代码,并通过gitadd命令将若干所述待入库测试代码添加到对应的若干所述代码仓库的暂存区;

24、代码写入模块,用于将首次git提交生成的change-id写入若干所述代码仓库对应的提交消息中;

25、代码解析模块,用于获取开发者基于所述提交消息生成的推送命令,并根据所述推送命令触发持续集成流水线,以及通过所述持续集成流水线解析所述提交消息中的所述change-id得到解析结果;

26、代码合并模块,用于基于所述解析结果对所述待入库测试代码进行编译,以判断是否将所述待入库测试代码合并至预设远端代码仓库。

27、第三方面,本申请提供了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述的代码入库方法。

28、第四方面,本申请提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的代码入库方法。

29、本申请可以获取若干代码仓库对应的若干待入库测试代码,并通过git add命令将若干所述待入库测试代码添加到对应的若干所述代码仓库的暂存区,然后将首次git提交生成的change-id写入若干所述代码仓库对应的提交消息中,获取开发者基于所述提交消息生成的推送命令后,根据所述推送命令触发持续集成流水线,并通过所述持续集成流水线解析所述提交消息中的所述change-id得到解析结果,之后基于所述解析结果对所述待入库测试代码进行编译,以判断是否将所述待入库测试代码合并至预设远端代码仓库。这样一来,通过将开发者首次提交的change-id写入多仓上库的所有提交消息commit-msg中,再通过解析change-id同步至本次提交的所有仓库的测试代码,解决了多仓同时提交代码且互相依赖时代码提交入库的问题。

本文档来自技高网...

【技术保护点】

1.一种代码入库方法,其特征在于,包括:

2.根据权利要求1所述的代码入库方法,其特征在于,所述将首次Git提交生成的Change-Id写入若干所述代码仓库对应的提交消息中,包括:

3.根据权利要求1所述的代码入库方法,其特征在于,所述基于所述解析结果对所述待入库测试代码进行编译,包括:

4.根据权利要求3所述的代码入库方法,其特征在于,所述通过所述持续集成流水线解析所述提交消息中的所述Change-Id得到解析结果,包括:

5.根据权利要求4所述的代码入库方法,其特征在于,所述基于所述解析结果将所述暂存区的若干所述待入库测试代码同步至所述持续集成流水线的本地,包括:

6.根据权利要求1至5任一项所述的代码入库方法,其特征在于,所述基于所述解析结果对所述待入库测试代码进行编译,以判断是否将所述待入库测试代码合并至预设远端代码仓库,包括:

7.根据权利要求6所述的代码入库方法,其特征在于,所述基于所述编译结果或所述测试结果判断是否将所述待入库测试代码合并至所述预设远端代码仓库,包括:

8.一种代码入库装置,其特征在于,包括:

9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的代码入库方法。

10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的代码入库方法。

...

【技术特征摘要】

1.一种代码入库方法,其特征在于,包括:

2.根据权利要求1所述的代码入库方法,其特征在于,所述将首次git提交生成的change-id写入若干所述代码仓库对应的提交消息中,包括:

3.根据权利要求1所述的代码入库方法,其特征在于,所述基于所述解析结果对所述待入库测试代码进行编译,包括:

4.根据权利要求3所述的代码入库方法,其特征在于,所述通过所述持续集成流水线解析所述提交消息中的所述change-id得到解析结果,包括:

5.根据权利要求4所述的代码入库方法,其特征在于,所述基于所述解析结果将所述暂存区的若干所述待入库测试代码同步至所述持续集成流水线的本地,包括:

6.根据权利要求1至5任一项所述的代码入库方法,...

【专利技术属性】
技术研发人员:李佳静
申请(专利权)人:招银云创信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1