【腾讯云代码分析】自定义规则 #311
cocorunning
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
自定义规则,即由团队根据自身需求,由团队自行设计提供的规则。
自定义规则权限说明
当前平台提供的工具中,仅
RegexFileScan
、RegexScan
两款工具支持使用用户自定义规则。开放支持自定义规则权限,需平台管理员在管理入口-工具管理中找到对应工具,并将其权限状态调整为支持自定义规则。
自定义规则仅支持团队管理员添加,且默认仅团队内可见。
满足不同团队自定义规则可能存在的差异和隐私性。
如需将自定义规则加入工具默认规则,需联系工具提供方团队管理员添加。
工具RegexScan说明
正则工具
RegexScan
即为开放了自定义规则功能的工具,可进入工具管理页面,搜索工具名称RegexScan
,查看该工具已存在的规则以及根据团队业务需求,添加自定义规则。适用场景:通过正则表达式,能够匹配到目标代码的情况。
自定义规则步骤
1.根据团队业务需求设计正则表达式
规则示例:
规则分析场景
分析代码中的 usleep() 方法调用,如果参数小于 100 ,容易造成 CPU 使用率过高,造成性能浪费,判断为缺陷。
正则表达式
匹配 usleep() 字符串,括号中的内容为 1 位或 2 位整数,那么正则表达式可以写成
\busleep\s*\(\s*\d{1,2}\s*\)
,这里考虑了字符串中存在空格的情况。2.进入正则工具添加自定义规则
进入工具管理页面,找到正则工具
RegexScan
,并点击进入自定义规则列表页,点击添加规则按钮。3.填写规则信息
规则参数填写说明(必要):
参数格式类似 ini 的格式, 也就是 key = value 的格式
【必要】 regex 参数,用于指定分析的正则表达式, 例如:
regex = \busleep\s*\(\s*\d{1,2}\s*\)
。【必要】 msg 参数,用于展现 issue 说明, 例如: msg =
msg = 函数方法%s 已经废弃,请使用 xxx 方法
。【可选填】 ignore_comment 参数,用于指定是否忽略注释代码,可选值:True、true、False、false 。例如 ignore_comment=True, 默认是 False
【可选填】 include 参数,用于将指定分析文件匹配范围,使用 unix 的文件匹配格式,多项使用英文分号;隔开。例如include = path/to/dir;path/to/*.cpp
【可选填】 exclude 参数,用于指定不分析的文件。格式参考 include 参数。
4.将自定义规则添加到项目分析方案中
添加完成,可在分析方案-代码检查-自定义规则包-添加规则。
欢迎使用!(๑•̀ㅂ•́)و✧
Beta Was this translation helpful? Give feedback.
All reactions