{"id":13501708,"url":"https://github.com/lyft/linty_fresh","last_synced_at":"2025-09-10T19:34:40.294Z","repository":{"id":47074655,"uuid":"48265704","full_name":"lyft/linty_fresh","owner":"lyft","description":":sparkles: Surface lint errors during code review","archived":false,"fork":false,"pushed_at":"2023-06-23T23:37:25.000Z","size":94,"stargazers_count":185,"open_issues_count":9,"forks_count":32,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-04-25T04:21:49.619Z","etag":null,"topics":["lyft"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lyft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-12-19T02:37:26.000Z","updated_at":"2024-03-02T02:36:41.000Z","dependencies_parsed_at":"2024-01-07T11:08:05.091Z","dependency_job_id":"8ba89172-c4b3-42a8-90cf-bc1bb5f960a1","html_url":"https://github.com/lyft/linty_fresh","commit_stats":{"total_commits":50,"total_committers":17,"mean_commits":"2.9411764705882355","dds":0.72,"last_synced_commit":"7fc46ecd91f64c89bd45b0d136d037dbd7cc2be4"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyft%2Flinty_fresh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyft%2Flinty_fresh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyft%2Flinty_fresh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyft%2Flinty_fresh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lyft","download_url":"https://codeload.github.com/lyft/linty_fresh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247423513,"owners_count":20936626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lyft"],"created_at":"2024-07-31T22:01:47.027Z","updated_at":"2025-04-06T02:07:19.423Z","avatar_url":"https://github.com/lyft.png","language":"Python","funding_links":[],"categories":["Python","Programming Languages"],"sub_categories":[],"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\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n===============================\n\nKeep your codebase sparkly clean with the power of **LINT**!\n\nLinty Fresh parses lint errors and report them back to GitHub as comments on a\npull request.\n\n![Linty Fresh](http://i.imgur.com/epWogrw.png)\n\n\nRequirements\n------------\n - [Python 3](https://www.python.org/downloads/)\n\nContributing\n------------\n[CONTRIBUTING.md](CONTRIBUTING.md)\n\nInstallation\n------------\nLinty Fresh is hosted in [PyPi](https://pypi.python.org/pypi).  To get started,\nRun\n\n```shell\npip3 install linty-fresh\n```\n\n### Install from source\n\nLinty Fresh uses setuptools for installation.  After cloning the repo, run\n\n```shell\npython3 setup.py install\n```\n\n\nUsage\n-----\n\nWe recommend you create a GitHub user for your organization used just for\ncommenting on PRs.  [Create a token](https://github.com/settings/tokens/new)\nfor that user that only has access to the `repo` scope (or `public_repo` scope\nfor OSS projects).  Then add that token as a secret to your CI system as the\nenvironment variable `GITHUB_AUTH_TOKEN`.  You should ensure this user and it's\ntoken are scoped down as much as possible.  You should assume that anyone who\nhas permissions to run a job in your CI system would have access to this token.\nSee Travis CI documentation [storing encrypted secrets][] for more information.\n\nIf you are looking for a good secret management system to store secrets like\nthis, check out [Confidant](https://github.com/lyft/confidant/).\n\nOnce you have your GitHub user, integrating Linty Fresh is easy!  Assuming you\nare running PyLint and the output is going to `pylint.txt`, add the following\nsnippet to the bottom of your automation script.\n\n```bash\nlinty_fresh --pr_url ${PR_URL} --commit \"${COMMIT}\" \\\n            --linter pylint pylint.txt\n```\n\nTake a look at our [run_tests.sh](scripts/run_tests.sh) script as an example\nfor how this works on Travis CI.\n\nCurrently each invocation of linty_fresh can only accept one lint file, but\nthis will likely change.\n\nSupported Linters\n-----------------\n- [Flake8](https://pypi.python.org/pypi/flake8)\n- [Swiftlint](https://github.com/realm/SwiftLint)\n- [Mypy](http://mypy-lang.org/)\n- [Checkstyle](http://checkstyle.sourceforge.net/)\n- [Android](https://developer.android.com/studio/write/lint.html)\n\n[storing encrypted secrets]: https://docs.travis-ci.com/user/encryption-keys/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyft%2Flinty_fresh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flyft%2Flinty_fresh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyft%2Flinty_fresh/lists"}