AWS Builder Center
Computah, summarize what these agents did to my repos

Computah, summarize what these agents did to my repos

Using Kiro CLI and GitHub Actions to turn the last 24 hours of repo changes into a scheduled email recap.

Developer Advocate @ AWS
I'm a chronic multitasker, and I'm constantly jumping between different projects throughout the day. If you're anything like me, keeping track of what changed where can get complicated fast. At any given time, I might have multiple AI agents running across different repos.
I wanted a simple way to stay caught up, so I built a workflow that sends me scheduled email summaries of my repo changes. I run mine daily, but you can choose whatever schedule works for you.
The setup is simple. To get started, we'll need three things: a Kiro account, a GitHub account, and a Gmail account.
First, we'll create a new repository on GitHubĀ . If you're curious to see the finished solution, you can look through the kiro-repo-brief repositoryĀ 
Create a new GitHub repository for the Kiro CLI daily digest
Now that the repository is ready, we'll add a simple static site to use as our test project. You can use an existing project instead, or follow along by copying and committing the Version 1 filesĀ . Later, we'll add feature cards in a separate commit so the workflow has a change to summarize.
A few files under .github power the automation. Here's how the repository is organized:
1
2
3
4
5
6
7
8
9
kiro-repo-brief/
ā”œā”€ā”€ .github/
│ ā”œā”€ā”€ workflows/
│ │ └── daily-digest.yml # Runs and coordinates the workflow
│ ā”œā”€ā”€ digest-prompt.md # Tells Kiro how to write the digest
│ └── send_digest.py # Formats and emails the digest
ā”œā”€ā”€ index.html # Version 1 sample page
ā”œā”€ā”€ styles.css # Sample page styling
└── README.md
Let's go over the files inside .github. This folder contains the pieces that power our automation: the workflow definition, the Kiro prompt, and the email script.
We'll start with .github/workflows/daily-digest.yml, the file that tells GitHub when and how to run everything. It uses GitHub Actions, GitHub's built-in automation platform. GitHub Actions can run workflows when something changes in a repo, on a schedule, or when we trigger one manually. If you're curious to learn more, check out the GitHub Actions docsĀ .
The workflow runs every weekday at 9am ET. GitHub cron schedules use UTC, so that becomes 0 13 * * 1-5. workflow_dispatch adds the manual Run workflow button, while test_mode lets us test a brand-new repo without waiting 24 hours.
1
2
3
4
5
6
7
8
9
10
on:
schedule:
- cron: "0 13 * * 1-5" # 9am ET while daylight saving time is active
workflow_dispatch:
inputs:
test_mode:
description: "Include all commits when the repo is less than 24 hours old"
required: true
default: true
type: boolean
We give the workflow read-only access to the repository. We then use fetch-depth: 0 to download the full commit history. GitHub normally checks out only the latest commit, but our workflow needs older commits to find the 24-hour baseline and determine what changed.
1
2
3
4
5
6
7
8
9
10
11
12
permissions:
contents: read

jobs:
digest:
runs-on: ubuntu-latest

steps:
- name: Checkout with full history
uses: actions/checkout@v7
with:
fetch-depth: 0
Git gathers the last 24 hours of changes into three files for Kiro: the commit list, file summary, and full diff. Lockfiles and minified files are excluded to reduce noise.
1
2
3
4
5
6
7
8
9
10
BASE=$(git rev-list -1 --before="24 hours ago" HEAD || true)

git log --pretty="- %h %s (%an)" "$BASE"..HEAD > changes/commits.txt
git diff --stat "$BASE"..HEAD > changes/stat.txt
git diff "$BASE"..HEAD -- . \
':(exclude)package-lock.json' \
':(exclude)yarn.lock' \
':(exclude)*.lock' \
':(exclude)*.min.*' \
> changes/full.diff
Something really neat about Kiro CLI is its headless modeĀ , which lets it run without someone sitting at a terminal.
1
2
3
4
5
6
7
8
- name: Generate digest with Kiro
if: steps.gather.outputs.has_changes == 'true'
env:
KIRO_API_KEY: ${{ secrets.KIRO_API_KEY }}
run: |
kiro-cli chat --no-interactive --trust-tools=fs_read,fs_write \
"$(cat .github/digest-prompt.md)"
test -s digest.md
--no-interactive lets Kiro run inside GitHub Actions, while --trust-tools=fs_read,fs_write limits it to reading and writing files. digest-prompt.mdĀ  controls what Kiro summarizes and how the final output is organized. Mine asks for a short TL;DR, but you can customize it to fit your needs.
Once the digest is ready, the workflow calls send_digest.py, which formats it as HTML and sends it through Gmail SMTP.
1
2
3
4
5
6
7
- name: Email digest
if: steps.gather.outputs.has_changes == 'true'
env:
MAIL_USERNAME: ${{ secrets.MAIL_USERNAME }}
MAIL_APP_PASSWORD: ${{ secrets.MAIL_APP_PASSWORD }}
MAIL_TO: ${{ secrets.MAIL_TO }}
run: python3 .github/send_digest.py digest.md
Now that our GitHub Actions workflow is set up, we need a couple of credentials before we can test it. Let's start with the Kiro API key.
Head over to the Kiro API Keys pageĀ . You should see something similar to the screenshot below. Give the key a name for this project, then click Create key.
Create a Kiro API key for GitHub Actions
You should now have an API key. Hold on to it because we'll use it later to give our repo access to Kiro.
Copy the generated Kiro API key
The next thing we'll need is a Gmail app password so our workflow can send emails from the sender account. For testing purposes, I'm using my personal email as the sender and my work email as the receiver. You can choose any email address as the receiver. Just be responsible 😃
Head over to the Google App Passwords pageĀ . You should see something similar to the screenshot below. Give the app password a name, then click Create.
Create a Gmail app password for the daily digest workflow
Copy the generated app password. We're going to need it in the next step.
Copy the generated 16-character Gmail app password
Now that we have both credentials, let's add them to GitHub.
Head over to your repository and open Settings. In the left sidebar, under Security and quality, expand Secrets and variables, then select Actions. You should land on the Actions secrets and variables page shown below. Under Repository secrets, click New repository secret.
Open GitHub Actions secrets and variables settings
We'll create four repository secrets. Here's what each one is for:
  • KIRO_API_KEY: the Kiro API key we generated
  • MAIL_APP_PASSWORD: the 16-character Gmail app password
  • MAIL_TO: the email address that will receive the digest
  • MAIL_USERNAME: the Gmail account that will send the digest
Once we've added all four, the Repository secrets list should look similar to the screenshot below.
GitHub repository secrets configured for the Kiro daily digest
Now that our sample page, workflow, and credentials are ready, let's make a change for the summarizer to pick up. We'll add some feature cards to the sample page. If you'd like to make the same update I did, take a look at my Version 2 commitĀ .
Once we've committed and pushed the changes, head to the Actions tab and open Daily repo digest. It should have no runs yet.
Run the Daily repo digest workflow manually in GitHub Actions
Open the Run workflow dropdown. Because we're using a brand-new repo for this blog, we'll leave Include all commits when the repo is less than 24 hours old selected. Then click Run workflow.
Let the workflow run for a bit. If all goes well, we should be in for a treat.
Successful Kiro daily digest workflow run in GitHub Actions
The Actions summary gives us a preview of the digest. Now let's check the receiver's inbox to make sure the email arrived.
HTML email showing the Kiro daily GitHub repository digest
We successfully got the email summary šŸ˜Ž. Now, when I wonder what my agents have been doing to my repos, I won't have to dig through every commit. The answer will already be waiting in my inbox.
If you're juggling a few repos of your own, grab the workflow files from kiro-repo-briefĀ  and tweak them to fit how you work.
Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article