{"date":"2026-08-31T23:41:52Z","repo":{"name":"github.com/project-zot/zot","commit":"8da36778de3316dccfdb2f5fbbd04bac9b06abd5"},"scorecard":{"version":"v5.5.0","commit":"c395761df6afe1a69e476bc60a013a94bcbc153f"},"score":8.3,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained","short":"Determines if the project is \"actively maintained\"."}},{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: Dependabot: .github/dependabot.yml:1"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool","short":"Determines if the project uses a dependency update tool."}},{"name":"Code-Review","score":7,"reason":"Found 19/25 approved changesets -- score normalized to 7","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review","short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged."}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy","short":"Determines if the project has published a security policy."}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow","short":"Determines if the project's GitHub Action workflows avoid dangerous patterns."}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts","short":"Determines if the project has generated executable (binary) artifacts in the source repository."}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/build.yaml:19","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/build.yaml:20","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/build.yaml:116","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/build.yaml:117","Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:30","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:31","Info: jobLevel 'packages' permission set to 'read': .github/workflows/publish.yaml:144","Info: jobLevel 'packages' permission set to 'read': .github/workflows/publish.yaml:247","Info: jobLevel 'packages' permission set to 'read': .github/workflows/publish.yaml:288","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/publish.yaml:325","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/publish.yaml:324","Info: jobLevel 'contents' permission set to 'read': .github/workflows/publish.yaml:14","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/publish.yaml:15","Info: jobLevel 'contents' permission set to 'read': .github/workflows/publish.yaml:110","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/publish.yaml:111","Info: jobLevel 'contents' permission set to 'read': .github/workflows/scorecards.yaml:23","Info: jobLevel 'actions' permission set to 'read': .github/workflows/scorecards.yaml:24","Info: jobLevel 'contents' permission set to 'read': .github/workflows/sync-3rdparty-images.yaml:16","Info: jobLevel 'contents' permission set to 'read': .github/workflows/sync-3rdparty-images.yaml:39","Info: jobLevel 'contents' permission set to 'read': .github/workflows/sync-3rdparty-images.yaml:64","Info: jobLevel 'contents' permission set to 'read': .github/workflows/sync-3rdparty-images.yaml:86","Info: topLevel permissions set to 'read-all': .github/workflows/benchmark.yaml:10","Info: topLevel permissions set to 'read-all': .github/workflows/branch-cov.yaml:10","Info: topLevel permissions set to 'read-all': .github/workflows/build.yaml:13","Info: topLevel permissions set to 'read-all': .github/workflows/cloc.yaml:13","Info: topLevel permissions set to 'read-all': .github/workflows/cluster.yaml:12","Info: topLevel permissions set to 'read-all': .github/workflows/codeql-analysis.yml:23","Info: topLevel permissions set to 'read-all': .github/workflows/commit-msg.yaml:13","Info: topLevel permissions set to 'read-all': .github/workflows/compare-binary-size.yaml:6","Info: topLevel permissions set to 'read-all': .github/workflows/dco.yaml:7","Info: topLevel permissions set to 'read-all': .github/workflows/ecosystem-tools-with-floci.yaml:12","Info: topLevel permissions set to 'read-all': .github/workflows/ecosystem-tools.yaml:12","Info: topLevel permissions set to 'read-all': .github/workflows/gc-stress-test-with-floci.yaml:12","Info: topLevel permissions set to 'read-all': .github/workflows/gc-stress-test.yaml:12","Info: topLevel 'contents' permission set to 'read': .github/workflows/golangci-lint.yaml:10","Info: topLevel permissions set to 'read-all': .github/workflows/gqlgen.yaml:17","Info: topLevel permissions set to 'read-all': .github/workflows/license.yaml:14","Info: topLevel permissions set to 'read-all': .github/workflows/nightly-with-floci.yaml:9","Info: topLevel permissions set to 'read-all': .github/workflows/nightly.yaml:7","Info: topLevel permissions set to 'read-all': .github/workflows/oci-conformance-action.yaml:15","Info: topLevel permissions set to 'read-all': .github/workflows/publish.yaml:7","Info: topLevel permissions set to 'read-all': .github/workflows/scorecards.yaml:11","Info: topLevel 'contents' permission set to 'read': .github/workflows/stale.yaml:7","Info: topLevel permissions set to 'read-all': .github/workflows/sync-3rdparty-images.yaml:10","Info: topLevel permissions set to 'read-all': .github/workflows/test-with-floci.yaml:12","Info: topLevel permissions set to 'read-all': .github/workflows/test.yaml:12","Info: topLevel permissions set to 'read-all': .github/workflows/tls.yaml:10","Info: topLevel permissions set to 'read-all': .github/workflows/verify-config.yaml:15","Info: topLevel 'contents' permission set to 'read': .github/workflows/web-scan.yaml:14"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions","short":"Determines if the project's workflows follow the principle of least privilege."}},{"name":"CII-Best-Practices","score":5,"reason":"badge detected: Passing","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices","short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge."}},{"name":"Pinned-Dependencies","score":7,"reason":"dependency not pinned by hash detected -- score normalized to 7","details":["Warn: containerImage not pinned by hash: build/Dockerfile:14: pin your Docker image by updating ghcr.io/project-zot/golang:1.26 to ghcr.io/project-zot/golang:1.26@sha256:06e4fb204f46f9a497a0a7f6fe710a635d21bc2af467bd24bc162f38e23d76f8","Warn: containerImage not pinned by hash: build/Dockerfile:41","Warn: containerImage not pinned by hash: build/Dockerfile-conformance:14: pin your Docker image by updating ghcr.io/project-zot/golang:1.26 to ghcr.io/project-zot/golang:1.26@sha256:06e4fb204f46f9a497a0a7f6fe710a635d21bc2af467bd24bc162f38e23d76f8","Warn: containerImage not pinned by hash: build/Dockerfile-conformance:37","Warn: containerImage not pinned by hash: build/Dockerfile-minimal:14: pin your Docker image by updating ghcr.io/project-zot/golang:1.26 to ghcr.io/project-zot/golang:1.26@sha256:06e4fb204f46f9a497a0a7f6fe710a635d21bc2af467bd24bc162f38e23d76f8","Warn: containerImage not pinned by hash: build/Dockerfile-minimal:40","Warn: containerImage not pinned by hash: build/Dockerfile-zb:14: pin your Docker image by updating ghcr.io/project-zot/golang:1.26 to ghcr.io/project-zot/golang:1.26@sha256:06e4fb204f46f9a497a0a7f6fe710a635d21bc2af467bd24bc162f38e23d76f8","Warn: containerImage not pinned by hash: build/Dockerfile-zb:28","Warn: containerImage not pinned by hash: build/Dockerfile-zxp:14: pin your Docker image by updating ghcr.io/project-zot/golang:1.26 to ghcr.io/project-zot/golang:1.26@sha256:06e4fb204f46f9a497a0a7f6fe710a635d21bc2af467bd24bc162f38e23d76f8","Warn: containerImage not pinned by hash: build/Dockerfile-zxp:41","Warn: goCommand not pinned by hash: .github/workflows/branch-cov.yaml:33","Warn: goCommand not pinned by hash: .github/workflows/cloc.yaml:33","Warn: pipCommand not pinned by hash: .github/workflows/cluster.yaml:58","Warn: pipCommand not pinned by hash: .github/workflows/cluster.yaml:316","Warn: pipCommand not pinned by hash: .github/workflows/dco.yaml:25","Warn: npmCommand not pinned by hash: .github/workflows/ecosystem-tools-with-floci.yaml:64","Warn: npmCommand not pinned by hash: .github/workflows/ecosystem-tools.yaml:64","Warn: pipCommand not pinned by hash: .github/workflows/gc-stress-test-with-floci.yaml:39","Warn: pipCommand not pinned by hash: .github/workflows/gc-stress-test-with-floci.yaml:127","Warn: pipCommand not pinned by hash: .github/workflows/gc-stress-test.yaml:123","Warn: pipCommand not pinned by hash: .github/workflows/gc-stress-test.yaml:211","Warn: npmCommand not pinned by hash: .github/workflows/gqlgen.yaml:52","Warn: goCommand not pinned by hash: .github/workflows/license.yaml:31","Warn: goCommand not pinned by hash: .github/workflows/nightly-with-floci.yaml:187","Warn: goCommand not pinned by hash: .github/workflows/nightly.yaml:286","Warn: pipCommand not pinned by hash: .github/workflows/publish.yaml:369","Info: 160 out of 160 GitHub-owned GitHubAction dependencies pinned","Info:  38 out of  38 third-party GitHubAction dependencies pinned","Info:   0 out of   8 pipCommand dependencies pinned","Info:   0 out of   3 npmCommand dependencies pinned","Info:   0 out of  10 containerImage dependencies pinned","Info:  13 out of  18 goCommand dependencies pinned"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies","short":"Determines if the project has declared and pinned the dependencies of its build process."}},{"name":"Vulnerabilities","score":5,"reason":"5 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: https://osv.dev/GO-2026-4919","Warn: Project is vulnerable to: https://osv.dev/GO-2022-0635","Warn: Project is vulnerable to: https://osv.dev/GO-2022-0646","Warn: Project is vulnerable to: https://osv.dev/GO-2026-6225","Warn: Project is vulnerable to: https://osv.dev/GO-2026-5932"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities","short":"Determines if the project has open, known unfixed vulnerabilities."}},{"name":"SAST","score":9,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 29 commits out of 30 are checked with a SAST tool"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast","short":"Determines if the project uses static code analysis."}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:218","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:245","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:282","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:317","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:342","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:399","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:461","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:492","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:498","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:524","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:559","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:585","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:604","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:631","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:660","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:710","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:784","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:824","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:856","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:877","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:996","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:1037","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:1074","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:1111","Info: GoBuiltInFuzzer integration found: pkg/storage/local/local_test.go:1148"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing","short":"Determines if the project uses fuzzing."}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license","short":"Determines if the project has defined a license."}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/sync-3rdparty-images.yaml:61"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging","short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall."}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.1.20 not signed: https://api.github.com/repos/project-zot/zot/releases/365053470","Warn: release artifact v2.1.18 not signed: https://api.github.com/repos/project-zot/zot/releases/344203719","Warn: release artifact v2.1.17 not signed: https://api.github.com/repos/project-zot/zot/releases/324058681","Warn: release artifact v2.1.16 not signed: https://api.github.com/repos/project-zot/zot/releases/310820541","Warn: release artifact v2.1.20 does not have provenance: https://api.github.com/repos/project-zot/zot/releases/365053470","Warn: release artifact v2.1.18 does not have provenance: https://api.github.com/repos/project-zot/zot/releases/344203719","Warn: release artifact v2.1.17 does not have provenance: https://api.github.com/repos/project-zot/zot/releases/324058681","Warn: release artifact v2.1.16 does not have provenance: https://api.github.com/repos/project-zot/zot/releases/310820541"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases","short":"Determines if the project cryptographically signs release artifacts."}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection","short":"Determines if the default and release branches are protected with GitHub's branch protection settings."}},{"name":"CI-Tests","score":9,"reason":"29 out of 30 merged PRs checked by a CI test -- score normalized to 9","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests","short":"Determines if the project runs tests before pull requests are merged."}},{"name":"Contributors","score":10,"reason":"project has 23 contributing companies or organizations","details":["Info: found contributions from: Gear2D, chainguard-images, cisco, cisco systems, cisco-open, controlplaneio, controlplaneio-fluxcd, fluxcd, fluxcd @controlplaneio-fluxcd, germanbrew, grafana-community, luxoft, lxc, opencontainers, projectsveltos, prometheus, prometheus-community, qtile, shadow-maint, sophotech, subleleks, sumo-mcp, wolfi-dev"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors","short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies)."}}]}
