New to Kestra?
Use blueprints to kickstart your first workflows.
Turn recent GitHub commits into a daily human readable changelog with Mistral in Kestra, and post it to Slack on a schedule with failure alerts.
Commit logs are written for reviewers, not for the rest of the company. This blueprint chains three tasks: io.kestra.plugin.core.http.Request pulls the ten latest commits from the public GitHub API, io.kestra.plugin.mistral.ChatCompletion rewrites them as one plain prose paragraph for a non-technical reader, and a Slack task delivers it. A disabled-by-default schedule makes it a daily digest once you flip it on.
fetch_commits (io.kestra.plugin.core.http.Request) calls https://api.github.com/repos/{owner}/{repo}/commits?per_page=10 with the GitHub JSON Accept header. Public repositories need no token; the response body is available as {{ outputs.fetch_commits.body }}.write_changelog (io.kestra.plugin.mistral.ChatCompletion) sends a SYSTEM message that fixes the style, one paragraph, no hashes, no markdown, no quotation marks, and a USER message carrying the raw commit JSON. The paragraph comes back as {{ outputs.write_changelog.response }}.notify interpolates the paragraph into the Slack payload. The prompt forbids quotation marks and line breaks so the prose stays a safe JSON scalar; if you loosen the style rules, escape the text before interpolating.errors block posts a distinct Slack alert when the fetch or the completion fails.Schedule trigger runs the digest daily at 08:00.The digest is only useful if it arrives every day, which means scheduling, retries on flaky API calls, secrets for the API key and webhook, and a record of exactly which commits produced which paragraph. Kestra provides all of that around three declarative tasks, and the execution history doubles as an archive of every changelog ever posted.
MISTRAL_API_KEY: Mistral API bearer token.SLACK_WEBHOOK_URL: Slack incoming webhook URL.repository at your own repository and set disabled: false on the daily trigger.{{ trigger.date }}.jsonResponseSchema to also extract a structured list of change types for a dashboard.per_page or switch to the releases endpoint for lower commit volume repositories.