正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

外部コントロールAPI

  • プラン: Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

外部コントロールAPIを使用して、外部サービスを使用するチェックのステータスを設定します。

定期的なping機能を使用して外部コントロールを設定できます。Pingが有効になっている場合(デフォルト)、GitLabはコントロールステータスを12時間ごとに自動的にpendingにリセットします。Pingが無効になっている場合、コントロールステータスはAPIコールでのみ更新されます。

外部コントロールのステータスを設定

単一の外部コントロールの場合、APIを使用して、コントロールが外部サービスによるチェックに合格または失敗したことをGitLabに通知します。

認証

外部コントロールAPIには、セキュリティのためにHMAC、タイムスタンプ、およびナンス認証が必要です。

エンドポイント

PATCH /api/v4/projects/:id/compliance_external_controls/:external_control_id/status

HTTPヘッダー:

ヘッダー必須説明
X-Gitlab-Timestamp文字列はい現在のUnixタイムスタンプ。
X-Gitlab-Nonce文字列はいリプレイ攻撃を防ぐためのランダムな文字列またはトークン。
X-Gitlab-Hmac-Sha256文字列はいリクエストのHMAC-SHA256署名。

サポートされている属性は以下のとおりです:

属性必須説明
id整数はいプロジェクトのID。
external_control_id整数はい外部コントロールのID。
status文字列はいコントロールを合格としてマークするにはpassに設定し、失敗させるにはfailに設定します。

成功した場合、200 OKと次のレスポンス属性を返します:

属性説明
status文字列コントロールに設定されているステータス。

リクエスト例:

curl --request PATCH \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "X-Gitlab-Timestamp: <X-Gitlab-Timestamp>" \
  --header "X-Gitlab-Nonce: <X-Gitlab-Nonce>" \
  --header "X-Gitlab-Hmac-Sha256: <X-Gitlab-Hmac-Sha256>" \
  --header "Content-Type: application/json" \
  --data '{"status": "pass"}' \
  --url "https://gitlab.example.com/api/v4/projects/<id>/compliance_external_controls/<external_control_id>/status"

レスポンス例:

{
    "status":"pass"
}