Automatically tracks your daily GitHub commits across all repositories and writes a summary to a separate progress-log repository.
Application repo: aryan735/-github-progress-system
Progress log repo: aryan735/engineering-progress-log
Every day (10:30 PM IST via GitHub Actions):
- Lists all your GitHub repositories
- Collects commits made today (IST timezone)
- Builds a markdown summary (productive day or no-activity)
- Commits the summary to
engineering-progress-log.mdin the engineering-progress-log repo only
This repo holds the application code. Your daily logs live in a separate repo so history stays clean and public-friendly.
Productive day:
## 2026-05-27
Status: Productive day
Repositories worked on:
- aryan735/my-api
- aryan735/my-frontend
Total commits: 4
Commits:
- add github sdk client
- parse GitHub push payload safely
- filter today commits
- update progress summaryNo activity:
## 2026-05-28
Status: No GitHub commits today
Repositories worked on:
- none
Total commits: 0
Notes:
- No commits detected across GitHub today.
- Daily progress log updated automatically.cmd/
daily/ # CLI used by GitHub Actions (one-shot job)
server/ # Optional HTTP API for local testing
internal/
config/ # Config loader (file + environment variables)
github/ # GitHub API client, commit pipeline, log sync
handler/ # HTTP route handlers
scheduler/ # Daily job orchestration
.github/workflows/
daily-progress.yml # Scheduled workflow (10:30 PM IST)
git clone https://github.com/aryan735/-github-progress-system.git
cd -github-progress-systemCreate an empty repo on GitHub (e.g. engineering-progress-log) where daily summaries will be written.
- Go to GitHub → Settings → Developer settings → Personal access tokens
- Create a token with
reposcope (needed to read all repos and write the log file)
Copy the example config and add your token:
cp internal/config/config.example.yml internal/config/config.ymlEdit internal/config/config.yml:
github_token: "ghp_your_token_here"
progress_log:
owner: your-github-username
repo: engineering-progress-log
branch: main
path: engineering-progress-log.mdOr use environment variables (recommended for CI):
| Variable | Description | Example |
|---|---|---|
GH_PROGRESS_TOKEN |
GitHub PAT with repo scope |
ghp_... |
PROGRESS_LOG_REPO_URL |
Target repo for daily logs | https://github.com/you/engineering-progress-log |
PROGRESS_LOG_PATH |
Markdown file path in that repo | engineering-progress-log.md |
PROGRESS_LOG_BRANCH |
Branch to commit to | main |
TZ |
Timezone for "today" | Asia/Kolkata |
In this application repo, add:
- Settings → Secrets → Actions → New secret
- Name:
GH_PROGRESS_TOKEN - Value: your PAT
The workflow already sets PROGRESS_LOG_REPO_URL to the engineering progress log repo.
One-shot daily job (same as the workflow):
export GH_PROGRESS_TOKEN=ghp_your_token
export PROGRESS_LOG_REPO_URL=https://github.com/you/engineering-progress-log
go run ./cmd/dailyOptional API server:
go run ./cmd/server| Method | Endpoint | Description |
|---|---|---|
| GET | /health |
Health check |
| GET | /activity/today |
Preview today's commits (JSON) |
| POST | /progress/daily |
Run full pipeline and sync log |
List authenticated user
↓
List all repos (skip progress-log repo)
↓
For each repo → commits since start of today (IST)
↓
Build summary markdown
↓
Create/update engineering-progress-log.md in target repo
↓
Commit: docs: update progress log for YYYY-MM-DD
or docs: add no-activity log for YYYY-MM-DD
The workflow runs automatically at 10:30 PM IST (30 17 * * * UTC).
You can also trigger it manually: Actions → Daily Progress Log → Run workflow.
- Go 1.25+
- GitHub PAT with
reposcope - A separate empty repository for progress logs
Use freely for personal progress tracking. Adapt the progress-log repo URL and file path to your own setup.