git - 尝试从 GitLab API 获取文件时出现 Http 404

标签 git rest gitlab

我有一个带有 gitlab 6.1.0.0 的 bitnami 虚拟机,我正在尝试从其余 API 获取特定项目的文件。

我试着做这样的事情:

http://<my-git-lab-server>/api/v3/projects/12/repository/files?private_token=<my_token>

当然 12 标记了存在的项目 id。我得到了响应 404 - 找不到页面(顺便说一句 - 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>}]

然后我尝试了与之前相同的 url 并添加了 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 作为 ref 因为这个文件是在 master 分支中找到的。希望这就是我应该放在那里的内容。

无论如何,仍然找不到 404。我不确定如何正确获取文件。

任务是将一些项目内容复制到新的 gitlab 服务器(以及不同版本)——如果这有任何变化的话。

最佳答案

您提到您使用的是 Gitlab v6.1。根据https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/repository_files.md的历史/api/v3/projects/{id}/repository/files 端点到达版本 6.6。看起来 /api/v3/projects/{id}/repository/tree 端点到达了 5.3 版。因此,要获得文件 API 功能,您需要升级 Gitlab。

关于git - 尝试从 GitLab API 获取文件时出现 Http 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23626610/

相关文章:

gitlab - 致命: Needed a single revision(gitlab runner error)

amazon-s3 - Gitlab综合: Delete backup from Amazon S3

.net - 在两个不同的 git 项目之间共享代码

angularjs - 使用 Restangular 删除默认 header

javascript - 如何为 Node.js REST API 正确配置 Nginx?

Ruby 正则表达式过滤掉以 "string"后缀结尾的单词

git - 如何从 git grep 搜索中排除某些目录/文件

git - 臭名昭著的 Git 错误 : remote rejected (failed to lock)

git - Windows 上 msysgit 中的 Bash 文件夹-文件着色?

java - 如何检查 REST 请求中是否包含不支持的参数?