Generate a YAML activity log from GitHub activity and optionally commit the updated file back to the repository.
The action can track:
- pull requests opened by a user
- pull requests authored by a user and later merged
- public repositories created by a user or organization
- public releases from repositories owned by a user or organization
name: Update activity log
on:
workflow_dispatch:
schedule:
- cron: "0 6 * * *"
permissions:
contents: write
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: hugo-themes/activity-log-updater@v1.0.0
with:
github-user: hossainemruz
organizations: hugo-themes
lookback-days: 7
activity-limit: 15
include-merged-pr: true
include-releases: true
output-file: data/home/activity-logs.yamlEach activity type is disabled by default. Enable exactly the activity types you want in the generated log:
- uses: hugo-themes/activity-log-updater@v1.0.0
with:
github-user: hossainemruz
organizations: |
hugo-themes
example-org
include-opened-pr: false
include-merged-pr: true
include-repo-created: true
include-releases: true| Input | Default | Description |
|---|---|---|
github-token |
${{ github.token }} |
Token used to read GitHub activity and push commits. |
github-user |
${{ github.repository_owner }} |
User whose authored pull request activity is tracked. |
organizations |
empty | Comma, space, or newline-separated organization logins to include. |
lookback-days |
7 |
Number of days of activity to include. |
activity-limit |
15 |
Maximum number of activities to write. |
include-opened-pr |
false |
Include pull requests opened by github-user. |
include-merged-pr |
false |
Include pull requests authored by github-user that were merged. |
include-repo-created |
false |
Include public repositories created by github-user or listed organizations. |
include-releases |
false |
Include public releases from repositories owned by github-user or listed organizations. |
output-file |
data/home/activity-logs.yaml |
Existing YAML file whose top-level items section will be replaced. |
commit |
true |
Commit the updated output file when it changes. |
push |
true |
Push the commit back to the workflow ref when commit is enabled. |
repository-limit |
100 |
Advanced: repositories inspected per owner. Maximum 1000. |
pull-request-limit |
100 |
Advanced: authored pull requests inspected for github-user. Maximum 1000. |
release-limit |
10 |
Advanced: releases inspected per repository. Maximum 100. |
| Output | Description |
|---|---|
activity-count |
Number of activities written to the YAML file. |
changed |
Whether the output file content changed. |
committed |
Whether the action created a git commit. |
output-file |
Path to the updated YAML file. |
The output file must already exist and contain a top-level items section. The
action replaces only that items section and leaves the rest of the file as-is.
Generated items use Nerdy's activityDate field in YYYY-MM-DD format; Nerdy
formats the display label, groups same-day activity, and highlights the newest
visible activity group.
id: "activity-logs"
type: "activity"
icon: "clock"
title: "Activity Log"
activityLimit: 20
lookbackDays: 15
includePosts: true
postSection: "posts"
items:
- activityDate: 2026-06-24
type: "merged-pr"
info:
number: 42
repo: "https://github.com/hugo-themes/nerdy"
title: "Improve activity section"
url: "https://github.com/hugo-themes/nerdy/pull/42"
- activityDate: 2026-06-23
type: "release"
info:
repo: "https://github.com/hugo-themes/nerdy"
url: "https://github.com/hugo-themes/nerdy/releases/tag/v1.0.0"
version: "v1.0.0"Activity type values are opened-pr, merged-pr, repo-created, and
release.
merged-pr means an authored pull request that has been merged; it does not
mean a pull request merged by that user.
If your site renderer requires a template/partial per activity type, either add templates for the enabled types or disable the unsupported activity inputs.
- At least one
include-*activity input must be set totrue. - The configured
github-usermust exist and be accessible, otherwise the action fails. - Inaccessible organizations are skipped with a warning so one unavailable organization does not block the rest of the log.
- Pull requests and repositories are fetched with GraphQL pagination up to the
configured
pull-request-limitandrepository-limit.
This action uses Node.js 24 and has no runtime npm dependencies.
npm test