Skip to main content

Slurp up linter output and send it to a GitHub PR review.

Project description

Lintly

Build Status codecov

A Continuous Integration CLI that slurps up linter output and sends it to a GitHub PR review.

Usage

First, pip install lintly:

$ pip install lintly

Lintly requires Python 2.7 or 3.4+.

Next, set the LINTLY_API_KEY environment variable to your GitHub API Key:

$ export LINTLY_API_KEY="12345"

Finally, pipe the output of your linter to the lintly script:

$ flake8 | lintly

Now you will see linting errors in your Pull Requests! Nifty!

Lintly used on a pull request

Supported Git Services

  • GitHub

Support for GitLab and Bitbucket is planned.

Supported Linters

  • flake8
    $ flake8 | lintly --format=flake8
    
  • pylint
    • For pylint you must use the json output format.
    $ pylint . --output-format=json | lintly --format=pylint-json
    
  • eslint
    $ eslint . | lintly --format=eslint
    
  • stylelint
    $ stylelint . | lintly --format=stylelint
    

Additional linters can be added by modifying the lintly/parsers.py module.

Configuration

At a minimum Lintly needs to know the following information to determine how to post the correct GitHub PR Review:

  • GitHub API key (--api-key or LINTLY_API_KEY env var)
    • Generate your own API Key here. The API key will need the following GitHub scopes:
      • repo:status so that Lintly can post commit statuses on PRs.
      • public_repo so that Lintly can create pull request reviews on public repos.
      • repo so that Lintly can create pull request reviews on private repos.
  • GitHub repository (--repo or LINTLY_REPO env var)
    • This is your repository in the format grantmcconnaughey/lintly.

    Note: Some Continuous Integration platforms will provide this value automatically.

  • Pull Request number (--pr or LINTLY_PR env var)

    Note: Some Continuous Integration platforms will provide this value automatically.

These configuration values can be provided to Lintly via environment variables or by being passed in as arguments to the Lintly CLI. A list of all configuration values can be viewed by running lintly --help.

Supported Continuous Integration platforms

Lintly works out of the box with the following Continuous Integration platforms:

  • Travis CI
  • Circle CI
  • AppVeyor
  • Shippable
  • Semaphore
  • CodeBuild

When using these Continuous Integration platforms the repository, pull request number, and commit SHA will be detected automatically.

Travis CI example

To use with Lintly with Travis CI, add the following to your .travis.yml config file:

language: python

jobs:
  include:
    - stage: lint
      install: pip install lintly
      script: flake8 | lintly --format=flake8

stages:
  - lint

To-Do

  • Add support for GitHub Enterprise custom GitHub URLs
  • Configuration to post either a PR comment or PR review
  • Link to Build URL from commit status
  • Support for config file
  • Auto-detect linters
  • GitLab support

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
lintly-0.1.2-py2.py3-none-any.whl (19.8 kB) Copy SHA256 hash SHA256 Wheel py2.py3 Jun 11, 2018
lintly-0.1.2.tar.gz (144.4 kB) Copy SHA256 hash SHA256 Source None Jun 11, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page