如何使用 GitHub 操作拒绝存储库成员的推送?
How can I reject push from repository members using GitHub Actions?
我的任务如下:在收到新提交(通过单推)后,有必要执行 github 操作,这将通过 ssh 将任务发送到测试服务器上进行测试( git pull
和 npm test
)。然后,如果测试失败,则应取消此推送(其中的所有提交)。
有了第一部分,貌似没有问题,但是我想不通第二部分怎么实现,就是取消推送。感谢您对问题的关注!
您不能使用 GitHub 操作来阻止推送;你需要一个预接收挂钩来做到这一点。 GitHub 的云版本目前不支持,尽管 GitHub Enterprise Server(本地版本)支持。
但是,根据您对 npm test
的使用,您可以做的,以及听起来您可能想做的是 运行 一个 CI 推送工作和限制 master
分支。您可以使用 GitHub 操作在拉取请求打开时自动测试您的代码,并要求所有检查都通过才能合并。由于无法直接推送 master
分支,因此无法避免 CI 作业。
如果您是该项目的唯一贡献者,您可以将您的分支推送到您的存储库,让 CI 工作 运行,然后快进合并到 master
如果作业通过。这需要多做一些工作,但您不必打开任何拉取请求。
我的任务如下:在收到新提交(通过单推)后,有必要执行 github 操作,这将通过 ssh 将任务发送到测试服务器上进行测试( git pull
和 npm test
)。然后,如果测试失败,则应取消此推送(其中的所有提交)。
有了第一部分,貌似没有问题,但是我想不通第二部分怎么实现,就是取消推送。感谢您对问题的关注!
您不能使用 GitHub 操作来阻止推送;你需要一个预接收挂钩来做到这一点。 GitHub 的云版本目前不支持,尽管 GitHub Enterprise Server(本地版本)支持。
但是,根据您对 npm test
的使用,您可以做的,以及听起来您可能想做的是 运行 一个 CI 推送工作和限制 master
分支。您可以使用 GitHub 操作在拉取请求打开时自动测试您的代码,并要求所有检查都通过才能合并。由于无法直接推送 master
分支,因此无法避免 CI 作业。
如果您是该项目的唯一贡献者,您可以将您的分支推送到您的存储库,让 CI 工作 运行,然后快进合并到 master
如果作业通过。这需要多做一些工作,但您不必打开任何拉取请求。