Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Danger HLint Gem Version

A Danger plugin for HLint

Read a full how to at


Add this line to your Gemfile:

gem 'danger-hlint'


Methods and attributes from this plugin are available in your Dangerfile under the hlint namespace.

At the moment one single method is exposed: hlint.lint

If you want the lint results to show in the diff instead of in the comments, you can use the inline_mode option. Violations that occur out of the diff will show in danger's fail or warn section. Here's a minimal example of what to add to your Dangerfile (read the inline comments):

# get all affected files by the changes in the current diff
affected_files = git.added_files + git.modified_files

# limit files to .hs files
haskell_files = { |file| file.end_with?('.hs') }

# run hlint on the files and comment inline in the PR
hlint.lint haskell_files, inline_mode: true

To pass other parameters to the linter just add them to the method call. The names and values of the parameters to the hlint.lint method are handed over to linter.

For example, you can specify a hint file by calling

hlint.lint files hint: ".hlint.yaml"

To pass switches to the linter (like --quiet) specify true as the value in the call

hlint.lint files quiet: true


When running danger-hlint on your CI server (especially CircleCI 2.0) make sure that the hlint binary is in your PATH, else this plugin will silently fail to produce any linting output. One possible way to do this (in CircleCI 2.0) is:

      - run:
          name: "Running HLint (via danger-hlint)"
          command: |
            export PATH="$HOME/.local/bin:$PATH"
            bundle exec danger


  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.


Some methods and ideas are almost copied unchanged from Danger SwiftLint


danger-hlint is released under MIT License