Skip to main content

此版本的 GitHub Enterprise Server 将于以下日期停止服务 2026-03-17. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

自定义模式参考

使用特定的正则表达式语法来为 secret scanning定义准确的自定义模式。

自定义模式的正则表达式库

Secret scanning 自定义模式是使用 Hyperscan 库 定义的,并且仅支持 Hyperscan 正则表达式构造,这是 PCRE 语法的子集。 不支持 Hyperscan 选项修饰符。 有关 Hyperscan 模式构造的详细信息,请参阅 Hyperscan 文档中的模式支持

用于手动定义自定义模式的语法

UI 中的 “More options ”部分可以帮助您手动编写正则表达式。

  •         **机密格式:** 描述机密本身格式的表达式。
    
  •         **机密之前:** 用于描述机密之前字符的表达式。 默认情况下,此值设置为 `\A|[^0-9A-Za-z]`,这意味着机密必须位于行首或前面有非字母数字字符。
    
  •         **机密之后:** 描述机密后面的字符的表达式。 默认情况下,此值设置为 `\z|[^0-9A-Za-z]`,这意味着机密后面必须跟有新行或非字母数字字符。
    
  •         **其他匹配要求:** 机密本身必须或不得匹配的一个或多个可选表达式。
    

对于简单令牌,通常只需指定机密格式。 其他字段提供了灵活性,以便您可以指定更复杂的机密,而无需创建复杂的正则表达式。

自定义模式示例

公司具有具有五个特征的内部令牌。 它们使用不同的字段来指定如何标识令牌,如下所示:

| 特征 | 字段和正则表达式 | |----------------|------------------------------| | 长度介于 5 到 10 个字符之间 | 机密格式:[$#%@AA-Za-z0-9]{5,10} | | 不以 . 结尾 | 机密之后:[^\.] | | 包含数字和大写字母 | 其他要求:机密必须匹配 [A-Z][0-9] | | 一行中不包含多个小写字母 | 其他要求:机密不得匹配 [a-z]{2,} | | 包含 $%@! 之一 | 其他要求:密钥必须匹配 [$%@!] |

这些令牌将与上述自定义模式匹配:

a9@AAfT!         # Secret string match: a9@AAfT
ee95GG@ZA942@aa  # Secret string match: @ZA942@a
a9@AA!ee9        # Secret string match: a9@AA

这些字符串与上述自定义模式不匹配:

a9@AA.!
a@AAAAA
aa9@AA!ee9
aAAAe9

限制

Secret scanning支持每个组织或企业帐户最多 500 个自定义模式,每个存储库最多 100 个自定义模式。