New to Kestra?
Use blueprints to kickstart your first workflows.
Use Kestra to clone a repo, collect 7 days of Git commits, summarize them with OpenAI, and post a plain-text weekly development report to Slack.
Writing the weekly engineering update by hand is repetitive and easy to skip. This blueprint reads the last seven days of Git history from any repository and branch, uses OpenAI to turn raw commit messages into a clear, plain-text development summary, and posts it to Slack on a fixed schedule. It gives engineering teams consistent visibility into shipped work, combining Git commit summarization, AI text generation, and Slack notifications in one orchestrated pipeline.
io.kestra.plugin.core.trigger.Schedule trigger fires every Friday at 15:00 UTC via the cron 0 15 * * 5.io.kestra.plugin.core.flow.WorkingDirectory task wraps the Git steps so cloned files persist across tasks.io.kestra.plugin.git.Clone checks out the branch input from the repository input (defaults to the public kestra-io/blueprints repo on main).io.kestra.plugin.scripts.shell.Commands, running on a Docker task runner with the bitnami/git:latest image, sets safe.directory, unshallows and fetches the branch, then runs git log --since="7 days ago" to write the commits to commits.txt as an output file.io.kestra.plugin.openai.Responses reads commits.txt with the read() function and prompts the gpt-4o model to produce a plain-text weekly update with no markdown formatting.io.kestra.plugin.slack.notifications.SlackIncomingWebhook posts the generated outputText to Slack via an incoming webhook.Git can log commits, but it cannot schedule the report, call an AI model, and deliver to Slack as one reliable, observable unit of work. Kestra adds an event-driven Schedule trigger, automatic retries on transient clone, network, or API failures, full execution logs and lineage across every step, and a declarative YAML definition you can version-control alongside your code. The whole cron-to-Slack flow lives in one auditable place instead of scattered cron jobs and shell scripts.
gpt-4o model.OPENAI_API_KEY: API key used by the summarize_commits task to call OpenAI.SLACK_WEBHOOK_URL: Slack incoming webhook URL (swap in for the mock URL on the slack task in production).GITHUB_ACCESS_TOKEN: Git password or token, needed only when cloning a private repository.repository and branch inputs to the repo and branch you want to track.slack task with {{ secret('SLACK_WEBHOOK_URL') }}.username and password lines on the clone_repo task.gpt-4o for another model or tune the prompt for a different tone or audience.ForEach task and one summary per repo.git log by author or path to scope the summary to a team or service.