コンテンツにスキップ

CircleCI との統合

Circleci-logo

このガイドでは、プッシュのたびに Mayhem が自動的に API をテストできるよう CircleCI Pipeline をセットアップする方法を説明します。

CircleCI パイプラインで Mayhem を実行するには、以下が必要です

  1. Mayhem API トークン を作成します。
  2. 作成したトークンを MAPI_TOKEN という名前の環境変数としてパイプランのコンテキストに追加します。

CircleCI と Mayhem を連携するためのパイプライン構成

API のテストは簡単です。まず、.circleci/config.yml ファイルに CircleCI Orb を追加します。

1
2
3
version: 2.1
orbs:
  mapi: forallsecure/mapi@1.0.0

パイプラインにホストされたサービス

API をスキャンする新規ジョブを作成してサービスを開始します。mapi/scan コマンドを呼び出してサービスに対して Mayhem を実行し、成果物またはテスト結果を任意の場所に保存します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
jobs:
  mayhem-for-api:
    machine:
      image: ubuntu-2204:2022.07.1
    steps:
      # Start your service
      - run:
          command: start-service.sh &
      # Scan your API with Mayhem
      - mapi/scan:
          api-url: 'http://localhost:8000'
          api-spec: 'https://demo-api.mayhem.security/api/v3/openapi.json'
      - store_artifacts:
          path: /tmp/mapi
      - store_test_results:
          path: /tmp/mapi/junit.xml

次に、ワークフローに新規ジョブを追加します。

1
2
3
4
workflows:
  tests-and-security:
    jobs:
      - mayhem-for-api

デプロイ済みのサービス

すでにデプロイ済みであり、ビルド パイプラインに一部として実行されていないサービスをテストするには、ワークフローで mapi/scan ジョブを使用します。運用環境に対しては、絶対に Mayhem を実行してはいけません。

1
2
3
4
5
6
workflows:
  tests-and-security:
    jobs:
      - mapi/scan:
          api-url: 'https://your.staging.com/'
          api-spec: 'https://your.staging.com/openapi.json'