如何在特定的 Github 存储库中搜索文件名

使用 Github's search API ,我可以搜索存储库的名称或用户名。

如何在特定的 Github 存储库中搜索文件名?

我的意思是我该怎么做:在 repo jquery/jquery 中,我搜索“selector”关键字,我将拥有 selector.js、selector-sizzle.js、selector-native.js 和 selector-folder

谢谢

stack overflow How can i search file name in specific Github repository
原文答案
author avatar

接受的答案

2014:一种解决方法是执行 code search ,其中:

  • q :比您 know 的单词在您要查找的文件中
  • filename :您要查找的文件的名称(参见“ Search by filename ”)

例如,如果您在 repo classes.js 中查找 jquery/jquery ,您知道它必须包含单词“ addClass ”:

https://api.github.com/search/code?q=addClass+repo:jquery/jquery+filename:classes.js

取分数 > 1 的结果

"name": "classes.js",
"path": "src/attributes/classes.js",

braitsch 添加 in the comments

代替“ score ”,检查查询返回的对象的“ total_count ”属性,因为如果未找到请求的文件,“ score ”将不存在。


2022: Mikhail Vlasenko 指向当前的“ Searching code ”,添加:

在当前版本中,不需要变通方法,因为使用文件名搜索时搜索词可以为空。

除了 filename 搜索之外,在搜索源代码时必须始终包含至少一个搜索词。例如,搜索 language:javascript 无效,而 amazing language:javascript 有效。


答案:

作者头像

从存储库中获取文件索引的另一种方法可以按照Web-UI上的文件搜索功能进行操作。

但是,您需要用提示哈希替换 1c522832... 。github的REST API也很奇怪,因此您需要 -H 'accept: application/json'

curl 'https://github.com/torvalds/linux/tree-list/1c52283265a462a100ae63ddf58b4e5884acde86' -H 'accept: application/json' --compressed

回复:

{"paths":[".gitignore",....]}