Skip to content

Filter out a couple of scorecard items #70

Filter out a couple of scorecard items

Filter out a couple of scorecard items #70

name: OSSF Scorecard
on:
push:
branches:
- main
schedule:
- cron: "43 6 * * 5" # weekly at 06:43 (UTC) on Friday
workflow_dispatch:
permissions: read-all
jobs:
analysis:
runs-on: ubuntu-latest
permissions:
# Needed for Code scanning upload
security-events: write
# Needed for GitHub OIDC token if publish_results is true
id-token: write
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
with:
results_file: results.sarif
results_format: sarif
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.
# https://docs.github.com/en/actions/advanced-guides/storing-workflow-data-as-artifacts
- name: "Upload artifact"
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: SARIF file
path: results.sarif
retention-days: 5
- name: "Filter SARIF results"
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
env:
FILTER_RULES: BranchProtectionID, FuzzingID
with:
script: |
const fs = require('fs');
const rulesToFilter = process.env.FILTER_RULES.split(',').map(r => r.trim());
const sarif = JSON.parse(fs.readFileSync('results.sarif', 'utf8'));
sarif.runs.forEach(run => {
run.tool.driver.rules = run.tool.driver.rules.filter(rule =>
!rulesToFilter.includes(rule.id)
);
run.results = run.results.filter(result =>
!rulesToFilter.includes(result.ruleId)
);
});
fs.writeFileSync('filtered-results.sarif', JSON.stringify(sarif, null, 2));
- name: "Upload artifact"
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: Filtered SARIF file
path: filtered-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@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
with:
sarif_file: filtered-results.sarif