Git hooks check that your code builds, lint and all tests pass at each commit. Install the hooks on your local repository in two steps.
Step 1: install pre-commit (requires Python)
pip install pre-commitStep 2: install the Git hooks on your repository
pre-commit installYou can contribute in 2 ways : Giving us feedback on the tool using Github issues or sending us a PR with the change you would like to see.
This file will focus on giving you the keys to work on this project
To build datadog-sbom-generator, you'll need the following:
- Python 3.10 or later with the invoke package installed
- Go 1.21 or later. You'll also need to set your
$GOPATHand have$GOPATH/binin your path. - GoReleaser. This is optional, and only needed if you want reproducible builds.
You can produce a binary from the repository using go build or GoReleaser.
Run the following command in the project directory:
./scripts/build.shIt will produce a binary called datadog-sbom-generator in the project directory.
Run the following command in the project directory:
./scripts/build_snapshot.shSee GoReleaser documentation for build options.
You can reproduce the downloadable builds by checking out the specific tag and running goreleaser build, using the same Go version as the one used during the actual release (see goreleaser workflows).
Run the following command in the project directory:
./scripts/run_tests.shOur integration tests heavily use snapshot testing through go-snaps. To update the snapshot, you'll need to run the following:
UPDATE_SNAPS=true ./scripts/run_tests.shIf you want to generate a coverage report, you can run:
./scripts/generate_coverage_report.shTo lint your code, run the following command:
./scripts/run_lints.sh --fixTo add or upgrade a dependency, update the file named LICENSE-3rdparty.csv.
This file represents the different license and copyrights of dependencies used in this project.
To update the file, please run the following command :
# Prerequisites
python3 -m pip install -r requirements.txt
go install -x github.com/goware/modvendor@latest
go install -x github.com/frapposelli/wwhrd@latest
go install -x github.com/go-enry/go-license-detector/v4/cmd/license-detector@latest
inv -e generate-licenses- You can read about the release process and E2E testing here.
- Tag the main branch commit with the version name you want (e.g, v1.0.0).
- Wait for the Github workflow to run (you can see it in the actions panel).
- Once done, you will see a new draft release for your version in the release section.
- After testing it, you can finally publish it 🎉