git - 如何使用 GitLab API 访问源代码文件和列出目录?

标签 git gitlab

我正在使用 GitLab 并按照 Gitlab installation instructions 中的说明完成设置,我现在正在尝试访问其 RestFul API 以执行创建/删除项目或用户等任务(我能够成功完成此操作)。

我现在必须列出 master 分支(或项目拥有的任何其他分支)中的所有目录,并想要访问这些目录中列出的源代码文件(例如 myproject->master->api、src->somefile .java 等),是否可以使用现有的 Gitlab API 来做类似的事情?

提到了可以调用的 API 的完整列表 here我正在调查 Project Snippets API并使用此 API GET/projects/:id/snippets 列出所有片段,但它返回一个空数组,我的项目中确实有文件,但结果为空。

我假设项目片段引用源代码文件或项目中的任何其他文件,如果我错了请纠正我,我在这里很困惑,因为 Gitlab API 的作者未能解释使用背后的术语“片段”这个词。

如何使用 API 访问完整的目录结构并获取我需要的文件?

最佳答案

I am assuming that project snippets refer to source code files or any other files within the project

不,您可以在 GitLab 演示项目中看到片段:diaspora snippets .
它们与"file"选项卡位于不同的选项卡中。
它们相当于 GitHub gist .

看看 repository API ,比如:

列出存储库树

Get a list of repository files and directories in a project.

GET /projects/:id/repository/tree

原始 blob 内容

Get the raw file contents for a file.

GET /projects/:id/repository/commits/:sha/blob

astratto mentions新 API (6.x) 要求附加文件路径:

GET /projects/:id/repository/blobs/:sha?filepath=:filepath

关于git - 如何使用 GitLab API 访问源代码文件和列出目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17063630/

相关文章:

postgresql - 为什么 postgres 容器在 Gitlab CI 中忽略/docker-entrypoint-initdb.d/*

docker - 使用 Gitlab 安装 Ingress 的 Kubernetes 返回 "?"作为外部 IP

kubernetes - 如何通过web UI配置安装在kubernetes上的gitlab runner

git - 使用 --force 的 Nodegit 远程推送

git - 在 cygwin 下,如何在 Windows 上指定带空格的 git URL?

ruby - 你能在公共(public)仓库上用 github 添加一个 webhook 通知吗?

git - 重新创建docker-volume或服务器数据时如何再次推送到gitlab中?

java - 来自守护进程的错误响应 :request canceled while waiting for connection (Client. 等待 header 时超时)

git - 如何将 Git 存储库的特定分支导入到另一个存储库?

git - 我如何为 GitHub 上的维基页面发出 pull 请求?