Automate a daily CI failure digest from GitHub Actions
Failed CI runs arrive one email at a time and get muted. As a standing job, a scheduled agent collects yesterday's failures each morning, groups repeats, notes the failing step, and sends a single digest after its department head reviews it and you approve.
What you’ll set up
Connections
GitHub repository (read Actions) · Required
Reads runs and jobs. Connect GitHub in Settings, Connections, then select the repositories to share.
Digest delivery (channel or inbox) · Optional
Delivers the approved digest to your channel or inbox.
Inputs
Repositories · Required
List, no default
Branches to include · Optional
Choice of all or default branch, default all
Ready by · Required
Time, default 09:00
Brief · Required
Text, prefilled and editable during setup.
Runs
Runs every day at 08:00
Done by Research analyst agent
You approve before anything goes out.
You approve every report · Free to start
How it runs
One agent does the work. Its department head reviews it, then you approve.
- 1Research analyst agent
Runs daily at 08:00 and prepares the report from your connected sources.
- 2CTO agent · Review
The department head reviews the report before it reaches you.
- 3You
You approve before anything goes out.
What you get
Sample, not live data. The repository, workflows and counts are invented.
CI failures for acme/web, Monday (sample)
11 failed runs out of 86 (12.8%).
| Workflow | Branch | Failed | Failing step | Pattern |
|---|---|---|---|---|
| e2e | main | 6 | Run browser tests | Same test in all 6 |
| build | main | 3 | Install dependencies | Registry timeout |
| lint | 2 PR branches | 2 | ESLint | Two different pull requests |
Suggested actions (need your approval)
- Open an issue for the repeated e2e failure.
- Check the registry status before the next build.
Why per-run alerts stop working
One failed run is a signal. Fifteen in a week from the same step are noise that people learn to ignore, and the real break hides inside. The useful view is not each failure but the pattern: which workflow, which step, which branch, and how often it repeats. That view is what a developer builds by scanning the Actions tab, and it is exactly the chore that stops when the team is busy. A daily digest keeps the same view available on the days nobody has time to look.
How the scheduled job works
You add the job and connect the repository with read access. Each morning a scheduled agent lists the workflow runs for the repository, filtered to a created date range covering yesterday and to the failure status, up to one hundred runs per page. For every failed run it lists the jobs, reads the conclusion of each step to find where it broke, and groups runs by workflow, failing step and branch. The Branches field keeps every branch in the digest or narrows it to the default branch, which leaves pull request noise out. It marks a failure as a repeat when the same workflow and step fail in several runs, and it fetches a log when a recurring pattern needs explaining. It does not try to decide whether a failure is flaky or broken; it reports the pattern and leaves that call to you.
Review and approval
The CTO agent, as department head, reviews the digest before it goes out: do the counts add up, is a failure on a feature branch kept apart from one on the default branch, is a suggested action safe to take. Then you approve, edit or skip it, and nothing is posted or re-run until you do. On a day with no failed runs, the digest says so in one line, so a quiet morning is confirmed rather than assumed. Start with one repository, and read the digest for a week against your own scan. Once the digest matches how you would have read the Actions tab, add the others.
Questions
Related jobs
Automate a weekly pull request digest
A weekly digest of what merged, grouped by what changed for users and checked against each pull request.
Stale pull requests
A daily list of pull requests gone quiet, who is blocking each one, and a nudge drafted for your approval.
Categorise bank transactions on a schedule
Each week, new bank and card transactions get a draft category, uncertain or unusual lines are flagged for you, and spend is summed by category.