CN114253598A - 一种在线编码***的代码托管方法及工具 - Google Patents

一种在线编码***的代码托管方法及工具 Download PDF

Info

Publication number
CN114253598A
CN114253598A CN202111581610.1A CN202111581610A CN114253598A CN 114253598 A CN114253598 A CN 114253598A CN 202111581610 A CN202111581610 A CN 202111581610A CN 114253598 A CN114253598 A CN 114253598A
Authority
CN
China
Prior art keywords
user
gitlab
coding system
account
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111581610.1A
Other languages
English (en)
Other versions
CN114253598B (zh
Inventor
李倩
赵子墨
李照川
黄浩
吕明逸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chaozhou Zhuoshu Big Data Industry Development Co Ltd
Original Assignee
Chaozhou Zhuoshu Big Data Industry Development Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chaozhou Zhuoshu Big Data Industry Development Co Ltd filed Critical Chaozhou Zhuoshu Big Data Industry Development Co Ltd
Priority to CN202111581610.1A priority Critical patent/CN114253598B/zh
Publication of CN114253598A publication Critical patent/CN114253598A/zh
Application granted granted Critical
Publication of CN114253598B publication Critical patent/CN114253598B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

一种在线编码***的代码托管方法及工具
技术领域
本发明涉及代码托管技术领域,具体的说是一种在线编码***的代码托管方法及工具。
背景技术
在当前科学技术迅猛发展的情势下,人们的工作和生活都与各种各样的电子产品密不可分,以电子产品为载体的软件服务也成了科技发展的重要领域。
软件服务经常迭代升级,则相对应的代码也会有版本的更新和迭代,对于软件服务开发的主力军-程序员来说,程序代码的保存和管理是尤为重要的。gitlab作为开源的仓库管理***,是一款常用的代码管理工具,为开发团队提供了优秀的权限控制、历史记录追溯、开发进度管理等功能。
在此背景下,本文件提出一种在线编码***的代码托管方法及工具,使用户使用在线编码***时,无需对gitlab进行操作全程甚至感受不到与gitlab的交互存在,即可享受到gitlab提供的代码版本管理、历史记录追溯、权限控制等功能。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种在线编码***的代码托管方法及工具。
首先,本发明公开保护一种在线编码***的代码托管方法,解决上述技术问题采用的技术方案如下:
一种在线编码***的代码托管方法,该托管方法的实现包括:
针对在线编码***对其每个用户都分配一个工作空间的前提,使用gitlab服务,为在线编码***的每个用户创建一个唯一绑定的gitlab账号,该gitlab账号用于提供存储和管理用户代码文件的gitlab权限;
绑定gitlab账号的用户使用在线编码***进行代码编辑时,gitlab权限托管服务将绑定gitlab账号的用户所分配工作空间内产生的代码文件自动提交和更新至gitlab服务。
可选的,所涉及在线编码***对其每个用户都分配一个工作空间,该工作空间用于存储用户编写的代码;
在线编码***的用户账号基本信息、以及用户与服务器工作空间路径的对照关系存储在mysql数据库的列表List1,列表List1为gitlab托管服务提供用户以及代码提交目录的数据依据。
进一步可选的,所涉及gitlab权限托管服务提供的功能如下:
(1)对接在线编码***的用户信息,为每个使用在线编码***的用户建立唯一的gitlab账号;
(2)从在线编码***中获取用户以及用户的工作空间路径,针对绑定gitlab账号的用户,使用定时任务策略,执行用户工作空间代码文件的自动提交和更新;
(3)将在线编码***的用户与gitlab账号的对接及关联关系存储在mysql数据库的列表List2中;
(4)通过gitlab API,完成用户创建、工程创建以及代码文件的自动更新及维护。
进一步可选的,所涉及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服务的仓库。
其次,本发明公开保护一种在线编码***的代码托管工具,解决上述技术问题采用的技术方案如下:
一种在线编码***的代码托管工具,其实现涉及在线编码***、gitlab服务和gitlab权限托管服务;
在线编码***对其每个用户都在服务器上分配一个工作空间,该工作空间用于存储用户编写的代码;
gitlab服务用于辅助在线编码***的每个用户创建一个唯一绑定的gitlab账号,该gitlab账号用于提供存储和管理用户代码文件的gitlab权限;
绑定gitlab账号的用户使用在线编码***进行代码编辑时,gitlab权限托管服务用于将绑定gitlab账号的用户所分配工作空间内产生的代码文件自动提交和更新至gitlab服务。
可选的,所涉及在线编码***的用户账号基本信息、以及用户与服务器工作空间路径的对照关系存储在mysql数据库的列表List1,列表List1为gitlab托管服务提供用户以及代码提交目录的数据依据。
进一步可选的,所涉及gitlab权限托管服务提供的功能如下:
(1)对接在线编码***的用户信息,为每个使用在线编码***的用户建立唯一的gitlab账号;
(2)从在线编码***中获取用户以及用户的工作空间路径,针对绑定gitlab账号的用户,使用定时任务策略,执行用户工作空间代码文件的自动提交和更新;
(3)将在线编码***的用户与gitlab账号的对接及关联关系存储在mysql数据库的列表List2中;
(4)通过gitlab API,完成用户创建、工程创建以及代码文件的自动更新及维护。
进一步可选的,所涉及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服务的仓库。
本发明的一种在线编码***的代码托管方法及工具,与现有技术相比具有的有益效果是:
(1)本发明通过自动化托管服务,将多用户工作空间的代码文件上传到gitlab服务对应账号下,依托gitlab服务实现了代码的版本管理、历史记录追溯功能,扩展了在线编码***代码管理功能的可追溯性和稳定性,增强了用户代码存储的安全性;
(2)本发明一方面将用户使用在线编码***所产生的代码提交到gitlab服务,相对于服务器磁盘的普通存储,gitlab服务可以帮助更安全高效的管理用户的代码,另一方面,gitlab权限托管服务使得用户不需要主动操作gitlab,即可享受到gitlab提供的代码版本管理、历史记录追溯、权限控制功能;
(3)本发明中在线编码***的每个用户对应绑定一个gitlab账号,gitlab账号下只存储对应用户的工作空间文件,这使用户以及代码的权限得到了很好地隔离和控制;另外,在线编码***的用户密码和gitlab账号密码采用了加密存储的方法,只在使用的时候进行解密,且gitlab账号的密码加解密依赖于在线编码***密码的加解密,这增强了用户git权限管理的安全性,从而提高了代码存储托管的安全性。
附图说明
附图1是本发明的实现流程图。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。
实施例一:
结合附图1,本实施例提出一种在线编码***的代码托管方法,该托管方法的实现包括:
针对在线编码***对其每个用户都分配一个工作空间的前提,使用gitlab服务,为在线编码***的每个用户创建一个唯一绑定的gitlab账号,该gitlab账号用于提供存储和管理用户代码文件的gitlab权限;
绑定gitlab账号的用户使用在线编码***进行代码编辑时,gitlab权限托管服务将绑定gitlab账号的用户所分配工作空间内产生的代码文件自动提交和更新至gitlab服务。
本实施例中,在线编码***对其每个用户都分配一个工作空间,该工作空间用于存储用户编写的代码。在线编码***的用户账号基本信息、以及用户与服务器工作空间路径的对照关系存储在mysql数据库的列表List1,列表List1为gitlab托管服务提供用户以及代码提交目录的数据依据。列表List1具体如下,
List1:
字段 含义 备注
userId 用户id 唯一且不重复
userName 用户名称
workPath 用户工作空间目录
userPwd 用户***密码 加密存储
本实施例中,gitlab权限托管服务提供的功能如下:
(1)对接在线编码***的用户信息,为每个使用在线编码***的用户建立唯一的gitlab账号;
(2)从在线编码***中获取用户以及用户的工作空间路径,针对绑定gitlab账号的用户,使用定时任务策略,执行用户工作空间代码文件的自动提交和更新;
(3)将在线编码***的用户与gitlab账号的对接及关联关系存储在mysql数据库的列表List2中,列表List2如下:
List2:
字段 含义 备注
userId 编码***用户id 唯一且不重复
userName 编码***用户名称
gitUserId 编码***用户对应的git账号 唯一且不重复
gitUserName 编码***用户对应的git用户名称
gitUserPwd 编码***用户对应的git账号密码 加密存储
(4)通过gitlab API,完成用户创建、工程创建以及代码文件的自动更新及维护。
本实施例中,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服务的仓库。
实施例二:
结合附图1,本实施例提出一种在线编码***的代码托管工具,其实现涉及在线编码***、gitlab服务和gitlab权限托管服务;
在线编码***对其每个用户都在服务器上分配一个工作空间,该工作空间用于存储用户编写的代码;
gitlab服务用于辅助在线编码***的每个用户创建一个唯一绑定的gitlab账号,该gitlab账号用于提供存储和管理用户代码文件的gitlab权限;
绑定gitlab账号的用户使用在线编码***进行代码编辑时,gitlab权限托管服务用于将绑定gitlab账号的用户所分配工作空间内产生的代码文件自动提交和更新至gitlab服务。
本实施例中,在线编码***的用户账号基本信息、以及用户与服务器工作空间路径的对照关系存储在mysql数据库的列表List1,列表List1为gitlab托管服务提供用户以及代码提交目录的数据依据。列表List1具体如下,
List1:
字段 含义 备注
userId 用户id 唯一且不重复
userName 用户名称
workPath 用户工作空间目录
userPwd 用户***密码 加密存储
本实施例中,gitlab权限托管服务提供的功能如下:
(1)对接在线编码***的用户信息,为每个使用在线编码***的用户建立唯一的gitlab账号;
(2)从在线编码***中获取用户以及用户的工作空间路径,针对绑定gitlab账号的用户,使用定时任务策略,执行用户工作空间代码文件的自动提交和更新;
(3)将在线编码***的用户与gitlab账号的对接及关联关系存储在mysql数据库的列表List2中,列表List2如下:
List2:
Figure BDA0003426259920000091
Figure BDA0003426259920000101
(4)通过gitlab API,完成用户创建、工程创建以及代码文件的自动更新及维护。
本实施例中,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服务的仓库。
综上可知,采用本发明的一种在线编码***的代码托管方法及工具,通过自动化托管服务,将多用户工作空间的代码文件上传到gitlab服务对应账号下,依托gitlab服务实现了代码的版本管理、历史记录追溯功能,扩展了在线编码***代码管理功能的可追溯性和稳定性,增强了用户代码存储的安全性。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。

Claims (8)

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.一种在线编码***的代码托管工具,其特征在于,其实现涉及在线编码***、gitlab服务和gitlab权限托管服务;
在线编码***对其每个用户都在服务器上分配一个工作空间,该工作空间用于存储用户编写的代码;
gitlab服务用于辅助在线编码***的每个用户创建一个唯一绑定的gitlab账号,该gitlab账号用于提供存储和管理用户代码文件的gitlab权限;
绑定gitlab账号的用户使用在线编码***进行代码编辑时,gitlab权限托管服务用于将绑定gitlab账号的用户所分配工作空间内产生的代码文件自动提交和更新至gitlab服务。
6.根据权利要求5所述的一种在线编码***的代码托管方法,其特征在于,在线编码***的用户账号基本信息、以及用户与服务器工作空间路径的对照关系存储在mysql数据库的列表List1,列表List1为gitlab托管服务提供用户以及代码提交目录的数据依据。
7.根据权利要求65所述的一种在线编码***的代码托管方法,其特征在于,gitlab权限托管服务提供的功能如下:
(1)对接在线编码***的用户信息,为每个使用在线编码***的用户建立唯一的gitlab账号;
(2)从在线编码***中获取用户以及用户的工作空间路径,针对绑定gitlab账号的用户,使用定时任务策略,执行用户工作空间代码文件的自动提交和更新;
(3)将在线编码***的用户与gitlab账号的对接及关联关系存储在mysql数据库的列表List2中;
(4)通过gitlab API,完成用户创建、工程创建以及代码文件的自动更新及维护。
8.根据权利要求7所述的一种在线编码***的代码托管方法,其特征在于,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服务的仓库。
CN202111581610.1A 2021-12-22 2021-12-22 一种在线编码***的代码托管方法及工具 Active CN114253598B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111581610.1A CN114253598B (zh) 2021-12-22 2021-12-22 一种在线编码***的代码托管方法及工具

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111581610.1A CN114253598B (zh) 2021-12-22 2021-12-22 一种在线编码***的代码托管方法及工具

Publications (2)

Publication Number Publication Date
CN114253598A true CN114253598A (zh) 2022-03-29
CN114253598B CN114253598B (zh) 2023-09-05

Family

ID=80796830

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111581610.1A Active CN114253598B (zh) 2021-12-22 2021-12-22 一种在线编码***的代码托管方法及工具

Country Status (1)

Country Link
CN (1) CN114253598B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297627A (zh) * 2019-07-01 2019-10-01 四川长虹电器股份有限公司 一种基于gitlab-ci的前端代码自动化持续集成方法
CN110472881A (zh) * 2019-08-21 2019-11-19 重庆华医康道科技有限公司 基于区块链的状态机工作流引擎及分布式存储的工作方法
CN111338784A (zh) * 2020-05-25 2020-06-26 南栖仙策(南京)科技有限公司 一种实现代码仓库与计算服务整合的方法及***
CN111475197A (zh) * 2020-04-13 2020-07-31 中国科学院计算机网络信息中心 一种代码托管和协作***
CN112130858A (zh) * 2019-06-25 2020-12-25 深圳Tcl新技术有限公司 一种代码编译方法及编译服务器
CN113127052A (zh) * 2021-04-29 2021-07-16 欧冶云商股份有限公司 一种基于多目标文件托管的项目信息交付方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112130858A (zh) * 2019-06-25 2020-12-25 深圳Tcl新技术有限公司 一种代码编译方法及编译服务器
CN110297627A (zh) * 2019-07-01 2019-10-01 四川长虹电器股份有限公司 一种基于gitlab-ci的前端代码自动化持续集成方法
CN110472881A (zh) * 2019-08-21 2019-11-19 重庆华医康道科技有限公司 基于区块链的状态机工作流引擎及分布式存储的工作方法
CN111475197A (zh) * 2020-04-13 2020-07-31 中国科学院计算机网络信息中心 一种代码托管和协作***
CN111338784A (zh) * 2020-05-25 2020-06-26 南栖仙策(南京)科技有限公司 一种实现代码仓库与计算服务整合的方法及***
WO2021237829A1 (zh) * 2020-05-25 2021-12-02 南栖仙策(南京)科技有限公司 一种实现代码仓库与计算服务整合的方法及***
CN113127052A (zh) * 2021-04-29 2021-07-16 欧冶云商股份有限公司 一种基于多目标文件托管的项目信息交付方法

Also Published As

Publication number Publication date
CN114253598B (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
US10178078B1 (en) Secure digital credential sharing arrangement
US8656181B2 (en) Method and system for business workflow cycle of a composite document
CN111090622B (zh) 基于动态加密rbac模型的云存储信息处理***及方法
US8856511B2 (en) System and method for wiping and disabling a removed device
JP2008257691A (ja) ストレージデバイスのデータ暗号化およびデータアクセスのシステムおよび方法
US7650328B2 (en) Data storage device capable of storing multiple sets of history information on input/output processing of security data without duplication
CN104011698B (zh) 基于从相应的主应用程序数据导出的标识符来访问补充数据
US20120260096A1 (en) Method and system for monitoring a secure document
US8972747B2 (en) Managing information in a document serialization
CN103098071A (zh) 提供对数字文件的差异化访问
CN111586065A (zh) 一种基于区块链的数据授权方法
WO2011018048A1 (zh) 权限信息管理方法、装置及***
CN104778954A (zh) 一种光盘分区加密方法及***
KR100910075B1 (ko) 데이터 처리 장치, 데이터 처리 방법 및 데이터 처리용 컴퓨터 프로그램이 기록된 기록 매체
CN115203648A (zh) 基于Git协议的电子书编辑校对方法、装置和***
JP2007300157A (ja) 秘密分散システム、装置及びプログラム
JP4869765B2 (ja) アップロード/ダウンロードシステム、情報処理装置、プログラム、記録媒体
CN114253598B (zh) 一种在线编码***的代码托管方法及工具
KR101767104B1 (ko) 파일 시스템에 메시지 숨기는 장치 및 방법
US20080301654A1 (en) Program processing apparatus, program processing method and computer readable information recording medium
RU2007114069A (ru) Способ, устройство и носитель для защиты содержания
JP2005293094A (ja) コンテンツ暗号化装置、コンテンツ暗号化プログラム及びコンテンツ暗号化プログラムを記録した記録媒体、並びにコンテンツ再生装置、コンテンツ再生制御プログラム及びコンテンツ再生制御プログラムを記録した記録媒体
JP2008152593A (ja) 情報端末装置
JP2002175210A (ja) データの移動、複製方法及び暗号化、復号方法
US11218318B2 (en) Two-step data deletion having confirmation hold

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant