我正在使用 gitlab。当我进入界面时,我可以在每个分支上以 zip、tar 或其他格式下载源代码。
我正在制作 rpm 规范文件,我需要能够使用命令行下载 tar ball。因为我添加了我的 rsa key ,所以我可以毫无问题地进行 git clone:
git clone http://gitlab/group/project.git
Cloning into 'project'...
remote: Counting objects: 1885, done.
remote: Compressing objects: 100% (826/826), done.
remote: Total 1885 (delta 1194), reused 1496 (delta 954)
Receiving objects: 100% (1885/1885), 1.30 MiB | 0 bytes/s, done.
Resolving deltas: 100% (1194/1194), done.
Checking connectivity... done
不管怎样
wget http://gitlab/group/project/repository/archive.zip
给我这些错误:
Resolving gitlab (gitlab)... 10.1.253.75
Connecting to gitlab (gitlab)|10.1.253.75|:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authorization failed.
最佳答案
自 GitLab 6.2和 issue 5253 ,应该是:
GET /projects/:id/repository/archive
但这似乎仅供内部使用,因为您无法知道项目作为用户的 ID(仅知道其名称)。
别忘了,作为shown in ability.rb
,下载文件链接到权限。确保为您的项目设置了“download_code
”权限。
这里肯定是权限问题,因为,例如:
wget http://demo.gitlab.com/gitlab/gitlab-recipes/repository/archive.zip
这很好用,可以毫无问题地获取该项目的内容。
但是,作为 OP Chris Maes comments并在 issue 6645 中提及, 如 app/models/ability.rb
所示:
if project && project.public?
...“dowload_code
”功能仅用于公共(public)项目。
关于gitlab通过命令行获取特定分支的tar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22691197/