diff --git a/.github/workflows/dual-approval.yaml b/.github/workflows/dual-approval.yaml new file mode 100644 index 0000000..a1c6aef --- /dev/null +++ b/.github/workflows/dual-approval.yaml @@ -0,0 +1,20 @@ +name: Promotion Gate + +# Calls the shared promotion gate workflow. +# dev PRs: no gate (engineer self-merges). +# uat PRs: QA approval required. +# main PRs: UAT approval required (uat→main promotions). + +on: + pull_request_review: + types: [submitted, dismissed] + pull_request: + branches: [uat, main] + types: [opened, reopened, synchronize] + +jobs: + promotion-gate: + uses: privilegedescalation/.github/.github/workflows/dual-approval-check.yaml@main + secrets: inherit + with: + pr_number: ${{ github.event.pull_request.number }} \ No newline at end of file diff --git a/audit-ci.jsonc b/audit-ci.jsonc new file mode 100644 index 0000000..0921bea --- /dev/null +++ b/audit-ci.jsonc @@ -0,0 +1,20 @@ +{ + // Allowlist for inherited dev-dependency CVEs from @kinvolk/headlamp-plugin + // CTO decision (PRI-854): these high-severity vulns are dev/build-time only, + // trace to @kinvolk/headlamp-plugin transitive deps (Picomatch, Vite, lodash), + // and do NOT ship in production plugin artifacts. + "allowlist": [ + { + "id": "GHSA-hhpm-516h-p3p6", + "reason": "Picomatch ReDoS: devDependency only, does not ship in production plugin bundle" + }, + { + "id": "GHSA-36xf-7xpp-53w5", + "reason": "Vite arbitrary file read: devDependency only, does not ship in production plugin bundle" + }, + { + "id": "GHSA-jf8v-p3pp-93qh", + "reason": "lodash code injection via _.template: devDependency only, does not ship in production plugin bundle" + } + ] +} \ No newline at end of file