[发明专利]一种代码提交控制方法、装置及计算机设备在审
申请号: | 202010348831.3 | 申请日: | 2020-04-28 |
公开(公告)号: | CN113568651A | 公开(公告)日: | 2021-10-29 |
发明(设计)人: | 赵振兴;何定涛;张翔;邓文杰;肖潏灏 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王兆林 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 提交 控制 方法 装置 计算机 设备 | ||
1.一种代码提交控制方法,其特征在于,包括:
获得向目标分支提交代码时的代码提交事件触发的代码提交请求;所述代码提交请求能用于指示所述代码提交事件的提交信息,所述提交信息至少包括待提交代码的代码信息以及单据标识;
根据所述单据标识跟踪所述代码提交事件关联的目标单据;其中,预先为项目制定了至少一个单据,并为各个单据规定了相对应的合法分支,所述合法分支为允许提交代码的分支;不同单据分别与项目的不同规划相对应,每个规划需通过至少一次代码提交事件完成,代码提交事件关联的单据为代码提交事件所对应的规划关联的单据;
在根据所述目标单据关联的合法分支确定允许向所述目标分支提交所述待提交代码的条件下,向所述目标分支提交所述待提交代码;
在根据所述目标单据关联的合法分支确定不允许向所述目标分支提交所述待提交代码的条件下,阻断所述待提交代码向所述目标分支的提交。
2.根据权利要求1所述的方法,其特征在于,所述提交信息包括待提交代码的代码信息以及提交注释信息,所述单据标识携带在所述提交注释信息中;
所述根据所述单据标识跟踪所述代码提交事件关联的目标单据,包括:
触发前置钩子;
利用所述前置钩子对所述提交信息进行数据解析,得到单据标识;
根据所述单据标识确定所述代码提交事件关联的目标单据,并读取所述目标单据的迭代属性,以获得所述目标单据所属的目标迭代;其中,预先在不同迭代中记录了所规定的允许提交代码的合法分支;
读取所述目标迭代记录的合法分支作为所述目标单据关联的合法分支。
3.根据权利要求2所述的方法,其特征在于,在根据所述单据标识确定所述代码提交事件关联的目标单据之后,还包括:
读取所述待提交代码的提交目录、所述目标单据的提交人属性和状态属性中的至少一种;待提交代码的提交目录为所述目标分支所对应目录或所述目标分支下的相应目录;
对所述代码提交事件执行全局规则检查;所述全局规则检查包括如下的至少一种:确定所述代码提交事件的提交目录是否为禁止提交的目录,确定所述代码提交事件的提交人是否为所述目标单据的提交人属性指定的提交人,基于所述目标单据的状态属性确定所述目标单据是否为未完成状态;
若所述代码提交事件未通过所述全局规则检查,则阻断所述代码提交事件的待提交代码向所述目标分支的提交;
若所述代码提交事件通过所述全局规则检查,则触发对所述代码提交事件的项目规则检查,并在所述项目规则检查中执行是否允许向目标分支提交所述待提交代码的分支合入判定。
4.根据权利要求3所述的方法,其特征在于,还包括:
若所述代码提交事件满足以下条件的至少之一,则跳过所述全局规则检查和所述项目规则检查中的至少一种,并向所述目标分支提交所述待提交代码:
所述代码提交事件的提交人为前置钩子中规定的白名单用户;
所述代码提交事件的提交目录为前置钩子中规定的白名单目录。
5.根据权利要求1所述的方法,其特征在于,在完成向所述目标分支提交所述待提交代码之后,还包括:
触发后置钩子;
利用所述后置钩子执行以下处理中的至少之一:生成并记录此次代码提交事件的提交记录信息;在所述目标单据关联的合法分支的数量为多个的情况下,进行分支合入提醒;
其中,所述分支合入提醒用于提醒提交者将所述待提交代码合入所述目标单据关联的多个合法分支中除所述目标分支之外的其他分支中。
6.根据权利要求5所述的方法,其特征在于,在触发所述后置钩子后,还包括:
检测所述单据标识是否合法;
若合法,则确定是否需忽略本次的代码提交事件;其中,需忽略本次的代码提交事件的情况包括如下的至少一种:所述代码提交事件的提交人为后置钩子中规定的白名单用户,所述代码提交事件的提交目录为后置钩子中规定的白名单目录;
若不需忽略本次的代码提交事件,则触发所述生成并记录此次代码提交事件的提交记录信息的步骤和在所述目标单据关联的合法分支的数量为多个的情况下进行分支合入提醒的步骤中的至少一个步骤;
若所述单据标识不合法或者需忽略本次的代码提交事件,则结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010348831.3/1.html,转载请声明来源钻瓜专利网。