尝试从GitLab API获取文件时的Http 404

时间:2014-05-13 08:48:11

标签: git rest gitlab

我有一个带有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_pathref参数,如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服务器(也是不同的版本) - 如果这会改变任何内容。

2 个答案:

答案 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