Software Composition Analysis と GitHub Actions

GitHub Actions ワークフローで Datadog の Software Composition Analysis ジョブを実行します。このアクションはコードベースに対して Datadog osv‑scanner を実行し、その結果を Datadog にアップロードします。

ライブラリインベントリの生成

GitHub Actions は、リポジトリで宣言されているライブラリに基づいて、ライブラリのインベントリを自動生成します。

GitHub Actions は以下の言語とファイルで動作します。

  • JavaScript/TypeScript: package-lock.json および yarn.lock
  • Python: requirements.txt (バージョンが定義されているもの) および poetry.lock
  • Java: pom.xml
  • C#
  • Ruby
  • … 上記以外の言語 (ドキュメントに一覧を記載)

セットアップ

キーのセットアップ

GitHub Actions の設定で、DD_APP_KEYDD_API_KEY をシークレットとして追加します。Datadog のアプリケーションキーにcode_analysis_read のスコープが付与されていることを確認してください。詳細については、API キーとアプリケーションキーを参照してください。

ワークフロー

.github/workflows/datadog-sca.yml に以下のコードスニペットを追加します。必ず、dd_site 属性をご利用の Datadog サイトに置き換えてください。

on: [push]

name: Datadog Software Composition Analysis

jobs:
  software-composition-analysis:
    runs-on: ubuntu-latest
    name: Datadog SBOM Generation and Upload
    steps:
    - name: Checkout
      uses: actions/checkout@v3
    - name: Check imported libraries are secure and compliant
      id: datadog-software-composition-analysis
      uses: DataDog/datadog-sca-github-action@main
      with:
        dd_api_key: ${{ secrets.DD_API_KEY }}
        dd_app_key: ${{ secrets.DD_APP_KEY }}
        dd_site: "datadoghq.com"

Datadog の関連ツール

Datadog Static Analysis はコードを解析し、IDE、GitHub PR、または Datadog 環境内でフィードバックを提供します。Datadog Static Analysis は、GitHub のアクション datadog-static-analyzer-github-action を使ってセットアップできます。

その他の参考資料

お役に立つドキュメント、リンクや記事: