CN113590186A - 一种根据权限控制客户端下载代码提交历史的方法及系统 - Google Patents

一种根据权限控制客户端下载代码提交历史的方法及系统 Download PDF

Info

Publication number
CN113590186A
CN113590186A CN202111147031.6A CN202111147031A CN113590186A CN 113590186 A CN113590186 A CN 113590186A CN 202111147031 A CN202111147031 A CN 202111147031A CN 113590186 A CN113590186 A CN 113590186A
Authority
CN
China
Prior art keywords
code
submission
user
deadline
download
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.)
Pending
Application number
CN202111147031.6A
Other languages
English (en)
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.)
Jiajia Technology Co ltd
Original Assignee
Jiajia Technology 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 Jiajia Technology Co ltd filed Critical Jiajia Technology Co ltd
Priority to CN202111147031.6A priority Critical patent/CN113590186A/zh
Publication of CN113590186A publication Critical patent/CN113590186A/zh
Pending legal-status Critical Current

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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种根据权限控制客户端下载代码提交历史的方法及系统,该方法包括:在代码仓库的服务端为每一个用户设置权限,所述权限由截止时间和提交深度界定;其中,截止时间用于限制用户只能下载在截止时间前的代码提交对象;提交深度用于限制用户可以下载的代码提交对象的数量;从代码仓库的客户端向服务端发起拉取代码提交对象的请求;服务端从所述请求中解析获得用户信息和代码仓库信息,并根据用户权限将相应的代码提交对象打包传输给客户端。本发明,在代码仓库的服务端上为不同的用户设置权限,根据用户权限限制其只能拉取到与其权限对应的代码提交对象历史,提高了代码的安全性。

Description

一种根据权限控制客户端下载代码提交历史的方法及系统
技术领域
本发明涉及分布式代码版本控制技术领域,具体涉及一种根据权限控制客户端下载代码提交历史的方法及系统,用于限制用户利用客户端从远程代码仓库下载代码全部提交历史版本。
背景技术
Git目前是全球使用最广泛的分布式代码版本控制工具,目前主流的代码仓库都使用Git进行版本控制,实现代码的历史管理。
Git要求每个代码仓库都保留一份完整的副本,每次向远程代码仓库同步时,都会拉取所有的代码提交历史。例如:用户可以使用gitclone下载Git服务端的最新版本以及所有的提交历史,或使用gitpull、gitfetch命令增量同步Git服务端上新的提交历史。这样就产生了以下问题:
有些企业的软件代码是由企业内部开发者和企业外部开发者共同协作完成的,因此,希望外部开发者只能看到指定版本前的代码,而看不到正在开发的新代码,以避免新功能泄露,保证代码安全。但是,由于现有的代码仓库在客户端拉取代码时,都会向客户端增量推送所有的提交历史,以保证客户端本地拥有完整的提交历史。因而导致了,每个开发者都能够获取到最新的代码,企业不能在代码仓库里根据权限控制客户端下载代码提交历史以限制开发者获得代码的全部提交历史。
虽然,GitClone命令提供了浅克隆功能,例如,--shallow-since:从指定时间开始克隆提交历史;--depth:从shallow-since指定的时间往前(不指定则为当前时间)克隆指定深度数量的提交历史。但这是用户在客户端上的自己实施的行为,并不能限制用户使用完整克隆方式从代码仓库下载全部提交历史,仍然面临代码安全的问题。
有鉴于此,需要对现有的客户端多代码仓库拉取提交历史的方法进行改进,对代码的提交历史进行权限控制,提高代码的安全性。
发明内容
针对上述缺陷,本发明所要解决的技术问题在于提供一种根据权限控制客户端下载代码提交历史的方法及系统,以解决现有技术每个开发者都能够获取到代码所有提交历史,包括最新代码,进而存在代码安全性的问题。
为此,本发明提供了一种根据权限控制客户端下载代码提交历史的方法,包括以下步骤:
在代码仓库的服务端为每一个用户设置权限,所述权限由截止时间和提交深度界定;其中,截止时间用于限制用户只能下载在截止时间前的代码提交对象;提交深度用于限制用户可以下载的代码提交对象的数量;
从客户端向服务端发起拉取代码提交对象的请求;
服务端从所述请求中解析获得用户信息和代码仓库信息,并根据用户权限从相应的代码仓库获取相应的代码提交对象,打包传输给客户端。
在上述方法中,优选地,所述截止时间不指定,则使用当前时间作为所述截止时间;所述提交深度不指定,则所述权限为可下载截止时间前的所有代码提交对象。
在上述方法中,优选地,客户端使用Http或SSH发起拉取代码提交对象的请求。
在上述方法中,优选地,所述提交深度为N,所述权限为从所述截止时间开始往前下载N个代码提交对象。
在上述方法中,优选地,如果一个代码提交对象存在多个上次代码提交对象时,优先选择提交时间较新的代码提交对象。
本发明还提供了一种根据权限控制客户端下载代码提交历史的系统,包括:
用户管理模块,设置在代码仓库的服务端上,用于为每一个用户设置权限,所述权限由截止时间和提交深度界定;其中,截止时间用于限制用户只能下载在截止时间前的代码提交对象;提交深度用于限制用户可以下载的代码提交对象的数量;
请求模块,设置在客户端上,用于向服务端发起拉取代码提交对象的请求;
处理模块,设置在服务端上,用于从所述请求中解析获得用户信息和代码仓库信息,并根据用户权限将相应的代码提交对象打包传输给客户端。
在上述系统中,优选地,所述客户端使用Http或SSH发起拉取代码提交对象的请求。
在上述系统中,优选地,所述截止时间不指定,则使用当前时间作为所述截止时间;所述提交深度不指定,则所述权限为可下载截止时间前的所有代码提交对象。
在上述系统中,优选地,所述提交深度为N,所述权限为从所述截止时间开始往前下载N个代码提交对象。
在上述系统中,优选地,所述处理模块判断,如果一个代码提交对象存在多个上次代码提交对象时,优先选择提交时间较新的代码提交对象。
由上述技术方案可知,本发明提供的一种根据权限控制客户端下载代码提交历史的方法及系统,解决了现有技术不能在代码仓库里限制开发者获得代码的全部提交历史的问题。与现有技术相比,本发明具有以下有益效果:
在代码仓库的服务端上为不同的用户设置权限,根据用户权限限制其只能拉取到与其权限对应的代码提交对象历史,提高了代码的安全性。
附图说明
为了更清楚地说明本发明的实施例或现有技术中的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图做出简单地介绍和说明。显而易见地,下面描述中的附图仅仅是本发明的部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种根据权限控制客户端下载代码提交历史的方法流程图;
图2为本发明提供的一种根据权限控制客户端下载代码提交历史的系统示意图。
具体实施方式
下面将结合本发明实施例附图,对本发明实施例的技术方案进行清楚、完整地描述,显然,以下所描述的实施例,仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动的前提下,所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实现原理是:
在代码仓库的服务端为每一个用户设置权限,所述权限由截止时间和提交深度界定;其中,截止时间用于限制用户只能下载在截止时间前的代码提交对象;提交深度用于限制用户可以下载的代码提交对象的数量;
根据用户权限从代码仓库获取相应的代码提交对象,打包传输给客户端。
本发明提供的方案,在代码仓库里限制开发者获得代码的全部提交历史,提高了代码安全性。
为了对本发明的技术方案和实现方式做出更清楚地解释和说明,以下介绍实现本发明技术方案的几个优选的具体实施例。
需要说明的是,本文中“内、外”、“前、后”及“左、右”等方位词是以产品使用状态为基准对象进行的表述,显然,相应方位词的使用对本方案的保护范围并非构成限制。
具体实施例1。
如图1所示,本具体实施例1提供一种根据权限控制客户端下载代码提交历史的方法,包括以下步骤:
步骤110,为每一个用户设置可以从代码仓库下载代码历史的权限,并保存在代码仓库的服务端上,可以保存在用户列表中或者用户数据库中,该权限由截止时间和提交深度两个参数界定。
在Git中提交代码时,会保存一个代码提交对象(commit),每次提交代码都会新建一个代码提交对象,并且代码提交对象会包含一个指向上次代码提交对象(parent)的指针,parent指针指向上次提交的结点。
其中,截止时间用于限制用户只能下载在截止时间前提交的代码提交;提交深度用于限制用户可以下载的代码提交对象的数量,例如提交深度为N,则用户的权限为从截止时间开始往前下载N个代码提交对象,N为正整数。
截止时间不指定,则使用当前时间作为截止时间;
提交深度不指定,则用户的权限为可下载截止时间前的所有代码提交对象。
步骤120,用户利用客户端向代码仓库的服务端发起拉取代码提交对象的请求。
可以使用Http或SSH发起拉取代码提交对象的请求。
步骤130,服务端收到请求后,从该请求中解析获得用户信息和代码仓库信息,并查询获得该用户的权限,再根据该用户的权限从相应的代码仓库获取相应的代码提交对象,打包传输给客户端。
具体地,服务端收到从客户端发出的拉取代码提交对象的请求后,从该请求中解析获得用户信息和代码仓库信息后,查询该用户在代码仓库的权限。
根据权限获得该用户对应的截止时间和提交深度。
在代码仓库中寻找截止时间前最新的一次commit。
服务端利用每一个代码提交对象中的上次代码提交对象的parent指针,往前递归查询从该截止时间开始与提交深度数量对应的代码提交对象,如果一个代码提交对象存在多个parent指针,则优先选择提交时间较新的代码提交对象。
服务端将查询到的所有代码提交对象打包发送给客户端,实现客户端只能下载与其权限相匹配的代码提交对象,即只能下载有权限的代码提交历史。
如图2所示,基于上述方法,本发明还提供了一种根据权限控制客户端下载代码提交历史的系统,包括:
用户管理模块11,设置在代码仓库30的服务端10上,用于为每一个用户设置权限,并保存在服务端10上,用户的权限由对应每个代码项目的截止时间和提交深度界定。
其中,截止时间用于限制用户只能下载在截止时间前的代码提交对象;提交深度用于限制用户可以下载的代码提交对象的数量。
请求模块21,设置在客户端20上,用于向服务端10发起从代码仓库30拉取代码提交对象的请求。
处理模块12,设置在服务端10上,用于从收到的请求中解析获得用户信息和代码仓库信息,并根据用户权限从相应的代码仓库中获取相应的代码提交对象,并打包传输给客户端20。
综合以上具体实施例的描述,本发明提供的一种根据权限控制客户端下载代码提交历史的方法及系统,与现有技术相比,具有如下优点:
第一,在代码仓库的服务端为每一个用户设置权限,用户利用客户端从代码仓库拉取代码时,服务端根据用户权限将相应的代码提交对象打包传输给客户端。不同的用户,由于权限不同只能获取到不同的代码历史,解决了例如外部开发者只能看到指定版本前的代码,而看不到正在开发的新代码,以避免新功能泄露,实现了代码的安全管控。
第二,利用Git本身的截止时间和提交深度实现,代码仓库的构架不变,开发设计简单,实现方便。
最后,还需要说明的是,在本文中使用的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明并不局限于上述最佳实施方式,任何人应该得知在本发明的启示下做出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。

Claims (10)

1.一种根据权限控制客户端下载代码提交历史的方法,其特征在于,包括以下步骤:
在代码仓库的服务端为每一个用户设置权限,所述权限由截止时间和提交深度界定;其中,截止时间用于限制用户只能下载在截止时间前的代码提交对象;提交深度用于限制用户可以下载的代码提交对象的数量;
从客户端向服务端发起拉取代码提交对象的请求;
服务端从所述请求中解析获得用户信息和代码仓库信息,并根据用户权限从相应的代码仓库获取相应的代码提交对象,打包传输给客户端。
2.根据权利要求1所述的方法,其特征在于,
所述截止时间不指定,则使用当前时间作为所述截止时间;
所述提交深度不指定,则所述权限为可下载截止时间前的所有代码提交对象。
3.根据权利要求1所述的方法,其特征在于,客户端使用Http或SSH发起拉取代码提交对象的请求。
4.根据权利要求1所述的方法,其特征在于,所述提交深度为N,所述权限为从所述截止时间开始往前下载N个代码提交对象,N为正整数。
5.根据权利要求1所述的方法,其特征在于,如果一个代码提交对象存在多个上次代码提交对象时,优先选择提交时间较新的代码提交对象。
6.一种根据权限控制客户端下载代码提交历史的系统,其特征在于,包括:
用户管理模块,设置在代码仓库的服务端上,用于为每一个用户设置权限,所述权限由截止时间和提交深度界定;其中,截止时间用于限制用户只能下载在截止时间前的代码提交对象;提交深度用于限制用户可以下载的代码提交对象的数量;
请求模块,设置在客户端上,用于向服务端发起拉取代码提交对象的请求;
处理模块,设置在服务端上,用于从所述请求中解析获得用户信息和代码仓库信息,并根据用户权限从代码仓库获取相应的代码提交对象,打包传输给客户端。
7.根据权利要求6所述的系统,其特征在于,所述客户端使用Http或SSH发起拉取代码提交对象的请求。
8.根据权利要求6所述的系统,其特征在于,
所述截止时间不指定,则使用当前时间作为所述截止时间;
所述提交深度不指定,则所述权限为可下载截止时间前的所有代码提交对象。
9.根据权利要求6所述的系统,其特征在于,所述提交深度为N,所述权限为从所述截止时间开始往前下载N个代码提交对象。
10.根据权利要求6所述的系统,其特征在于,所述处理模块判断,如果一个代码提交对象存在多个上次代码提交对象时,优先选择提交时间较新的代码提交对象。
CN202111147031.6A 2021-09-29 2021-09-29 一种根据权限控制客户端下载代码提交历史的方法及系统 Pending CN113590186A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111147031.6A CN113590186A (zh) 2021-09-29 2021-09-29 一种根据权限控制客户端下载代码提交历史的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111147031.6A CN113590186A (zh) 2021-09-29 2021-09-29 一种根据权限控制客户端下载代码提交历史的方法及系统

Publications (1)

Publication Number Publication Date
CN113590186A true CN113590186A (zh) 2021-11-02

Family

ID=78242459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111147031.6A Pending CN113590186A (zh) 2021-09-29 2021-09-29 一种根据权限控制客户端下载代码提交历史的方法及系统

Country Status (1)

Country Link
CN (1) CN113590186A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115756553A (zh) * 2023-01-09 2023-03-07 傲网信息科技(厦门)有限公司 一种软件服务器更新方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3061044A1 (en) * 2013-10-24 2016-08-31 Siemens AG Österreich Method for the generation of conjoint domain models for system-of-systems
CN109032592A (zh) * 2018-08-23 2018-12-18 常熟市盛铭信息技术有限公司 一种软件代码互相共享的方法
CN110231945A (zh) * 2019-05-20 2019-09-13 深圳壹账通智能科技有限公司 代码下载的方法、装置、电子设备及计算机存储介质
CN111045725A (zh) * 2019-12-16 2020-04-21 广州唯品会信息科技有限公司 代码管理系统的控制方法、装置及存储介质
CN113138794A (zh) * 2021-04-28 2021-07-20 河南中烟工业有限责任公司 一种代码版本的管理方法和管理系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3061044A1 (en) * 2013-10-24 2016-08-31 Siemens AG Österreich Method for the generation of conjoint domain models for system-of-systems
CN109032592A (zh) * 2018-08-23 2018-12-18 常熟市盛铭信息技术有限公司 一种软件代码互相共享的方法
CN110231945A (zh) * 2019-05-20 2019-09-13 深圳壹账通智能科技有限公司 代码下载的方法、装置、电子设备及计算机存储介质
CN111045725A (zh) * 2019-12-16 2020-04-21 广州唯品会信息科技有限公司 代码管理系统的控制方法、装置及存储介质
CN113138794A (zh) * 2021-04-28 2021-07-20 河南中烟工业有限责任公司 一种代码版本的管理方法和管理系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
范智鹏主编: "《计算机应用技术》", 31 July 2018, 哈尔滨工程大学出版社 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115756553A (zh) * 2023-01-09 2023-03-07 傲网信息科技(厦门)有限公司 一种软件服务器更新方法

Similar Documents

Publication Publication Date Title
CN108647083B (zh) 任务执行方法、装置、系统、电子设备及计算机可读介质
CN108874680B (zh) 一种自动化的软件测试方法及系统
US6993748B2 (en) Systems and methods for table driven automation testing of software programs
US8996465B2 (en) Replicating data to a database
US20030233376A1 (en) Method and apparatus for exchanging communications between heterogeneous applications
CN110888721A (zh) 一种任务调度的方法及相关装置
US20190121882A1 (en) Systems, devices, and methods for content indexing and querying in a search system
US10282690B1 (en) Mainframe workflow manager system and method
CN111176858A (zh) 一种数据请求处理方法及装置
WO2013171481A2 (en) Mechanism for synchronising devices, system and method
US20120131062A1 (en) Systems and Methods for Generating Customizing Documentation
CN113590186A (zh) 一种根据权限控制客户端下载代码提交历史的方法及系统
CN112965785A (zh) 基于容器的微服务应用开发方法及开发平台
CN109683905A (zh) 一种系统自动发布方法
US20160088014A1 (en) Methods, systems, and apparatus for mitigating network-based attacks
WO2021091495A1 (en) Method for inquiring weather data, and electronic device and storage medium thereof
CN114691779A (zh) 数据同步方法和系统、计算机可读存储介质
US20130212147A1 (en) Apparatus and method for creating mashup web application
CN107657002A (zh) 文件同步方法及装置
US10122803B2 (en) Network data transmission method, device and system
EP1973039A2 (en) Error handling for intermittently connected mobile applications
US20050289539A1 (en) Central installation, deployment, and configuration of remote systems
US20090075643A1 (en) System and method of object simulation in an intermittently connected mobile application
CN117149270A (zh) 跨硬件平台的模型文件的生成方法、系统及相关设备
CN110321462A (zh) 信息动态更新方法、装置、计算机设备及存储介质

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20211102

RJ01 Rejection of invention patent application after publication