Skip to content

chore: phase 2 supply-chain hardening (SBOM, build provenance, gitignore) #168

@sasagar

Description

@sasagar

Background

PR #164 で完了した Phase 1(Actions SHA 固定、frozen-lockfile、Dependabot 等)に続く Phase 2。リリース成果物の透明性と検証可能性を高める。

Goals

  • リリース時に SBOM (Software Bill of Materials) を生成し、GitHub Release に添付
  • SBOM に対して build provenance attestation を付与(Sigstore 経由、GitHub OIDC 利用)
  • 利用者が依存ツリーを監査・脆弱性スキャンできるようにする
  • .playwright-mcp/ 等のテスト成果物を .gitignore に追加(再発防止)

Scope

.gitignore

  • .playwright-mcp/ を追加(Playwright MCP のスナップショット・スクリーンショット)

.github/workflows/auto-tag.yml (リリース時)

  • anchore/sbom-action で SBOM (SPDX-JSON) を生成
  • actions/attest-build-provenance で SBOM の provenance を生成
  • softprops/action-gh-release のアーティファクトに SBOM を添付
  • 必要な permissions を opt-in(id-token: write, attestations: write

.github/workflows/release.yml (手動リリース時)

  • auto-tag.yml と同じ SBOM + provenance フローを追加

Out of scope

  • Docker image push to GHCR + cosign signing → 利用者がレジストリ pull する運用が無いため
  • 既存リリース(過去タグ)の SBOM 遡及生成 → 不要

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions