# 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
#
#      https://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.

name: "Scorecards supply-chain security"

on:
  branch_protection_rule:
  schedule:
    - cron: "30 1 * * 6"    # Weekly on Saturdays
  push:
    branches: [ "master" ]

permissions: read-all

jobs:

  analysis:

    name: "Scorecards analysis"
    runs-on: ubuntu-latest
    permissions:
      # Needed to upload the results to the code-scanning dashboard.
      security-events: write
      actions: read
      id-token: write # This is required for requesting the JWT
      contents: read  # This is required for actions/checkout

    steps:

      - name: "Checkout code"
        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
        with:
          persist-credentials: false

      - name: "Run analysis"
        uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a    # 2.4.3
        with:
          results_file: results.sarif
          results_format: sarif
          # A read-only PAT token, which is sufficient for the action to function.
          # The relevant discussion: https://github.com/ossf/scorecard-action/issues/188
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          # Publish the results for public repositories to enable scorecard badges.
          # For more details: https://github.com/ossf/scorecard-action#publishing-results
          publish_results: true

      - name: "Upload artifact"
        uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4    # 5.0.0
        with:
          name: SARIF file
          path: results.sarif
          retention-days: 5

      - name: "Upload to code-scanning"
        uses: github/codeql-action/upload-sarif@fe4161a26a8629af62121b670040955b330f9af2 # v4.31.6
        with:
          sarif_file: results.sarif
