Thanks for considering a contribution! licscan is an open-source project under Apache License 2.0 and welcomes issues, pull requests, and discussion.
Requires Go 1.22+.
git clone https://github.com/codelake-dev/licscan
cd licscan
make test # run the full test suite
make lint # run golangci-lint
make build # produce ./bin/licscan- Fork the repository and create a feature branch from
main:git checkout -b feat/short-description
- Write tests first. Every new code path should have at least one test.
- Keep commits small and focused. The commit message body explains the why.
- Run the full suite before pushing:
make test lint - Open the PR against
mainwith a clear description of the change and any user-visible impact.
- Standard Go style —
gofmtis enforced by CI. golangci-lintconfig in.golangci.ymlis the source of truth.- Public functions get short doc comments. Private functions only if non-obvious.
- No third-party dependencies without prior discussion in an issue.
- Table-driven tests for anything with multiple input shapes.
- Use
github.com/stretchr/testify/requirefor fast-fail assertions. - Coverage gate:
internal/packages should stay ≥ 80%.
Open an issue with:
licscan --versionoutput- OS + arch
- A minimal reproduction (ideally a public repo or
.licscan.ymlsnippet) - Expected vs actual behaviour
Do not open a public issue for security reports. Email security@codelake.dev with details and a suggested disclosure timeline. We aim to respond within 72 hours.
We follow the Contributor Covenant 2.1. Be excellent to each other.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0, the same license as the project.