如何使用 GitHub 操作拒绝来自存储库成员的推送?

kin*_*ton 6 git github github-actions

我的任务如下:在收到新的提交(通过单次推送)时,有必要执行 github 操作,该操作将通过 ssh(使用git pullnpm test)将任务发送到测试服务器上进行测试。然后,如果测试失败,则应取消此推送(其中的所有提交)。

第一部分,似乎没有问题,但是我想不出如何实现第二部分,即取消推送。感谢您对问题的关注!

bk2*_*204 12

你不能使用 GitHub Actions 来阻止推送;你需要一个预接收挂钩来做到这一点。GitHub 的云版本目前不支持,尽管 GitHub Enterprise Server(本地版本)支持。

但是,根据您对 的使用,您可以做的事情以及听起来您可能想要做的事情npm test是在推送和限制master分支上运行 CI 作业。您可以使用 GitHub Actions 在拉取请求打开时自动测试您的代码,并要求在合并之前通过所有检查。由于master无法直接推送分支,因此无法避免 CI 作业。

如果您是该项目的唯一贡献者,您只需将您的分支推送到您的存储库,让 CI 作业运行,然后master在作业通过时进行快进合并。这需要做更多的工作,但您不必打开任何拉取请求。

  • 你能给我举一个关于如何“在推送时运行 CI 作业并限制 master 分支”的示例吗 (4认同)