[发明专利]一种在线编码系统的代码托管方法及工具有效
申请号: | 202111581610.1 | 申请日: | 2021-12-22 |
公开(公告)号: | CN114253598B | 公开(公告)日: | 2023-09-05 |
发明(设计)人: | 李倩;赵子墨;李照川;黄浩;吕明逸 | 申请(专利权)人: | 浪潮卓数大数据产业发展有限公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/65 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 冯春连 |
地址: | 214125 江苏省无锡市无锡经济开发区金融一街15号110*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 在线 编码 系统 代码 托管 方法 工具 | ||
1.一种在线编码系统的代码托管方法,其特征在于,该托管方法的实现包括:
在线编码系统对其每个用户都分配一个工作空间,该工作空间用于存储用户编写的代码;在线编码系统的用户账号基本信息、以及用户与服务器工作空间路径的对照关系存储在mysql数据库的列表List1,列表List1为gitlab托管服务提供用户以及代码提交目录的数据依据;
以上述内容为前提,使用gitlab服务,为在线编码系统的每个用户创建一个唯一绑定的gitlab账号,该gitlab账号用于提供存储和管理用户代码文件的gitlab权限;
gitlab权限托管服务提供的功能包括:(1)对接在线编码系统的用户信息,为每个使用在线编码系统的用户建立唯一的gitlab账号,(2)从在线编码系统中获取用户以及用户的工作空间路径,针对绑定gitlab账号的用户,使用定时任务策略,执行用户工作空间代码文件的自动提交和更新,(3)将在线编码系统的用户与gitlab账号的对接及关联关系存储在mysql数据库的列表List2中,(4)通过gitlab API,完成用户创建、工程创建以及代码文件的自动更新及维护;
绑定gitlab账号的用户使用在线编码系统进行代码编辑时,gitlab权限托管服务将绑定gitlab账号的用户所分配工作空间内产生的代码文件自动提交和更新至gitlab服务,具体操作包括:
(1)从在线编码系统中获取列表List1格式的用户信息列表ListUser,
(2)遍历(1)中所述列表ListUser,每次取出一个用户user,user有四个属性:{userId,userName,workPath,userPwd},其中,userId表示用户Id,userName表示用户名称,workPath表示用户工作空间目录,userPwd表示用户系统密码,userPwd使用AES加密策略,加密key为在线编码系统与gitlab权限托管服务约定的字符串,称为publicKey,
(3)对user的信息处理如下:
(i)取user的userId,在列表List2中查询是否有对应数据,如果有,则说明已为该用户创建gitlab账号,执行(iii),如果没有,执行(ii),
(ii)使用publicKey对userPwd进行解密,如果解密成功,则证明了用户信息的安全性,然后调用gitlab API为该用户创建gitlab账号,得到用户对应的gitUserId、gitUserName、gitUserPwd,并将其和用户的userId、userName信息存入列表List2,存储的时候使用解密成功的userPwd作为秘钥,对gitUserPwd进行加密,然后存储到mysql数据中,确保gitlab账号密码保存的安全性,
(iii)取user的workPath,找到其在服务器的相对位置,以workPath为根目录,获取根目录下的文件夹列表ListFolder,继续执行(iv),
(iv)使用publicKey对userPwd进行解密,解密成功后得到解密的userPwd,使用解密的userPwd作为秘钥,解密gitUserPwd,得到用户真实的gitlab账号密码,记为gitUserRealPwd,遍历(iii)中所述文件夹列表ListFolder,每次获取一个文件夹folder,以每个文件夹作为一个代码工程,首先调用gitlab API查询该folder是否已创建git工程,如果已创建,则使用gitUserId和gitUserRealPwd,进行代码的提交和更新即可,否则,先调用gitlab API,传入gitUserId和gitUserRealPwd,创建新的工程,再提交该folder到gitlab服务的仓库。
2.一种在线编码系统的代码托管工具,其特征在于,其实现涉及在线编码系统、gitlab服务和gitlab权限托管服务;
在线编码系统对其每个用户都在服务器上分配一个工作空间,该工作空间用于存储用户编写的代码;在线编码系统的用户账号基本信息、以及用户与服务器工作空间路径的对照关系存储在mysql数据库的列表List1,列表List1为gitlab托管服务提供用户以及代码提交目录的数据依据;
gitlab服务用于辅助在线编码系统的每个用户创建一个唯一绑定的gitlab账号,该gitlab账号用于提供存储和管理用户代码文件的gitlab权限;
gitlab权限托管服务提供的功能包括:(1)对接在线编码系统的用户信息,为每个使用在线编码系统的用户建立唯一的gitlab账号,(2)从在线编码系统中获取用户以及用户的工作空间路径,针对绑定gitlab账号的用户,使用定时任务策略,执行用户工作空间代码文件的自动提交和更新,(3)将在线编码系统的用户与gitlab账号的对接及关联关系存储在mysql数据库的列表List2中,(4)通过gitlab API,完成用户创建、工程创建以及代码文件的自动更新及维护;
绑定gitlab账号的用户使用在线编码系统进行代码编辑时,gitlab权限托管服务用于将绑定gitlab账号的用户所分配工作空间内产生的代码文件自动提交和更新至gitlab服务,执行的具体操作如下:
(1)从在线编码系统中获取列表List1格式的用户信息列表ListUser,
(2)遍历(1)中所述列表ListUser,每次取出一个用户user,user有四个属性:{userId,userName,workPath,userPwd},其中,userId表示用户Id,userName表示用户名称,workPath表示用户工作空间目录,userPwd表示用户系统密码,userPwd使用AES加密策略,加密key为在线编码系统与gitlab权限托管服务约定的字符串,称为publicKey,
(3)对user的信息处理如下:
(i)取user的userId,在列表List2中查询是否有对应数据,如果有,则说明已为该用户创建gitlab账号,执行(iii),如果没有,执行(ii),
(ii)使用publicKey对userPwd进行解密,如果解密成功,则证明了用户信息的安全性,然后调用gitlab API为该用户创建gitlab账号,得到用户对应的gitUserId、gitUserName、gitUserPwd,并将其和用户的userId、userName信息存入列表List2,存储的时候使用解密成功的userPwd作为秘钥,对gitUserPwd进行加密,然后存储到mysql数据中,确保gitlab账号密码保存的安全性,
(iii)取user的workPath,找到其在服务器的相对位置,以workPath为根目录,获取根目录下的文件夹列表ListFolder,继续执行(iv),
(iv)使用publicKey对userPwd进行解密,解密成功后得到解密的userPwd,使用解密的userPwd作为秘钥,解密gitUserPwd,得到用户真实的gitlab账号密码,记为gitUserRealPwd,遍历(iii)中所述文件夹列表ListFolder,每次获取一个文件夹folder,以每个文件夹作为一个代码工程,首先调用gitlab API查询该folder是否已创建git工程,如果已创建,则使用gitUserId和gitUserRealPwd,进行代码的提交和更新即可,否则,先调用gitlab API,传入gitUserId和gitUserRealPwd,创建新的工程,再提交该folder到gitlab服务的仓库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮卓数大数据产业发展有限公司,未经浪潮卓数大数据产业发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111581610.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:边界网闸无感交互方法
- 下一篇:一种村镇污水处理设备及其处理方法