
Voraussetzungen
- Admin-Zugriff in Corgea
- Berechtigung, Workflows in Ihrem Slack-Arbeitsbereich zu erstellen
Einrichten des Slack Workflow Builders
Mit Slack Workflow Builder können Sie die Top-Level-Felder des Corgea-Payloads einer Channel-Nachricht zuordnen.1
Workflow erstellen
- Öffnen Sie in Slack Ihr Arbeitsbereichs-Menü
- Öffnen Sie Tools → Workflow Builder
- Klicken Sie auf Create
- Wählen Sie Webhook als Trigger
- Nennen Sie den Workflow und fahren Sie fort
2
Workflowschritte konfigurieren
- Kopieren Sie die Webhook-URL des Workflow-Builders (
hooks.slack.com/triggers/...) - Fügen Sie im Webhook-Auslöser Schritt Variablen hinzu, deren Namen den obersten Schlüsseln von Corgea entsprechen (Slack erkennt Payload-Felder nicht automatisch). Fügen Sie mindestens hinzu:
message,pull_request_id,scan_url,true_positive_count,scan_id,event_type,project_name,status,branch,company - Fügen Sie den Schritt Send a message hinzu. Corgea veröffentlicht nicht selbstständig in Slack.
- Fügen Sie die Webhook-Variablen über Insert a variable in die Nachricht ein. Direkt eingegebener Text wie
{message}funktioniert nicht.
scan.completed-Text, den Corgea an den Workflow Builder sendet (verschachtelte project, summary und scheduled_scan_ids sind nicht enthalten):scan.failed enthält das flache Payload außerdem das Top-Level-Feld error, sofern vorhanden.Beginnen Sie mit message für eine versandfertige Zusammenfassung, fügen Sie dann pull_request_id, scan_url und true_positive_count für die PR-Triage hinzu.Die message eines abgeschlossenen Scans verwendet die Anzahl der True Positives, nicht die Gesamtzahl der Issues:
Scan completed for {project} (PR #N): X true-positive finding(s) [(Y with fixes)]. View: {scan_url}
Y with fixes zählt nur Fixes für diese True-Positive-Findings.- Beenden und veröffentlichen Sie den Workflow
3
In Corgea konfigurieren
- Öffnen Sie Integrations → Webhooks
- Erstellen Sie einen Webhook
- Setzen Sie Type auf
Slack - Geben Sie einen Namen ein und fügen Sie die Workflow-Builder-URL ein
- Abonnieren Sie
scan.completedund/oderscan.failed, optionalscan.started - Optional unter Scan Event Filters:
- Only pull request / merge request scans — überspringt Scans ohne PR oder MR
- Only completed scans with true-positive findings — überspringt
scan.completed, wenntrue_positive_countgleich 0 ist;scan.failedbleibt unverändert
- Klicken Sie auf Create Webhook und speichern Sie den einmalig angezeigten Secret Key
- Prüfen Sie die Zustellung mit Test
Erwartetes Verhalten beim Webhook-Test
Wenn Sie im Slack Workflow Builder-Ziel auf Test Webhook klicken, sendet Corgea ein einfaches Beispiel wie:company entspricht den Live-Scan-Events. company_id enthält aus Kompatibilitätsgründen denselben Wert für ältere Test-Consumer. Andere Ziele als Slack erhalten dieselben Felder im regulären Envelope unter data.
Erwartetes Ergebnis:
- HTTP 2xx von Slack (nicht 400
invalid_workflow_input) - Eine nicht-leere Slack-Nachricht, wenn Sie die Top-Level-Variable
messagezuordnen - Variablennamen, die mit Produktions-Scan-Ereignissen übereinstimmen (damit Sie PR # / Scan-Link / TP-Anzahl während des Tests zuordnen können)
Benachrichtigungsinhalt
Für Slack Workflow Builder (Type = Slack + hooks.slack.com/triggers/...), ordnen Sie diese obersten Felder zu:
true_positive_count entspricht der Sicherheitszählung der Scan-Benutzeroberfläche: schließt status=false_positive, hold_reason=false_positive und detected_by=code-quality aus. Verschachtelte Felder wie summary, project, scheduled_scan_ids, scan_errors, created_at und processed_at bleiben unter data für Zapier/Andere verfügbar (und in der Lieferhistorie), werden jedoch nicht für den Slack Workflow Builder abgeflacht.
Hinweise zur Kompatibilität
- Zapier / Other: erhalten weiterhin den verschachtelten Envelope (
event_id,event_type,timestamp,data) einschließlichdata.message,data.summaryund der neuen Triage-Felder unterdata. - Bestehende Slack Workflow Builder-Konfigurationen, die verschachtelte
data.*abbildeten, funktionieren nicht – auf oberste Ebenen (message, nichtdata.message) neu zuordnen. - Die Delivery History in Corgea speichert den verschachtelten Envelope, auch wenn Slack einen flachen HTTP-Body erhält.
- Nicht-Scan-Ereignisse auf einem Slack WF-Webhooks werden nicht abgeflacht; behalten Sie diese bei Zapier/Other oder einem benutzerdefinierten Body, wenn Sie nutzbare Slack-Variablen benötigen.
Incoming Webhooks und Workflow Builder
- Empfohlen: Workflow-Builder-URLs (
hooks.slack.com/triggers/...) mit einem Schritt Send a message. Corgea flachtscan.*undwebhook.testfürType = Slackab. - Eingehende Webhooks (
hooks.slack.com/services/...): Werden beim Speichern abgelehnt, es sei denn, Sie fügen einen benutzerdefinierten Body hinzu, dessen gerendertes JSON ein oberstes nicht-leeres Stringfeldtextenthält (Slack-Fallback-Text; optionaleblockssind daneben erlaubt).{"text": "{{message}}"}funktioniert nur, wenn der Webhook aufscan.started/scan.completed/scan.failed/scheduled_scan.daily_reportbeschränkt ist ({{message}}ist für andere Ereignisse leer). Ohne einen gültigen Body schlagen Zustellungen fehl und der Webhook kann automatisch pausieren.
Verwalten bestehender Slack-Integrationen
Wenn Sie noch Integrationen in der veralteten Slack-Zeile haben, öffnen Sie View All, um sie zu testen oder zu löschen:
Anpassungsoptionen
Mit dem Workflow-Builder können Sie:- Nachrichten nach Schweregrad oder Projekt an verschiedene Kanäle weiterleiten
- Erinnerungen oder Folgeschritte hinzufügen
- Bedingte Logik basierend auf Scan-Ergebnissen erstellen (zum Beispiel nur benachrichtigen, wenn
true_positive_countgrößer als 0 ist) - Die gleichen Payload-Variablen über mehrere Aktionen wiederverwenden
