Skip to content

ci: add OpenSSF Scorecard, dependency review and a security policy - #520

Merged
hamzahamidi merged 5 commits into
mainfrom
ci/scorecard-and-security-policy
Sep 22, 2026
Merged

hamzahamidi merged 5 commits into
mainfrom
ci/scorecard-and-security-policy

Conversation

@hamzahamidi

Copy link
Copy Markdown
Owner

Summary

Adds a private route for reporting vulnerabilities, an OpenSSF Scorecard run on main and a dependency review check on pull requests.

Changes

SECURITY.md sends reports to GitHub private vulnerability reporting and says fixes ship in the next release from main, a candidate on next during an open candidate series. CONTRIBUTING.md points vulnerabilities there.

scorecard.yml follows the OpenSSF template. dependency-review.yml fails a check when a pull request adds a vulnerable dependency, and blocks merging only once it is a required status check. Actions are pinned by commit SHA.

The report link fails until the maintainer enables private vulnerability reporting under Settings, Advanced Security.

Release impact

None: CI and repository docs only.

Validation

npm run test:scripts on Node 24.21.0 passed 73 specs, including the workflow guards over both workflows. All 6 action pins matched their tags through gh api. The workflows have not run; actionlint was unavailable.

The repository had no private route for reporting a vulnerability, and
CONTRIBUTING.md sends every problem to public issues. GitHub shows SECURITY.md
on the Security tab, and Scorecard's Security-Policy check reads it.

The supported version rule follows from how releases work rather than from a
new promise: every release is cut from main, main tracks the newest Angular
major, and version:set ties the package major to it, so there is no branch an
older major could receive a fix on.

Reporting goes through GitHub private vulnerability reporting so that no
address has to be published and the follow-up lives in a draft advisory.
Scorecard measures the supply chain checks a consumer would otherwise have to
take on trust, such as pinned actions, token permissions and branch
protection, and reports them to code scanning.

The permission shape and the step list are dictated by the Scorecard API,
which rejects published results from a workflow with write permissions at the
top level, id-token outside the analysis job, or an action outside its
approved list. publish_results makes the result queryable at
api.scorecard.dev; no README badge is added for now.

Actions are pinned by commit SHA because Pinned-Dependencies scores a tag as
unpinned, and a tag can be moved after review.
Dependabot raises an alert only once a vulnerable version is already on main.
Dependency review fails a check on the pull request that would introduce it,
so the problem shows before the merge. The check blocks merging only once it
is a required status check in branch protection.

The token stays read-only, so the pull request comment mode, which needs
pull-requests: write, stays at its default of off and the result shows in the
job summary.
CONTRIBUTING.md told contributors to report every problem as a public issue,
which contradicts SECURITY.md. A contributor who reads only CONTRIBUTING.md
would disclose a vulnerability before a fix exists.
While a series is open, main carries the candidate and only the stable
release that closes the series moves latest. A fix made then can only ship as
the next candidate: version:set writes the Angular peer ranges from the major
it is given, so an 18.x cut from a workspace on Angular 19 would declare
Angular 18 peers for code built against 19. The 19.0.0 series ran from 17 to
26 August, rc.0 to rc.4 and then the stable release, with latest on 18.3.0
and no 18.x release in between.

A replaced candidate is not patched, which docs/execution-plan.md records for
the 19.0.0 series, so only those stay in the not backported list.
@hamzahamidi hamzahamidi reopened this Sep 22, 2026
@netlify

netlify Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

βœ… Deploy Preview for ajsf ready!

Name Link
πŸ”¨ Latest commit 1892cd6
πŸ” Latest deploy log https://app.netlify.com/projects/ajsf/deploys/6ab30a848057d30008bb1f9c
😎 Deploy Preview https://deploy-preview-520--ajsf.netlify.app
πŸ“± Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@hamzahamidi
hamzahamidi marked this pull request as ready for review September 22, 2026 23:29
@hamzahamidi
hamzahamidi merged commit ae5a4b2 into main Sep 22, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant