Github状态检查以进行版本控制

时间:2020-10-05 20:44:45

标签: github devops versioning semantic-versioning

我正在尝试实现以下方案。

我们的开发人员在回购协议中维护一个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上。

1 个答案:

答案 0 :(得分:0)

您可以使用githooks解决此用例。

  • 确保git上有服务器端githooks。
  • 使用将在每次合并之前运行的pre-merge-commit挂钩。
  • 在$ GIT_DIR读取当前分支的文件名。
  • 读取主分支的文件名
git ls-tree -r --name-only <branch>
  • 比较文件名。
  • 如果钩子想要停止合并提交,则向stderr发送适当的消息后,该钩子应以非零状态退出。

您可能需要对只读的git凭证进行硬编码。

更多详细信息,请参见here