{"id":13468917,"url":"https://github.com/wemake-services/dotenv-linter","last_synced_at":"2025-05-15T05:05:23.689Z","repository":{"id":37412757,"uuid":"159846967","full_name":"wemake-services/dotenv-linter","owner":"wemake-services","description":":relaxed: Linting dotenv files like a charm!","archived":false,"fork":false,"pushed_at":"2025-05-12T17:57:09.000Z","size":1561,"stargazers_count":291,"open_issues_count":8,"forks_count":11,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-12T18:49:40.024Z","etag":null,"topics":["code-quality","dotenv","dotenv-parser","linter","linting"],"latest_commit_sha":null,"homepage":"https://dotenv-linter.rtfd.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wemake-services.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"wemake-services","custom":"https://boosty.to/sobolevn"}},"created_at":"2018-11-30T16:03:43.000Z","updated_at":"2025-05-12T17:57:13.000Z","dependencies_parsed_at":"2024-04-15T15:35:19.689Z","dependency_job_id":"a8313e20-57d6-45df-9fa4-bb80e4b0a536","html_url":"https://github.com/wemake-services/dotenv-linter","commit_stats":{"total_commits":630,"total_committers":11,"mean_commits":57.27272727272727,"dds":0.6253968253968254,"last_synced_commit":"95ef067c786715a4c7b526be854a4e0b247caadd"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wemake-services%2Fdotenv-linter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wemake-services%2Fdotenv-linter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wemake-services%2Fdotenv-linter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wemake-services%2Fdotenv-linter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wemake-services","download_url":"https://codeload.github.com/wemake-services/dotenv-linter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253805809,"owners_count":21967050,"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":["code-quality","dotenv","dotenv-parser","linter","linting"],"created_at":"2024-07-31T15:01:21.838Z","updated_at":"2025-05-15T05:05:23.661Z","avatar_url":"https://github.com/wemake-services.png","language":"Python","funding_links":["https://github.com/sponsors/wemake-services","https://boosty.to/sobolevn"],"categories":["Python","Community Resources"],"sub_categories":["Static Analysis"],"readme":"# dotenv-linter\n\n[![wemake.services](https://img.shields.io/badge/%20-wemake.services-green.svg?label=%20\u0026logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC%2FxhBQAAAAFzUkdCAK7OHOkAAAAbUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F%2F%2F5TvxDIAAAAIdFJOUwAjRA8xXANAL%2Bv0SAAAADNJREFUGNNjYCAIOJjRBdBFWMkVQeGzcHAwksJnAPPZGOGAASzPzAEHEGVsLExQwE7YswCb7AFZSF3bbAAAAABJRU5ErkJggg%3D%3D)](https://wemake-services.github.io)\n[![test](https://github.com/wemake-services/dotenv-linter/actions/workflows/test.yml/badge.svg?branch=master\u0026event=push)](https://github.com/wemake-services/dotenv-linter/actions/workflows/test.yml)\n[![codecov](https://codecov.io/gh/wemake-services/dotenv-linter/branch/master/graph/badge.svg)](https://codecov.io/gh/wemake-services/dotenv-linter)\n[![Github Action](https://github.com/wemake-services/dotenv-linter/workflows/dotenv/badge.svg)](https://github.com/wemake-services/dotenv-linter/actions?query=workflow%3Adotenv)\n[![Python Version](https://img.shields.io/pypi/pyversions/dotenv-linter.svg)](https://pypi.org/project/dotenv-linter/)\n[![Documentation Status](https://readthedocs.org/projects/dotenv-linter/badge/?version=latest)](https://dotenv-linter.readthedocs.io/en/latest/?badge=latest)\n\n---\n\nSimple linter for `.env` files.\n\n![dotenv-logo](https://raw.githubusercontent.com/wemake-services/dotenv-linter/master/docs/_static/dotenv-logo@2.png)\n\nWhile `.env` files are very simple it is required to keep them consistent.\nThis tool offers a wide range of consistency rules and best practices.\n\nAnd it integrates perfectly to any existing workflow.\n\nRead [the announcing post](https://sobolevn.me/2019/01/announcing-dotenv-linter).\n\n\n## Installation and usage\n\n```bash\npip install dotenv-linter\n```\n\nAnd then run it:\n\n```bash\ndotenv-linter .env .env.template\n```\n\nSee [Usage](https://dotenv-linter.readthedocs.io/en/latest/#usage)\nsection for more information.\n\n\n## Examples\n\nThere are many things that can go wrong in your `.env` files:\n\n```ini\n# Next line has leading space which will be removed:\n SPACED=\n\n# Equal signs should not be spaced:\nKEY = VALUE\n\n# Quotes won't be preserved after parsing, do not use them:\nSECRET=\"my value\"\n\n# Beware of duplicate keys!\nSECRET=Already defined ;(\n\n# Respect the convention, use `UPPER_CASE`:\nkebab-case-name=1\nsnake_case_name=2\n```\n\nAnd much more! You can find the [full list of violations in our docs](https://dotenv-linter.readthedocs.io/en/latest/pages/violations/).\n\n\n## Pre-commit hooks\n\n`dotenv-linter` can also be used as a [pre-commit](https://github.com/pre-commit/pre-commit) hook.\nTo do so, add the following to the `.pre-commit-config.yaml` file at the root of your project:\n\n```yaml\nrepos:\n  - repo: https://github.com/wemake-services/dotenv-linter\n    rev: 0.2.0  # Use the ref you want to point at\n    hooks:\n      - id: dotenv-linter\n```\n\nFor the more detailed instructions on the pre-commit tool itself,\nplease refer to [its website](https://pre-commit.com/).\n\n## Gratis\n\nSpecial thanks goes to [Ignacio Toledo](https://ign.uy)\nfor creating an awesome logo for the project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwemake-services%2Fdotenv-linter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwemake-services%2Fdotenv-linter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwemake-services%2Fdotenv-linter/lists"}