Jenkins Pipeline扫描编译器警告自定义解析器被阻止

时间:2017-04-24 20:01:50

标签: jenkins groovy jenkins-pipeline

我有一个扫描编译器警告的管道,最近注意到由于脚本安全性批准,发布命令无法执行Manage Jenkins中定义的groovy脚本。 投诉反对:

  

Groovy沙箱拒绝解析器GHS MULTI No-Wrap的解析脚本:脚本不允许使用方法java.util.regex.MatchResult group int。您需要在脚本审批UI中手动批准该调用。

所以我赞成它,但每次构建都会回来。这只影响我的自定义解析器。

我是否错误地使用了自定义解析器,或者这是一个问题脚本安全性?

Parser Regex:

^"+(.*)".*line\s(\d*):.*(error|warning)\s*#(.*):\s*(.*)$

Parser Script:

import hudson.plugins.warnings.parser.Warning
import hudson.plugins.analysis.util.model.Priority

String fileName = matcher.group(1)
String lineNumber = matcher.group(2)
String category = matcher.group(3)
String typeID    = matcher.group(4)
String message = matcher.group(5)

if(category == "warning"){
    return new Warning(fileName, Integer.parseInt(lineNumber), typeID, 
    category, message, Priority.NORMAL);
}
else if(category == "error"){
    return new Warning(fileName, Integer.parseInt(lineNumber), typeID, 
    category, message, Priority.HIGH);
}

更新:我发现我收到的错误是由警告解析器生成的here

我找不到任何关于为什么或我可以做些什么来防止它抛出异常。

1 个答案:

答案 0 :(得分:4)

我发现该问题与版本4.62上的警告插件发布有关。这是一个解决一些安全问题的版本。目前,恢复到4.60解决了这个问题。