A lightweight wrapper for Git that adds project-specific enhancements — starting with support for Jira-aware commit workflows.
jitt stands for "Jira + Git + Tiny Tooling" — the idea is to build small, targeted features that help integrate common workflows (like Jira ticket linking or commit hygiene) without introducing heavyweight dependencies or complex configuration.
Right now, jitt:
- Provides a clean
jitt initcommand that creates a.jiraconfiguration file in Git repositories - Avoids accidental
.jiracreation outside a Git repo - Supports optional project configuration:
jitt init ABC - Lays the foundation for smarter Jira integration (like enforcing ticket prefixes in commit messages)
- Includes helpful usage information and error messages
I wanted something that feels like Git, behaves like Git, but can gently nudge teams (and myself) into better habits — like associating commits with real tickets or ensuring clean logs. All without enforcing complex Git hooks or rewriting history.
And also? I wanted an excuse to learn Go.
This is one of my first projects in Go, and I’m learning as I build. So if you spot something odd or non-idiomatic, feel free to open an issue or PR — just maybe... do it with a little kindness?
I'm here to learn, improve, and have fun along the way.
Planned features (each added carefully and test-first):
- ✅
jitt initcommand for .jira configuration - ⏳
jitt validatecommand for pre-commit hooks - ⏳ Enforce ticket key pattern in commits (e.g.,
ABC-123: message) - ⏳ Configurable Jira key prefixes and patterns
- ⏳
jitt statusto show current project configuration - ⏳ Integration with git hooks
# Initialize a .jira config file in your Git repository
jitt init
# Initialize with a specific project key
jitt init ABC
# Show help
jitt helpThe jitt init command will:
- Check that you're inside a Git repository
- Create a
.jirafile with configuration - Refuse to overwrite an existing
.jirafile
go install github.com/bbommarito/jitt@latestFor development, clone the repo and use the provided Makefile:
git clone https://github.com/bbommarito/jitt.git
cd jitt
# Set up development environment
make dev-setup
# Build the binary
make build
# Run tests
make test
# See all available commands
make helpThis project uses Ginkgo for BDD-style testing with Gomega for assertions. We've migrated from Testify to provide better test organization and readability.
To run the tests:
# Run all tests
go test ./...
# Run tests with verbose output
go test -v ./...
# Run tests with coverage
go test -cover ./...
# Run with race detection
go test -race ./...Or use Ginkgo directly for even prettier output:
# Install Ginkgo CLI (optional)
go install github.com/onsi/ginkgo/v2/ginkgo@latest
# Run with Ginkgo
ginkgo -r -vThis project uses Gremlins for mutation testing, which evaluates the quality of our test suite by introducing bugs and checking if tests catch them.
# Install Gremlins
go install github.com/go-gremlins/gremlins/cmd/gremlins@latest
# Run mutation tests (quick analysis)
make test-mutation-dry
# Run full mutation tests
make test-mutationCurrent Metrics:
- Test Efficacy: 100% (when we test something, we catch bugs!)
- Mutator Coverage: ~17% (realistic for CLI with system interactions)
Philosophy: We focus on high efficacy rather than high coverage. Many mutations represent system-level failures (like os.Getwd() errors) that are impractical to test. Our goal is to ensure that the business logic mutations are thoroughly tested.
Whether you're a seasoned Gopher or just curious, feel free to suggest changes, report bugs, or discuss ideas. All voices welcome — especially if you bring patience and a sense of humor.
MIT — do what you want, be cool about it.