Github 对 Semver 模式的支持

Github support of Semver patterns

提问人:Yuri Kazarov 提问时间:11/9/2023 最后编辑:Yuri Kazarov 更新时间:11/9/2023 访问量:7

问:

我正在尝试做什么:

我正在尝试在 Github 中设置部署环境标记规则,并在页面底部使用推荐的 Semver 正则表达式模式:https://semver.org/

我遇到的问题:

我使用的 Semver 模式长度为 180 个字符。Github 规则只允许 100 个字符,因此它会截断模式的尾部。

我把长度减少到 87 个,但没有运气。最终,我只留下了核心的 major.minor.patch 部分,由于其他原因,它仍然不起作用。

源语言 ^(0|[1-9]\d*)。(0|[1-9]\d*)。(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-])(?:.(?:0|[1-9]\d|\d*[a-zA-Z-][0-9a-zA-Z-])))?(?:+([0-9a-zA-Z-]+(?:.[0-9a-zA-Z-]+)*))?$

尝试 2 ^(0|[1-9]\d*)。(0|[1-9]\d*)。(0|[1-9]\d*)(?:-(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))

尝试 3 ^(0|[1-9]\d*)。(0|[1-9]\d*)。(0|[1-9]\d*)

有没有办法以另一种方式设置模式,或者缩短它是唯一的解决方案?

标签: 分支 语义版本控制

评论

0赞 Kache 11/28/2023
不知道问题是什么,但尝试 3 不能证明您的问题不是字符长度问题之一吗?
0赞 Yuri Kazarov 11/29/2023
我会说相反:Github 有一个长度限制,阻止使用超过 100 个字符的模式,并且由于其他原因似乎也不适用于 SemVer 模式。regex101.com/r/5lUsPh/1我在这里找到了答案:docs.github.com/en/repositories/......GitHub 实际上使用 fnmatch 进行模式匹配,而不是常规的正则表达式。

答:

1赞 Yuri Kazarov 11/29/2023 #1

Github 使用 fnmatch 作为标签规则,而不是常规的正则表达式模式。

更多信息请见:https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/configuring-tag-protection-rules#adding-tag-protection-rules