我目前正在使用Octokit.Net尝试搜索和查找满足特定条件的存储库:
- 包含
Android
某处的存储库。 - 包括路径匹配中的任何
.xml
文件res/layout
- 至少有 100 颗星
- ETC
目标是找到超过 100 颗星的 Android 存储库,其中包含.xml
res/layout 路径中的任何文件。
为此,我尝试创建两个单独的请求,其中我使用 aSearchRepositoriesRequest
来查找与Android
特征和星号匹配的存储库。
var request = new SearchRepositoriesRequest("android")
{
Stars = Range.GreaterThan(100),
In = new[] { InQualifier.Readme, InQualifier.Description, InQualifier.Name },
SortField = RepoSearchSort.Stars,
};
然后我将这些存储库添加到 aRepositoryCollection
并在其中使用它SearchCodeRequest
,我希望在每个存储库中我可以搜索Extension
、Language
、Path
等。
var request1 = new SearchCodeRequest()
{
Repos = repositoryCollection,
In = new[] { CodeInQualifier.File, CodeInQualifier.Path },
Language = Language.Xml,
Size = Range.GreaterThan(100),
Path = "res/layout",
Extension = "xml",
};
一般来说,有没有办法搜索在路径中包含通用文件的存储库集合?
我或多或少地从高级 GitHub 搜索中看到了相同的结果。可悲的是,这让我觉得这在今天使用 GitHub v3 API 是不可能的。
我确实在各种博客和类似博客中发现了一些限制,这似乎是不可能的?
代码搜索的注意事项
由于搜索代码的复杂性,搜索的执行方式有一些限制:
仅考虑默认分支。在大多数情况下,这将是主分支。
只能搜索小于 384 KB 的文件。
搜索源代码时,您必须始终包含至少一个搜索词。例如,搜索 language:go 是无效的,而惊人的 language:go 是。