ci: add license compliance checks and LICENSE-3RD-PARTY.txt generation - #10
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds automated license-compliance enforcement and reproducible third-party notice generation for atlas-local-lib-py, spanning both the Rust (cargo) and Python (pip) dependency ecosystems.
Changes:
- Add a GitHub Actions workflow to enforce allowed-license policies and to verify
LICENSE-3RD-PARTY.txtis kept up to date. - Introduce
cargo-deny/cargo-aboutconfiguration and a Handlebars template for Rust third-party notices. - Add scripts to compute Python runtime dependency closure and to generate the combined third-party notice file.
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
scripts/py_runtime_deps.py |
Computes the Python runtime dependency transitive closure from installed distribution metadata. |
scripts/generate-third-party.sh |
Generates LICENSE-3RD-PARTY.txt by concatenating Rust (cargo-about) and Python (pip-licenses) notices. |
LICENSE-3RD-PARTY.txt |
Checked-in generated third-party notices output. |
deny.toml |
Defines Rust dependency allowed-license policy for cargo-deny. |
Cargo.toml |
Adds crate metadata (authors, license, publish=false) used by licensing/reporting tooling. |
about.toml |
Configures cargo-about accepted licenses and private crate handling. |
about.hbs |
Template for Rust third-party license notice output. |
.github/workflows/license.yml |
CI workflow to enforce license compliance and verify the generated notice file is not stale. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
csanx
marked this pull request as ready for review
July 24, 2026 08:51
jeroenvervaeke
requested changes
Jul 24, 2026
jeroenvervaeke
approved these changes
Jul 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed changes
Jira ticket: CLOUDP-424406
Adds license compliance checking and third-party license notice generation for
atlas-local-lib-py, covering both dependency ecosystems in the repo (Rust viacargo, Python viapip).This PR introduces:
License complianceworkflow (.github/workflows/license.yml) that runs on push and PRs. It enforces the allowed-license policy for Rust deps (cargo deny check licenses) and Python runtime deps (pip-licenses --allow-only), regeneratesLICENSE-3RD-PARTY.txt, and fails if the checked-in copy is stale.deny.toml,about.toml, andabout.hbsto configurecargo-denyandcargo-aboutfor the Rust dependency license policy and notice template.scripts/generate-third-party.sh, which concatenates the Rust (cargo-about) and Python (pip-licenses) license notices into a singleLICENSE-3RD-PARTY.txtat the repo root.scripts/py_runtime_deps.py, to ensure only real runtime deps are checked.LICENSE-3RD-PARTY.txtitself.