| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| # This workflow uses actions that are not certified by GitHub. They are provided |
| # by a third-party and are governed by separate terms of service, privacy |
| # policy, and support documentation. |
| |
| ############################################################################# |
| # Local testing of this workflow can be carried out using |
| # act (https://github.com/nektos/act). |
| # |
| # Act will set an environment variable, ACT, to indicate that it is running the workflow. |
| # This environment variable is used to skip some build steps, such as uploading |
| # results as artefacts of the workflow run. |
| # |
| # On first run, act will prompt you to select a micro, medium or large runner image. This |
| # workflow can be run using the medium image. |
| # |
| # Action, ossf/scorecard-action requires a GITHUB_TOKEN. To meet this |
| # requirement when using act you will need to create a Personal Access Token on GitHub. |
| # You can then run act using a command similar to: |
| # act --workflows .github/workflows/scorecard.yml --secret GITHUB_TOKEN |
| # Act will then prompt you to enter your token. |
| ############################################################################# |
| |
| 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: '37 0 * * 6' |
| push: |
| branches: [ "trunk" ] |
| |
| # Declare default permissions as read only. |
| permissions: read-all |
| |
| jobs: |
| analysis: |
| name: Scorecard analysis |
| runs-on: ubuntu-latest |
| 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 |
| # Uncomment the permissions below if installing in a private repository. |
| # contents: read |
| # actions: read |
| |
| steps: |
| - name: Harden Runner |
| uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0 |
| with: |
| egress-policy: audit |
| |
| - name: "Checkout code" |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 |
| with: |
| persist-credentials: false |
| |
| - name: "Run analysis" |
| uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1 |
| with: |
| results_file: results.sarif |
| results_format: sarif |
| # (Optional) "write" PAT token. Uncomment the `repo_token` line below if: |
| # - you want to enable the Branch-Protection check on a *public* repository, or |
| # - you are installing Scorecard on a *private* repository |
| # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat. |
| # repo_token: ${{ secrets.SCORECARD_TOKEN }} |
| |
| # 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. |
| # For private repositories: |
| # - `publish_results` will always be set to `false`, regardless |
| # of the value entered here. |
| publish_results: ${{ !env.ACT }} |
| |
| # 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" |
| if: ${{ !env.ACT }} |
| uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 |
| with: |
| name: SARIF file |
| path: results.sarif |
| retention-days: 5 |
| |
| # Upload the results to GitHub's code scanning dashboard. |
| - name: "Upload to code-scanning" |
| if: ${{ !env.ACT }} |
| uses: github/codeql-action/upload-sarif@cf7e9f23492505046de9a37830c3711dd0f25bb3 # v2.16.2 |
| with: |
| sarif_file: results.sarif |