Request icon
OutputValues icon
If icon
ChatCompletion icon
GoogleGemini icon
Set icon
SlackIncomingWebhook icon
Log icon
Schedule icon
Webhook icon

Analyze Upstream Release Breaking Changes with AI and Slack Alerts

Analyze GitHub releases with AI. Detect breaking changes and security fixes, extract actionable migration steps, and dispatch alerts to Slack.

Categories
AICoreInfrastructure

Modern software engineering teams depend on dozens of upstream open-source frameworks, database engines, and software development kits. When new versions are tagged, developers are often confronted with dense, multi-page changelogs containing hundreds of trivial commits alongside critical breaking API modifications or urgent security CVE patches. Manual changelog review is time-consuming and error-prone, frequently resulting in failed builds or production runtime regressions following routine dependency upgrades.

This blueprint provides an automated release advisor that inspects newly published releases from GitHub repositories. It uses Kestra's unified AI plugin with Google Gemini to analyze raw changelogs, classify breaking changes, extract concrete code migration instructions, compute an upgrade risk score, and deliver structured advisory cards directly to Slack. Stateful cursor tracking in Kestra's Key-Value store ensures repositories are only analyzed when new release tags appear.

How it works

  1. fetch_latest_release (io.kestra.plugin.core.http.Request) queries the GitHub REST API to retrieve the latest published release tag and changelog markdown for the target repository.
  2. check_release_seen (io.kestra.plugin.core.output.OutputValues) compares the release tag against Kestra's internal Key-Value store (kv()) to determine whether this tag has already been evaluated.
  3. evaluate_release_status (io.kestra.plugin.core.flow.If) routes execution:
    • If the tag is already recorded and force_analysis: false, log_up_to_date_status confirms the repository is up-to-date and exits cleanly.
    • If a new tag is detected, analyze_release_with_ai (io.kestra.plugin.ai.completion.ChatCompletion) passes the changelog to Google Gemini using a strict JSON schema contract.
  4. Google Gemini parses the changelog and returns a structured JSON payload containing boolean flags for breaking changes and security fixes, an itemized list of migration actions, and a 1-10 risk rating.
  5. evaluate_cursor_persistence (io.kestra.plugin.core.flow.If) saves the processed release tag to the KV store via record_kv_cursor (io.kestra.plugin.core.kv.Set) when dry_run: false.
  6. notify_slack_advisory (io.kestra.plugin.slack.notifications.SlackIncomingWebhook) dispatches a formatted advisory card to Slack highlighting the risk score, breaking changes, and migration checklist.

What you get

  • Automated technical intelligence extracting breaking changes and security fixes from raw changelogs.
  • Actionable migration checklists delivered to engineering teams before initiating package upgrades.
  • Stateful idempotency through Kestra KV store, ensuring zero repetitive spam for previously processed releases.
  • Safe-by-default execution with dry_run: true to test analysis without mutating cursor state.
  • Pure declarative Kestra 2.0 architecture with zero custom container runners or Python dependencies.

Who it's for

  • Software Architects and Tech Leads tracking critical upstream libraries and frameworks.
  • Platform and DevOps Engineers managing dependency updates across fleet microservices.
  • Site Reliability Engineers safeguarding production against unforeseen third-party API deprecations.

Why orchestrate this with Kestra

Building this with ad-hoc cron scripts requires managing state files, handling LLM retries, and configuring external storage. Kestra provides native HTTP client tasks, built-in AI completion with schema validation, native Key-Value storage, and enterprise secrets management in a single declarative YAML workflow.

Pitfalls

  • Token Rate Limits: Unauthenticated GitHub API calls are capped at 60 requests per hour. Always configure GITHUB_TOKEN in Kestra secrets to benefit from 5,000 requests per hour.
  • Massive Changelogs: For repositories with massive release notes spanning thousands of lines, ensure model context limits are respected by using capable models like gemini-3.5-flash.
  • Draft and Prereleases: The GitHub /releases/latest endpoint automatically excludes drafts and prereleases, ensuring only official stable releases trigger advisories.

Prerequisites

  • A GitHub Personal Access Token (GITHUB_TOKEN) with public repository read permissions.
  • A Google Gemini API key (GEMINI_API_KEY) for structured changelog analysis.
  • A Slack incoming webhook URL for team notifications.

Secrets

  • GITHUB_TOKEN: GitHub personal access token for authenticated API requests.
  • GEMINI_API_KEY: API key for Google Gemini model inference.
  • SLACK_WEBHOOK_URL: Slack incoming webhook URL for alert delivery.
  • WEBHOOK_KEY: Secret key for authenticated GitHub webhook event ingestion.

Quick start

  1. Add GITHUB_TOKEN, GEMINI_API_KEY, SLACK_WEBHOOK_URL, and WEBHOOK_KEY to your Kestra namespace secrets.
  2. Deploy this flow and trigger a manual execution with force_analysis: true and dry_run: true to preview the AI analysis on your chosen repository.
  3. Once verified, set dry_run: false to allow the flow to maintain cursor state in the KV store.
  4. Enable the daily_dependency_check schedule trigger, or point a GitHub repository webhook to the github_release_webhook trigger for instant alerts on publish.

How to extend

  • Multi-Repository Fleet Tracking: Wrap this workflow in a parent subflow using io.kestra.plugin.core.flow.Loop to iterate over an organization's entire dependency catalog.
  • GitHub Issue Generation: Add an io.kestra.plugin.github.issues.Create task to automatically open an upgrade planning issue in your core repository when risk scores exceed 7.
  • Jira / Linear Ticketing: Automatically create an engineering task in Jira or Linear when security CVE fixes are identified.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.