Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
e86f201
feat(lock): add commit-blocking lock/unlock with pre-commit hook
JheisonMB Aug 11, 2026
6a48cc2
feat(lock): add push-blocking lock with pre-push hook
JheisonMB Aug 11, 2026
bf07b3c
feat(lock): add --json flag to lock status for machine-readable output
JheisonMB Aug 11, 2026
6518a0b
feat(autoupdate): add version check and self-update mechanism
JheisonMB Aug 12, 2026
be3dbc9
chore: bump version to 0.5.0
JheisonMB Aug 12, 2026
bae72c2
docs: Add homepage to Cargo.toml and README
JheisonMB Aug 12, 2026
c1f434a
docs: Document lock and self-update features
JheisonMB Aug 12, 2026
437aded
docs(lock): Document push-blocking with --push and --all flags
JheisonMB Aug 12, 2026
ae55ec7
docs: Add self-update documentation and update feature summary
JheisonMB Aug 12, 2026
1fc060e
feat(hooks): add no-trailers builtin to reject AI attribution trailers
JheisonMB Aug 12, 2026
1f4f647
feat(hooks): add no-invisibles builtin to reject invisible Unicode
JheisonMB Aug 12, 2026
345ac34
feat(hooks): add no-body builtin and fix conventional-commits hook
JheisonMB Aug 12, 2026
2553846
feat(status): report per-hook health and add --repair/--strict flags
JheisonMB Aug 12, 2026
fee0fb4
feat(status): add machine-wide registry and gitkit status --global
JheisonMB Aug 12, 2026
4e2032d
feat(hooks): compose multiple builtins sharing one git hook via dispa…
JheisonMB Aug 13, 2026
bf3ee02
fix(init): re-prompt on build name collision instead of silently drop…
JheisonMB Aug 13, 2026
c7eb503
feat(ignore): narrow .claude/ to local state and add aider patterns t…
JheisonMB Aug 13, 2026
847e1bd
fix(hooks): exempt git-authored messages from conventional-commits fo…
JheisonMB Aug 13, 2026
65590df
chore(demo): re-record the demo against the current build
JheisonMB Aug 13, 2026
4c5477f
chore(demo): stop tracking generated mp4
JheisonMB Aug 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 60 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
[package]
name = "gitkit"
version = "0.4.0"
version = "0.5.0"
edition = "2021"
description = "Standalone CLI for configuring git repos — hooks, .gitignore, and .gitattributes"
license = "MIT"
repository = "https://github.com/UniverLab/gitkit"
homepage = "https://univerlab.org/gitkit"
keywords = ["git", "hooks", "cli", "gitignore", "gitattributes"]
categories = ["command-line-utilities", "development-tools"]

Expand All @@ -15,7 +16,10 @@ path = "src/main.rs"
[dependencies]
anyhow = "1"
clap = { version = "4", features = ["derive"] }
flate2 = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tar = "0.4"
toml = "0.8"
ureq = "2"

Expand Down
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-2E8B57?style=for-the-badge" alt="License"/></a>
</p>

<p align="center">
<strong><a href="https://univerlab.org/gitkit">Visit the website</a></strong>
</p>

Set up a git repo the way you actually work — one guided flow for hooks, `.gitignore`, `.gitattributes`, and git config. One binary, no Node.js, no Python, no runtime dependencies.

---
Expand All @@ -38,6 +42,8 @@ Set up a git repo the way you actually work — one guided flow for hooks, `.git
- **🧩 Ignore and attribute presets** — Browse built-in and gitignore.io templates, then apply line-ending or binary presets.
- **⚙️ Curated git config** — Apply practical presets with `--global` or `--local` scope, with idempotency detection.
- **💾 Save & reuse builds** — Save configurations and apply them to any project with one command.
- **🔒 Repository locks** — Block commits and pushes during agent sessions with `gitkit lock` / `gitkit unlock` — useful when autonomous agents are editing the repo.
- **⬆️ Version check & self-update** — Automatic check for new releases with optional auto-update; disable with `GITKIT_NO_UPDATE_CHECK`.
- **📦 Single binary** — No Node.js, no Python, no extra runtime.

---
Expand Down Expand Up @@ -298,6 +304,7 @@ Run `gitkit hooks list --available` to see these without leaving the terminal.
| Name | Hook | Description |
|---|---|---|
| `conventional-commits` | `commit-msg` | Validates Conventional Commits format |
| `no-trailers` | `commit-msg` | Rejects commit messages carrying AI attribution trailers |
| `no-secrets` | `pre-commit` | Detects common secret patterns in staged changes |
| `branch-naming` | `pre-commit` | Validates branch name matches convention |

Expand Down
Loading
Loading