Github 版本控制状态检查

Github Status Check for Versioning

我正在尝试实现以下场景。

我们的开发人员在存储库中维护一个 version.plist 文件。让我们考虑 master 的版本是 1.1.1。 (遵循 semver 2.0 规范)

当开发人员 A 处理一项功能时,他创建 PR 并将版本更新为 1.2.1。 我想对 PR 进行状态检查,以说明 PR 是否具有要合并到 master 的正确版本。

我不希望在版本相同或低于 master 的情况下发生合并。

让我们以类似的方式考虑另一个开发人员 B 也在开发另一个功能并将他的 version.plist 也更新为 1.2.1。他将它合并到 master 中,现在 master 的版本是 1.2.1.

我希望以上状态检查重复测试并通知 Dev A 的 PR 不可合并,即使之前可以合并。

任何人都可以通过 Status API/Events API 提出有关如何执行此操作的任何指南。这是在与 Azure 管道集成的组织 GitHub 上。

您可以使用 githooks 来解决这个 use-case。

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

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

可以找到更多详细信息 here