ion-bazan / composer-diff
比较 composer.lock 的更改并生成 Markdown 报告,以便您在 PR 描述中使用。
v1.9.1
2024-08-02 07:09 UTC
Requires
- php: >=5.3.2
- composer-plugin-api: ^1.1 || ^2.0
- ext-json: *
Requires (Dev)
- composer/composer: ^1.1 || ^2.0
- symfony/console: ^2.3 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0
- symfony/phpunit-bridge: ^4.2 || ^5.0 || ^6.0 || ^7.0
Suggests
- composer/composer: To use the binary without composer runtime
- symfony/console: To use the binary without composer runtime
README
通过比较 composer.lock
文件生成 Markdown 格式的包更改报告。默认情况下,与最后提交的更改进行比较。
现在作为 GitHub Action 提供!
安装
composer global require ion-bazan/composer-diff
用法
composer diff # Displays packages changed in current git tree compared with HEAD composer diff --help # Display detailed usage instructions
示例输出
选项
--base
(-b
) - 原始composer.lock
文件的路径、URL 或 git ref--target
(-t
) - 修改后的composer.lock
文件的路径、URL 或 git ref--no-dev
- 忽略开发依赖项 (require-dev
)--no-prod
- 忽略生产依赖项 (require
)--with-platform
(-p
) - 包含平台依赖项 (PHP、扩展等)--with-links
(-l
) - 包含比较/发布 URL--format
(-f
) - 输出格式 (mdtable, mdlist, json, github) - 默认:mdtable
--gitlab-domains
- 自定义比较/发布 URL 的 Gitlab 域名 - 默认:使用 composer 配置
高级用法
composer diff master # Compare current composer.lock with the one on master branch composer diff master:composer.lock develop:composer.lock -p # Compare master and develop branches, including platform dependencies composer diff --no-dev # ignore dev dependencies composer diff -p # include platform dependencies composer diff -f json # Output as JSON instead of table
您可以在 docs 目录中找到更多文档。
严格模式
为了帮助您控制依赖项,您可以在 CI 运行时传递 --strict
选项。如果检测到任何更改,将返回非零退出代码。
命令的退出代码是通过以下位标志构建的
0
- 正常。1
- 一般错误。2
- 生产包中存在更改。4
- 开发包中存在更改。8
- 生产包中存在降级。16
- 开发包中存在降级。
您可以选择检查单个标志,或者如果不想降级任何包,则检查状态是否大于或等于 8。
贡献
Composer Diff 是一个开源项目,欢迎任何人提交拉取请求和问题。在提交拉取请求之前,请考虑阅读我们的简短 贡献指南。
类似包
虽然有几个现有包提供类似的功能
- jbzoo/composer-diff - 需要 PHP 7.2+,不支持 composer 插件
- josefglatz/composer-diff-plugin - 仅在安装/更新后工作
- davidrjonas/composer-lock-diff - 不作为 composer 插件工作
此包提供
- 对广泛范围的 PHP 版本的支持,从 5.3.2 开始,到 8.0 及更高版本。
- 如果您将其作为 composer 插件运行,则没有依赖项。
- 既可以是独立的可执行文件,也可以是 composer 插件接口 - 您可以选择如何使用它。
- 允许以几种格式生成报告。
- 额外的 Gitlab 域名支持。
- GitHub Action 及示例工作流程
- 100% 测试覆盖率。
- MIT 许可证。