ion-bazan/composer-diff

比较 composer.lock 的更改并生成 Markdown 报告,以便您在 PR 描述中使用。

资助包维护!
IonBazan

安装次数: 689,595

依赖者: 1

建议者: 1

安全: 0

星星: 142

关注者: 6

分支: 6

开放问题: 1

类型:composer-plugin

v1.9.1 2024-08-02 07:09 UTC

README

PHP 5.3+ | 7.x | 8.x Composer v1 | v2 Dependencies: 0 Latest version GitHub Workflow Status Codecov Mutation testing badge Downloads License

通过比较 composer.lock 文件生成 Markdown 格式的包更改报告。默认情况下,与最后提交的更改进行比较。

现在作为 GitHub Action 提供!

preview

安装

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 是一个开源项目,欢迎任何人提交拉取请求和问题。在提交拉取请求之前,请考虑阅读我们的简短 贡献指南

类似包

虽然有几个现有包提供类似的功能

此包提供

  • 对广泛范围的 PHP 版本的支持,从 5.3.2 开始,到 8.0 及更高版本。
  • 如果您将其作为 composer 插件运行,则没有依赖项。
  • 既可以是独立的可执行文件,也可以是 composer 插件接口 - 您可以选择如何使用它。
  • 允许以几种格式生成报告。
  • 额外的 Gitlab 域名支持。
  • GitHub Action 及示例工作流程
  • 100% 测试覆盖率。
  • MIT 许可证。