Weekly Heroku deploy-frequency report posted to Slack
Every Monday, get a clear rundown of how often each Heroku app shipped last week, which ones stalled, and which look unstable, posted straight to Slack.
Every Monday at 9am, put together a weekly deploy-health report for our Heroku apps and post it to our engineering team's Slack channel. Run this on a cron schedule, weekly on Monday morning.
Start by calling Heroku's List Apps operation to enumerate every app the connected account can access. For each app, call Heroku's List Releases operation to pull its recent deploy history, and keep the releases from the past seven days, plus enough earlier history to tell when each app last shipped.
For each app, compute its deploy frequency for the week, meaning how many releases went out. Treat rollbacks as an instability signal. A rollback shows up in the release history as a new release whose description indicates it rolled back to an earlier version, so count those separately per app. Flag any app that has not had a new deploy in more than two weeks as stale.
Write it up as a concise, DORA-style deploy-frequency report. Deploy frequency is one of the four DORA metrics, so frame the numbers that way. Rank the apps by deploy count, most active first, and include a short callout of the least active apps and the least stable apps, meaning those with the most rollbacks. Keep it skimmable: a ranked list showing per-app deploy counts and rollback counts plus the stale flags, with a one or two line summary at the top.
Post the finished report to Slack using Slack Bot's Send a Message operation, sending it to our engineering channel. Format it with Slack mrkdwn, for example *bold* section headers, so it reads cleanly in the channel.
Example output
Additional information
What does this prompt do?
- Checks every Heroku app your account can access and counts how many times each one deployed in the past week.
- Ranks your apps by deploy frequency and calls out the least active and least stable ones.
- Flags any app that has not shipped in more than two weeks as stale, so nothing quietly falls behind.
- Posts the finished report to your engineering team's Slack channel every Monday morning.
What do I need to use this?
- A Heroku account with access to the apps you want to track.
- A Slack workspace where the report can be posted.
- A channel for your engineering team to receive the weekly update.
How can I customize it?
- Change the schedule to send it daily, biweekly, or on a different day and time.
- Pick which Slack channel the report is posted to.
- Adjust the thresholds, like how many days without a deploy counts as stale.
Frequently asked questions
What is deploy frequency and why does it matter?
Do I have to count deploys by hand?
What makes an app show up as stale?
How does it decide an app is unstable?
Can I run this on a different schedule?
Related templates
Stop counting Heroku deploys by hand.
Let this workflow turn your release history into a weekly deploy-health report and drop it in Slack automatically.