Skip to content
search

GitHub Action

Clojure Lint Action

v3 Latest version

Clojure Lint Action

search

Clojure Lint Action

A simple GitHub Actions to lint Clojure Code with clj-kondo

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Clojure Lint Action

uses: nnichols/clojure-lint-action@v3

Learn more about this action in nnichols/clojure-lint-action

Choose a version

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/[email protected]
      - 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