Settings
> Integrations
で設定すると、mablのCI/CDインテグレーションからmablインサイトが発生したとき(例:アプリケーションのデプロイ時)、mablがカスタムRepositoryDispatchイベントを対応するGitHubリポジトリに送ります。
mablが生成するGitHubイベント
- mabl_insight - mablインサイトが生成されたときに送信されます。
詳しくはペイロードの例をご覧ください。
GitHub イベントを自動的に作成し始める方法
GitHubインテグレーションのセットアップ手順に従って、インテグレーションをインストールします。
インテグレーションを設定する際は、必ず Create RepositoryDispatch events for mabl insights
スライダーをクリックし、Save
をクリックしてください。
GitHub ワークフローで mabl イベントを利用する方法
以下の例のYAMLファイルを、mablのCI/CDインテグレーションで使用するGitHubリポジトリの .github/workflows/trigger-on-mabl-insight.yml
にコピーしてください。
このリポジトリに対して実行されたmablテストに基づいて、mablでインサイトが生成されると、前述のワークフロー内のコードがトリガーされ、mablインサイトはgithub.event.client_payload.insight
という名前で、ワークフローにgithub
コンテキスト変数として渡されています。
name: Process mabl insight
# This workflow is triggered on new mabl insights
on: [repository_dispatch]
jobs:
build:
name: Process mabl Insight
runs-on: ubuntu-latest
steps:
# Add you custom logic below this line - example below
- name: Print event type
run: echo 'event_type:${{ github.event.event_type }} name:${{ github.event_name }}' # Will be 'mabl_insight'
- name: Print Insight details
run: echo 'id:${{ github.event.client_payload.insight.id }} type:${{ github.event.client_payload.insight.insight_type }}'
- name: Print Insight payload as JSON
run: echo 'insight payload: ${{ toJson(github.event.client_payload.insight) }}'
{
"id": "jHn6br1LOm10MwEsPjURxQ-i",
"workspace_id": "nKqPRcj1Rrm8zqgb3KeTSQ-w",
"environment_id": "otnJ3IeoWm4zwmoVFz7ppA-e",
"application_id": "RePxEygYbhJdPbjgGqywPTw-a",
"run_policy_id": "yWud5dtC7OEPXp2akr6Dzg-p",
"plan_id": "yWud5dbAraEPPjSRkr6Dzg-p",
"created_time": 1579186926230,
"last_updated_time": 1579186927108,
"type": "occurrence_run_policy_execution_system_event",
"current_state": "occurrence",
"status": "info",
"category": "run_policy_execution_system_event",
"context": {
"triggering_resource_type": "user",
"triggering_resource_id": "dXAi-GwSvITmihOKLu5k0KQ",
"system_event": "run_policy_execution",
"trigger_type": "schedule"
},
"plan_run_id": "iG8I5bI8lpQm53yJRHA9JA-pr",
}