Thank you for your interest in contributing to commit-msg! We welcome contributions from developers of all skill levels. 🎉
This project is participating in Hacktoberfest! We welcome quality contributions throughout October and beyond.
- Code of Conduct
- How Can I Contribute?
- Getting Started
- Development Setup
- Pull Request Process
- Coding Standards
- Issue Labels
This project adheres to the Hacktoberfest values:
- Everyone is welcome - We value diversity and inclusivity
- Quantity is fun, quality is key - We prioritize meaningful contributions
- Short-term action, long-term impact - Your contributions help build the future
Please be respectful and constructive in all interactions.
Before creating a bug report:
- Check the existing issues to avoid duplicates
- Collect information about the bug:
- OS and version
- Go version
- Steps to reproduce
- Expected vs actual behavior
Enhancement suggestions are welcome! Please:
- Use a clear and descriptive title
- Provide a detailed description of the proposed feature
- Explain why this enhancement would be useful
Look for issues labeled good first issue or help wanted - these are great for newcomers!
Improving documentation is always appreciated:
- Fix typos or unclear instructions
- Add examples
- Improve README clarity
- Translate documentation
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/commit-msg.git cd commit-msg - Create a branch for your changes:
git checkout -b feature/your-feature-name
- Go 1.23.4 or higher
- Git
- API key for either:
- Google Gemini (
GEMINI_API_KEY) - Groq (
GROQ_API_KEY) - Grok (
GROK_API_KEY) - Claude (
CLAUDE_API_KEY)
- Google Gemini (
-
Set up your environment variables:
export COMMIT_LLM=gemini # or "groq" / "grok" export GEMINI_API_KEY=your-api-key-here # OR export GROQ_API_KEY=your-api-key-here # OR export GROK_API_KEY=your-api-key-here
-
Install dependencies:
go mod download
-
Run the application:
go run cmd/commit-msg/main.go . -
Build the executable:
go build -o commit.exe cmd/commit-msg/main.go
Before submitting a PR:
- Test the application in a Git repository
- Verify both LLM providers work (if applicable)
- Check for any errors or warnings
- Test on your target platform
- Update documentation if needed (README.md, code comments)
- Follow the coding standards (see below)
- Write clear commit messages (ironic for this project!)
- Fill out the PR template completely
- Link related issues using keywords like "Fixes #123"
- Wait for review - maintainers will review within 1-2 days
Use conventional commit format:
feat:- New featurefix:- Bug fixdocs:- Documentation changesrefactor:- Code refactoringtest:- Adding testschore:- Maintenance tasks
Example: feat: add support for Claude API
- Follow Effective Go guidelines
- Use
gofmtto format your code - Add comments for exported functions
- Keep functions small and focused
- Handle errors appropriately
// GenerateMessage creates a commit message from git changes
func GenerateMessage(changes string, apiKey string) (string, error) {
if changes == "" {
return "", fmt.Errorf("no changes provided")
}
// Implementation here
return message, nil
}good first issue- Good for newcomershelp wanted- Extra attention neededbug- Something isn't workingenhancement- New feature requestdocumentation- Documentation improvementshacktoberfest- Eligible for Hacktoberfesthacktoberfest-accepted- Approved for Hacktoberfest
Feel free to:
- Open an issue with the
questionlabel - Reach out to the maintainers
- Check existing issues and PRs for similar questions
By contributing, you agree that your contributions will be licensed under the same license as the project.
Thank you for contributing to commit-msg! 🚀