Webhook icon
AIAgent icon
GoogleGemini icon
Script icon
Create icon
If icon
SlackIncomingWebhook icon
Log icon

Automated AI Security Vulnerability Triage and GitHub Issue Sync

Triage CVE vulnerability reports with an AI SecOps agent, extract metadata, sync to GitHub issues, and alert Slack with Kestra.

Categories
AICloud

Automate your application security triage pipeline with an AI-powered SecOps agent. This blueprint ingests vulnerability scan reports from CI/CD webhooks (such as Trivy, Snyk, or GitHub Dependabot) or manual inputs, analyzes exploitability vectors, extracts structured metadata and assessed severity, files a tracked GitHub issue with code patches, and notifies on-call teams via Slack.

How it works

  1. A Webhook trigger (io.kestra.plugin.core.trigger.Webhook) accepts incoming scan reports (trigger.body.report), with fallback to manual flow inputs (inputs.vulnerability_report).
  2. The security_agent_analysis task (io.kestra.plugin.ai.agent.AIAgent) analyzes the vulnerability using Google Gemini and produces remediation plans, patches, and verification steps.
  3. The extract_triage_metadata task (io.kestra.plugin.scripts.python.Script) parses the CVE ID and evaluated severity using regular expressions and publishes them as structured Kestra outputs.
  4. The create_github_security_issue task (io.kestra.plugin.github.issues.Create) logs a tracked security advisory issue in the target repository.
  5. The check_severity_level task (io.kestra.plugin.core.flow.If) evaluates the AI-assessed severity: if HIGH or CRITICAL, it triggers an immediate Slack on-call alert with the direct GitHub issue link; otherwise, it logs a routine finding.

What you get

  • Automated CVE and dependency scan triage without manual engineer pre-screening.
  • AI-derived exploitability assessment and ready-to-test code patch snippets.
  • Automatic GitHub issue tracking for engineering accountability.
  • Escalated Slack alerts for critical and high severity findings linking directly to the created GitHub issue.

Who it's for

  • SecOps and application security engineers triaging daily scanner output.
  • DevOps and Platform teams aiming to automate incident response workflows.
  • Engineering teams seeking fast, actionable remediation steps for newly disclosed vulnerabilities.

Why orchestrate this with Kestra

Connecting scanners, LLMs, repository issues, and chat alerts requires coordinating multiple asynchronous APIs with sensitive tokens. Kestra manages the complete flow declaratively, ensuring reliable secret injection, structured output sharing between tasks, and auditable execution histories for every security finding.

Prerequisites

  • A running Kestra instance with the AI, GitHub, Slack, and Python plugins available.
  • A Google Gemini API key with access to Gemini Flash models.
  • A GitHub Personal Access Token with repo issues write permission.
  • A Slack incoming webhook configured for your security channel.

Secrets

  • GEMINI_API_KEY: API key for Google Gemini model provider.
  • GITHUB_TOKEN: GitHub OAuth or Personal Access Token used to create issues.
  • SLACK_WEBHOOK: Incoming Webhook URL for Slack alerts.
  • WEBHOOK_KEY: Secret key used to authenticate incoming webhook scan payloads.

Quick start

  1. Configure the four secrets in your Kestra namespace or instance settings.
  2. Import this flow into your target namespace (e.g., company.security).
  3. Trigger a manual execution with sample CVE text, or configure your CI/CD scanner to POST scan results to Kestra's webhook endpoint.
  4. Verify that the GitHub issue is created and the corresponding Slack alert is received.

How to extend

  • Swap the Google Gemini provider for OpenAI, Mistral, or a self-hosted Ollama instance by updating provider.
  • Add a Jira or Linear task instead of (or alongside) GitHub issues.
  • Connect an automated pull request creation step to apply the generated patch into a staging branch.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.