【腾讯云代码分析】自定义规则 #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
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
自定义规则,即由团队根据自身需求,由团队自行设计提供的规则。
自定义规则权限说明
当前平台提供的工具中,仅
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