Я пытаюсь создать собственное правило SonarQube в VisualStudio 2015 с помощью генератора SDK Roslyn.
Генератор работает нормально, и я могу опубликовать файл .jar на сервере SonarQube и использовать свое собственное правило в ежедневных сборках. Теперь я хотел бы отнести правило к категории «Уязвимость», но оно всегда отображается как «Обоняние кода».
Я попробовал несколько подходов:
"Категория" класса 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 (я пробовал "SECURITY" и "SECURITY_COMPLIANCE" вместо сгенерированного "MAINTENABILITY_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 версии 6.1
- SonarLint версии 2.8
- Пользовательский анализатор C #, разработанный с помощью SonarQube.Roslyn.SDK v. 1.0