{"date":"2026-10-30T09:07:02Z","repo":{"name":"github.com/docker/compose","commit":"57751f39966a3aa15722ee1bb9794c6858cc1ec3"},"scorecard":{"version":"v5.6.0","commit":"61e84743356275f6ffca23b1b2f2cb945e19eb96"},"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/61e84743356275f6ffca23b1b2f2cb945e19eb96/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/61e84743356275f6ffca23b1b2f2cb945e19eb96/docs/checks.md#dependency-update-tool","short":"Determines if the project uses a dependency update tool."}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: .github/SECURITY.md:1","Info: Found linked content: .github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: .github/SECURITY.md:1","Info: Found text in security policy: .github/SECURITY.md:1"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/docs/checks.md#security-policy","short":"Determines if the project has published a security policy."}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/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":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/docs/checks.md#code-review","short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged."}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/docs/checks.md#dangerous-workflow","short":"Determines if the project's GitHub Action workflows avoid dangerous patterns."}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: found token with 'none' permissions: .github/workflows/ci.yml:1","Info: jobLevel 'contents' permission set to 'read': .github/workflows/ci.yml:53","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/ci.yml:393","Info: jobLevel 'contents' permission set to 'read': .github/workflows/merge.yml:34","Info: jobLevel 'contents' permission set to 'read': .github/workflows/merge.yml:59","Info: jobLevel 'contents' permission set to 'read': .github/workflows/merge.yml:87","Info: jobLevel 'contents' permission set to 'read': .github/workflows/pr-review.yml:24","Warn: jobLevel 'checks' permission set to 'write': .github/workflows/pr-review.yml:27","Warn: jobLevel 'actions' permission set to 'write': .github/workflows/pr-review.yml:29","Info: jobLevel 'issues' permission set to 'read': .github/workflows/scorecards.yml:28","Info: jobLevel 'packages' permission set to 'read': .github/workflows/scorecards.yml:30","Info: jobLevel 'pull-requests' permission set to 'read': .github/workflows/scorecards.yml:32","Info: jobLevel 'actions' permission set to 'read': .github/workflows/scorecards.yml:23","Info: jobLevel 'checks' permission set to 'read': .github/workflows/scorecards.yml:25","Info: jobLevel 'deployments' permission set to 'read': .github/workflows/scorecards.yml:27","Info: jobLevel 'attestations' permission set to 'read': .github/workflows/scorecards.yml:24","Info: jobLevel 'discussions' permission set to 'read': .github/workflows/scorecards.yml:29","Info: jobLevel 'statuses' permission set to 'read': .github/workflows/scorecards.yml:33","Info: jobLevel 'contents' permission set to 'read': .github/workflows/scorecards.yml:26","Info: jobLevel 'pages' permission set to 'read': .github/workflows/scorecards.yml:31","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/sync-ai-policy.yml:16","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/zizmor.yml:24","Info: jobLevel 'contents' permission set to 'read': .github/workflows/zizmor.yml:23","Info: topLevel 'contents' permission set to 'read': .github/workflows/ai-disclosure-gate.yml:4","Info: topLevel 'pull-requests' permission set to 'read': .github/workflows/ai-disclosure-gate.yml:5","Info: topLevel 'contents' permission set to 'read': .github/workflows/ci.yml:4","Info: topLevel 'contents' permission set to 'read': .github/workflows/docs-upstream.yml:6","Info: topLevel 'contents' permission set to 'read': .github/workflows/merge.yml:4","Info: found token with 'none' permissions: .github/workflows/pr-review-trigger.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/pr-review.yml:4","Info: found token with 'none' permissions: .github/workflows/scorecards.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/stale.yml:4","Info: topLevel 'contents' permission set to 'read': .github/workflows/sync-ai-policy.yml:9","Info: topLevel 'contents' permission set to 'read': .github/workflows/zizmor.yml:4"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/docs/checks.md#token-permissions","short":"Determines if the project's workflows follow the principle of least privilege."}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/docs/checks.md#binary-artifacts","short":"Determines if the project has generated executable (binary) artifacts in the source repository."}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/docs/checks.md#cii-best-practices","short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge."}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/docs/checks.md#branch-protection","short":"Determines if the default and release branches are protected with GitHub's branch protection settings."}},{"name":"Vulnerabilities","score":6,"reason":"4 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: https://osv.dev/GHSA-685w-q87j-wqw3","Warn: Project is vulnerable to: https://osv.dev/GO-2026-5932","Warn: Project is vulnerable to: https://osv.dev/GO-2026-6860","Warn: Project is vulnerable to: https://osv.dev/GO-2026-6866"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/docs/checks.md#vulnerabilities","short":"Determines if the project has open, known unfixed vulnerabilities."}},{"name":"Signed-Releases","score":8,"reason":"5 out of the last 5 releases have a total of 5 signed artifacts.","details":["Info: signed release artifact: docker-compose-darwin-aarch64.sigstore.json: https://github.com/docker/compose/releases/tag/v5.6.1","Info: signed release artifact: docker-compose-darwin-aarch64.sigstore.json: https://github.com/docker/compose/releases/tag/v5.6.0","Info: signed release artifact: docker-compose-darwin-aarch64.sigstore.json: https://github.com/docker/compose/releases/tag/v5.5.1","Info: signed release artifact: docker-compose-darwin-aarch64.sigstore.json: https://github.com/docker/compose/releases/tag/v5.5.0","Info: signed release artifact: docker-compose-darwin-aarch64.sigstore.json: https://github.com/docker/compose/releases/tag/v5.4.0","Warn: release artifact v5.6.1 does not have provenance: https://api.github.com/repos/docker/compose/releases/419271190","Warn: release artifact v5.6.0 does not have provenance: https://api.github.com/repos/docker/compose/releases/401946090","Warn: release artifact v5.5.1 does not have provenance: https://api.github.com/repos/docker/compose/releases/382138152","Warn: release artifact v5.5.0 does not have provenance: https://api.github.com/repos/docker/compose/releases/371631647","Warn: release artifact v5.4.0 does not have provenance: https://api.github.com/repos/docker/compose/releases/364270050"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/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/61e84743356275f6ffca23b1b2f2cb945e19eb96/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/61e84743356275f6ffca23b1b2f2cb945e19eb96/docs/checks.md#license","short":"Determines if the project has defined a license."}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: all commits (30) are checked with a SAST tool"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/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":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/docs-upstream.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/docker/compose/docs-upstream.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:30: pin your Docker image by updating tonistiigi/xx:1.9.0 to tonistiigi/xx:1.9.0@sha256:c64defb9ed5a91eacb37f96ccc3d4cd72521c4bd18d5442905b95e2226b0e707","Warn: containerImage not pinned by hash: Dockerfile:33: pin your Docker image by updating crazymax/osxcross:15.5-alpine to crazymax/osxcross:15.5-alpine@sha256:ab016ff172118c7c98f49413bbdbf496b7c96c2677d1fb1736543301b8359341","Warn: containerImage not pinned by hash: Dockerfile:35: pin your Docker image by updating golangci/golangci-lint:v2.15.0-alpine to golangci/golangci-lint:v2.15.0-alpine@sha256:2ba875b990f1d8501ad4ec19be1ea0701e316ec3a4b764f7b129f62f01318bbf","Warn: containerImage not pinned by hash: Dockerfile:36: pin your Docker image by updating ghcr.io/google/addlicense:v1.0.0 to ghcr.io/google/addlicense:v1.0.0@sha256:80a702888fb81520beaf4647567bba2d0571bbeffac6a997c54fc5cd83289f3f","Warn: containerImage not pinned by hash: Dockerfile:38: pin your Docker image by updating golang:1.26.10-alpine3.23 to golang:1.26.10-alpine3.23@sha256:34414731924cf2263160f0021f5cf6e1807382d85248f7cb419d4187b96d5e43","Warn: containerImage not pinned by hash: Dockerfile:52","Warn: containerImage not pinned by hash: Dockerfile:58","Warn: containerImage not pinned by hash: Dockerfile:66","Warn: containerImage not pinned by hash: Dockerfile:79","Warn: containerImage not pinned by hash: Dockerfile:85","Warn: containerImage not pinned by hash: Dockerfile:98","Warn: containerImage not pinned by hash: Dockerfile:112","Warn: containerImage not pinned by hash: Dockerfile:123","Warn: containerImage not pinned by hash: Dockerfile:143","Warn: containerImage not pinned by hash: Dockerfile:154","Warn: containerImage not pinned by hash: Dockerfile:160","Warn: containerImage not pinned by hash: Dockerfile:167","Warn: containerImage not pinned by hash: Dockerfile:184","Warn: containerImage not pinned by hash: Dockerfile:205","Warn: containerImage not pinned by hash: Dockerfile:209","Warn: containerImage not pinned by hash: Dockerfile:224","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/bridge-build-only/Dockerfile:15: pin your Docker image by updating alpine to alpine@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/bridge/Dockerfile:15: pin your Docker image by updating alpine to alpine@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-dependencies/base.dockerfile:15: pin your Docker image by updating alpine to alpine@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-dependencies/service.dockerfile:15","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-infinite/service1/Dockerfile:15: pin your Docker image by updating busybox to busybox@sha256:a46257e06c82ad85242d0d38077d0a52d9896389ca60a1a59d3463db586e5fa4","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/entitlements/Dockerfile:18: pin your Docker image by updating alpine to alpine@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/multi-args/Dockerfile:18","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/nginx-build/Dockerfile:15: pin your Docker image by updating nginx:alpine to nginx:alpine@sha256:785835ea65db4bba6f021acc0f3be91b0fef76a53fe41f8588c6698d2aed0606","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/nginx-build2/Dockerfile:15: pin your Docker image by updating nginx:alpine to nginx:alpine@sha256:785835ea65db4bba6f021acc0f3be91b0fef76a53fe41f8588c6698d2aed0606","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/platforms/Dockerfile:15: pin your Docker image by updating golang:alpine to golang:alpine@sha256:d200d2dd76b03a99b52651fd1325aff7dcd35422c35c01bac56571b0507f3deb","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/platforms/Dockerfile:21: pin your Docker image by updating alpine to alpine@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/platforms/contextServiceA/Dockerfile:15: pin your Docker image by updating golang:alpine to golang:alpine@sha256:d200d2dd76b03a99b52651fd1325aff7dcd35422c35c01bac56571b0507f3deb","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/platforms/contextServiceA/Dockerfile:21: pin your Docker image by updating alpine to alpine@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/platforms/contextServiceB/Dockerfile:15: pin your Docker image by updating golang:alpine to golang:alpine@sha256:d200d2dd76b03a99b52651fd1325aff7dcd35422c35c01bac56571b0507f3deb","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/platforms/contextServiceB/Dockerfile:21: pin your Docker image by updating alpine to alpine@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/platforms/contextServiceC/Dockerfile:15: pin your Docker image by updating golang:alpine to golang:alpine@sha256:d200d2dd76b03a99b52651fd1325aff7dcd35422c35c01bac56571b0507f3deb","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/platforms/contextServiceC/Dockerfile:21: pin your Docker image by updating alpine to alpine@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/privileged/Dockerfile:18: pin your Docker image by updating alpine to alpine@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/build-test/ssh/Dockerfile:18: pin your Docker image by updating alpine to alpine@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/simple-build-test/nginx-build/Dockerfile:15: pin your Docker image by updating nginx:alpine to nginx:alpine@sha256:785835ea65db4bba6f021acc0f3be91b0fef76a53fe41f8588c6698d2aed0606","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/volume-test/nginx-build/Dockerfile:15: pin your Docker image by updating nginx:alpine to nginx:alpine@sha256:785835ea65db4bba6f021acc0f3be91b0fef76a53fe41f8588c6698d2aed0606","Warn: containerImage not pinned by hash: pkg/e2e/fixtures/wrong-composefile/service1/Dockerfile:15: pin your Docker image by updating nginx to nginx@sha256:600f7cd45e27aa13e9304c834ab7c1b0ff39df85ee1dcc5087955455d77bc83b","Warn: containerImage not pinned by hash: relay/Dockerfile:21: pin your Docker image by updating golangci/golangci-lint:v2.13.2-alpine to golangci/golangci-lint:v2.13.2-alpine@sha256:da1f79b184ff1d98781648407d05a99b9cba7b282aa3416b0a0eac102a3b0557","Warn: containerImage not pinned by hash: relay/Dockerfile:23: pin your Docker image by updating golang:1.26.10-alpine to golang:1.26.10-alpine@sha256:a2012b4a1d1f9f7e9f44e0d39b805a901e856b1dd80b4e6ee4338db547050308","Warn: containerImage not pinned by hash: relay/Dockerfile:26","Warn: containerImage not pinned by hash: relay/Dockerfile:31","Warn: containerImage not pinned by hash: relay/Dockerfile:40","Warn: containerImage not pinned by hash: relay/Dockerfile:47","Info:  22 out of  22 GitHub-owned GitHubAction dependencies pinned","Info:  20 out of  21 third-party GitHubAction dependencies pinned","Info:   2 out of  51 containerImage dependencies pinned"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/docs/checks.md#pinned-dependencies","short":"Determines if the project has declared and pinned the dependencies of its build process."}},{"name":"CI-Tests","score":10,"reason":"7 out of 7 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/docs/checks.md#ci-tests","short":"Determines if the project runs tests before pull requests are merged."}},{"name":"Contributors","score":10,"reason":"project has 44 contributing companies or organizations","details":["Info: found contributions from: Dockins, ReolinkCameraAPI, WP-Team-Bach, adjoeio, allons-y, amontourdeprogrammer, anonaddy, apple, ci-reporter, cnabio, compose-spec, containerd, degreed, depcheck, digineo, distribution, docker, docker-archive, docker-captains, docker-internal, dockersamples, docsorg, dremio, dynv6, flashflashrevolution, github-beta, go-acme, go-docker, goreleaser, jnr, jruby, kubernetes, kubernetes-sigs, librenms, magefile, moby, neard, opencontainers, portapps, six12creative, thajeztah, thesoul publishing, tilt-dev, trinodb"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/61e84743356275f6ffca23b1b2f2cb945e19eb96/docs/checks.md#contributors","short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies)."}}]}
