Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mataku/danger-ktlint

A Danger Plugin to lint kotlin files using ktlint command line interface.
https://github.com/mataku/danger-ktlint

Last synced: about 2 months ago
JSON representation

A Danger Plugin to lint kotlin files using ktlint command line interface.

Awesome Lists containing this project

README

        

# danger-ktlint

Lint kotlin files only changed files in a pull request using ktlint command lint interface.

## Installation

```ruby
gem install danger-ktlint
```

## Usage

You need to install `ktlint` command and set as executable first, see: https://ktlint.github.io/#getting-started.

If you want to skip ktlint task, for example to only comment on the results of ktlint, no need to install ktlint. See https://github.com/mataku/danger-ktlint#skip-ktlint-task.

```bash
# Example
curl --output /usr/local/bin/ktlint -sL https://github.com/pinterest/ktlint/releases/download/$KTLINT_VERSION/ktlint && chmod a+x /usr/local/bin/ktlint
```

Add this to Dangerfile.

```ruby
ktlint.lint

# If you want inline comments, specify `ktlint.lint` with `inline_mode: true`
# ktlint.lint(inline_mode: true)
```

### Options
#### Set maximum number of comments of ktlint results

Default is `nil`, all comments are sent.

```shell
ktlint.limit = 3
ktlint.lint
```

#### Skip ktlint task

Default is false.

```shell
ktlint.skip_lint = true
# If skip_lint is specified, report_file must also be specified.
ktlint.report_file = 'result.json'
# If you use ktlint in multiple modules app, you can specify multiple ktlint result json.
# ktlint.report_files_pattern = '**/result.json'
ktlint.lint
```

## CHANGELOG

See [CHANGELOG.md](https://github.com/mataku/danger-ktlint/blob/master/CHANGELOG.md).

## TODO

- filtering: false (default: filtering: true behavior)
- Allow plain or html report_file (Currently only JSON is supported.)
- Install ktlint and use it if ktlint binary does not exist
- Support for services other than GitHub

## Development

1. Clone this repo
2. Run `bundle install` to setup dependencies.
3. Run `bundle exec rake spec` to run the tests.
4. Use `bundle exec guard` to automatically have tests run as you make changes.
5. Make your changes.