Skip to content

ci: add transitive-dependency license audit (#137) - #215

Merged
Chris-Wolfgang merged 2 commits into
vNextfrom
ci/license-audit
Jul 21, 2026
Merged

ci: add transitive-dependency license audit (#137)#215
Chris-Wolfgang merged 2 commits into
vNextfrom
ci/license-audit

Conversation

@Chris-Wolfgang

Copy link
Copy Markdown
Owner

Stacked on #214. Adds license-audit.yaml + .github/license-audit/ config. Runs nuget-license over both packable projects (TestKit + TestKit.Xunit) on PR + push + schedule, gating on an OSI-permissive allow-list (MIT / Apache-2.0 / BSD / MS-PL / ISC / BSL-1.0 / MPL-2.0), and uploads a JSON inventory artifact per project.

Verified locally

Ran the audit against both projects' full transitive closure:

  • TestKit → clean (exit 0).
  • TestKit.Xunit → initially failed on xunit.abstractions 2.0.3, which exposes a license URL (.../xunit/master/license.txt) rather than an SPDX expression. xunit is Apache-2.0; added that URL → Apache-2.0 to url-license-mappings.json (the documented mapping mechanism). Now clean (exit 0).

Config (.github/license-audit/)

  • allowed-licenses.json — the permissive allow-list (from the canonical fleet config).
  • ignored-packages.jsonSonarAnalyzer.CSharp only (build-time analyzer, PrivateAssets=all, non-OSI Sonar license, imposes no consumer obligation).
  • url-license-mappings.json — Microsoft fwlink + dotnet/standard + xunit URL → SPDX.

Matrix'd over the two projects; artifact names disambiguated by strategy.job-index (upload-artifact@v4 rejects duplicate names). Ported from D20-Dice.

Closes #137 when the vNext cycle merges to main.

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings July 21, 2026 19:03

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Comment thread .github/workflows/license-audit.yaml Fixed
Chris-Wolfgang and others added 2 commits July 21, 2026 16:30
Adds license-audit.yaml + .github/license-audit/ config. Runs nuget-license
over both packable projects (TestKit + TestKit.Xunit) on PR + push + schedule,
gating on an OSI-permissive allow-list and uploading a JSON inventory.

xunit.abstractions 2.0.3 exposes a license URL rather than an SPDX expression;
mapped to its actual license (Apache-2.0) in url-license-mappings.json. Both
projects audit clean locally. Ported from D20-Dice; matrix'd for two projects.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#143)

Aligns with the fleet SHA-pin migration (#219): checkout v7.0.0 -> v7,
setup-dotnet v5 -> v6, upload-artifact v4 -> v7, upload-sarif v3/v4 -> v4.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants