lintly 0.6.0

Creator: bigcodingguy24

Last updated:

Add to Cart

Description:

lintly 0.6.0

Lintly

Automated GitHub PR code reviewer for Python, JavaScript, CSS, and more.
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 a review with linting errors...

...and a commit check...

...on your pull requests! Nifty! 🎉
Supported Linters


flake8
$ flake8 | lintly --format=flake8



black
$ black . --check 2>&1 >/dev/null | lintly --format=black



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



cfn-lint
$ cfn-lint template.yaml | lintly --format=cfn-lint



cfn-nag
$ cfn_nag_scan --input-path cloudformation-template.yaml --output-format=json | lintly --format=cfn-nag



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: Most Continuous Integration platforms will provide this value automatically.


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

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



These configuration values can be provided to Lintly via environment variables, discovered automatically when run in a supported CI platform,
or by being passed in as arguments to the Lintly CLI.
Options
A list of all configuration values can be viewed by running lintly --help.
Usage: lintly [OPTIONS]

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

Options:
--api-key TEXT The GitHub API key to use for commenting on
PRs (required)
--repo TEXT The GitHub repo name in the format
{owner}/{repo}
--pr TEXT The pull request number for this build
(required)
--commit-sha TEXT The commit Lintly is running against
(required)
--format [unix|flake8|pylint-json|eslint|eslint-unix|stylelint|black|cfn-lint|cfn-nag]
The linting output format Lintly should
expect to receive. Default "flake8"
--context TEXT Override the commit status context
--fail-on [any|new] Whether Lintly should fail if any violations
are detected or only if new violations are
detected. Default "any"
--post-status / --no-post-status
Used to determine if Lintly should post a PR
status to GitHub. Default true
--request-changes / --no-request-changes
Whether Lintly should post violations as a
PR request for changes instead of a comment
review. Default true
--use-checks / --no-use-checks Whether Lintly should try to use the GitHub
Checks API to report on changes requested.
This only works when running as a GitHub
App. Default false
--log Send Lintly debug logs to the console.
Default false
--exit-zero / --no-exit-zero Whether Lintly should exit with error code
indicating amount of violations or not.
Default false
--help Show this message and exit.

Supported Continuous Integration platforms
Lintly works out of the box with all of the CI platforms supported by ci.py. To add support for new CI platforms create a PR to the ci.py repo.
When using these Continuous Integration platforms the repository, pull request number, and commit SHA will be detected automatically.
GitHub Actions example
To use Lintly with GitHub Actions, create a file called .github/workflows/lint.yaml with the following contents:
name: Lint

on: [pull_request]

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install dependencies
run: pip install flake8 lintly
- name: Lint with flake8
run: flake8 | lintly
env:
LINTLY_API_KEY: ${{ secrets.GITHUB_TOKEN }}

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

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.