Composer 不提供 GitHub 星数等功能,因 Packagist 仅索引 name、description 等基础字段,不抓取 star 数等元数据;需通过 composer show 查 source 字段定位仓库,再调 GitHub API 或用 packagist-api 补全。

Composer 本身不提供查看 GitHub 星数、仓库地址或维护状态的功能,composer search 仅支持按包名或描述关键词模糊匹配,且返回结果不含任何源码托管平台元数据。
为什么 composer search 查不到 GitHub 星数
因为 Packagist(Composer 默认仓库)不抓取也不存储 GitHub 的 star 数、fork 数、最后更新时间等信息。它只索引:name、description、type、keywords 和基本的依赖关系。所有「星数」「活跃度」「作者响应率」类指标必须从 GitHub API 或第三方工具补充获取。
用 composer show 快速定位真实仓库地址
查到包名后,先确认它是否公开托管在 GitHub:运行 composer show vendor/package-name,重点看 source 字段:
composer show monolog/monolog name : monolog/monolog descrip. : Sends your logs to files, sockets, inboxes, databases and various web services keywords : log, logging homepage : https://github.com/Seldaek/monolog source : https://github.com/Seldaek/monolog.git dist : https://api.github.com/repos/Seldaek/monolog/zipball/...
-
source值为https://github.com/xxx/yyy.git表示可直接查 GitHub - 若
source为空或指向私有 GitLab/Gitee,GitHub 星数就无意义 - 有些包只写
homepage,需手动打开该链接确认是否跳转到 GitHub
用命令行一键查 GitHub 星数(Linux/macOS)
配合 curl + jq 直接调 GitHub API(无需 Token,限速 60 次/小时):
curl -s "https://api.github.com/repos/Seldaek/monolog" | jq '.stargazers_count, .updated_at, .forks_count'
- 输出类似:
11245(星数)、"2024-05-22T14:32:11Z"(最后更新)、1789(Fork 数) - 注意替换 URL 中的用户名和仓库名,与
source字段一致(去掉.git后缀) - 若返回
null或404,说明仓库已迁走、改名,或设为私有
替代方案:用 packagist-api 工具补全信息
社区有个轻量 CLI 工具 packagist-api,能合并 Packagist + GitHub 元数据:
- 安装:
composer global require janephp/packagist-api - 查询:
packagist-api show monolog/monolog --with-github - 它会自动解析
source并请求 GitHub API,但需你配置个人 Token 才能突破限速 - 不推荐用于 CI 或批量扫描,仅适合单点快速验证
真正容易被忽略的是:很多高星包(如 symfony/console)在 GitHub 上其实是 monorepo 的子目录,source 地址指向整个 symfony/symfony 仓库 —— 它的星数反映的是全部组件,不是单个子包。别光看总数,得进仓库翻 /src/Symfony/Component/Console/ 看提交频率和 issue 响应速度。










