Skip to main content
Integrations → WebhooksでSlack Workflow BuilderのWebhookを接続し、Corgeaのアラートを送信します。
Automation Integrationsにある単独のSlack項目は非推奨です。新しいSlack通知はWebhooksで作成してください。既存のSlack連携は引き続き動作します。View Allからテストまたは削除できます。
非推奨とマークされた Slack 自動化統合

前提条件

  • Corgeaの管理者アクセス
  • Slackワークスペース内でワークフローを作成する権限

Slackワークフロービルダーの設定

Slack Workflow Builderを使用すると、Corgeaのトップレベルのペイロードフィールドをチャンネルメッセージにマッピングできます。
Slack Workflow BuilderがサポートするのはトップレベルのJSONキーのみです。data.messagedata.summary.total_issuesのようなネストされたパスはサポートされず、通常はHTTP 400 invalid_workflow_inputが返されます。Type = SlackとWorkflow BuilderのURL(hooks.slack.com/triggers/...)を使用する場合、Corgeaがトップレベルのペイロードにフラット化するのは、scan.startedscan.completedscan.failedwebhook.testのみです。ネストされたdata.*ではなく、messagepull_request_idscan_urltrue_positive_countをマッピングします。同じSlackWebhook上の他の購読イベント(例: issue.status_changedsla.violation)は引き続きネストされたエンベロープを受け取ります。Workflow Builderのスキャンライフサイクルサブスクリプションを優先するか、イベントにはカスタムボディ/非Slackの宛先を使うのが良いでしょう。
1

ワークフローを作成する

  1. Slackでワークスペースメニューを開く
  2. Tools → Workflow Builderを開く
  3. Createをクリックする
  4. トリガーとしてWebhookを選択する
  5. ワークフローに名前を付けて続けます
2

ワークフローステップの設定

  1. ワークフロービルダーのWebhookURLをコピーする(hooks.slack.com/triggers/...)
  2. Webhookトリガーのステップで、Corgeaのトップレベルキーと同じ名前の変数を追加します(Slackはペイロードフィールドを自動検出しません)。少なくともmessagepull_request_idscan_urltrue_positive_countscan_idevent_typeproject_namestatusbranchcompanyを追加します。
  3. Send a messageステップを追加します(必須。Corgea単独ではSlackに投稿しません)
  4. Insert a variableを使用して、Webhookの変数をメッセージに挿入します({message}というテキストを直接入力しても動作しません)
CorgeaがWorkflow Builderに送信するフラットなscan.completedボディの例です。ネストされたprojectsummaryscheduled_scan_ids含まれません
scan.failedでは、存在する場合にトップレベルのerrorもフラットなボディに含まれます。まず、送信可能な要約としてmessageを使用し、プルリクエストのトリアージ用にpull_request_idscan_urltrue_positive_countを追加します。完了したスキャンのmessageでは、問題の総数ではなく、誤検知でない検出結果の件数が使用されます。 Scan completed for {project} (PR #N): X true-positive finding(s) [(Y with fixes)]. View: {scan_url} Y with fixesは、その誤検知でない検出結果に対する修正のみを数えます。
  1. ワークフローを完成させて公開する
3

Corgeaで設定

  1. Integrations → Webhooksに移動する
  2. 新しいWebhookを作成する
  3. TypeSlackに設定する
  4. 名前を入力し、ワークフロービルダーのURLを貼り付けます
  5. scan.completed および/または scan.failed の購読(オプションで scan.started)
  6. スキャンイベントフィルター (任意):
    • プルリクエスト/マージリクエストスキャンのみ — PR以外のスキャンはスキップ
    • 誤検知でない検出結果がある完了済みスキャンのみtrue_positive_countが0の場合はscan.completedをスキップします(scan.failedには影響しません)
  7. Webhook作成 をクリックして、ワンタイムのシークレットキーを保存します
  8. Testをクリックして配信を確認する

Webhookテストで想定される結果

Slackワークフロービルダーの送信先で テストWebhook をクリックすると、Corgeaは次のようなフラットサンプルを送信します:
companyは実際のスキャンイベントと同じ値です。company_idは従来のテストクライアント向けに用意された同じ値です。Slack以外の送信先では、同じフィールドが通常のエンベロープのdata内にネストされて届きます。 想定される結果:
  • SlackからHTTP 2xxが返される(400 invalid_workflow_inputではない)
  • トップレベルのmessage変数をマッピングすると、空でないSlackメッセージが届く
  • 本番スキャンイベントと同じ変数名を使用できる(テスト時にプルリクエスト番号、スキャンリンク、誤検知でない検出結果の件数をマッピング可能)

通知内容

Slack Workflow Builder(Type = Slack + hooks.slack.com/triggers/...)では、次のトップレベルフィールドをマッピングします。 true_positive_countはスキャンUIのセキュリティ件数と一致し、status=false_positivehold_reason=false_positivedetected_by=code-qualityを除外します。summaryprojectscheduled_scan_idsscan_errorscreated_atprocessed_atなどのネストされたフィールドは、Zapier/Otherと配信履歴ではdata内で利用できますが、Slack Workflow Builderではフラット化されません。

互換性に関する注意事項

  • Zapier / その他: は依然として入れ子状のエンベロープ(event_idevent_typetimestampdata)を受け取ります。これには data.messagedata.summary、および dataの下にある新しいトリアージフィールドが含まれます。
  • ネストされたdata.*をマッピングしている既存のSlack Workflow Builder設定は動作しません。data.messageではなくmessageなど、トップレベルのキーに再マッピングします。
  • Corgeaの配信履歴には、SlackがフラットなHTTPボディを受信する場合でも、ネストされたエンベロープが保存されます。
  • Slack Workflow BuilderのWebhookでは、スキャン以外のイベントはフラット化されません。利用可能なSlack変数が必要な場合は、Zapier、Other、またはCustom Bodyを使用してください。

Incoming WebhooksとWorkflow Builderの比較

  • 推奨:Workflow BuilderのURL(hooks.slack.com/triggers/...)とSend a messageステップを使用します。CorgeaはType = Slackに対してscan.*webhook.testをフラット化します。
  • Incoming Webhookshooks.slack.com/services/...):レンダリング後のJSONに、トップレベルで空でない文字列のtextフィールドが含まれるCustom Bodyを追加しない限り、保存時に拒否されます。Slackのフォールバックテキストとしてtextが必要で、任意でblocksも併用できます。{"text": "{{message}}"}が機能するのは、Webhookをscan.startedscan.completedscan.failedscheduled_scan.daily_reportに限定した場合だけです(その他のイベントでは{{message}}が空になります)。有効なボディがないと配信に失敗し、Webhookが自動停止する可能性があります。

既存のSlack統合管理

非推奨のSlack項目に既存の連携がある場合は、View Allを開いてテストまたは削除します。
既存の統合管理のためのすべての Slack 統合モードを見る

カスタマイズオプション

ワークフロービルダーを使えば、以下のことが可能です:
  • メッセージを重大度やプロジェクトごとに異なるチャネルにルーティングする
  • リマインダーやフォローアップの手順を追加する
  • スキャン結果を中心に条件付き論理を構築する(例: true_positive_count が0より大きい時のみ通知)
  • 同じペイロード変数を複数のアクションで再利用する
Zapierなどのサードパーティ製フラット化ツールを使用せず、スケジュールスキャンやフルスキャンからの不要な通知を避けるには、CorgeaのScan Event Filters(プルリクエストのみ、検出結果がある完了済みスキャンのみ)を使用します。

追加リソース