我想通过它的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的内容,但是无论我怎么尝试都无法实现。
{"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/