damian-burke / danger-plugin-lint-report

MIT License
20 stars 6 forks source link
android-lint checkstyle danger danger-js danger-plugin swiftlint

danger-plugin-lint-report

Build Status npm version semantic-release

This plugin reads checkstyle / lint reports and posts issues and violations as inline comments in pull requests.

Screenshot of an issue posted as inline comment in a GitHub pull request:

inline comment

Requirements

The plugin does not execute any linter.

Instead, the plugin will search the file tree for lint reports according to the specified file mask and parse them.

The plugin requires a configuration object with a file mask to search for XML reports.

Supported Reports

If you encounter a format that is missing, feel free to add a pull request or open an issue with a sample report attached.

Usage

Install:

yarn add danger-plugin-lint-report --dev

At a glance:

// dangerfile.js
import { schedule } from 'danger'

const reporter = require("danger-plugin-lint-report")
schedule(reporter.scan({
    fileMask: "**/reports/lint-results.xml",
    reportSeverity: true,
    requireLineModification: true,
}))

Configuration:

interface CheckstyleConfig {
  /**
   * File mask used to find XML checkstyle reports.
   */
  fileMask: string

  /**
   * If set to true, the severity will be used to switch between the different message formats (message, warn, fail).
   */
  reportSeverity: boolean

  /**
   * If set to true, only issues will be reported that are contained in the current changeset (line comparison).
   * If set to false, all issues that are in modified files will be reported.
   */
  requireLineModification: boolean

  /**
   * Optional: Sets a prefix foreach violation message.
   * This can be useful if there are multiple reports being parsed to make them distinguishable.
   */
  outputPrefix?: string

  /**
   * Optional: Override the violation formatter to customize the output message.
   */
   violationFormatter?: ViolationFormatter

  /**
   * Optional: If set to true, it will remove duplicate violations.
   */
  removeDuplicates?: boolean
}

Changelog

See the GitHub release history.

Contributing

See CONTRIBUTING.md.