The OpenSSF Scorecard project gives us an automated way to assess the security posture of a repository, but a one-off score isn’t very useful on its own. What you actually want is continuous monitoring across many repos, with visibility into what’s changing and what’s missing.

Here’s the tooling I’ve been playing with for an open source project.

Scorecard Monitor

Scorecard Monitor (demo video) is the core of the setup. You define the repos you care about in a scope.json, and the monitor stores each score and surfaces the score delta — the difference from the previous run — so you can see whether your posture is improving or regressing over time.

It also has a discovery mode that includes remediation links pointing to StepSecurity, which makes it easier to act on findings rather than just read them.

Scorecard Visualizer

For inspecting results, the Scorecard Visualizer renders scores as a webpage and supports data comparison between two commits. For example, you can compare two states of a repo directly: See an example comparison for the Node.js repo

This gives you a readable, web-based view of the differences instead of raw JSON.

Allstar

Allstar is highly configurable, with three main levels of control at the org level. Organization administrators can enable Allstar on:

  • all repositories in the org;
  • most repositories, except some that are opted out;
  • just a few repositories that are opted in.

Useful references: an example scorecard.yaml and the Allstar issues tracker.

Running Across Multiple Repos

For a multi-repo run, multi-scorecard (Go) lets you batch the work. The key insight is that the monitor can tell you what’s missing, not just what the current score is — and because it runs on a cron schedule, you get this on a recurring basis automatically.

The practical pattern: put the workflow YAML in a central repo so all your scoring is managed in one place.

I chose Scorecard Monitor because it has the discovery mode and issue generation features I wanted.

To implement it, I created a GitHub Actions workflow that runs weekly and generates issues for any failing checks. Here’s the workflow YAML:

name: "OpenSSF Scoring"
on:
  schedule:
    - cron: "0 0 * * 0"   # every Sunday at midnight
  workflow_dispatch:        # allow manual runs

permissions:
  contents: write
  issues: write
  pull-requests: none
  packages: none

jobs:
  security-scoring:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: OpenSSF Scorecard Monitor
        uses: ossf/scorecard-monitor@v2.0.0-beta8
        with:
          scope: reporting/scope.json
          database: reporting/database.json
          report: reporting/report.md
          auto-commit: true
          auto-push: true
          generate-issue: true
          github-token: ${{ secrets.GITHUB_TOKEN }}
          discovery-enabled: true
          discovery-orgs: '# Your organization name here'

Seeing Your Own Results

Once this is wired up, your repos show up in the public Scorecard viewer. For example, open source project scorecard can be seen here: wallet-provider repo is tracked here.

StepSecurity is handy for quickly checking which Scorecard checks pass or fail, though I’ve found its customization options somewhat lacking when you need more tailored remediation.

You can also add a score badge to the repo’s README:

OpenSSF Scorecard

The monitor also generates an org-level report. Here’s an example report from the setup I ran. OpenSSF Scorecard org-level report showing score deltas per repo

Overall, this stack gives you a low-maintenance way to keep an eye on security posture across an org — the cron job does the heavy lifting, and the issue generation means nothing gets lost in a JSON file nobody reads.