[发明专利]一种代码发布方法、装置和系统有效
| 申请号: | 201911229959.1 | 申请日: | 2019-12-04 |
| 公开(公告)号: | CN110908708B | 公开(公告)日: | 2023-07-21 |
| 发明(设计)人: | 柯细兴;罗洪滨;周健;何明;朱雷;冯玉标;陈磊 | 申请(专利权)人: | 天津奥莱星云科技有限公司 |
| 主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/60 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 郭化雨 |
| 地址: | 300450 天津市滨海新*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 代码 发布 方法 装置 系统 | ||
1.一种代码发布方法,其特征在于,所述方法包括:
从pop3获取上线申请邮件,所述上线申请邮件中包括待发布代码的项目名称和版本号;
通过python脚本登陆到所述上线申请邮件的邮箱,获取所述上线申请邮件的内容;
将所述待发布代码对应的发布任务的信息记录到工单系统中,所述发布任务的信息包括:所述上线申请邮件的发件人、主题、邮件内容、状态以及执行时长;
根据所述待发布代码的项目名称和版本号判断所述待发布代码是否具有直接上线的权限;
若否,则确定所述待发布代码的项目规则,所述项目规则包括:检查所述待发布代码是否需要升级审批或所述待发布代码是否有依赖条件;
若是,则执行所述获取通过QQ机器人客户端发送的代码发布指令的步骤;
当需要发布所述待发布代码时,响应预设触发操作生成所述代码发布指令,所述预设触发操作包括:用户向QQ群中的QQ机器人添加生成所述代码发布指令所需的生成指令;获取通过QQ机器人客户端发送的代码发布指令,所述代码发布指令用于指示是否发布所述待发布代码,所述代码发布指令中包括所述待发布代码的项目名称和版本号;
解析所述代码发布指令;
若所述代码发布指令指示发布所述待发布代码,根据所述待发布代码的项目名称和版本号调用Jenkins接口执行上线操作;
若所述代码发布指令指示不发布所述待发布代码,根据所述待发布代码的项目名称和版本号调用Jenkins接口执行上线终止操作,并生成上线终止操作结果,所述上线终止操作结果用于更新所述工单系统,以结束所述待发布代码对应的发布任务。
2.根据权利要求1所述的方法,其特征在于,所述响应所述预设触发操作生成所述代码发布指令之后,所述方法还包括:
判断触发所述预设触发操作的用户是否具有上线权限;
若是,执行所述获取通过QQ机器人客户端发送的代码发布指令的步骤。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若判断触发所述预设触发操作的用户不具有上线权限,发送无权限提醒消息。
4.一种代码发布装置,其特征在于,所述装置包括:
第一获取单元,用于从pop3获取上线申请邮件,所述上线申请邮件中包括待发布代码的项目名称和版本号;
第一获取单元,还用于通过python脚本登陆到所述上线申请邮件的邮箱,获取所述上线申请邮件的内容;还用于将所述待发布代码对应的发布任务的信息记录到工单系统中,所述发布任务的信息包括:所述上线申请邮件的发件人、主题、邮件内容、状态以及执行时长;
第一获取单元,还用于获取通过QQ机器人客户端发送的代码发布指令,所述代码发布指令用于指示是否发布所述待发布代码,所述代码发布指令中包括所述待发布代码的项目名称和版本号;
判断单元,用于根据所述待发布代码的项目名称和版本号判断所述待发布代码是否具有直接上线的权限;
若否,则确定所述待发布代码的项目规则,所述项目规则包括:检查所述待发布代码是否需要升级审批或所述待发布代码是否有依赖条件;
若是,则执行所述获取通过QQ机器人客户端发送的代码发布指令的步骤;
生成单元,用于当需要发布所述待发布代码时,响应预设触发操作生成所述代码发布指令,所述预设触发操作包括:用户向QQ群中的QQ机器人添加生成所述代码发布指令所需的生成指令;解析单元,用于解析所述代码发布指令;
调用单元,用于若所述代码发布指令指示发布所述待发布代码,根据所述待发布代码的项目名称和版本号调用Jenkins接口执行上线操作;
调用单元,还用于若所述代码发布指令指示不发布所述待发布代码,根据所述待发布代码的项目名称和版本号调用Jenkins接口执行上线终止操作,并生成上线终止操作结果,所述上线终止操作结果用于更新所述工单系统,以结束所述待发布代码对应的发布任务。
5.一种代码发布系统,其特征在于,所述系统包括QQ机器人客户端、邮件客户端和后端服务,所述后端服务包括QQ通信模块、QQ消息接收模块、指令解析模块、指令传递模块和邮件接收模块:
所述QQ机器人客户端,用于发送代码发布指令,所述代码发布指令用于指示是否发布待发布代码,所述代码发布指令中包括待发布代码的项目名称和版本号;还用于当需要发布所述待发布代码时,响应预设触发操作生成所述代码发布指令,所述预设触发操作包括:用户向QQ群中的QQ机器人添加生成所述代码发布指令所需的生成指令;
所述QQ机器人客户端通过所述QQ通信模块与所述后端服务建立通信;所述QQ消息接收模块,用于获取所述QQ机器人客户端发送的代码发布指令;
所述指令解析模块,用于解析所述代码发布指令;
所述指令传递模块,用于若所述代码发布指令指示发布所述待发布代码,根据所述待发布代码的项目名称和版本号调用Jenkins接口,将所述代码发布指令传递给所述Jenkins接口执行上线操作;还用于若所述代码发布指令指示不发布所述待发布代码,根据所述待发布代码的项目名称和版本号调用Jenkins接口执行上线终止操作,并生成上线终止操作结果,所述上线终止操作结果用于更新工单系统,以结束所述待发布代码对应的发布任务;
所述邮件客户端,用于从pop3获取上线申请邮件,所述上线申请邮件中包括待发布代码的项目名称和版本号;
所述邮件客户端,还用于通过python脚本登陆到所述上线申请邮件的邮箱,获取所述上线申请邮件的内容;
所述邮件客户端,用于发送获取上线申请邮件,所述上线申请邮件中包括所述待发布代码的项目名称和版本号;
所述邮件接收模块,用于获取所述上线申请邮件;根据所述待发布代码的项目名称和版本号判断所述待发布代码是否具有直接上线的权限;若是,则触发所述QQ消息接收模块获取通过QQ机器人客户端发送的代码发布指令的步骤;还用于将所述待发布代码对应的发布任务的信息记录到工单系统中,所述发布任务的信息包括:所述上线申请邮件的发件人、主题、邮件内容、状态以及执行时长;还用于确定所述待发布代码的项目规则,所述项目规则包括:检查所述待发布代码是否需要升级审批或所述待发布代码是否有依赖条件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津奥莱星云科技有限公司,未经天津奥莱星云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911229959.1/1.html,转载请声明来源钻瓜专利网。





