如何在 phabricator 接受评论之前阻止 git 推送?

How to block git push before a review being accepted in phabricator?

为了在我们的团队中使用它,我已经尝试 Phabricator 平台 2 天了。一切看起来都很棒,除了一个我不知道怎么做。

我们想强行将代码审查流程添加到我们的工作流程中。所以我配置差分。然后作为一名开发人员,我可以使用 Arcanist 命令行将差异发送到网络 UI 要求其他人审查。有人审核后也可以接受或拒绝。没关系。

但是我应该在将我的更改推送到托管仓库之前等待其他人的审查接受,可以在没有接受的情况下使用 git 推送(不是 arc land 或 arc amend)来做到这一点。我怎样才能避免这种情况?

据我所知,你不能。用户要么拥有推送权限,要么拥有 none。一种方法是相信提交者在审查被接受之前不会推动他的事情。另一方面,您可以放弃推送的权利,让审阅者或管理员登陆补丁。

一种不同的(可能有点复杂)方法可能是创建一些先驱规则来防止推送。但是我不确定 herald 是否足够灵活和强大以适应这种工作。

在上游,我们让 Herald 检查是否存在差异提交,您可以发送一封令人尴尬的电子邮件、触发审计或其他任何方式。因为我们是一个小团队,所以我们触发了审计(假设这些实例通常是紧急情况,可以在以后进行审查)。如果存储库也由 Phabricator 托管,您可以在存储库上设置一个策略,让谁有权推送到它。我们用它来控制贡献者。频繁的贡献者可以自由地获取经过审查的代码。新贡献者需要上游手动落地代码