Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
0245ab4
test: add 75 unit tests for ignore, config, builds, attributes, hooks…
JheisonMB Jul 15, 2026
d72e741
style: apply rustfmt
JheisonMB Jul 21, 2026
be6172e
fix: resolve clippy warnings
JheisonMB Jul 21, 2026
7f4d702
fix: resolve failing tests for CI coverage
JheisonMB Jul 21, 2026
8508890
test: fix integration tests and add clone module coverage
JheisonMB Jul 22, 2026
ab8991a
style: apply cargo fmt formatting
JheisonMB Jul 22, 2026
16d165c
test: increase coverage to 87%+ with comprehensive tests
JheisonMB Jul 23, 2026
072b18c
test: increase coverage to 87%+ with comprehensive tests
JheisonMB Jul 23, 2026
8f59ae9
test: increase coverage to 87%+ with comprehensive tests
JheisonMB Jul 23, 2026
31e9bcc
style: fix clippy warnings
JheisonMB Jul 23, 2026
d146918
fix: ignore flaky set_current_dir tests
JheisonMB Jul 23, 2026
25d4dd8
fix: add serial_test to serialize tests using set_current_dir
JheisonMB Jul 23, 2026
9bd15c2
style: apply cargo fmt
JheisonMB Jul 23, 2026
b84c89e
Merge pull request #17 from UniverLab/ci/increase-coverage
JheisonMB Jul 23, 2026
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
4b2ea44
Merge pull request #18 from UniverLab/feature/agent-locks
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
28 changes: 28 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,31 @@ skills-lock.json
#/target
*.mp4
.mimocode/

# AI coding agents
.cursor/
.windsurf/
.claude/
.continue/
.copilot/
.kilocode/
.zencoder/
.qwen/

# AI coding agents

# AI coding agents

# AI coding agents

# AI coding agents

# AI coding agents

# AI coding agents

# AI coding agents

# AI coding agents

# AI coding agents
134 changes: 133 additions & 1 deletion Cargo.lock

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

7 changes: 6 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,11 +16,15 @@ 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"

[dev-dependencies]
serial_test = "3.5.0"
tempfile = "3"

[dependencies.inquire]
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