Skip to content

Releases: ossf/scorecard

v5.1.1

17 Feb 17:29
v5.1.1
cd152cb
Compare
Choose a tag to compare

What's Changed

Full Changelog: v5.1.0...v5.1.1

v5.1.0

12 Feb 22:20
v5.1.0
b0143fc
Compare
Choose a tag to compare

What's Changed

  • There is a new --file-mode flag to control how repository files are fetched. (#4474, @spencerschrock)
    • The default method if unspecified is --file-mode archive which is what older versions of Scorecard always used.
    • --file-mode git produces the most accurate results for repositories with .gitattributes files at the cost of analysis speed. This currently only supports GitHub but can be expanded to other forges in the future.
  • The Scorecard binary name in releases is now consistent across all platforms (#4520, @timothysparg)
  • Scorecard now prints a warning if multiple GitHub PAT environment variables are set with different values. (#4483, @aunovis-heidrich)

Azure DevOps Support (Experimental)

There is now experimental support for Azure DevOps repositories (thanks @JamieMagee). Most checks should work, but the following checks do not: Branch-Protection, SBOM, and Signed-Releases.

To analyze a repository:

  1. Set the SCORECARD_EXPERIMENTAL environment variable to any value.
  2. Put your access token in the AZURE_DEVOPS_AUTH_TOKEN environment variable.

Checks

  • Enabled Fuzzing, License, Packaging, SAST, and Security-Policy checks when using --local option (#4423, @lharrison13)

CI-Tests

  • ✨ Add woodpecker as known CI by @6543 in #4336

Contributors

Dangerous-Workflow

  • When detecting a potential script injection in a GitHub workflow, Scorecard now adds a machine-readable patch to fix the vulnerability. This patch can be applied to your project using git apply or patch -p1 from the repository's root. The patch is currently only visible when running the hasDangerousWorkflowScriptInjection probe directly. (#4218, @pnacht)

Fuzzing

  • Support detection of fuzzing in Elixir and Gleam through the import of property-based testing modules (#4408, @kikofernandez)
  • Support detection of fuzzing in Erlang through the import of property-based testing modules (#4406, @kikofernandez)

License

  • Updates list of supported SDPX licenses to include latest data. (#4323, @lelia)

Pinned-Dependencies

Security-Policy

  • Fixed an issue where an org's .github repository was checked for a security policy without the proper authenticated transport by @jeffmendoza in #4259

Signed-Releases

  • Included links now link to the artifacts instead of the API details about the artifacts by @klbynum in #4290

Docs

New Contributors

Full Changelog: v5.0.0...v5.1.0

v5.0.0

19 Jul 20:25
v5.0.0
ea7e27e
Compare
Choose a tag to compare

What's Changed

We’ll highlight the major changes between v4.13.1 and v5.0.0 below, as well as some of the changes between v5.0.0-rc2 and v5.0.0. For a more complete picture, see the v5.0.0-rc1 and v5.0.0-rc2 changelogs as well.

Structured Results

Structured Results is the main feature from this release. At a high level, structured results involve breaking the existing 19 Scorecard Checks into individual heuristics so users can pick and choose which ones they care about. You can see a list of all supported probes by checking out our documentation (paying attention to lifecycle / stability guarantees). To run individual probes, use the --probes CLI flag with a comma separated list of names. You must also specify the --format probe option to see the results. Please run scorecard --help if you need more details.
Example:

scorecard --repo github.com/ossf/scorecard --probes archived,fuzzed,hasLicenseFile --format probe

For more details on the feature, please check out our blog post or the talk given at Open Source Summit NA 2024: Structured Scorecard Results: Tailor Your Own Supply-Chain Security Policies.

Maintainer Annotations

Maintainer Annotations let maintainers add context to display alongside Scorecard check results. Annotations can provide users additional information when Scorecard has an incomplete assessment of a project's security practices. To see the maintainers annotations for each check, if present, use the --show-annotations option. For example, the not-detected annotation can annotate when a maintainer fulfills a check or probe in a way that is supported by Scorecard but not identified.

For more details, check out our documentation for the feature.

Breaking Changes

API changes

The biggest change is that everything in github.com/ossf/scorecard/v4/pkg now lives in github.com/ossf/scorecard/v5/pkg/scorecard. This allows renaming of some function names and types to be less repetitive.

  • RunScorecard is now Run
  • ScorecardResult is now Result

Expected changes:

pkg.ScorecardRun() -> scorecard.Run()
pkg.ScorecardResult -> scorecard.Result

The signature of RunScorecard (now called Run) has changed to allow for fewer breaking changes in the future. For full motivation, see the associated issue. There should be fewer setup code needed than before. Callers no longer need to pass in all clients and arguments and can rely on sensible default behavior. Callers that want to customize the analysis can influence the results with our Option types.

A similar change was done with formatting the results, which now accept an option struct pointer. Using a nil pointer will use default values.

Unlikely to cause issues

These changes are technically breaking in a semver sense, but we don’t expect most users to depend on them or require changes.

  • Dependency diff functionality has been removed in #4146.
  • clients.Repo must now implement Path in #4104
  • clients.RepoClient now returns a read closer in #3912
  • Some branch protection types were renamed in #3879
  • Some sentinel errors were renamed in #4040

Checks

Binary-Artifacts

  • Binary-Artifacts check now supports the new gradle wrapper validation action, and can be pinned to a hash. (#4097, @spencerschrock)

Dependency-Update-Tool

  • ✨ Recognize scala-steward as dependency update tool by @raboof in #4130

Fuzzing

  • ⚠️ OneFuzz detection removed due to deprecation #3666

License

Packaging

  • ✨ detect sbt ci-release packaging workflows by @raboof in #4135

Pinned-Dependencies

SBOM

Vulnerabilities

  • 🌱 add stack info to osv-scanner error by @Zxilly in #4172

Probes

Other

New Contributors

Full Changelog: v4.13.1...v5.0.0

v5.0.0-rc2

07 May 21:11
v5.0.0-rc2
6b5cb27
Compare
Choose a tag to compare
v5.0.0-rc2 Pre-release
Pre-release

Important

This is a v5 prerelease candidate. There may be more breaking changes before the official v5.0.0 release.

What's Changed

Structured Results

Check Enhancements and Bug Fixes

  • Signed-Releases
    • 🐛 Fixed a Signed-Releases bug where more releases were being analyzed than intended. (#4060, @spencerschrock)
  • Code-Review
    • 🐛 Fixed an issue where Phabricator reviews weren't being parsed properly. (#4086, @spencerschrock)

Breaking Changes

  • ⚠️ errors in ErrXXX format by @cmwylie19 in #4040
  • ⚠️ Enables maintainers to write annotations for Scorecard checks and consumers to view these annotations in Scorecard UI. (experimental #3905, @gabibguti)

Docs

Other

New Contributors

Full Changelog: v5.0.0-rc1...v5.0.0-rc2

v5.0.0-rc1

12 Apr 22:10
v5.0.0-rc1
0b9dfb6
Compare
Choose a tag to compare
v5.0.0-rc1 Pre-release
Pre-release

Important

This is a v5 prerelease candidate. There may be more breaking changes before the official v5.0.0 release.

What's Changed

Structured Results

We invite users to try out a preview of Structured Results, the main feature from this release candidate. For more details on the feature, please check out the first paragraph of our probes README as well as our blog post.

At a high level, structured results involves breaking the existing 19 Scorecard Checks into individual heuristics so users can pick and choose which ones they care about. You can see a list of all supported probes by checking out the probes/ directory. To run individual probes, use the --probes CLI flag with a comma separated list of names. You must also specify the --format probe option to see the results. Please run scorecard --help if you need more details.

Example:

scorecard --repo github.com/ossf/scorecard --probes archived,fuzzed,hasLicenseFile --format probe

Check Enhancements and Bug Fixes

  • Branch-Protection
    • ✨ Branch Protection check now also evaluates if the project requires PRs prior to make changes to the branch. This won't change anything for the users that already require reviews, but will enable score enhancement for those who can't require reviewers. (#3499, @diogoteles08)
  • Dependency-Update-Tool
    • ✨ Dependency-Update-Tool now detects Renovate config files in a .gitlab folder. (#3823, @spencerschrock)
    • 🐛 Sonatype Lift is no longer recognized as a Dependency-Update-Tool because it is retired. (#3605, @spencerschrock)
    • 🐛 Dependency-Update-Tool: ignore search commit data for repo clients which dont support it by @spencerschrock in #3756
  • Fuzzing
  • Pinned-Dependencies
    • 🐛 Pinned-Dependencies now continues after encountering runtime errors (#3515, @pnacht)
    • 🐛 Scorecard no longer considers unpinned Dockerfiles in vendor and third_party directories. (#3675, @AdamKorcz)
    • 🐛 Files downloaded by Git SHA from GitHub and executed are no longer considered as not pinned by hash. (#3694, @martincostello)
    • 🐛 Shell commands in Dockerfile here-documents are now parsed correctly by the Pinned-Dependencies check (#3774, @jkreileder)
  • Signed-Releases
    • 🐛 Fixed a bug which allowed some repos to score higher than 10 in the Signed-Releases check. (#3768, @spencerschrock)
    • ✨ Support .sigstore bundles to check for signed releases (#3772, @edgarrmondragon)
  • Vulnerabilities
    • 🐛 Projects without dependencies or packages no longer throw an error for the Vulnerabilities check. (#3803, @spencerschrock)
    • 🐛 Go stdlib vulns are removed Vulnerabilities check output (#3925, @spencerschrock)

RepoClient Improvements

  • GitHub

    • 🐛 Scorecard processes commit activity from large GitHub repos in chunks to avoid timeout issues (#3680, @spencerschrock)
  • GitLab

    • 🐛 Fix scanning for GitLab private repositories. (#3596, @gabibguti)
    • ✨ Added --commit-depth support for GitLab repos (#3672, @ashearin)
    • 🐛 Parse Gitlab Status fields to align w/Github Status and Conclusion by @ashearin in #3706
    • 🐛 Fix signed release error for empty gitlab repo by @naveensrinivasan in #3753
    • 🐛 Scorecard no longer crashes on GitLab repos with no commits (#3731, @ashearin)
    • 🐛 Fixed a bug which prevented Scorecard from analyzing some self-hosted GitLab repos. (#3819, @spencerschrock)
  • Local Directory

Other

Breaking Changes

  • File access through RepoClient now returns an io.ReadCloser, instead of the full file contents. (#3912, @spencerschrock). This enabled fixing two bugs which affect very large repos.
  • ⚠️ refactor: rename fields on Branch Protection Pull Request rules by @diogoteles08 in #3879
  • ⚠️ removerule.Remediation and switch users to probe.Remediation by @spencerschrock in #3978

Docs

New Contributors

Full Changelog: v4.13.1...v5.0.0-rc1

v4.13.1

20 Oct 21:36
v4.13.1
49c0eed
Compare
Choose a tag to compare

What's Changed

New

  • Fuzzing

  • Weekly Public Data Cron

    • 🌱 Adding all Intel public GitHub repos by @ware in #3556

Bug Fixes

Docs

New Contributors

Full Changelog: v4.13.0...v4.13.1

v4.13.0

06 Oct 17:32
v4.13.0
e1d3abc
Compare
Choose a tag to compare

What's Changed

New

Bug Fixes

Docs

New Contributors

Full Changelog: v4.12.0...v4.13.0

v4.12.0

07 Aug 21:15
7ed886f
Compare
Choose a tag to compare

This version of Scorecard supports GitLab repos by default.

This release also adds preliminary support for the scdiff command which can be used to compare changes in Scorecard scores for a repository between versions of Scorecard, as well as probe support for the Security-Policy check.

Finally, this release fixes scoring issues in the Branch-Protection and Pinned-Dependencies checks.

What's Changed

WIP

Bug Fixes

Docs

New Contributors

Full Changelog: v4.11.0...v4.12.0

v4.11.0

22 Jun 20:00
4edb078
Compare
Choose a tag to compare

What's Changed

New

  • ✨ Consider haskell-actions/hlint-scan a code scanning action by @chungyc in #2846
  • ✨ Detect fuzzing in Haskell by the presence of property tests. by @chungyc in #2843
  • ✨ The SAST check will look for workflows with the "github/codeql-action/analyze" action locally instead of the GitHub Search API endpoint by @spencerschrock in #2839
  • ✨ Scorecard checks for unpinned dependencies that are retrieved ad-hoc using nuget and dotnet CLIs ("nuget install" and "dotnet add") by @balteravishay in #2779
  • ✨ show non-compliant code changes for CI-Tests, Code-Review and SAST checks in --show-details mode by @ashishkurmi in #2835
  • ✨ Detect semantic-release as a packaging workflow by @travi in #2964
  • ✨ Detect semantic-release as a releasing workflow by @travi in #2989
  • ✨ Add support for github GHES by @patelniketm in #2999 and @rajbos in #2788
  • ✨ Detect fast-check PBT library for JavaScript Fuzzing by @dubzzz in #3073
  • ✨ Run Scorecard on packages hosted at Nuget.org using --nuget=<package>by @balteravishay in #3020

Bug Fixes

  • SAST
  • Vulnerabilities
    • 🐛 Give inconclusive Vulnerabilities score when osv-scanner panics by @spencerschrock in #2896
    • 🐛 Update osv-scanner dependency to include Vulnerabilities check fixes by @laurentS in #2981
  • Pinned-Dependencies
    • 🐛 Pip installs count for Pinned-Dependencies score by @gabibguti in #2922
  • Code-Review

Deprecations

GitLab support (WIP)

Docs

New Contributors

Full Changelog: v4.10.5...v4.11.0

v4.10.5

24 Mar 17:46
v4.10.5
27cfe92
Compare
Choose a tag to compare

Changelog

Bug fixes

  • Fixed a bug which resulted in increased API usage when running the SAST check with a Personal Access Token

GitLab support (WIP)

Full Changelog: v4.10.4...v4.10.5

Thanks for all contributors!