@Override protected void processFile(InputFile inputFile, SensorContext context, RuleKey ruleKey, String languageKey) { NewIssue newIssue = context.newIssue() .overrideSeverity(Severity.BLOCKER) .forRule(ruleKey); newIssue.at(newIssue.newLocation() .on(inputFile) .message("This issue is generated on each file. Severity is blocker, whatever quality profile")) .save(); } }
private static void createIssues(InputFile file, SensorContext context) { for (int line = 1; line <= file.lines(); line++) { NewExternalIssue newIssue = context.newExternalIssue(); newIssue .engineId(ENGINE_ID) .ruleId(RULE_ID) .at(newIssue.newLocation() .on(file) .at(file.selectLine(line)) .message("This issue is generated on each line and the rule is predefined")) .severity(Severity.valueOf(SEVERITY)) .remediationEffortMinutes(EFFORT) .type(TYPE) .save(); } } }
public T at(NewIssueLocation primaryLocation) { Preconditions.checkArgument(primaryLocation != null, "Cannot use a location that is null"); checkState(this.primaryLocation == null, "at() already called"); this.primaryLocation = rewriteLocation((DefaultIssueLocation) primaryLocation); Preconditions.checkArgument(this.primaryLocation.inputComponent() != null, "Cannot use a location with no input component"); return (T) this; }
public boolean initAndAddIssue(Issue issue) { DefaultInputComponent inputComponent = (DefaultInputComponent) issue.primaryLocation().inputComponent(); if (noSonar(inputComponent, issue)) { return false; } ActiveRule activeRule = activeRules.find(issue.ruleKey()); if (activeRule == null) { // rule does not exist or is not enabled -> ignore the issue return false; } ScannerReport.Issue rawIssue = createReportIssue(issue, inputComponent.scannerId(), activeRule.severity()); if (filters.accept(inputComponent, rawIssue)) { write(inputComponent.scannerId(), rawIssue); return true; } return false; }
private static boolean noSonar(DefaultInputComponent inputComponent, Issue issue) { TextRange textRange = issue.primaryLocation().textRange(); return inputComponent.isFile() && textRange != null && ((DefaultInputFile) inputComponent).hasNoSonarAt(textRange.start().line()) && !StringUtils.containsIgnoreCase(issue.ruleKey().rule(), "nosonar"); }
/** * Thread safe assuming that each issues for each file are only written once. */ @Override public void store(Issue issue) { if (issue.primaryLocation().inputComponent() instanceof DefaultInputFile) { DefaultInputFile defaultInputFile = (DefaultInputFile) issue.primaryLocation().inputComponent(); if (shouldSkipStorage(defaultInputFile)) { return; } defaultInputFile.setPublished(true); } moduleIssues.initAndAddIssue(issue); }
/** * Thread safe assuming that each issues for each file are only written once. */ @Override public void store(DefaultExternalIssue externalIssue) { if (externalIssue.primaryLocation().inputComponent() instanceof DefaultInputFile) { DefaultInputFile defaultInputFile = (DefaultInputFile) externalIssue.primaryLocation().inputComponent(); defaultInputFile.setPublished(true); } moduleIssues.initAndAddExternalIssue(externalIssue); }
public void initAndAddExternalIssue(ExternalIssue issue) { DefaultInputComponent inputComponent = (DefaultInputComponent) issue.primaryLocation().inputComponent(); ScannerReport.ExternalIssue rawExternalIssue = createReportExternalIssue(issue, inputComponent.scannerId()); write(inputComponent.scannerId(), rawExternalIssue); }
@Override protected void processFile(InputFile inputFile, SensorContext context, RuleKey ruleKey, String languageKey) { NewIssue newIssue = context.newIssue() .forRule(ruleKey); newIssue.at(newIssue.newLocation() .on(inputFile) .message("This issue is generated on each file with a debt of one day")) .save(); }
private static void createIssues(InputFile file, SensorContext context) { for (int line = 1; line <= file.lines(); line++) { NewExternalIssue newIssue = context.newExternalIssue(); newIssue .engineId(ENGINE_ID) .ruleId(RULE_ID) .at(newIssue.newLocation() .on(file) .at(file.selectLine(line)) .message("This issue is generated on each line")) .severity(Severity.valueOf(SEVERITY)) .remediationEffortMinutes(EFFORT) .type(TYPE) .save(); } } }
@Override protected void processFile(InputFile inputFile, SensorContext context, RuleKey ruleKey, String languageKey) { NewIssue newIssue = context.newIssue() .forRule(ruleKey) .gap(settings.getDouble(EFFORT_TO_FIX_PROPERTY).orElse(0.0)); newIssue.at(newIssue.newLocation() .on(inputFile) .message("This issue is generated on each file")) .save(); } }
private void analyse(SensorContext context, String language, String repo) { RuleKey ruleKey = RuleKey.of(repo, RULE_KEY); NewIssue newIssue = context.newIssue(); newIssue .forRule(ruleKey) .at(newIssue.newLocation() .on(context.module()) .message("This issue is generated on each module")) .save(); }
private static void createIssues(InputFile file, SensorContext context) { RuleKey ruleKey = RuleKey.of(XooRulesDefinition.XOO_REPOSITORY, RULE_KEY); NewIssue newIssue = context.newIssue(); newIssue .forRule(ruleKey) .at(newIssue.newLocation() .on(file) .at(file.selectLine(1)) .message("This issue is generated on each file")) .save(); } }
@Override protected void processFile(InputFile inputFile, SensorContext context, RuleKey ruleKey, String languageKey) { NewIssue newIssue = context.newIssue() .forRule(ruleKey); NewIssueLocation location = newIssue.newLocation().on(inputFile); settings.get(MESSAGE_PROPERTY).ifPresent(location::message); newIssue .at(location) .save(); } }
private static void createIssues(InputFile file, SensorContext context) { ActiveRule rule = context.activeRules().findByInternalKey(XooRulesDefinition.XOO_REPOSITORY, context.settings().getString(INTERNAL_KEY_PROPERTY)); if (rule != null) { NewIssue newIssue = context.newIssue(); newIssue .forRule(rule.ruleKey()) .at(newIssue.newLocation() .on(file) .message("This issue is generated on each file")) .save(); } } }
private static void createIssues(InputFile file, SensorContext context) { RuleKey ruleKey = RuleKey.of(XooRulesDefinition.XOO_REPOSITORY, RULE_KEY); InputDir inputDir = context.fileSystem().inputDir(file.file().getParentFile()); if (inputDir != null) { NewIssue newIssue = context.newIssue(); newIssue .forRule(ruleKey) .at(newIssue.newLocation() .on(inputDir) .message("This issue is generated for file " + file.relativePath())) .save(); } } }
@Override public void execute(SensorContext context) { RuleKey ruleKey = RuleKey.of(XooRulesDefinition.XOO_REPOSITORY, RULE_KEY); FilePredicate unknownFilesPredicate = context.fileSystem().predicates().matchesPathPattern("**/*.unknown"); Iterable<InputFile> unknownFiles = context.fileSystem().inputFiles(unknownFilesPredicate); unknownFiles.forEach(inputFile -> { NewIssue newIssue = context.newIssue(); newIssue .forRule(ruleKey) .at(newIssue.newLocation() .on(inputFile) .message("This issue is generated on each file with extension 'unknown'")) .save(); }); }