一种在线编码系统的代码托管方法及工具技术方案

技术编号:32858625 阅读:10 留言:0更新日期:2022-03-30 19:34
本发明专利技术公开一种在线编码系统的代码托管方法及工具,涉及代码托管技术领域,包括:针对在线编码系统对其每个用户都分配一个工作空间的前提,使用gitlab服务,为在线编码系统的每个用户创建一个唯一绑定的gitlab账号,该gitlab账号用于提供存储和管理用户代码文件的gitlab权限;绑定gitlab账号的用户使用在线编码系统进行代码编辑时,gitlab权限托管服务将绑定gitlab账号的用户所分配工作空间内产生的代码文件自动提交和更新至gitlab服务。本发明专利技术依托gitlab服务和gitlab权限托管服务,实现了代码的版本管理、历史记录追溯功能,扩展了在线编码系统代码管理功能的可追溯性和稳定性,增强了用户代码存储的安全性。增强了用户代码存储的安全性。增强了用户代码存储的安全性。

【技术实现步骤摘要】
一种在线编码系统的代码托管方法及工具


[0001]本专利技术涉及代码托管
,具体的说是一种在线编码系统的代码托管方法及工具。

技术介绍

[0002]在当前科学技术迅猛发展的情势下,人们的工作和生活都与各种各样的电子产品密不可分,以电子产品为载体的软件服务也成了科技发展的重要领域。
[0003]软件服务经常迭代升级,则相对应的代码也会有版本的更新和迭代,对于软件服务开发的主力军

程序员来说,程序代码的保存和管理是尤为重要的。gitlab作为开源的仓库管理系统,是一款常用的代码管理工具,为开发团队提供了优秀的权限控制、历史记录追溯、开发进度管理等功能。
[0004]在此背景下,本文件提出一种在线编码系统的代码托管方法及工具,使用户使用在线编码系统时,无需对gitlab进行操作全程甚至感受不到与gitlab的交互存在,即可享受到gitlab提供的代码版本管理、历史记录追溯、权限控制等功能。

技术实现思路

[0005]本专利技术针对目前技术发展的需求和不足之处,提供一种在线编码系统的代码托管方法及工具。
[0006]首先,本专利技术公开保护一种在线编码系统的代码托管方法,解决上述技术问题采用的技术方案如下:
[0007]一种在线编码系统的代码托管方法,该托管方法的实现包括:
[0008]针对在线编码系统对其每个用户都分配一个工作空间的前提,使用gitlab服务,为在线编码系统的每个用户创建一个唯一绑定的gitlab账号,该gitlab账号用于提供存储和管理用户代码文件的gitlab权限;
[0009]绑定gitlab账号的用户使用在线编码系统进行代码编辑时,gitlab权限托管服务将绑定gitlab账号的用户所分配工作空间内产生的代码文件自动提交和更新至gitlab服务。
[0010]可选的,所涉及在线编码系统对其每个用户都分配一个工作空间,该工作空间用于存储用户编写的代码;
[0011]在线编码系统的用户账号基本信息、以及用户与服务器工作空间路径的对照关系存储在mysql数据库的列表List1,列表List1为gitlab托管服务提供用户以及代码提交目录的数据依据。
[0012]进一步可选的,所涉及gitlab权限托管服务提供的功能如下:
[0013](1)对接在线编码系统的用户信息,为每个使用在线编码系统的用户建立唯一的gitlab账号;
[0014](2)从在线编码系统中获取用户以及用户的工作空间路径,针对绑定gitlab账号
的用户,使用定时任务策略,执行用户工作空间代码文件的自动提交和更新;
[0015](3)将在线编码系统的用户与gitlab账号的对接及关联关系存储在mysql数据库的列表List2中;
[0016](4)通过gitlab API,完成用户创建、工程创建以及代码文件的自动更新及维护。
[0017]进一步可选的,所涉及gitlab权限托管服务将代码文件自动提交至gitlab服务,具体操作包括:
[0018](1)从在线编码系统中获取列表List1格式的用户信息列表List<User>;
[0019](2)遍历(1)中的列表List<User>,每次取出一个用户user,user有四个属性:{userId,userName,workPath,userPwd},其中,userId表示用户Id,userName表示用户名称,workPath表示用户工作空间目录,userPwd表示用户系统密码,userPwd使用AES加密策略,加密key为在线编码系统与gitlab权限托管服务约定的字符串,称为publicKey;
[0020](3)对user的信息处理如下:
[0021](i)取user的userId,在列表List2中查询是否有对应数据,如果有,则说明已为该用户创建gitlab账号,执行(iii),如果没有,执行(ii);
[0022](ii)使用publicKey对userPwd进行解密,如果解密成功,则证明了用户信息的安全性,然后调用gitlab API为该用户创建gitlab账号,得到用户对应的gitUserId、gitUserName、gitUserPwd,并将其和用户的userId、userName信息存入列表List2,存储的时候使用解密成功的userPwd作为秘钥,对gitUserPwd进行加密,然后存储到mysql数据中,确保gitlab账号密码保存的安全性;
[0023](iii)取user的workPath,找到其在服务器的相对位置,以workPath为根目录,获取根目录下的文件夹列表List<Folder>,继续执行(iv);
[0024](iv)使用publicKey对userPwd进行解密,解密成功后得到解密的userPwd,使用解密的userPwd作为秘钥,解密gitUserPwd,得到用户真实的gitlab账号密码,记为gitUserRealPwd,遍历(iii)中的文件夹列表List<Folder>,每次获取一个文件夹folder,以每个文件夹作为一个代码工程,首先调用gitlab API查询该folder是否已创建git工程,如果已创建,则使用gitUserId和gitUserRealPwd,进行代码的提交和更新即可,否则,先调用gitlab API,传入gitUserId和gitUserRealPwd,创建新的工程,再提交该folder到gitlab服务的仓库。
[0025]其次,本专利技术公开保护一种在线编码系统的代码托管工具,解决上述技术问题采用的技术方案如下:
[0026]一种在线编码系统的代码托管工具,其实现涉及在线编码系统、gitlab服务和gitlab权限托管服务;
[0027]在线编码系统对其每个用户都在服务器上分配一个工作空间,该工作空间用于存储用户编写的代码;
[0028]gitlab服务用于辅助在线编码系统的每个用户创建一个唯一绑定的gitlab账号,该gitlab账号用于提供存储和管理用户代码文件的gitlab权限;
[0029]绑定gitlab账号的用户使用在线编码系统进行代码编辑时,gitlab权限托管服务用于将绑定gitlab账号的用户所分配工作空间内产生的代码文件自动提交和更新至gitlab服务。
[0030]可选的,所涉及在线编码系统的用户账号基本信息、以及用户与服务器工作空间路径的对照关系存储在mysql数据库的列表List1,列表List1为gitlab托管服务提供用户以及代码提交目录的数据依据。
[0031]进一步可选的,所涉及gitlab权限托管服务提供的功能如下:
[0032](1)对接在线编码系统的用户信息,为每个使用在线编码系统的用户建立唯一的gitlab账号;
[0033]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在线编码系统的代码托管方法,其特征在于,该托管方法的实现包括:针对在线编码系统对其每个用户都分配一个工作空间的前提,使用gitlab服务,为在线编码系统的每个用户创建一个唯一绑定的gitlab账号,该gitlab账号用于提供存储和管理用户代码文件的gitlab权限;绑定gitlab账号的用户使用在线编码系统进行代码编辑时,gitlab权限托管服务将绑定gitlab账号的用户所分配工作空间内产生的代码文件自动提交和更新至gitlab服务。2.根据权利要求1所述的一种在线编码系统的代码托管方法,其特征在于,在线编码系统对其每个用户都分配一个工作空间,该工作空间用于存储用户编写的代码;在线编码系统的用户账号基本信息、以及用户与服务器工作空间路径的对照关系存储在mysql数据库的列表List1,列表List1为gitlab托管服务提供用户以及代码提交目录的数据依据。3.根据权利要求2所述的一种在线编码系统的代码托管方法,其特征在于,gitlab权限托管服务提供的功能如下:(1)对接在线编码系统的用户信息,为每个使用在线编码系统的用户建立唯一的gitlab账号;(2)从在线编码系统中获取用户以及用户的工作空间路径,针对绑定gitlab账号的用户,使用定时任务策略,执行用户工作空间代码文件的自动提交和更新;(3)将在线编码系统的用户与gitlab账号的对接及关联关系存储在mysql数据库的列表List2中;(4)通过gitlab API,完成用户创建、工程创建以及代码文件的自动更新及维护。4.根据权利要求3所述的一种在线编码系统的代码托管方法,其特征在于,gitlab权限托管服务将代码文件自动提交至gitlab服务,具体操作包括:(1)从在线编码系统中获取列表List1格式的用户信息列表List<User>;(2)遍历(1)中所述列表List<User>,每次取出一个用户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为根目录,获取根目录下的文件夹列表List<Folder>,继续执行(iv);(iv)使用publicKey对userPwd进行解密,解密成功后得到解密的userPwd,使用解密的userPwd作为秘钥,解密gitUserPwd,得到用户真实的gitlab账号密码,记为
gitUserRealPwd,遍历(iii)中所述文件夹列表List<Folder>,每次获取一个文件夹folder,以每个文件夹作为一个代码工程,首先调用gitlab API查询该folder是否已创建git工程,如果已创建,则使用gitUserId和gitUserRealPwd,进行代码的提交和更新即可,否则,先调用gitlab API,传入gitUserId和gitUserRealPwd,创建新的工程,再提交该folder到gitlab服务的仓库。5.一种在线编...

【专利技术属性】
技术研发人员:李倩赵子墨李照川黄浩吕明逸
申请(专利权)人:浪潮卓数大数据产业发展有限公司
类型:发明
国别省市:

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

1