遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/7789)
<a href="https://www.bestpractices.dev/projects/7789"><img src="https://www.bestpractices.dev/projects/7789/badge"></a>
gittuf embeds key distribution, revocation, and other security controls such as access control policies in Git repositories. It provides an extensible security layer that can be leveraged to add other security features such as support for SLSA attestations and more!
https://github.com/gittuf/gittuf/blob/main/CONTRIBUTING.md details the contributor workflow and the automated checks and code review required to accept a changeset.
https://github.com/gittuf/gittuf/blob/main/CONTRIBUTING.md#contributor-workflow
The contributing guide indicates DCO sign off is required. The DCO bot has been enabled for the repository.
The project's charter defines the governance model: https://github.com/gittuf/community/blob/main/CHARTER.md
The technical steering committee members can be found at https://github.com/gittuf/community/blob/main/TECHNICAL-STEERING-COMMITTEE.md
https://github.com/gittuf/gittuf/blob/main/CODE-OF-CONDUCT.md
https://github.com/gittuf/gittuf/blob/main/MAINTAINERS.txt
Multiple maintainers have admin powers in https://github.com/gittuf
https://github.com/gittuf/gittuf/blob/main/docs/roadmap.md
https://github.com/gittuf/gittuf/blob/main/docs/specification.md
The design document includes a threat model: https://github.com/gittuf/gittuf/blob/main/docs/design-document.md#threat-model
The documentation includes an installation and get started guide: https://github.com/gittuf/gittuf/blob/main/docs/get-started.md
The design document is updated in sync with changes to the implementation. In addition, tooling updates must be accompanied by appropriate help message updates.
https://github.com/gittuf/gittuf's README includes the badge.
gittuf is primarily a CLI tool and interfaces with users using standard input and output channels.
gittuf doesn't generate text intended for end users to read.
gittuf's website does not store any authentication details.
All changes are tracked using Git. The changelog details update paths and releases are tracked / archived using GitHub's release tracker.
gittuf uses an issue tracker: https://github.com/gittuf/gittuf/issues
No vulnerabilities have been reported.
https://github.com/gittuf/gittuf/blob/main/SECURITY.md
gittuf uses golangci-lint and go fmt. These are enforced in CI (https://github.com/gittuf/gittuf/tree/main/.github/workflows) and alluded to in the contributing guide (https://github.com/gittuf/gittuf/blob/main/CONTRIBUTING.md).
Go fmt is a standard style enforcer. Additionally, golangci-lint is enforced in the CI.
The Go build system honors architecture specific flags. However, gittuf is distributed as source and users are expected to compile binaries themselves for their desired architectures.
gittuf uses Go's build system which supports such flags.
Recursive make is not employed. Go also enforces acyclical dependencies across packages.
Go generates deterministic binaries by default. gittuf does not embed any sources of non determinism in the source code to negate this.
gittuf uses standard Go tooling: go install. It also ships a Makefile that invokes the Go toolchain.
gittuf doesn't provide packages for different platforms. If gittuf is installed using Go tooling, it is installed to the default Go binary location on the user's machine. Alternatively, gittuf provides signed binaries that users may install to a location of their choice.
The Makefile is optimized for quickly installing gittuf from the accompanying source.
https://github.com/gittuf/gittuf/blob/main/go.mod
Dependabot is employed for dependency updates. https://github.com/gittuf/gittuf/blob/main/.github/dependabot.yml
gittuf does not maintain any vendored dependencies. Dependencies are updated periodically using dependabot. https://github.com/gittuf/gittuf/blob/main/.github/dependabot.yml
gittuf uses no deprecated APIs. This is enforced using golangci-lint.
https://github.com/gittuf/gittuf/blob/main/.github/workflows/ci.yml
gittuf has not matured to the point of requiring bug fixes with regression tests.
The contributing guide requires tests for new functionality.
The contributing guide includes this requirement.
The Go compiler is strict and typically does not issue warnings as a language policy.
gittuf is a security project that implements many of these principles for Git repositories.
gittuf explicitly does not depend on SHA-1 for security. However, Git uses SHA-1 extensively and gittuf uses some Git semantics but hardens them using signatures created with stronger underlying hash algorithms.
gittuf inherently supports cryptographic agility and aims to implement this for Git as well.
No credentials are stored.
gittuf does not directly implement any network communication functions.
gittuf does not use TLS directly.
The release workflow for gittuf uses Git signed tags.
gittuf limits the nature of inputs users can provide.
gittuf performs input validation and rigorous error handling for all of its functions. Errors, when they occur, are exposed to users and also result in POSIX style exit codes.
The gittuf design document includes a formal threat model: https://github.com/gittuf/gittuf/blob/main/docs/design-document.md#threat-model.
golangci-lint is used to flag common issues in Go code.
gittuf is written in Go, a memory safe language.
后退