git - 从存储库中获取原始文件

标签 git api gitlab

我想通过它的api获取gitlab中的文件内容。 首先,我检查我的 gitlab 版本,它写成, GitLab社区版9.4.3 b125d21尽快更新

然后我创建一个私有(private) token 并 http://gitadress/api/v4/projects/id/repository/files?private_token=PRIVATE_TOKEN 返回为;

{"error":"404 Not Found"}

然后我将查询修改为;

http://gitadress/api/v4/projects/222/repository/tree?private_token=PRIVATE_TOKEN 此请求返回为;

[{"id":"8078365d80c","name":"test.js","type":"blob","path":"test.js","mode":"100644"}]

我想要的是获取test.js的内容,但是无论我怎么尝试都无法实现。

http://gitadress/api/v4/projects/id/repository/tree/test.js/raw?private_token=PRIVATE_TOKEN&ref=master 返回为;

{"error":"404 Not Found"}

如何使用 gitlab api 获取原始文件内容? 文档在这里; https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/repository_files.md#get-raw-file-from-repository

最佳答案

文档提到:

Url encoded full path to new file. Ex. lib%2Fclass%2Erb

这意味着您需要对 test.js 进行 URL 编码:test%2Ejs
(参见 Percent encoding: character data)

http://gitadress/api/v4/projects/id/repository/files/test%2Ejs/raw?private_token=PRIVATE_TOKEN

例如,您可以添加 ?ref=master 以确保从 master 分支获取内容。

http://gitadress/api/v4/projects/id/repository/files/test%2Ejs/raw?ref=master&private_token=PRIVATE_TOKEN

也就是说,你有 gitlab-ce issue 31470仍然开放:

API to "Get raw file from repository" fails for files with dots

正在进行修复:gitlab-ce merge_request 13370 ,并将交付给 GitLab 9.5。

关于git - 从存储库中获取原始文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45712617/

相关文章:

gitlab - 如何防止通过API创建标签或发布时触发CI/CD

gitlab - Gitlab & Gitlab Runner 架构

Git Squash by author - 所有作者都提交到一个提交中

git - 使用 .gitignore 的白名单目录

git - 如何恢复提交并将更改放回舞台

iphone - 如何从 iPhone 应用程序邀请 Facebook 好友?

api - Paypal pro 我还需要用ipn吗?

git-apply 神秘地失败了,我该如何排除故障/修复?

api - 我 flutter 的 Http 发布请求未发送表单数据

git - 如何将标签推送到 CI 中的分支?