如何解决Github状态检查以进行版本控制
我正在尝试实现以下方案。
我们的开发人员在回购协议中维护一个version.plist文件。让我们考虑主版本为1.1.1。 (遵循semver 2.0规范)
当开发人员A使用某项功能时,他会创建PR并将版本更新为1.2.1。 我想对PR进行状态检查,以说PR是否具有要合并到主版本的正确版本。
我不希望出现这样的情况:如果版本相同或低于主版本,则可能会发生合并。
让我们以类似的方式考虑,另一个开发人员B也从事另一个功能,并将其version.plist也更新为1.2.1。他将其合并到master,现在master具有1.2.1版。
我希望上述状态检查可以重复测试,并通知Dev A的PR无法合并,即使以前可以合并。
任何人都可以通过Status API / Events API建议有关如何执行此操作的任何准则。这是在与Azure管道集成的组织GitHub上。
解决方法
您可以使用githooks解决此用例。
- 确保git上有服务器端githooks。
- 使用将在每次合并之前运行的pre-merge-commit挂钩。
- 在$ GIT_DIR读取当前分支的文件名。
- 读取主分支的文件名
git ls-tree -r --name-only <branch>
- 比较文件名。
- 如果钩子想要停止合并提交,则向stderr发送适当的消息后,该钩子应以非零状态退出。
您可能需要对只读的git凭证进行硬编码。
更多详细信息,请参见here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。