Skip to content

ci: FINOS license compliance workflow (#271)#272

Merged
coopernetes merged 1 commit into
mainfrom
feat/license-ci
Jun 1, 2026
Merged

ci: FINOS license compliance workflow (#271)#272
coopernetes merged 1 commit into
mainfrom
feat/license-ci

Conversation

@coopernetes
Copy link
Copy Markdown
Member

@coopernetes coopernetes commented Jun 1, 2026

Summary

  • Adds license.yml workflow enforcing FINOS license category compliance on every push/PR to main
  • Removes gradle-suppressions.xml (OWASP dependency-check no longer used; CVE scanning handled by Grype)

Changes

Gradle (com.github.jk1:gradle-license-report)

  • checkLicense task applied to all subprojects, scans runtimeClasspath only
  • gradle-allowed-licenses.json — FINOS Category A (permitted) + Category B (permitted with CONTRIBUTING notice); Category X omitted → build fails on violation
  • gradle-license-overrides.txt — PSV overrides for two deps with malformed POM license declarations (org.jspecify:jspecify, com.nimbusds:oauth2-oidc-sdk), both confirmed Apache-2.0
  • InventoryHtmlReportRenderer generates a grouped HTML report uploaded as a CI artifact

npm (license-checker-rseidelsohn)

  • Added as pinned devDependency in frontend package.json
  • license-check npm script checks production deps only (--production --excludePrivatePackages)
  • All 13 production deps pass: MIT / BSD-3-Clause / Apache-2.0 / ISC

Test plan

  • ./gradlew checkLicense -PskipFrontend passes clean across all three subprojects locally
  • npm run license-check passes locally (13 deps, all FINOS Category A)
  • CI license.yml workflow passes on this PR

closes #271

…config

Gradle (com.github.jk1:gradle-license-report):
- checkLicense task applied to all subprojects, scans runtimeClasspath only
- gradle-allowed-licenses.json covers FINOS Category A (permitted) and
  Category B (permitted with CONTRIBUTING notice); Category X fails the build
- gradle-license-overrides.txt documents correct license for two deps with
  malformed POM declarations (org.jspecify:jspecify, com.nimbusds:oauth2-oidc-sdk),
  both confirmed Apache-2.0; excluded from the compliance check accordingly
- InventoryHtmlReportRenderer generates a grouped HTML report per subproject

npm (license-checker-rseidelsohn):
- Added as pinned devDependency in frontend package.json
- license-check npm script checks production deps only with FINOS A/B allowlist
- All 13 production deps pass: MIT / BSD-3-Clause / Apache-2.0 / ISC

CI (license.yml):
- Two jobs: 'Gradle (license)' and 'npm (license)' — distinct from CVE check
  contexts so they can be gated independently in branch protection
- Gradle report uploaded as artifact on every run

Removes gradle-suppressions.xml (OWASP dependency-check no longer in use;
CVE scanning handled by Grype via cve.yml).

closes #271

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@coopernetes coopernetes enabled auto-merge June 1, 2026 21:03
@coopernetes coopernetes merged commit 1ec17bf into main Jun 1, 2026
18 checks passed
@coopernetes coopernetes deleted the feat/license-ci branch June 1, 2026 21:06
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.

feat: FINOS license compliance CI

1 participant