如何使用 gitlab api 从存储库提交中检索原始文件内容?

How to retrieve raw file content from a repository commit with gitlab api?

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

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

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

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

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

事实并非如此。 API 直接支持从任意引用获取文件,因为 git 直接支持:

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

  • file_path (required) - Url encoded full path to new file. Ex. lib%2Fclass%2Erb
  • ref (required) - The name of branch, tag or commit

例如:

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

Read More at Get raw file from repository