A nightly digest of all project activity from the past 24 hours. Status updates grouped by category for a scannable overview.
Get started
Add the daily summary to your repository in under five minutes. No code changes, no app installations.
Use the gh-aw extension to add the daily summary workflow to your repository.
gh aw add-wizard e-straight/heartbeat/daily-summary
You need a personal access token so the workflow can post to your project board. Click the button below to create one with the correct scopes (project and read:org), copy it, then paste it into the command.
Create token (scopes pre-selected)# Set the token you just created
gh aw secrets set GH_AW_PROJECT_GITHUB_TOKEN --value "ghp_your_token_here"
Pick the GitHub project board you want the heartbeat posted to.
# Select your target project
data=$(gh api graphql \
-f query='{ viewer { projectsV2(first: 20) { nodes { title number url } } } }' \
--jq '.data.viewer.projectsV2.nodes[] | "\(.title)\t\(.url)"')
IFS=$'\n'
select label in $(echo "$data" | cut -f1); do
url=$(echo "$data" | sed -n "${REPLY}p" | cut -f2)
repo=$(gh repo view --json nameWithOwner -q .nameWithOwner)
gh variable set GH_AW_TARGET_PROJECT -b "$url" -R "$repo"
break
done
How it works
The workflow runs automatically every night, collecting and organizing the day's activity into a single update.
Every day at midnight Pacific (08:00 UTC), the workflow queries all ProjectV2StatusUpdate objects posted to your project in the last 24 hours.
Updates are automatically categorized into Pull Requests, Issues, and Releases based on their content, making the digest easy to scan.
The composed summary is posted as a new ProjectV2StatusUpdate on your target project board, giving you a single daily overview of all repository activity.
Categories
Each daily summary groups activity into three categories so you can quickly find what matters.
Merges, opens, reviews, review requests, inline comments, and PR closures from the past day.
Issue closures, edits, and new comments summarized with resolution status and assignee context.
New releases with tag, author, and changelog highlights from the past 24 hours.
Schedule
The daily summary runs on a fixed schedule, but you can also trigger it on demand.
The workflow is triggered by a cron schedule: 0 8 * * * — that's every day at midnight Pacific time (08:00 UTC).
It is also available via workflow_dispatch, so you can trigger it manually at any time for testing or on-demand summaries.