2

Roslyn SDK Generator を使用して、VisualStudio 2015 でカスタム SonarQube ルールを作成しようとしています。

ジェネレーターは正常に動作し、.jar ファイルを SonarQube サーバーに公開して、毎日のビルドでカスタム ルールを使用できます。ここで、ルールを「脆弱性」に分類したいと思いますが、常に「コードのにおい」として表示されます。

私はいくつかのアプローチを試しました:

  1. DiagnosticDescriptor クラスの「Category」を「Security」に変更

    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); } }
    
  2. ジェネレーターが提供する xml テンプレートを変更し、新しい xml を使用してプラグインを再生成しました (生成された "MAINTENABILITY_COMPLIANCE" の代わりに "SECURITY" と "SECURITY_COMPLIANCE" を試しました)。

     <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>
    

これまでのところ何も機能していません。

次の構成を使用しています。

  • VS2015 アップデート 3
  • SonarQube v. 6.1
  • SonarLint v. 2.8
  • SonarQube.Roslyn.SDK v. 1.0 で開発されたカスタム C# アナライザー
4

1 に答える 1

1

残念ながら、カテゴリを明示的に設定する機能はまだ実装されていないようです - https://jira.sonarsource.com/browse/SFSRAP-48を参照してください

回避策として、ルールにタグを追加すると、 SonarQube でのタグのカテゴリへの自動変換によりsecurity、ルールが分類されます。ただし、SonarQube ルールを構築するときにプロパティを考慮していないようですが、メソッドへの の追加と再構築が機能します。VulnerabiltySonarQube.Plugins.Roslyn.RuleGeneratorCustomTagsnewRule.Tags = diagnostic.CustomTags?.ToArray();SonarQube.Plugins.Roslyn.RuleGenerator.GetAnalyzerRulessonarqube-roslyn-sdk

于 2016-11-16T20:29:50.073 に答える