Thank you for your interest in contributing to gitc, an AI-powered CLI tool for generating meaningful commit messages from your Git diffs. Your contributions help make gitc better for everyone!
We welcome all types of contributions, including bug fixes, feature additions, documentation improvements, and tests. This guide outlines how you can get involved.
- Code of Conduct
- Getting Started
- Development Setup
- Making Contributions
- Commit Message Guidelines
- Pull Request Process
- Feature Suggestions & Bug Reports
- Community
We are committed to fostering a welcoming and inclusive community. Please adhere to our Contributor Covenant Code of Conduct. Treat everyone with respect and kindness.
To start contributing, follow these steps:
- Fork the repository on GitHub.
- Clone your fork to your local machine:
git clone https://github.com/<your-username>/gitc.git cd gitc
- Create a new branch for your changes:
git checkout -b feature/<your-feature-name>
To set up the development environment, ensure you have the following prerequisites:
- Go ≥ 1.20
- Git
- (Optional) An OpenAI API Key for testing AI-powered features
- Install dependencies:
go mod tidy
- Build the project:
go build -o gitc ./cmd/gitc
- Run the tool:
./gitc --help
- Run tests:
go test ./...
We value contributions in many forms, including:
- 🐛 Fixing bugs
- 📄 Improving documentation
- 🚀 Adding new features
- ✅ Writing or improving tests
- 💡 Suggesting ideas via discussions
If you're unsure where to start, check out our GitHub Discussions or Issues for inspiration.
We use Conventional Commits to maintain a clear and semantic commit history. This ensures our changelog is easy to read and understand.
feat(config): add support for Gemini AI provider
fix(cli): resolve crash when config file is missing
docs(readme): clarify installation stepsPro Tip: You can use
gitcitself to generate commit messages! For example:gitc -a --commit-type feat
feat: New features or enhancementsfix: Bug fixesdocs: Documentation updatestest: Adding or improving testsrefactor: Code refactoring without changing functionalitychore: Miscellaneous tasks (e.g., updating dependencies)
To submit your changes:
- Ensure your pull request (PR) targets the
mainbranch. - Verify that all tests pass:
go test ./... - Write a clear and descriptive PR title and description.
- Reference related issues (e.g.,
Closes #42orFixes #42). - Add relevant labels (e.g.,
bug,feature,documentation). - Submit your PR and respond to any feedback during the code review process.
- Report a bug: Open an issue on our Issues page.
- Suggest a feature: Start a discussion on our Discussions page.
- New to contributing? Look for issues labeled
good first issueto get started.
Join our community to connect with other contributors:
- Participate in GitHub Discussions to share ideas or ask questions.
- Stay updated by starring the repository and following along!
Your contributions—whether code, documentation, or ideas—make gitc better for everyone. We're excited to have you as part of our community! 🚀