我想用curl
在GitLab下载我的私人仓库。我知道我可以使用Gitlab API,但出于某种原因,它不起作用。
这可能吗?当我尝试这样做时,它总是返回登录页面。
这是可能的,只需按照以下步骤操作:
那将把你的项目下载为.tar.gz
文件。
您可以使用您的私有令牌(位于“配置文件设置”中)来访问任何资源。只需浏览到要下载的存储库文件,复制“原始”文件链接并附加?private_token = ...
例:
curl https://git.local/user1/myrepo/raw/master/myfile.txt?private_token=ahgiretherghaeoi
你可以,但你需要自己验证(如“Gitlab API: How to generate the private token”)
curl http://gitlab.server/api/v3/session --data 'login=myUser&password=myPass'
然后用private token:
curl --header "PRIVATE-TOKEN: QVy1PB7sTxfy4pqfZM1U" "http://example.com/api/v3/projects"
或者,在您的情况下,获取repository files:
GET /projects/:id/repository/files
或者,直接下载一个文件。
如果您需要在CI运行中执行此操作并且您的私人仓库位于同一服务器上,您应该能够使用git submodules同时克隆其他仓库。自GitLab 8.12起,使用${CI_JOB_TOKEN}
就是another option。