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。
我正在尝试实现以下场景。
我们的开发人员在存储库中维护一个 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。