如何将github分支规则应用于两个分支?

时间:2018-11-03 20:51:27

标签: github

我的意思是我想指定多个分支,例如dev|master。但是看完文档后,我认为这是不可能的??为了使用同一条规则来保护两个分支,我是否必须创建两个规则?

4 个答案:

答案 0 :(得分:3)

我发现这样做的方法非常丑陋,至少可以避免(尽管@GitHub在关闭所有选项的情况下给我们带来比fnmatch更好的东西会更好)。

您可以使用字符集在回购名称中指定开头字符,如下所示:

[dm][ea][vs]*

它将匹配您想要的“ dev”和“ master”,但由于通配符,还将匹配“ mastodon-rules”和“ devo-is-my-favorite-band”。我不认为fnmatch会给您像正则表达式?这样的“零或一”量词,因此它被限制为最短回购名称的长度。

诚然,这不是一个非常令人满意的解决方案。但是使用fnmatch,这可能是最好的选择。

答案 1 :(得分:0)

今天早上也一直在努力争取解决这个问题,我相信您(/我们)可能必须为每个分支奇怪地创建两个相同的规则。至少阅读完之后,我就是这样相信的:

https://github.community/t5/How-to-use-Git-and-GitHub/Apply-a-single-branch-protection-rule-to-both-master-and-release/td-p/11587

来自主持人的评论:

  

“否,在“将规则应用于”框中没有办法做到这一点。   在受保护的分支机构文档中所述,我们使用fnmatch   库将分支名称与匹配表达式进行匹配。有一个   可以匹配两个规则的功能   标记已启用,但我们不在环境中启用该标记。”

或者,如果您要将一个规则应用于以相同匹配短语开头或包含相同匹配短语的所有分支,则可以使用此解决方案:

https://github.community/t5/How-to-use-Git-and-GitHub/Branch-Protection-on-multiple-branches/td-p/10519

社区经理的评论:

  

分支保护规则模式基于fnmatch语法。你可以   使用releases / v?。?自动保护像   版本/v1.0,版本/v2.0和版本/v2.1。和   [1-9]-[0-9] -stable可以自动保护分支,例如   1-0稳定,2-0稳定和2-1-稳定。

答案 2 :(得分:-2)

他们已经启用通配符。所以这个模式有效:

[main,qa,stage,master]*

答案 3 :(得分:-7)

根据GitHub documentation,他们使用fnmatch 库作为模式字段。该语法允许交替:

<块引用>

{a,b}

如果启用了 a 标志,则匹配模式 b 和模式 File::FNM_EXTGLOB。表现得像正则表达式联合 ((?:a|b))。

对于您的问题,您正在寻找的模式可能是 {dev,master}

我不知道“如果启用了 File::FNM_EXTGLOB 标志”是什么意思,所以这可能不起作用。