列出所有依赖的特定 GitHub 存储库/库/依赖项的存储库



有没有办法发现所有具有特定存储库Foo/Bar作为依赖项的公共 GitHub 存储库?

我对PHP上下文感兴趣(所以主要与作曲家有关)。

我想知道是否有一些特定于作曲家的(也许依赖于Packagist?)或一些通用解决方案。

鉴于您的具体要求,我过去这样做的一种方法是使用Google的GitHub Data for BigQuery。

例如,此查询将返回具有已提交composer.lock文件的所有存储库,其中包含Foo/Bar

SELECT f.repo_name
FROM [bigquery-public-data:github_repos.files] f
JOIN [bigquery-public-data:github_repos.contents] c
ON f.id = c.id
WHERE f.path = 'composer.lock'
AND c.content LIKE '%"name": "Foo/Bar"%'

现在这有一些问题,例如:

  • 有些包不会提交composer.lock因此您也可以检查composer.json中的直接依赖项,但这不会给您 100% 的结果。

  • 根据包名称的唯一性Foo/Bar此字符串有可能出现在锁定文件的其他位置。您可能需要调整查询。

  • 这些查询需要很长时间才能运行。

  • Google没有为其免费计划提供大量带宽配额,因此您可能会发现自己每月只能运行几次免费查询。在完整大小数据集上运行之前,请确保在较小的示例数据集上练习查询。

  • 如果应用程序Fred取决于库bazbaz取决于Foo/Bar您是将其算作 2 个依赖项还是仅 1 个具有传递依赖项?如果Fredbaz都提交了composer.lock文件,则此查询会将这些计为 2。

尽管如此,对库的使用范围有某种了解是一个起点。

相关内容

  • 没有找到相关文章

最新更新