首页 > 解决方案 > 检索在存储库中的路径中包含文件的所有存储库

问题描述

我目前正在使用Octokit.Net尝试搜索和查找满足特定条件的存储库:

目标是找到超过 100 颗星的 Android 存储库,其中包含.xmlres/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,我希望在每个存储库中我可以搜索ExtensionLanguagePath等。

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 是。

标签: github-apioctokit.net

解决方案


推荐阅读