2017-04-24 66 views
4

我有一个管道扫描编译器警告,最近注意到发布命令无法执行由于脚本安全批准而在管理Jenkins中定义的groovy脚本。 投诉是针对:Jenkins管道扫描编译器警告自定义分析器被阻止

Groovy的沙箱拒绝解析器GHS多无裹解析脚本:脚本不得使用方法java.util.regex.MatchResult中组INT。您需要在脚本审批UI中手动批准呼叫。

所以我批准它,但是它会随着每一次构建而回来。这只会影响我的自定义分析器。

我是否错误地使用了自定义分析器,或者这会成为问题脚本安全性问题?

解析器正则表达式:

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

分析器脚本:

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

我产生我得到的错误,我相信找不到为什么或者我能做些什么来阻止它抛出异常。

回答

4

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