加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 16:10:10 所属栏目:PHP教程 来源:网络整理
导读:有没有办法发现所有具有特定存储库Foo / Bar作为依赖的公共 GitHub存储库? 我对PHP上下文很感兴趣(所以主要与Composer有关). 我想知道是否有一些特定于Composer(可能依赖于Packagist?)或一些通用解决方案. 解决方法 鉴于您的具体要求,我过去采用的一种方法
有没有办法发现所有具有特定存储库Foo / Bar作为依赖的公共 GitHub存储库?

我对PHP上下文很感兴趣(所以主要与Composer有关).

我想知道是否有一些特定于Composer(可能依赖于Packagist?)或一些通用解决方案.

解决方法

鉴于您的具体要求,我过去采用的一种方法是使用 Google’s GitHub Data for BigQuery.

例如,此查询将返回所有具有使用Foo / Bar提交的composer.lock文件的存储库.

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依赖于库baz和baz取决于Foo / Bar你是否认为它是2个依赖者或只有1个具有传递依赖性?如果Fred和baz都提交了composer.lock文件,则此查询将计为2.

然而,它是一个关于库的使用范围的某种想法的起点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读