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

时间:2019-08-31 21:52:03

标签: git github github-actions

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

在第一部分看来,没有问题,但是我不知道如何实现第二部分,即取消推送。谢谢您对这个问题的关注!

1 个答案:

答案 0 :(得分:2)

您不能使用GitHub Actions阻止推送;您将需要一个预接收钩子来执行此操作。尽管GitHub Enterprise Server(本地版本)支持,但是GitHub的云版本目前不支持。

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

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