Daily Summary

A nightly digest of all project activity from the past 24 hours. Status updates grouped by category for a scannable overview.

Install in three steps

Add the daily summary to your repository in under five minutes. No code changes, no app installations.

1

Install the workflow

Use the gh-aw extension to add the daily summary workflow to your repository.

gh aw add-wizard e-straight/heartbeat/daily-summary
2

Create and set your token

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"
3

Select your project

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

Three steps to your daily digest

The workflow runs automatically every night, collecting and organizing the day's activity into a single update.

Collects Updates

Every day at midnight Pacific (08:00 UTC), the workflow queries all ProjectV2StatusUpdate objects posted to your project in the last 24 hours.

Groups by Category

Updates are automatically categorized into Pull Requests, Issues, and Releases based on their content, making the digest easy to scan.

Posts the Digest

The composed summary is posted as a new ProjectV2StatusUpdate on your target project board, giving you a single daily overview of all repository activity.

What's in the digest

Each daily summary groups activity into three categories so you can quickly find what matters.

Pull Requests

Merges, opens, reviews, review requests, inline comments, and PR closures from the past day.

Issues

Issue closures, edits, and new comments summarized with resolution status and assignee context.

Releases

New releases with tag, author, and changelog highlights from the past 24 hours.

When it runs

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.