Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lyft/linty_fresh

:sparkles: Surface lint errors during code review
https://github.com/lyft/linty_fresh

lyft

Last synced: about 2 months ago
JSON representation

:sparkles: Surface lint errors during code review

Awesome Lists containing this project

README

        

:sparkles: Linty Fresh :sparkles: [![Build Status](https://travis-ci.org/lyft/linty_fresh.svg)](https://travis-ci.org/lyft/linty_fresh) [![Join the chat at https://gitter.im/lyft/linty_fresh](https://badges.gitter.im/lyft/linty_fresh.svg)](https://gitter.im/lyft/linty_fresh?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
===============================

Keep your codebase sparkly clean with the power of **LINT**!

Linty Fresh parses lint errors and report them back to GitHub as comments on a
pull request.

![Linty Fresh](http://i.imgur.com/epWogrw.png)

Requirements
------------
- [Python 3](https://www.python.org/downloads/)

Contributing
------------
[CONTRIBUTING.md](CONTRIBUTING.md)

Installation
------------
Linty Fresh is hosted in [PyPi](https://pypi.python.org/pypi). To get started,
Run

```shell
pip3 install linty-fresh
```

### Install from source

Linty Fresh uses setuptools for installation. After cloning the repo, run

```shell
python3 setup.py install
```

Usage
-----

We recommend you create a GitHub user for your organization used just for
commenting on PRs. [Create a token](https://github.com/settings/tokens/new)
for that user that only has access to the `repo` scope (or `public_repo` scope
for OSS projects). Then add that token as a secret to your CI system as the
environment variable `GITHUB_AUTH_TOKEN`. You should ensure this user and it's
token are scoped down as much as possible. You should assume that anyone who
has permissions to run a job in your CI system would have access to this token.
See Travis CI documentation [storing encrypted secrets][] for more information.

If you are looking for a good secret management system to store secrets like
this, check out [Confidant](https://github.com/lyft/confidant/).

Once you have your GitHub user, integrating Linty Fresh is easy! Assuming you
are running PyLint and the output is going to `pylint.txt`, add the following
snippet to the bottom of your automation script.

```bash
linty_fresh --pr_url ${PR_URL} --commit "${COMMIT}" \
--linter pylint pylint.txt
```

Take a look at our [run_tests.sh](scripts/run_tests.sh) script as an example
for how this works on Travis CI.

Currently each invocation of linty_fresh can only accept one lint file, but
this will likely change.

Supported Linters
-----------------
- [Flake8](https://pypi.python.org/pypi/flake8)
- [Swiftlint](https://github.com/realm/SwiftLint)
- [Mypy](http://mypy-lang.org/)
- [Checkstyle](http://checkstyle.sourceforge.net/)
- [Android](https://developer.android.com/studio/write/lint.html)

[storing encrypted secrets]: https://docs.travis-ci.com/user/encryption-keys/