第一段引用上面的摘要:Pact Broker 升级至 2.107.1 版本后,Pact 文件覆盖功能失效,导致使用相同版本号推送 Pact 文件时出现问题。本文将介绍该问题的原因,并提供启用 allow_dangerous_contract_modification 功能的解决方案,同时强调该方案的风险和替代方案。
升级 Pact Broker 到 2.107.1 版本后,之前在 Consumer 配置中使用的 pactFileWriteMode: overwrite 属性不再生效。这是因为 pactFileWriteMode 是 Pact 本地库的配置,而非 Broker 端的配置。该属性在 Pact JS 10.x.x 版本中已被移除,具体可参考官方迁移文档。
要解决 Pact 文件覆盖问题,可以在 Pact Broker 中启用 allow_dangerous_contract_modification 功能。该功能允许修改现有 Consumer 版本的 Pact 内容。
配置方法:
在 Pact Broker 的配置中,将 allow_dangerous_contract_modification 设置为 true。
示例(以环境变量配置为例):
PACT_BROKER_ALLOW_DANGEROUS_CONTRACT_MODIFICATION=true
注意事项:
启用 allow_dangerous_contract_modification 会带来以下风险:
最佳实践是为每次提交发布具有唯一版本号的 Pact 文件。 这可以确保合约的一致性,并使 can-i-deploy 命令能够可靠地工作。
以下是一些生成唯一版本号的常用方法:
示例(使用 Git 提交 SHA):
git rev-parse HEAD
将上述命令的输出作为 Pact 文件的版本号,并将其传递给 Pact 客户端。
虽然启用 allow_dangerous_contract_modification 可以解决 Pact 文件覆盖问题,但强烈建议避免使用此方法,因为它会带来严重的风险。最佳实践是为每次提交发布具有唯一版本号的 Pact 文件,以确保合约的一致性并使 can-i-deploy 命令能够可靠地工作。
以上就是Pact Broker 2.107.1 更新后 Pact 文件覆盖问题解决方案的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号