概要

GitHub Apps と GitHub Actions の構成、リポジトリの安全なアクセス、高度なテレメトリー (監査ログ、脆弱性レポート、秘密スキャン、リポジトリ統計など) の収集のために GitHub 統合をセットアップします。

GitHub インテグレーションタイルの Repository Configuration タブ

Datadog のソースコードインテグレーションを利用すると、スタックトレース内のコードスニペットを表示したり、スタックトレースと GitHub 内の Lambda 関数のソースコードとをリンクさせたり、CI Visibility のプルリクエストコメントからテスト結果のサマリーを表示したり、GitHub の複数のサービス定義にサービスカタログからアクセスしたりすることなどができます。

セットアップ

以下の手順で GitHub Apps をインストールし、Datadog に権限を付与してください。付与された権限に応じて、ソースコードインテグレーションの設定、スタックトレースでのコードスニペットの表示、監査ログなどの収集したテレメトリーの表示、CI Visibility での GitHub Actions へのアクセスなどが可能です。

組織または個人アカウント内のリポジトリをリンクする

GitHub 組織の管理者であれば、GitHub アプリを構成することができます。

  1. GitHub インテグレーションタイルで、Repo Configuration タブに移動します。

  2. Link GitHub Account をクリックして、GitHub アプリを新規に作成します。

  3. Configure で、Organization を選択して組織名を入力するか、Personal Account を選択します。

    オプションで、GitHub Enterprise Server インスタンス (バージョン 2.22 以上) の URL を指定し、Datadog サーバーが Enterprise インスタンスに接続できることを確認します。サーバー IP は、IP Ranges の Webhooks セクションで入手できます。

  4. Edit Permissions で、課題、プルリクエスト、コンテンツに対する Datadog の読み取りアクセス許可を有効にします。少なくとも 1 つのアクセス許可を選択する必要があります。

  5. Create App in GitHub をクリックすると、GitHub アプリ名を入力する画面が表示されるので、入力します。

  6. GitHub アプリ名フィールドに名前を入力し、Create GitHub App をクリックします。

  7. Configuration タブで、Install GitHub AppInstall & Authorize をクリックします。

GitHub アプリがインテグレーションタイルに表示されます。スタックトレースでインラインコードスニペットを有効にするには、ソースコードインテグレーションの設定を参照してください。

ノートブック

GitHub アプリに問題やプルリクエストの読み取り権限を与えている場合、GitHub の問題やプルリクエストは自動的にプレビューホバーボックスを生成し、コミット履歴、作成者、日付などの詳細がノートブックに表示されます。

Git へのリンク
  1. Notebooks > New Notebook の順に移動します。
  2. Text セルを追加し、Edit フィールドに GitHub 上の課題またはプルリクエストを記載します (例: https://github.com/project/repository/pull/#)。
  3. Done をクリックすると、リンクされた課題またはプルリクエストの横に GitHub のアイコンが表示されます。
  4. Connect to PreviewAuthorize をクリックします。
  5. リンク先の課題またはプルリクエストにカーソルを合わせると、説明のプレビューが表示されます。

監査ログ

要件: 監査ログを収集するには GitHub Enterprise アカウントが必要です。

監査ログは、GitHub の組織全体のすべてのアクティビティとイベントを網羅します。アプリケーションをインストールする際には、Organization Administration 権限が読み取りアクセス権を持つように許可してください。これにより、アプリケーションは GitHub の監査ストリームを GitHub 組織に代わってログとして収集し始めます。

GitHub ドキュメントの Datadog へのストリーミングのセットアップの手順に従って、監査ログを Datadog に転送します。監査ログの詳細については、GitHub ドキュメントの監査ログアクションを参照してください。

収集データ

メトリクス

GitHub インテグレーションは、Code Scan Alert と Secret Scan Alert のメトリクスを収集します。これらのメトリクスは、アラートの状態、リポジトリ、およびシークレットタイプを分類することで、組織のアラート状態の概要を提供します。また、これらは、アラートのトレンドとその全般的な進展に関する長期的な洞察を提供します。

github.code_scan_alert
(gauge)
Github Code Scan Alerts
Shown as alert
github.secret_scan_alert
(gauge)
Github Secret Scan Alerts
Shown as alert

これらのメトリクスを収集し始めるには、アプリケーションのインストール時に、読み取りアクセスのためにそれぞれの権限を選択します。Code Scan または Secret Scan のメトリクスをオプトアウトするには、インテグレーションタイルの Telemetery タブで対応する組織を探し、それぞれのセクションのトグルをクリックし、Update Account をクリックします。

イベント

以下の手順で、GitHub と Datadog に Webhook を構成し、イベントエクスプローラーにイベントを表示できるようにします。

GitHub で Webhook を追加する

  1. GitHub のプロジェクトで、Settings > Webhooks に移動します。

  2. Add webhook をクリックします。

  3. Payload URL フィールドに以下の URL を追加します: https:///intake/webhook/github?api_key=<DATADOG_API_KEY><DATADOG_API_KEY>Datadog API キーに置き換えることを忘れないでください。

  4. Content type ドロップダウンメニューで application/json を選択します。

  5. オプションで、Secret フィールドにシークレットを追加します。

  6. Which events would you like to trigger this webhook? セクションで、Let me select individual events. をクリックし、以下のサポートされるオプションから選択して、Datadog にイベントを送信します。

    イベント名イベントアクション
    ブランチまたはタグの作成
    コミットコメント
    課題コメント以下のアクションがサポートされています。

    - created
    - deleted
    - edited
    課題以下のアクションがサポートされています。

    - assigned
    - closed
    - deleted
    - demilestoned
    - edited
    - labeled
    - locked
    - milestoned
    - opened
    - pinned
    - reopened
    - transferred
    - unassigned
    - unlabeled
    - unlocked
    - unpinned
    プルリクエストレビューコメント以下のアクションがサポートされています。

    - created
    - deleted
    - edited
    プルリクエスト以下のアクションがサポートされています。

    - assigned
    - unassigned
    - labeled
    - unlabeled
    - opened
    - edited
    - closed
    - reopened
    - synchronize
    - converted_to_draft
    - locked
    - unlocked
    - enqueued
    - dequeued
    - milestoned
    - demilestoned
    - ready_for_review
    - review_requested
    - review_request_removed
    - auto_merge_enabled
    - auto_merge_disabled
    プッシュ
    リポジトリ以下のアクションがサポートされています。

    - archived
    - created
    - deleted
    - edited
    - privatized
    - publicized
    - renamed
    - transferred
    - unarchived
    セキュリティと分析
    チームへの追加
  7. Active を選択すると、フックがトリガーされたときにイベントの詳細を受け取ることができます。

  8. Add webhook をクリックして、Webhook を保存します。

Datadog で Webhook を追加する

  1. GitHub インテグレーションタイルで、Webhooks タブに移動します。

  2. 各リポジトリに対して、監視したいリポジトリとブランチを指定します。ユーザーまたは組織のすべてのリポジトリを追加するには、ワイルドカード (*) を使用します。ブランチ名にはワイルドカードを使用できます。例えば、dev-*dev- で始まるすべてのブランチを含めます。

    GitHub リポジトリ DataDog/documentationmaster ブランチに関連するすべてのイベントを収集するには、Repository フィールドに DataDog/documentation を、Branches フィールドに master を入力してください。

    DataDog 組織のすべての master ブランチに関連するすべてのイベントを収集したい場合は、** Repository** フィールドに DataDog/* を、** Branches** フィールドに master を入力します。 注: リポジトリ名にワイルドカードを使用する場合は、ユーザーまたは組織を指定する必要があります。例えば、’’ は有効なリポジトリ名ではありませんが、‘Datadog/’ は有効です。

  3. CommitsIssues のチェックボックスをクリックすると、これらのイベントがアラートされます。

  4. Update Configuration をクリックすると、Webhook の構成が保存されます。

インテグレーションタイルの Webhooks タブで Webhook を追加すると、上記で指定した GitHub リポジトリのイベントが Events Explorer に表示されるようになります。詳しくは、Events Explorer のドキュメントをご覧ください。

GitHub からのイベントをフィルターするには、Core の下にある Source ファセットメニューで Github を選択するか、検索クエリに source:github と入力してください。イベントの棒グラフは、検索クエリを編集すると自動的に更新されます。

サービスチェック

GitHub インテグレーションには、サービスのチェック機能は含まれません。

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問い合わせください。

その他の参考資料