我的意思是我想指定多个分支,例如dev|master。但是看完文档后,我认为这是不可能的??我是否仅为了使用同一规则来保护两个分支就必须创建两个规则?
Z4-*_*ier 16
我发现这样做的丑陋方式至少会引起人们的注意(尽管@GitHub为我们提供比fnmatch关闭所有选项更好的东西会更好)。
您可以使用字符集来指定存储库名称中的开始字符,如下所示:
[dm][ea][vs]*
Run Code Online (Sandbox Code Playgroud)
它会匹配dev,master这就是您想要的,但是由于通配符,它也会匹配“ mastodon-rules”和“ devo-is-my-favorite-band”。我不认为fnmatch给您像正则表达式?这样的“零或一”量词,因此它是限制性的。
Github fnmatch 确实允许否定字符集,因此,如果规则捕获了您不希望包含的分支,则可以解决该问题:
[dm][ea][vs][!o]
Run Code Online (Sandbox Code Playgroud)
这会错过dev分支,但至少在与您的Metalhead好友进行的下一个通宵节拍会议期间,至少不会“鞭打它”。
诚然,这不是一个非常令人满意的解决方案。但是使用fnmatch可能是最好的选择。
今天早上也一直试图解决这个问题,我相信你(/我们)可能不得不奇怪地为每个分支创建两个相同的规则。至少这是我在阅读后相信的:
主持人评论:
“不,在“将规则应用于”框中没有办法做到这一点。如受保护的分支文档中所述,我们使用 fnmatch 库将分支名称与匹配表达式匹配。有一个功能允许如果启用了标志但我们没有在我们的环境中启用该标志,则可以匹配两个规则。”
或者,如果您想将一个规则应用于以相同匹配短语开头或包含相同匹配短语的所有分支,则可以使用此解决方案:
来自社区经理的评论:
分支保护规则模式基于 fnmatch 语法。你可以使用releases/v?.? 自动保护releases/v1.0、releases/v2.0和releases/v2.1等分支。而 [1-9]-[0-9]-stable 可以自动保护分支,如 1-0-stable、2-0-stable 和 2-1-stable。
以下 z4-tear 的精彩解释将涵盖development master和staging
[dms][tea][avs]*[iet][ne][gtr]
Run Code Online (Sandbox Code Playgroud)