{"id":47728820,"url":"https://github.com/driftsys/git-std","last_synced_at":"2026-05-01T19:00:49.587Z","repository":{"id":343813400,"uuid":"1178341420","full_name":"driftsys/git-std","owner":"driftsys","description":"From commit to release. One tool for conventional commits, versioning, changelog, and release management.","archived":false,"fork":false,"pushed_at":"2026-04-28T09:05:20.000Z","size":1214,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-28T10:31:12.046Z","etag":null,"topics":["changelog","cli","conventional-commits","developer-tools","git","git-hooks","rust","semver","version-management"],"latest_commit_sha":null,"homepage":"https://driftsys.github.io/git-std/","language":"Rust","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/driftsys.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-10T23:47:42.000Z","updated_at":"2026-04-28T09:05:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/driftsys/git-std","commit_stats":null,"previous_names":["driftsys/git-std"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/driftsys/git-std","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/driftsys%2Fgit-std","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/driftsys%2Fgit-std/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/driftsys%2Fgit-std/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/driftsys%2Fgit-std/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/driftsys","download_url":"https://codeload.github.com/driftsys/git-std/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/driftsys%2Fgit-std/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32508912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["changelog","cli","conventional-commits","developer-tools","git","git-hooks","rust","semver","version-management"],"created_at":"2026-04-02T21:09:19.693Z","updated_at":"2026-05-01T19:00:49.581Z","avatar_url":"https://github.com/driftsys.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# git-std\n\n[![CI](https://github.com/driftsys/git-std/actions/workflows/ci.yml/badge.svg)](https://github.com/driftsys/git-std/actions/workflows/ci.yml)\n[![crates.io](https://img.shields.io/crates/v/git-std.svg)](https://crates.io/crates/git-std)\n[![user guide](https://img.shields.io/badge/docs-user%20guide-blue)](https://driftsys.github.io/git-std/)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\nFrom commit to release. One tool for\n[conventional commits][cc], [versioning][semver],\n[changelog][keep-changelog], and [git hooks][githooks]\nmanagement.\n\n`git-std` replaces commitizen, commitlint, standard-version,\nhusky, and lefthook with a single binary. Fast, low memory\nfootprint, zero runtime dependencies. Works out of the box\nwith sensible defaults, which can be overridden with a\n`.git-std.toml`.\n\nSupports per-package monorepo versioning with automatic\ndependency cascades, per-package changelogs, and polyglot\nworkspace discovery (Cargo, npm, Deno).\n\nInvoked as `git std` via git's subcommand discovery.\n\n## Install\n\n**Install script (recommended):**\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/driftsys/git-std/main/install.sh | bash\n```\n\n**From source:**\n\n```bash\ncargo install git-std\n```\n\n## Quick start\n\n```bash\ngit std hook install                # set up hooks\ngit std bootstrap install            # scaffold ./bootstrap for contributors\ngit add .\ngit std commit                       # interactive commit\ngit std lint --range main..HEAD     # validate commits\ngit std changelog --stdout           # preview changelog\ngit std bump                         # bump + changelog + tag\ngit push --follow-tags\n```\n\n**Shell completions:**\n\n```bash\neval \"$(git-std --completions bash)\"   # or zsh, fish\n```\n\nSee the [user guide](https://driftsys.github.io/git-std/)\nfor commands, configuration, and recipes.\n\n## Workspace crates\n\n`git-std` is built on four independent library crates, each\npublished separately on [crates.io][crates-io]. The libraries\nimplement domain logic only — no CLI, no git operations, no\nterminal output.\n\n| Crate                | Description                                      |\n| -------------------- | ------------------------------------------------ |\n| [standard-commit]    | Conventional commit parsing, linting, formatting |\n| [standard-version]   | Version bump (semver + calver), file detection   |\n| [standard-changelog] | Changelog generation from conventional commits   |\n| [standard-githooks]  | Hook file format parsing, shim generation        |\n\n## License\n\nMIT\n\n## Documentation\n\n- [User guide](https://driftsys.github.io/git-std/) (mdbook)\n- [Specification](docs/SPEC.md)\n- [API docs](https://docs.rs/git-std) (docs.rs)\n\n## References\n\n- [Conventional Commits v1.0.0][cc]\n- [Semantic Versioning v2.0.0][semver]\n- [Calendar Versioning][calver]\n- [Keep a Changelog v1.1.0][keep-changelog]\n- [Git hooks documentation][githooks]\n\n[cc]: https://www.conventionalcommits.org/en/v1.0.0/\n[semver]: https://semver.org/spec/v2.0.0.html\n[calver]: https://calver.org/\n[keep-changelog]: https://keepachangelog.com/en/1.1.0/\n[crates-io]: https://crates.io\n[githooks]: https://git-scm.com/docs/githooks\n[standard-commit]: crates/standard-commit/\n[standard-version]: crates/standard-version/\n[standard-changelog]: crates/standard-changelog/\n[standard-githooks]: crates/standard-githooks/\n\n\u003c!-- git-std:bootstrap --\u003e\n\n## Post-clone setup\n\nRun `./bootstrap` after `git clone` or `git worktree add`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdriftsys%2Fgit-std","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdriftsys%2Fgit-std","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdriftsys%2Fgit-std/lists"}