我尝试使用Roslyn SDK Generator在VisualStudio 2015中创建自定义SonarQube规则。
生成器工作正常,我能够将.jar文件发布到SonarQube服务器,并在每日构建中使用我的自定义规则。 现在我想将规则归类为" Vulnerabilty",但它总是显示为" Code Smell"。
我尝试了几种方法:
更改了"类别" DiagnosticDescriptor类到"安全"
private const string Category = "Security";
private static DiagnosticDescriptor Rule = new DiagnosticDescriptor(DiagnosticId, Title, MessageFormat, Category, DiagnosticSeverity.Warning, isEnabledByDefault: true, description: Description);
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get { return ImmutableArray.Create(Rule); } }
更改了生成器提供的xml模板,并使用新的xml重新生成了插件(我尝试过&#34; SECURITY&#34;&#34; SECURITY_COMPLIANCE&#34;代替生成的&#34; ; MAINTENABILITY_COMPLIANCE&#34)
<sqale xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<chc>
<key>SECURITY</key>
<chc>
<rule-key>MyRule</rule-key>
<prop>
<key>remediationFunction</key>
<txt>CONSTANT_ISSUE</txt>
</prop>
<prop>
<key>offset</key>
<txt />
<val>15min</val>
</prop>
</chc>
</chc>
</sqale>
到目前为止没有任何工作。
我使用以下配置:
答案 0 :(得分:1)
不幸的是,似乎尚未实现明确设置类别的能力 - 请参阅 https://jira.sonarsource.com/browse/SFSRAP-48
作为一种变通方法,您可以将标记security
添加到规则中,并且由于automatic conversion of tag into category in SonarQube,规则将被归类为Vulnerabilty
。但是,SonarQube.Plugins.Roslyn.RuleGenerator
在构建SonarQube规则时似乎没有考虑CustomTags
属性,但在方法SonarQube.Plugins.Roslyn.RuleGenerator.GetAnalyzerRules
中添加newRule.Tags = diagnostic.CustomTags?.ToArray();
并重建sonarqube-roslyn-sdk
将会做好这份工作。