【问题标题】:GitHub: Search for String Inside of a File in a RepoGitHub:在存储库中搜索文件内的字符串
【发布时间】:2020-03-09 19:15:32
【问题描述】:

TLDR:我想使用 GitHub 搜索 API 在顶级 Jenkinsfile 中查找带有“搜索字符串”的所有存储库的列表。 GitHub 允许吗?

我已阅读大量 SO 帖子和 GitHub 搜索/API 文档,包括:

找不到我的问题的答案。

我首先尝试使用 GitHub 代码搜索 API 在特定文件中搜索特定子字符串(只有两个带有破折号的单词:“search-string”),但我不知道如何去做吧。我尝试了许多简单和高级搜索的组合,但通常得到零结果。即

  • 1 个结果(显而易见):repo:repo/redacted
  • 0 个结果:repo:repo/redacted 搜索字符串
  • 0 个结果:搜索字符串 repo:repo/redacted 文件名:Jenkinsfile
  • 0 个结果:搜索字符串 repo:repo/redacted in:Jenkinsfile

还有更多的组合。

一旦我让它在 GitHub 网站上运行,我会将它转换为 API 调用,这应该不是问题。

提前致谢!

【问题讨论】:

  • 这很奇怪,第三个字符串对我有用,在我的存储库中使用类似的字符串。

标签: github github-api


【解决方案1】:

我遇到了类似的问题,我试图使用 GitHub 搜索 Web 界面在我的代码中查找特定文件名的实例,该文件名的名称包括下划线字符和数字,例如 my_image_asset_2.svg

在我的存储库(或组织)中搜索该字符串意外返回零结果(在“代码”结果类型中),使用如下搜索词:

  • repo:repo/redacted my_image_asset_2.svg

即使从我的搜索词中删除数字和扩展名,仍然意外返回零结果:

  • repo:repo/redacted my_image_asset

最终偶然发现让 GitHub 返回我正在寻找的代码的解决方法是 (1) 从我的文件名中删除所有标点符号,以及 (2) 将文件名括在引号中:

  • repo:repo/redacted "my image asset 2 svg"

这可能不是所有情况下的完美解决方案;我想它也可能匹配my-image-asset-2.svg 之类的文件名。但根据您的用例,它可能“足够好”?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    相关资源
    最近更新 更多