Thanks for thinking about contributing. This document is the org-wide default; individual repositories may override it with their own CONTRIBUTING.md that adds project-specific guidance (build commands, repo layout, etc.).
- Open an issue first for anything non-trivial. We would rather discuss before you spend time.
- Read the Code of Conduct.
- Fork, branch, code, push, open a pull request.
- Be patient with reviews — this is a side-project for the maintainers.
CommitBrief uses the inbound = outbound licensing model. By opening a pull request you agree that your contribution is licensed to the project under the GPL-3.0-or-later license that governs the repository. There is no separate Contributor License Agreement (CLA) and no Developer Certificate of Origin (DCO) sign-off is required.
If your employer or another party may claim rights over your contribution, please confirm with them before submitting.
Before opening an issue:
- Search existing open and closed issues — you may not be the first to hit it.
- For bugs, prefer the bug report template and fill in every field. Reproduction steps with the exact command, OS, and version save us hours.
- For features, prefer the feature request template and describe the motivation first, the proposal second.
- For "how do I…" or "is this supported?" questions, use Discussions instead of Issues.
- Keep PRs focused. One logical change per PR. Refactors that touch many files should be split into preparatory PRs and the substantive change.
- Write the PR description with a summary and a test plan. The PR template captures both.
- Reference related issues with
Fixes #NorRefs #N. - Run
make lint testlocally before pushing. CI will run the same checks plus a build matrix. - Commit messages follow Conventional Commits on the default branch. Examples:
feat(provider): add Mistral supportfix(cache): handle TTL boundary correctlydocs: clarify --staged behavior
- Go: the codebase uses
gofmt,goimports, andgolangci-lintwith the project's.golangci.yml. CI rejects unformatted or lint-failing PRs. - Comments: explain why, not what. Code should be readable on its own.
- Tests: add tests for every behavior change. Aim for the smallest test that demonstrates the issue.
- Public-facing strings in the CLI go through
internal/i18n. Never hard-code user-visible text; use a key with entries in bothmessages.en.ymlandmessages.tr.yml.
Do not open a public issue for security reports. See SECURITY.md for the private reporting channel.
Some repositories add their own CONTRIBUTING.md with extra detail (build commands, architecture overview, integration test setup). When present, that project-level file extends this one — both apply.
Open a Discussion in the relevant repository, or email info@muhammetsafak.com for anything that needs to be off-channel.
Thank you for helping us improve CommitBrief.