2015-11-03 47 views
0

我正在尝试创建一个Herald规则来阻止提交空的提交消息。该规则是适用于提交挂钩:提交内容的全局规则。不幸的是,我一直无法获得通过测试控制台触发的规则。为什么这个Phabricator Herald规则不适用?

这使我尝试改变各种方式的条件,最终要这样:

When any of these conditions are met: 
Always 

Take these actions every time this rule matches: 
Block push with message: No empty commit messages allowed. 

看起来这应该引起Phabricator适用本规则的任何承诺,但根据规则成绩单,即使这规则不适用。

应该是?如果是这样,什么可能会导致这种行为?

+0

一些简单的问题:只是为了确保规则没有被禁用,对吧?我确定它是这样的,但我想先让它变得简单一些......创建规则时,它是否被创建为个人或对象类型规则?如果是这样,那可能会限制它可以适用的范围。 – CEPA

+0

该规则被标记为活动的,所以它似乎没有被禁用。我很确定我将它创建为全局规则,规则类型显示为全局规则,所以似乎是这样。我不知道如何在创建规则后更改规则类型,或者甚至可以这样做,所以我怀疑这是否是全球规则以外的任何规则。 – foven

回答

0

通过讨论irc.freenode.net上的#phabricator通道,我了解到测试控制台测试预先提交的Herald规则目前尚未得到Phabricator的支持。帮助我创建此问题的任务的开发人员可以在此处找到https://secure.phabricator.com/T9719

使用测试控制台不是一个选项,我不完全确定如何测试此类型的Herald规则,而不允许不可接受的提交到存储库。我读过这个https://secure.phabricator.com/book/phabricator/article/diffusion_hooks/页面,它解释了如何安装自定义挂钩。有趣的是,它声明“只有在所有先驱规则已经通过并且Phabricator准备接受提交或推送之后,这些挂钩才会运行。”我问是否有可能创建这种类型的钩子来拒绝所有提交,然后通过实际尝试正常提交提交来测试Herald规则。有人表示这可能有效。我还没有机会对此进行测试,所以一旦知道更多信息,我就会发布更新。