{"date":"2026-08-24","repo":{"name":"github.com/goharbor/harbor","commit":"ff61b6ea4533b40d8698da609ad5a71cc0c63ad4"},"scorecard":{"version":"v5.5.1-0.20260815060127-d1fab88f5463","commit":"d1fab88f54636ff366076edfc5c239f97b3c8e66"},"score":8.1,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/d1fab88f54636ff366076edfc5c239f97b3c8e66/docs/checks.md#code-review","short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged."}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/d1fab88f54636ff366076edfc5c239f97b3c8e66/docs/checks.md#maintained","short":"Determines if the project is \"actively maintained\"."}},{"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/d1fab88f54636ff366076edfc5c239f97b3c8e66/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/d1fab88f54636ff366076edfc5c239f97b3c8e66/docs/checks.md#dangerous-workflow","short":"Determines if the project's GitHub Action workflows avoid dangerous patterns."}},{"name":"Token-Permissions","score":7,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/build-package.yml:22","Info: jobLevel 'contents' permission set to 'read': .github/workflows/build-package.yml:67","Info: jobLevel 'contents' permission set to 'read': .github/workflows/build-package.yml:204","Info: jobLevel 'contents' permission set to 'read': .github/workflows/nightly-trivy-scan.yml:20","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/publish_release.yml:12","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/publish_release.yml:14","Info: topLevel 'contents' permission set to 'read': .github/workflows/CI.yml:3","Info: topLevel 'contents' permission set to 'read': .github/workflows/api-schema-check.yml:9","Info: topLevel 'contents' permission set to 'read': .github/workflows/auto_assign_prs.yml:13","Warn: no topLevel permission defined: .github/workflows/build-package.yml:1","Warn: topLevel 'security-events' permission set to 'write': .github/workflows/codeql-analysis.yml:10","Info: topLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:11","Info: topLevel 'contents' permission set to 'read': .github/workflows/conformance_test.yml:3","Info: topLevel 'pull-requests' permission set to 'read': .github/workflows/label_check.yaml:9","Warn: no topLevel permission defined: .github/workflows/nightly-trivy-scan.yml:1","Info: found token with 'none' permissions: .github/workflows/pass-CI.yml:1","Warn: no topLevel permission defined: .github/workflows/publish_release.yml:1"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/d1fab88f54636ff366076edfc5c239f97b3c8e66/docs/checks.md#token-permissions","short":"Determines if the project's workflows follow the principle of least privilege."}},{"name":"CII-Best-Practices","score":7,"reason":"badge detected: Silver","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/d1fab88f54636ff366076edfc5c239f97b3c8e66/docs/checks.md#cii-best-practices","short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge."}},{"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/d1fab88f54636ff366076edfc5c239f97b3c8e66/docs/checks.md#license","short":"Determines if the project has defined a license."}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/d1fab88f54636ff366076edfc5c239f97b3c8e66/docs/checks.md#binary-artifacts","short":"Determines if the project has generated executable (binary) artifacts in the source repository."}},{"name":"Signed-Releases","score":6,"reason":"4 out of the last 5 releases have a total of 4 signed artifacts.","details":["Info: signed release artifact: harbor-offline-installer-v2.15.2.tgz.sigstore.json: https://github.com/goharbor/harbor/releases/tag/v2.15.2","Info: signed release artifact: harbor-offline-installer-v2.15.2-rc3.tgz.sigstore.json: https://github.com/goharbor/harbor/releases/tag/v2.15.2-rc3","Info: signed release artifact: harbor-offline-installer-v2.15.2-rc2.tgz.sigstore.json: https://github.com/goharbor/harbor/releases/tag/v2.15.2-rc2","Info: signed release artifact: harbor-offline-installer-v2.15.2-rc1.tgz.sigstore.json: https://github.com/goharbor/harbor/releases/tag/v2.15.2-rc1","Warn: release artifact v2.14.4 not signed: https://api.github.com/repos/goharbor/harbor/releases/320253473","Warn: release artifact v2.15.2 does not have provenance: https://api.github.com/repos/goharbor/harbor/releases/347959887","Warn: release artifact v2.15.2-rc3 does not have provenance: https://api.github.com/repos/goharbor/harbor/releases/347813638","Warn: release artifact v2.15.2-rc2 does not have provenance: https://api.github.com/repos/goharbor/harbor/releases/345650279","Warn: release artifact v2.15.2-rc1 does not have provenance: https://api.github.com/repos/goharbor/harbor/releases/340587331","Warn: release artifact v2.14.4 does not have provenance: https://api.github.com/repos/goharbor/harbor/releases/320253473"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/d1fab88f54636ff366076edfc5c239f97b3c8e66/docs/checks.md#signed-releases","short":"Determines if the project cryptographically signs release artifacts."}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/d1fab88f54636ff366076edfc5c239f97b3c8e66/docs/checks.md#fuzzing","short":"Determines if the project uses fuzzing."}},{"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/d1fab88f54636ff366076edfc5c239f97b3c8e66/docs/checks.md#branch-protection","short":"Determines if the default and release branches are protected with GitHub's branch protection settings."}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/build-package.yml:19"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/d1fab88f54636ff366076edfc5c239f97b3c8e66/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":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (30) are checked with a SAST tool"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/d1fab88f54636ff366076edfc5c239f97b3c8e66/docs/checks.md#sast","short":"Determines if the project uses static code analysis."}},{"name":"Pinned-Dependencies","score":3,"reason":"dependency not pinned by hash detected -- score normalized to 3","details":["Info: Possibly incomplete results: error parsing shell code: a command can only contain words and redirects; encountered (: tools/notary-migration-fix.sh:51","Info: Possibly incomplete results: error parsing shell code: a command can only contain words and redirects; encountered (: tools/notary-migration-fix.sh:55","Warn: containerImage not pinned by hash: make/photon/common/Dockerfile:1: pin your Docker image by updating photon:5.0-20260214 to photon:5.0-20260214@sha256:1c4f1a00f97a3d5276c6a4f6e1fe1e4372e5b5c4107e813030f716666dd2fb5a","Warn: containerImage not pinned by hash: make/photon/core/Dockerfile:3","Warn: containerImage not pinned by hash: make/photon/core/Dockerfile.base:1: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/db/Dockerfile:3","Warn: containerImage not pinned by hash: make/photon/db/Dockerfile.base:5: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/db/Dockerfile.base:19: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/exporter/Dockerfile:7","Warn: containerImage not pinned by hash: make/photon/exporter/Dockerfile:21","Warn: containerImage not pinned by hash: make/photon/exporter/Dockerfile.base:1: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/jobservice/Dockerfile:3","Warn: containerImage not pinned by hash: make/photon/jobservice/Dockerfile.base:1: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/log/Dockerfile:3","Warn: containerImage not pinned by hash: make/photon/log/Dockerfile.base:1: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/nginx/Dockerfile:3","Warn: containerImage not pinned by hash: make/photon/nginx/Dockerfile.base:1: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/portal/Dockerfile:4","Warn: containerImage not pinned by hash: make/photon/portal/Dockerfile:29","Warn: containerImage not pinned by hash: make/photon/portal/Dockerfile.base:1: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/prepare/Dockerfile:3","Warn: containerImage not pinned by hash: make/photon/prepare/Dockerfile.base:1: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/registry/Dockerfile:3","Warn: containerImage not pinned by hash: make/photon/registry/Dockerfile.base:1: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/registry/Dockerfile.binary:2","Warn: containerImage not pinned by hash: make/photon/registryctl/Dockerfile:3","Warn: containerImage not pinned by hash: make/photon/registryctl/Dockerfile.base:1: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/standalone-db-migrator/Dockerfile:3","Warn: containerImage not pinned by hash: make/photon/trivy-adapter/Dockerfile:3","Warn: containerImage not pinned by hash: make/photon/trivy-adapter/Dockerfile.base:1: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/trivy-adapter/Dockerfile.binary:2","Warn: containerImage not pinned by hash: make/photon/valkey/Dockerfile:3","Warn: containerImage not pinned by hash: make/photon/valkey/Dockerfile.base:10: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/valkey/Dockerfile.base:17: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/valkey/Dockerfile.base:33: pin your Docker image by updating goharbor/photon:5.0 to goharbor/photon:5.0@sha256:c8a97c60489a990c0e6295ede363e90bb1cee73f5a1975ba193f87e0a2151d4c","Warn: containerImage not pinned by hash: make/photon/valkey/Dockerfile.base:47","Warn: containerImage not pinned by hash: src/portal/docker-build/Dockerfile:1: pin your Docker image by updating node:22.22.3 to node:22.22.3@sha256:2d178f2785b96dfbf62a416ca2e40f50e30150b4ff3320d706f0d96e90600eb3","Warn: containerImage not pinned by hash: src/portal/docker-build/Dockerfile:19: pin your Docker image by updating nginx:1.17 to nginx:1.17@sha256:6fff55753e3b34e36e24e37039ee9eae1fe38a6420d8ae16ef37c92d1eb26699","Warn: containerImage not pinned by hash: tests/robot-cases/Group2-Longevity/Dockerfile.longevity:1: pin your Docker image by updating busybox:1.26 to busybox:1.26@sha256:be3c11fdba7cfe299214e46edc642e09514dbb9bbefcd0d3836c05a1e0cd0642","Warn: containerImage not pinned by hash: tests/test-engine-image/Dockerfile.api_test:2: pin your Docker image by updating photon:4.0 to photon:4.0@sha256:b2425ecf9abbaa7d073b8650c80afa97f1d7952debd4f5a0560c38e41c933fe8","Warn: containerImage not pinned by hash: tests/test-engine-image/Dockerfile.common:1: pin your Docker image by updating ubuntu:20.04 to ubuntu:20.04@sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214","Warn: containerImage not pinned by hash: tests/test-engine-image/Dockerfile.ui_test:2: pin your Docker image by updating ubuntu:20.04 to ubuntu:20.04@sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214","Warn: containerImage not pinned by hash: tools/migrate_chart/Dockerfile:1: pin your Docker image by updating python:3.8.5-slim to python:3.8.5-slim@sha256:502cd057453744145010eceb5a4af1e4f04ebed54f6e1e8d23d29ebe2afdbe6d","Warn: containerImage not pinned by hash: tools/mockery/Dockerfile:2","Warn: containerImage not pinned by hash: tools/spectral/Dockerfile:2","Warn: containerImage not pinned by hash: tools/swagger/Dockerfile:2","Warn: pipCommand not pinned by hash: make/photon/prepare/Dockerfile.base:5","Warn: npmCommand not pinned by hash: src/portal/docker-build/Dockerfile:11","Warn: npmCommand not pinned by hash: src/portal/docker-build/Dockerfile:16","Warn: pipCommand not pinned by hash: tests/test-engine-image/Dockerfile.api_test:12-31","Warn: pipCommand not pinned by hash: tests/test-engine-image/Dockerfile.ui_test:35-37","Warn: pipCommand not pinned by hash: tests/test-engine-image/Dockerfile.ui_test:39-43","Warn: pipCommand not pinned by hash: tools/migrate_chart/Dockerfile:9-13","Warn: pipCommand not pinned by hash: tools/migrate_chart/Dockerfile:9-13","Warn: pipCommand not pinned by hash: tools/migrate_chart/Dockerfile:9-13","Warn: npmCommand not pinned by hash: tests/ci/ui_ut_run.sh:6","Warn: npmCommand not pinned by hash: tests/ci/ui_ut_run.sh:7","Warn: downloadThenRun not pinned by hash: tests/ci/ut_install.sh:24","Info:  33 out of  33 GitHub-owned GitHubAction dependencies pinned","Info:  18 out of  18 third-party GitHubAction dependencies pinned","Info:   0 out of  44 containerImage dependencies pinned","Info:   3 out of   7 npmCommand dependencies pinned","Info:   0 out of   7 pipCommand dependencies pinned","Info:   1 out of   1 goCommand dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/d1fab88f54636ff366076edfc5c239f97b3c8e66/docs/checks.md#pinned-dependencies","short":"Determines if the project has declared and pinned the dependencies of its build process."}}]}
