From 0ae7fe785a9850948e40ff80e5e3cb99165a27af Mon Sep 17 00:00:00 2001 From: Mitchel Sellers Date: Thu, 19 Mar 2026 08:32:24 -0500 Subject: [PATCH] Add Scorecard workflow for supply-chain security analysis --- .github/workflows/ossf-scorecard.yml | 60 ++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 .github/workflows/ossf-scorecard.yml diff --git a/.github/workflows/ossf-scorecard.yml b/.github/workflows/ossf-scorecard.yml new file mode 100644 index 0000000..3978a6a --- /dev/null +++ b/.github/workflows/ossf-scorecard.yml @@ -0,0 +1,60 @@ +name: "Scorecard supply-chain security" +on: + # For Branch-Protection check. Only the default branch is supported. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection + branch_protection_rule: + + # To guarantee Maintained check is occasionally updated. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained + schedule: + - cron: "45 10 * * 0" + push: + branches: ["develop"] + +# Declare default permissions as read only. +permissions: "read-all" + +jobs: + analysis: + name: "Scorecard analysis" + runs-on: "ubuntu-latest" + if: ${{ github.event.repository.default_branch == github.ref_name || github.event_name == 'pull_request' }} + permissions: + # Needed to upload the results to code-scanning dashboard. + security-events: "write" + # Needed to publish results and get a badge (see publish_results below). + id-token: "write" + + steps: + - name: "Checkout code" + uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" # v6.0.2 + with: + persist-credentials: false + + - name: "Run analysis" + uses: "ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a" # v2.4.3 + with: + results_file: results.sarif + results_format: sarif + + # Public repositories: + # - Publish results to OpenSSF REST API for easy access by consumers + # - Allows the repository to include the Scorecard badge. + # - See https://github.com/ossf/scorecard-action#publishing-results. + publish_results: true + + # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF + # format to the repository Actions tab. + - name: "Upload artifact" + uses: "actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f" # v7.0.0 + with: + name: "SARIF file" + path: "results.sarif" + retention-days: 5 + + # Upload the results to GitHub's code scanning dashboard (optional). + # Commenting out will disable upload of results to your repo's Code Scanning dashboard + - name: "Upload to code-scanning" + uses: "github/codeql-action/upload-sarif@b1bff81932f5cdfc8695c7752dcee935dcd061c8" # v4.33.0 + with: + sarif_file: "results.sarif"