Skip to content

ci: pin Actions to SHAs, least-privilege permissions, security audit, license check - #511

Open
edwarddavid929-png wants to merge 1 commit into
Invoice-Liquidity-Network:mainfrom
edwarddavid929-png:ci/pin-actions-to-sha-license-audit-security
Open

ci: pin Actions to SHAs, least-privilege permissions, security audit, license check#511
edwarddavid929-png wants to merge 1 commit into
Invoice-Liquidity-Network:mainfrom
edwarddavid929-png:ci/pin-actions-to-sha-license-audit-security

Conversation

@edwarddavid929-png

Copy link
Copy Markdown
Contributor

Summary

Closes #461 — Pin GitHub Actions to commit SHAs for supply-chain hardening
Closes #462 — Add least-privilege permissions blocks and document secret scopes
Closes #459 — Add npm audit security gate to CI pipeline
Closes #460 — Add automated dependency license compatibility check


Changes

#461 — SHA Pinning (all 5 existing workflows)

All floating tags replaced with pinned commit SHAs. chromaui/action@latest was highest-risk and addressed first.

Action Tag SHA
actions/checkout v4.4.0 11d5960a326750d5838078e36cf38b85af677262
actions/setup-node v4.4.0 49933ea5288caeca8642d1e84afbd3f7d6820020
actions/upload-artifact v4.6.2 ea165f8d65b6e75b540449e92b4886f43607fa02
chromaui/action v18.1.0 14cfaef73576e69f95f47f60058063f46ca38719

#462 — Least-Privilege Permissions (all 7 workflows)

Every workflow now has an explicit permissions: block. All get contents: read minimum. lighthouse.yml additionally gets statuses: write (required for LHCI commit status posting).

#459 — Security Audit Gate

New security-audit.yml: fails on high/critical vulnerabilities, reports moderate informational-only. Weekly cron (Monday 08:00 UTC) catches newly published CVEs between dependency bumps.

#460 — License Compatibility Check

New license-check.yml + .license-checker.json allowlist. Permissive licenses (MIT, Apache-2.0, BSD, ISC, CC0 etc.) pass. Copyleft (GPL, LGPL, AGPL, MPL) fail. Runs against production deps only.


Documentation

  • docs/ci-cd.md — new policy doc covering SHA pinning update procedure, secrets/scopes table, audit triage process, license exception process
  • CONTRIBUTING.md — added security audit and license check quick-reference sections

.gitignore

Extended to exclude: test-results/, playwright-report/, __snapshots__/, .lighthouseci/, storybook-static/, .turbo, debug logs, scratch files.

… license check

Closes Invoice-Liquidity-Network#461 – Pin all GitHub Actions uses: references to commit SHAs:
- actions/checkout@v4.4.0  → 11d5960a326750d5838078e36cf38b85af677262
- actions/setup-node@v4.4.0 → 49933ea5288caeca8642d1e84afbd3f7d6820020
- actions/upload-artifact@v4.6.2 → ea165f8d65b6e75b540449e92b4886f43607fa02
- chromaui/action@v18.1.0 → 14cfaef73576e69f95f47f60058063f46ca38719

Closes Invoice-Liquidity-Network#462 – Add explicit least-privilege permissions: blocks to all 7 workflows.
Lighthouse gets statuses:write (required for LHCI commit status); all others are
contents:read only.

Closes Invoice-Liquidity-Network#459 – Add security-audit.yml: npm audit --audit-level=high fails on
high/critical; moderate findings are reported informational-only. Weekly cron
added (Monday 08:00 UTC) to catch newly published CVEs between dependency bumps.

Closes Invoice-Liquidity-Network#460 – Add license-check.yml and .license-checker.json allowlist.
Permissive licenses (MIT, Apache-2.0, BSD, ISC, CC0 …) pass; copyleft licenses
(GPL, LGPL, AGPL, MPL) fail. Runs on production deps only.

Also:
- docs/ci-cd.md: policy doc covering SHA pinning, secrets/scopes, audit triage,
  license exception process.
- CONTRIBUTING.md: security audit and license check quick-reference sections.
- .gitignore: exclude test-results/, playwright-report/, __snapshots__/,
  .lighthouseci/, storybook-static/, .turbo, debug logs, scratch files.
@edwarddavid929-png
edwarddavid929-png force-pushed the ci/pin-actions-to-sha-license-audit-security branch from 829d511 to e28129a Compare July 26, 2026 05:32
@drips-wave

drips-wave Bot commented Jul 26, 2026

Copy link
Copy Markdown

@edwarddavid929-png Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant