Skip to content

A GitHub Action that lints clojure files with clj-kondo and generates comments with reviewdog on pull requests to improve the code review experience.

License

Notifications You must be signed in to change notification settings

nnichols/clojure-lint-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Clojure Lint Action

A GitHub Action to lint clojure files with clj-kondo and reviewdog on pull requests to improve the code review experience.

Screenshot 2024-12-03 100026

Example Usage

The clojure-lint-action is used in almost every Wall Brew repository. If you'd like to see a sample GitHub workflow using this linter, please check out spoon That action was used as a CI/CD check in this Pull Request.

Inputs

github_token

Optional. ${{ github.token }} is used by default.

level

Optional. Report level for reviewdog- must be one of [info, warning, error]. It's same as -level flag of reviewdog.

reporter

Reporter of reviewdog command. Must be one of [github-pr-check, github-pr-review, github-check]. Default is github-pr-check. github-pr-review can use Markdown and add a link to rule page in reviewdog reports.

filter_mode

Optional. Filtering mode for the reviewdog command. Must be one of [added, diff_context, file, nofilter]. Default is added.

fail_on_error

Optional. Sets and exceptional exit code for reviewdog when errors are found. Must be one of [true, false]. Default is false.

reviewdog_flags

Optional. Additional reviewdog flags.

path

Optional. Base directory to run clj-kondo. Same as [path] of find command. Default: .

pattern

Optional. File patterns of target files. Same as -name [pattern] of find command. Default: *.clj* (To capture *.clj, *.cljs, *.cljc, and *.cljx)

exclude

Optional. Exclude patterns of target files. Same as -not -path [exclude] of find command. e.g. ./git/*

clj_kondo_config

Optional. Flags to pass to clj-kondo's --config option, which may either be in-line options or a path to a config file. Default: '{:output {:pattern "{{filename}}:{{row}}:{{col}}: {{message}}"}}'

Example usage

To receive automatic Pull Request comments with linter results:

name: Lint Clojure
on: [pull_request]
jobs:
  clj-kondo:
    name: runner / clj-kondo
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3.0.2
      - name: clj-kondo
        uses: nnichols/clojure-lint-action@v2
        with:
          github_token: ${{ secrets.github_token }}
          reporter: github-pr-review

Licensing

Copyright © 2021-2024 Nick Nichols

Distributed under the MIT License

About

A GitHub Action that lints clojure files with clj-kondo and generates comments with reviewdog on pull requests to improve the code review experience.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project