【问题标题】:Search filenames with GitLab API使用 GitLab API 搜索文件名
【发布时间】:2014-08-04 21:17:08
【问题描述】:

我正在使用 GitLab API (http://doc.gitlab.com/ce/api/) 尝试搜索特定文件。我可以成功访问特定的存储库,但我希望提供一些文本并检索与文件名匹配的任何文件。如果不是这样,那么至少要获取存储库中所有内容的完整文件结构并自己进行搜索。这可能吗?

【问题讨论】:

  • 不就是调用GET /projects/:id/repository/files那么简单吗?见doc.gitlab.com/ce/api/repository_files.html
  • 否 - 我相信这只会为您提供有关您提供文件路径的特定文件的信息。我正在寻找存储库中所有文件/文件夹的完整列表。

标签: gitlab


【解决方案1】:

http://doc.gitlab.com/ce/api/repositories.html

我没有浏览完整的 API 文档,但一个快速的技巧是列出树,你会得到 Gitlab ObjectifiedHash,运行一个循环并在循环内放置一个条件,说明类型是否为“树”,然后再次发送其各自的 id 以递归地获取其树等,如果它是 blob,则只需保存名称。

这样您就可以获得所有文件/文件夹的名称。这是一种不好的做法,因为您将进行很多 api 调用。通读 API 文档。

我知道这篇文章已经过时了,不过还是回答了。希望对你有帮助

【讨论】:

    【解决方案2】:

    我正在使用 python-gitlab 模块,这使得在 repo 中搜索文件变得容易 https://python-gitlab.readthedocs.io/en/stable/

    获取“项目”表单模块https://python-gitlab.readthedocs.io/en/stable/gl_objects/projects.html,然后简单地使用它来读取文件

    try: f =project.files.get(file_path=filepath, ref=branch) return base64.b64decode(f.content) except Exception as e: print e return ""

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      • 2011-09-26
      • 2023-01-27
      • 2012-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多