{"id":17241976,"url":"https://github.com/mtkennerly/pre-commit-hooks","last_synced_at":"2026-02-08T14:31:22.534Z","repository":{"id":66215212,"uuid":"481788524","full_name":"mtkennerly/pre-commit-hooks","owner":"mtkennerly","description":"A collection of hooks for `pre-commit`","archived":false,"fork":false,"pushed_at":"2024-03-16T22:15:11.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-29T05:55:00.631Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/mtkennerly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2022-04-15T00:30:14.000Z","updated_at":"2022-04-15T00:30:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"8118230c-1bd5-4af6-be33-72c30cd1a36b","html_url":"https://github.com/mtkennerly/pre-commit-hooks","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/mtkennerly/pre-commit-hooks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtkennerly%2Fpre-commit-hooks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtkennerly%2Fpre-commit-hooks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtkennerly%2Fpre-commit-hooks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtkennerly%2Fpre-commit-hooks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mtkennerly","download_url":"https://codeload.github.com/mtkennerly/pre-commit-hooks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtkennerly%2Fpre-commit-hooks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29233158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T14:18:14.570Z","status":"ssl_error","status_checked_at":"2026-02-08T14:18:14.071Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-10-15T06:11:56.951Z","updated_at":"2026-02-08T14:31:22.515Z","avatar_url":"https://github.com/mtkennerly.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# `pre-commit` hooks\nThis is a collection of hooks for [`pre-commit`](https://pre-commit.com).\nView the full/raw list here: [.pre-commit-hooks.yaml](.pre-commit-hooks.yaml).\n\nIn general, these are `system` hooks so that you don't spend time installing\nextra copies of tools that you've already set up in your development\ndependencies and CI workflow.\n\nSome of these may have some opinionated defaults, but you can override these\nwith the `args` option.\n\n## Python/Poetry\nTypically, you would add your development tools to pyproject.toml so that you\ncan use them from the console and your IDE, but then this means that you need\nto keep those versions in sync with the ones installed by your pre-commit hooks.\nThis can lead to surprising behavior (different formatting between CLI and hook\ninvocation of a tool) and even errors (e.g., pre-commit pins the tool version,\nbut doesn't pin transient dependencies, whereas Poetry does, which can allow\nfailures [like this](https://github.com/psf/black/issues/2964) to suddenly\noccur in your CI).\n\nThe following hooks run the tools via `poetry run` so that there is no conflict:\n\n* `poetry-black`\n* `poetry-flake8`\n* `poetry-mypy`\n* `poetry-pytest`\n\nAn alternative is to use something like [sync_with_poetry](https://github.com/floatingpurr/sync_with_poetry),\nwhich is a pre-commit hook that updates the versions explicitly.\n\n## Rust\n* `cargo-clippy`\n* `cargo-fmt`\n\n## .NET\n* `dotnet-format`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtkennerly%2Fpre-commit-hooks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmtkennerly%2Fpre-commit-hooks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtkennerly%2Fpre-commit-hooks/lists"}