Aikido CI API
ベースURL https://app.aikido.dev
Aikido CI API を使うと、リポジトリ内の特定ブランチに対して新しいスキャンを開始できます。スキャンの状態をポーリングできるので、CI/CD プラットフォーム内にゲーティング機構を構築できます。
Aikido では、特定のスキャンを自分で管理することもできます。独自の Checkov SARIF やカスタム SBOM を Aikido に直接アップロードして、機能ブランチのスキャンに反映できます。Jenkins や CircleCI などのカスタム CI システムも、同じ API トークンでコードカバレッジレポートをアップロードできます。参照 コードカバレッジをアップロード.
認証
へ移動 CI 統合の詳細ページ.
認証トークンを生成してコピーします。このトークンを表示できるのは 1 回だけです。
ヘッダーを追加
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 レポートを結合します。
最終更新
役に立ちましたか?