我想通过使用它的api在gitlab中获取文件内容。 首先,我检查我的gitlab版本,它写成, GitLab社区版9.4.3 b125d21更新asap
然后我创建一个私人令牌 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
答案 0 :(得分:2)
文件提到:
Url编码新文件的完整路径。防爆。
lib%2Fclass%2Erb
这意味着您需要对test.js
进行网址编码: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对于带点
的文件失败
正在进行修复:gitlab-ce merge_request 13370,并将为GitLab 9.5提供。