For the complete documentation index, see llms.txt. This page is also available as Markdown.

Aikido CI API

ベースURL https://app.aikido.dev

Aikido CI API を使うと、リポジトリ内の特定ブランチに対して新しいスキャンを開始できます。スキャンの状態をポーリングできるので、CI/CD プラットフォーム内にゲーティング機構を構築できます。

Aikido では、特定のスキャンを自分で管理することもできます。独自の Checkov SARIF やカスタム SBOM を Aikido に直接アップロードして、機能ブランチのスキャンに反映できます。Jenkins や CircleCI などのカスタム CI システムも、同じ API トークンでコードカバレッジレポートをアップロードできます。参照 コードカバレッジをアップロード.

認証

  1. 認証トークンを生成してコピーします。このトークンを表示できるのは 1 回だけです。

  2. ヘッダーを追加 X-AIK-API-SECRET 各リクエストに、認証トークンを値として付与します。

新しい機能ブランチスキャンを開始

この非同期 API は、特定のコミットに対して新しい機能ブランチスキャンを開始します。

POST /api/integrations/continuous_integration/scan/repository

本文:

{
    "version": "1.0.5",
    "branch_name": "branch-name",
    "repository_id": "R_kgDOJf6H8g", 
    "base_commit_id": "1c5a7dda074aa19ebc6aa9f25884b5e0b6bb3662",
    "head_commit_id": "b7deb06d8be6bc4c62277e0a28911b2284cab6da",
    "minimum_severity": "HIGH",
    "fail_on_sast_scan": true,
    "fail_on_dependency_scan": true,
    "fail_on_iac_scan": true,
    "fail_on_secrets_scan": true,
    "fail_on_malware_scan": false,
    "pull_request_metadata": {
        "url": "https://github.com/AikidoSec/some-repo/pull/12",
        "title": "checkov"
    },
    "self_managed_scanners": ["checkov", "json-sbom"],
    "expected_amount_json_sboms": 1,
}

必須フィールド:

  • repository_id: GitHub/Gitlab/Bitbucket/.. の内部リポジトリ ID

  • base_commit_id: ベースとなるコミット(PR で分岐した元のコミット。PR に関連しない場合は、end_commit_id の直前のコミット)

  • head_commit_id: スキャン対象の最新コミット(ブランチの最後のコミット)

  • branch_name: ブランチ名

任意フィールド:

  • pull_request_metadata.url: プルリクエストの URL

  • pull_request_metadata.title: プルリクエストのタイトル

  • self_managed_scanners: カスタムスキャンタイプの配列(対応 checkov と json-sbom)。デフォルトは空配列 [] です。

  • expected_amount_json_sboms: 待機しているカスタム json-sbom アップロード数の整数。

  • fail_on_dependency_scan(デフォルト true): Aikido が新しい依存関係の問題(CVE)でブロックすべきかどうかを決定します

  • fail_on_sast_scan(デフォルト false): Aikido が新しい SAST 問題でブロックすべきかどうかを決定します

  • fail_on_iac_scan(デフォルト: false): Aikido が新しい IaC スキャンでブロックすべきかどうかを決定します

  • fail_on_secrets_scan(デフォルト false): Aikido が新しい漏えいシークレットの問題でブロックすべきかどうかを決定します

  • fail_on_malware_scan(デフォルト false): Aikido が新しいマルウェアの問題でブロックすべきかどうかを決定します。

    • 注: この機能は全員が利用できるわけではありません。有効化したい場合は Aikido にお問い合わせください。

  • minimum_severity(デフォルト 重大): Aikido がどの(最小)深刻度で FAILED。この値は次のいずれかです 低, 中, 高, 重大.

応答:

機能ブランチスキャンのステータスをポーリング

スキャンの現在の状態を取得します。ポーリング機構(例: 5 秒ごと)を使って、CI/CD のゲーティングを実装してください。

GET /api/integrations/continuous_integration/scan/repository?scan_id=1

パラメータ:

  • scan_id(int)

応答:

機能ブランチの例 スキャン進行中

機能ブランチスキャン完了の例

d の例efault ブランチのスキャン完了

カスタムスキャン結果をアップロード

この API を使用すると、Syft で生成した独自の Checkov SARIF やカスタム SBOM をアップロードできます。Syft SBOM を生成する場合は JSON 形式を使用してください。

POST /api/integrations/continuous_integration/scan/custom

本文:

例: Checkov

例: Syft SBOM

必須フィールド:

  • container_image_name: json-sbom に必要です。これにはイメージタグを含めず、イメージの一意な名前のみを含めてください。

  • payload_type

  • payload

任意フィールド:

  • scan_id: (次から取得 スキャンを開始)。ペイロードを Aikido のライブフィードに送りたい場合は、これを設定しないでください。

  • repository_id: GitHub/Gitlab/Bitbucket/.. の内部リポジトリ ID(scan_id が設定されていない場合のみ必須)

応答:

コードカバレッジをアップロード

Jenkins や CircleCI などのカスタム CI は、次をアップロードできます LCOV または Cobertura 同じトークンでのカバレッジレポート X-AIK-API-SECRET トークン。

次を使用してください: Aikido CI API クライアント upload-coverage コマンド。テストがレポートを書き出した後、チェックアウト済みのリポジトリから実行してください。クライアントはカバレッジファイルとソースメタデータを読み取り、それらを Aikido に送信します。参照 コードカバレッジ Aikido でアップロードがどのように表示されるか

repository_id Git プロバイダのリポジトリ ID で、このページの他のエンドポイントでも使用されるのと同じ ID です。複数のパスを --file-paths に渡して、別々のパッケージやジョブの LCOV と Cobertura レポートを結合します。

最終更新

役に立ちましたか?