首页 > 解决方案 > 如何使用 gitlab api 从存储库提交中检索原始文件内容?

问题描述

我们可以通过以下方式获取存储库提交列表:

GET /projects/:id/repository/commits?path=:thefilename

我们可以通过 blob id 获取原始文件内容:

GET /projects/:id/repository/blobs/:sha/raw

但是,第一个 api 不会返回每个存储库提交的 blob id,并且没有已知的 api 可以使用提交 id 检索原始文件内容。我需要从过去的存储库提交中检索原始文件内容,而不仅仅是最新的提交。

标签: gitgitlabgitlab-api

解决方案


这实际上不是真的。API 直接支持从任意引用获取文件,因为 git 直接支持:

GET /projects/:id/repository/files/:file_path/raw

  • file_path(必需)- 新文件的 URL 编码完整路径。前任。lib%2Fclass%2Erb
  • ref(必填) - 分支、标签或提交的名称

前任。:

curl --request GET --header 'PRIVATE-TOKEN:' ' https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fmodels%2Fkey%2Erb/raw?ref=master '

阅读更多从存储库获取原始文件


推荐阅读