ci: add license-check workflow - #217
Conversation
Adds a PR gate that fails when a dependency introduces a copyleft (GPL/AGPL/LGPL) license: - license-check/node (bpr): runs `license-checker` over the root production dependency tree. - license-check/rust (bpr): runs `cargo deny check licenses` against the Solana OFT crate, governed by a new contracts/solanaOFT/deny.toml allow-list. Both jobs carry the (bpr) suffix so they can be added to the default-branch required-status-checks ruleset.
b2df1f0 to
07ae9ff
Compare
07ae9ff to
dee3d5c
Compare
801e2fc to
80bdea6
Compare
|
@claude review |
|
Claude finished @Seth-Schmidt's request. — View run |
There was a problem hiding this comment.
[AUTOMATED]
Code Review — ci: add license-check workflow
The workflow is well-structured and follows established repository conventions (SHA-pinned actions, least-privilege permissions, concurrency groups, persist-credentials: false, (bpr) naming). The shell logic for discovering affected packages in a monorepo is sound.
However, the license-checking step has a critical issue that defeats the purpose of the workflow.
Summary
| Category | Result |
|---|---|
| Guideline Compliance | ✅ Fully compliant with repo conventions |
| Error Handling | ✅ Adequate (set -euo pipefail, proper aggregate gate) |
| Security | ✅ Least-privilege, pinned actions, no credential exposure |
| Bug / Correctness |
|
The review has been posted successfully. Here's a summary of the review: Review Summary for PR #217:
|
3a231d2 to
6845239
Compare
Summary
Adds a PR gate that fails when a package introduces a production dependency
under a disallowed license. Addresses compliance finding 3-1 (License Check).
Scope is what we distribute: contract bytecode and
scripts/source. Packages with known-but-pending orpeer-install-only exceptions are suppressed via exact
name@versionexclusionsin the Makefile.
Changes
Makefile—make check-licensesscripts/fhevm-cliandscripts/governance-proposal-builder.EXCLUDE_PACKAGES: LGPL Safe (cleared), LZBL LayerZero v2 packages (legalpending), BUSL peers not compiled into our Solidity (v1, Chainlink CCIP,
lz-v2-utilities)..github/workflows/license-check.ymllicense-check/check-licenses (bpr)package.json/ lockfiles — move deployed Solidity deps fromdevDependencies→dependenciesingovernance,token,solanaOFT,staking,safe, andscripts/fhevm-cliso--productionscans the realcompile-time tree. Lockfiles regenerated to match.