服务器上如何获取所有仓库的代码


#1

使用gogs搭建了git服务器,有很多仓库,想对仓库里面的代码做一些监控扫描,但是仓库目录存储的都是git的数据格式,不是我们常见的文件格式,请求有什么办法直接读取仓库里面的文件吗?只要最新的commit的即可,如果使用clone,那么如何绕开项目的权限验证呢?不管是私有的,公有的都能直接clone, 除了让每个仓库的人都去添加某个用户或者Key之外 ,有没有别的越权的办法?


#2

你存的项目都在你自己选择的目录([repo] ROOT_PATH)啊。。直接同个服务器本地路径 clone 就好啦。


#3

如果是公司级,很多团队的项目,还得让每个团队给仓库都加上一个部署key或者都给某个系统用户权限 ,要不就是hack代码,默认给仓库加上一个全局的部署key, 不过我想问的是有没有更简单的办法,直接比如拿到现在的服务器存储目录下的git数据结构 ,通过什么命令,直接就能转换成我们平时能看懂的目录结构 ?


#4

git clone 检出代码就行了,后面可以跟本地路径


#5

我想我的表述不太清楚,导致你还没理解我的需求,我的意思是假如我们公司现在有100个仓库,分属100个不同的团队,做为安全团队,我们需要扫描仓库代码,这个时候我们需要git clone检出所有的代码,但是前题是安全团队需要拥有所有这100个仓库的的权限,可行方案是,我们让所有人都把安全团队指定的帐号加到项目协作者中,或者是统一给仓库都添加一个我们指定的deploy key, 但是这样都需要人工操作,对于新增的仓库,还需要指定规范去添加,很麻烦,我们想有没有超级权限,无需任何权限上的操作(包括介不限于要求所有人添加统一的deploy key, 添加指定帐号为协作者等)就能导出所有仓库的代码,


#6

如果你的安全团队无法直接操作服务器。。那就只能创建 Gogs 管理员账号,是可以检出任意仓库代码的。如果能操作服务器就简单了,直接 git clone 服务器本地路径就能检出代码。


#7

谢谢,明白了,非常感谢你的回答