GitHub のカスタムイベントを生成する

mablのイベントをGitHubワークフローとインテグレーション(統合)できます。これにより、mablで発生したイベントに基づいて、mablがGitHub内のカスタムワークフローをトリガー実行できます。

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) }}'

GitHubの課題作成を管理する

この機能の動作のカスタマイズの詳細については、GitHub インテグレーションの設定を参照してください。

イベントペイロードの例

mabl_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",
}

Did this page help you?