Skip to main content

エンタープライズの監査ログ API を使う

REST API を使って、エンタープライズ イベントをプログラムで取得する方法について説明します。

この機能を使用できるユーザーについて

Enterprise owners and site administrators

メモ

Webhook は、特定のユース ケースの監査ログまたは API ポーリングの代替策として適している場合があります。 Webhook は、リポジトリ、Organization、または Enterprise で特定のイベントが発生したときに GitHub がサーバーに通知する方法です。 Enterprise、Organization、またはリポジトリで特定のイベントが発生したときに学習してログを記録するだけの場合、API や監査ログの検索と比較して、Webhook がより効率的である可能性があります。 「Webhook ドキュメント」をご覧ください。

監査ログに関連するエンドポイントを使用して、コンプライアンスを維持し、知的財産をセキュリティで保護します。 「エンタープライズ監査ログの REST API エンドポイント」と「組織のREST APIエンドポイント」を参照してください。

監査ログ エンドポイントを使用してアクセスできる特定のイベントの詳しい情報については、次の記事を参照してください。

  •         [AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise)
    
  •         [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/audit-log-events-for-your-organization)
    
  •         [AUTOTITLE](/authentication/keeping-your-account-and-data-secure/security-log-events)
    

監査ログの詳細

監査ログには、Enterprise に影響するアクティビティによってトリガーされるイベントの一覧が表示されます。 GitHub の監査ログは、Enterprise 所有者が異なる保持期間を構成していない限り、無期限に保持されます。 「エンタープライズの監査ログの構成」をご覧ください。

既定では、過去 3 か月のイベントのみが表示されます。 古いイベントを表示するには、created パラメーターを使って日付範囲を指定します。 「検索構文を理解する」をご覧ください。

API 応答のタイムスタンプと日付フィールドは UTC エポック ミリ秒単位で計測されます。

          `read:audit_log` スコープを使って、API 経由で監査ログにアクセスできます。

これらのステップを実行してください:

例 1: 特定の日付を対象としたエンタープライズ内のすべてのイベント (ページ分割あり)

ページベースのページネーションを使用できます。 ページネーションの詳細については、「REST API でのページネーションの使用」を参照してください。

次のクエリは、avocado-corp エンタープライズで 2022 年 1 月 1 日に作成された監査ログ イベントを検索し、ページネーションを使用して 1 ページあたり最大 100 件の項目で最初のページを返します。 ページネーションの詳細については、「REST API でのページネーションの使用」を参照してください。

curl -H "Authorization: Bearer TOKEN" \
--request GET \
"http(s)://HOSTNAME/api/v3/enterprises/avocado-corp/audit-log?phrase=created:2022-01-01&page=1&per_page=100"

例 2: 特定の日付とアクターを対象としたエンタープライズにおける pull request のイベント

          `created` と `actor` のように複数の検索語句を指定するには、整形された URL の中で `+` 記号または ASCII 文字コード `%20` で区切ります。

次のクエリは、イベントが avocado-corp エンタープライズで 2022 年 1 月 1 日以降に発生し、アクションが octocat ユーザーによって実行された pull request の監査ログ イベントを検索します。

curl -H "Authorization: Bearer TOKEN" \
--request GET \
"http(s)://HOSTNAME/api/v3/enterprises/avocado-corp/audit-log?phrase=action:pull_request+created:>=2022-01-01+actor:octocat"

例 3: 特定の日付とアクターを対象としたエンタープライズにおける Git アクティビティのイベント

URL にパラメーターとして include=git を追加することで、エンタープライズ内の Git イベント (複製、フェッチ、プッシュなど) を検索できます。 または、Web イベントと Git イベントの両方を検索するために include=all を使用できます。

次のクエリは、イベントが avocado-corp エンタープライズで 2024 年 1 月 1 日より後に発生し、アクションが octocat ユーザーによって実行された Git アクティビティの監査ログ イベントを検索します。

curl -H "Authorization: Bearer TOKEN" \
--request GET \
"http(s)://HOSTNAME/api/v3/enterprises/avocado-corp/audit-log?phrase=created:>=2024-01-01+actor:octocat&include=git"