Effective Date: 2025-11-11 Policy Owner: Engineering Leadership Applies To: All repositories in Singularity-ng organization
This policy mandates the use of GitHub Artifact Attestations for all software releases within the Singularity organization to ensure supply chain security and build provenance.
-
Have Build Provenance Attestations
- Use
actions/attest-build-provenance@v2in release workflows - Minimum SLSA Build Level 2 compliance
- Attestations must be verifiable via
gh attestation verify
- Use
-
Include SHA256 Checksums
- All release artifacts must have accompanying SHA256SUMS file
- Checksums must be published alongside artifacts
-
Use Organization Reusable Workflows
- Prefer
.githuborg reusable workflows when available - Example:
Singularity-ng/.github/.github/workflows/rust-release-with-attestations.yml
- Prefer
Users must be able to verify artifacts:
# Verify attestation
gh attestation verify <artifact> -R Singularity-ng/<repo>
# Verify checksum
sha256sum -c SHA256SUMS- Use organization workflow templates that include attestations by default
- Add attestation steps to existing release workflows
- See rust-release-with-attestations.yml for reference
Workflows need these permissions:
permissions:
contents: write
id-token: write # Required for attestations
attestations: write # Required for attestationsExceptions require approval from:
- Security Team Lead
- Engineering Director
Document exceptions in repository's SECURITY.md.
- Supply Chain Security: Cryptographic proof artifacts came from our GitHub Actions
- Compliance: Meets SLSA Build Level 2 requirements
- Trust: Users can verify authenticity of our software
- Audit Trail: Complete provenance tracking
- GitHub Artifact Attestations Docs
- Singularity-ng/.github - Organization workflows
- Internal: Slack #security channel for questions
- Automated: Reusable workflows enforce attestations automatically
- Code Review: PRs modifying release workflows require security team review
- Quarterly Audits: Security team audits compliance across all repos
Questions? Contact security@singularity.com or post in #security Slack channel.