我有一个带有gitlab 6.1.0.0的bitnam VM,我试图从其余API获取特定项目的文件。
我试着这样做:
http://<my-git-lab-server>/api/v3/projects/12/repository/files?private_token=<my_token>
当然12
标记了存在的项目ID。我得到了回复404 - page not found
(BTW - gitlab的自定义404页面)
我在文档中看到你需要传递参数。所以我使用tree
来获取文件,如下所示:
http://<my-git-lab-server>/api/v3/projects/12/repository/tree?private_token=<my_token>
我得到了这个文件(以及其他文件):
[... some files here ... , {"name": "test.py", "type": "blob", "mode": "100644", "id": <some-id-here>}]
然后我尝试了与之前相同的网址,并添加了file_path
和ref
参数,如documentation中所述,它看起来像这样:
http://<my-git-lab-server>/api/v3/projects/12/repository/files?file_path=test.py&ref=master&private_token=<my_token>
我也试过"test.py"
(带引号)。我尝试使用master
作为参考,因为在主分支中找到了此文件。希望我能放在那里。
无论如何,仍然没有找到404。我不确定如何正确获取文件。
任务是将一些项目内容复制到新的gitlab服务器(也是不同的版本) - 如果这会改变任何内容。
答案 0 :(得分:1)
你提到你正在使用Gitlab v6.1。根据{{3}}的历史记录,/api/v3/projects/{id}/repository/files
终点到达版本6.6。看起来/api/v3/projects/{id}/repository/tree
端点到达5.3版本。因此,要获得文件API功能,您需要升级Gitlab。
答案 1 :(得分:0)
虽然在版本6.1上无法使用GET /projects/:id/repository/files
,但可以使用GET /projects/:id/repository/blobs/:sha
下载文件。看看这里:https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/repositories.md