2

我正在尝试为我的 repo 上的 set 分支设置规则,但存在仅适用于特定分支的模式问题。即规则仅适用于brances master,develop,release

问题:模式没有选择错误的分支

我试着浏览这里,但它按预期工作 https://ruby-doc.org/core-2.5.1/File.html#method-c-fnmatch

我已经尝试过,但没有使用 0 个分支或选择的所有内容:

{^.*(master).*$,^.*(develop).*$} [master,develop,release] [master;develop;release]*

ps 这个剂量相反,适用于所有支架,但列出的是: *[!master|!develop|!release]*

4

2 回答 2

1

我有一个解决方法,但我确信有一个更好的解决方案,或者解决这个问题。我基本上使用规则的优先顺序来只使用我想要的规则设置分支。

  • 我针对除我想要的分支之外的每个分支,并且不设置任何规则
  • 然后将所有分支设置为需要我想应用于我的分支的规则。
  • 第一条规则需要总统并确保只有我想要的人才能获得规则。

注意规则中存在冲突,这似乎更像是一个警告

在此处输入图像描述

于 2021-07-30T09:31:04.957 回答
0

正如johnfo 在评论中所说,GitHub 的分支保护规则模式不是正则表达式。事实上,GitHub 文档提到它们是专门的Ruby File::FNM_PATHNAME 样式表达式。这是非常具体的(Git 本身根本不使用 Ruby 代码)。

我剪断了标签;奇怪的是,您自己包含了,对于可能希望在此处提供正确 Ruby 表达式的人来说,这是正确的标记。看起来 GitHub 没有设置FNM_EXTMATCH标志,因此您可能需要多个匹配表达式(也在上面的评论中注明)。除了添加一些链接似乎有用之外,我不会费心回答。

于 2021-07-30T07:58:09.950 回答