Skip to content

chaintope/.github

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

共通 GitHub Workflows

この公開リポジトリは、各リポジトリで再利用可能な GitHub Actions ワークフローを提供します。

Trivy SBOM Upload

概要

Trivy を使用して SBOM(Software Bill of Materials)を生成し、Dependency-Track にアップロードする reusable workflow です。

特徴

  • バージョン固定: Trivy のバージョンを明示的に指定可能
  • 整合性検証: SHA256 チェックサムによるバイナリの検証
  • CycloneDX 形式: 業界標準の SBOM フォーマットで出力
  • 柔軟なスキャン対象: 任意のファイルやディレクトリをスキャン可能

使用方法

呼び出し元のリポジトリで以下のようにワークフローを定義します。

name: SBOM Upload

on:
  push:
    branches: [main]
  schedule:
    - cron: "0 0 * * 1"  # 毎週月曜日

jobs:
  sbom:
    uses: chaintope/.github/.github/workflows/trivy-sbom.yml@main
    with:
      scan-target: "Gemfile.lock"
    secrets:
      dependencytrack-server: ${{ secrets.DEPENDENCYTRACK_SERVER }}
      dependencytrack-apikey: ${{ secrets.DEPENDENCYTRACK_APIKEY }}
      dependencytrack-project: ${{ secrets.DEPENDENCYTRACK_PROJECT }}

入力パラメータ

パラメータ 必須 デフォルト 説明
scan-target Yes - スキャン対象のファイルまたはディレクトリ(例: Gemfile.lock, package-lock.json, .
ref No 現在の ref チェックアウトする Git ref(ブランチ、タグ、コミット SHA)
trivy-version No 0.69.3 使用する Trivy のバージョン
trivy-sha256 No (デフォルト値) Trivy バイナリの SHA256 チェックサム
auto-create No false Dependency-Track にプロジェクトが存在しない場合に自動作成するか
project-version No "" Dependency-Track のプロジェクトバージョン

必要なシークレット

シークレット 説明
dependencytrack-server Dependency-Track サーバーのホスト名
dependencytrack-apikey Dependency-Track API キー
dependencytrack-project Dependency-Track プロジェクト UUID

Trivy バージョンの更新

新しいバージョンの Trivy を使用する場合は、trivy-versiontrivy-sha256 の両方を指定してください。

SHA256 チェックサムは Trivy Releasestrivy_<version>_checksums.txt から取得できます。

with:
  scan-target: "Gemfile.lock"
  trivy-version: "0.70.0"
  trivy-sha256: "<新しいバージョンのSHA256>"

使用例

Ruby プロジェクト

jobs:
  sbom:
    uses: chaintope/.github/.github/workflows/trivy-sbom.yml@main
    with:
      scan-target: "Gemfile.lock"
    secrets:
      dependencytrack-server: ${{ secrets.DEPENDENCYTRACK_SERVER }}
      dependencytrack-apikey: ${{ secrets.DEPENDENCYTRACK_APIKEY }}
      dependencytrack-project: ${{ secrets.DEPENDENCYTRACK_PROJECT }}

Node.js プロジェクト

jobs:
  sbom:
    uses: chaintope/.github/.github/workflows/trivy-sbom.yml@main
    with:
      scan-target: "package-lock.json"
    secrets:
      dependencytrack-server: ${{ secrets.DEPENDENCYTRACK_SERVER }}
      dependencytrack-apikey: ${{ secrets.DEPENDENCYTRACK_APIKEY }}
      dependencytrack-project: ${{ secrets.DEPENDENCYTRACK_PROJECT }}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors