basecamp/house-skills

github-activity

Fetch GitHub PRs, reviews, issues, and commits into day-cached JSON atoms.

Zobacz źródło

Jak używać

  1. Skopiuj polecenie instalacji i sprawdź źródła przed instalacją we własnym środowisku agenta.
  2. W oryginale sprawdź wymagane narzędzia, dane dostępowe i obsługiwane środowiska.
  3. Opisz dane wejściowe i oczekiwany rezultat; porównaj wynik ze źródłami.
npx skills add https://github.com/basecamp/house-skills --skill github-activity

Przed rozpoczęciem

  • Instalacja nie obejmuje subskrypcji modelu, limitu API ani uprawnień do plików.
  • Gwiazdki i instalacje pokazują aktywność, a nie niezależny test jakości lub bezpieczeństwa.
Oryginalny dokument Skill

Treść z repozytorium z zachowaniem nagłówków, przykładów, kodu, tabel, linków i obrazów.

GitHub Activity Fetcher

Fetch GitHub activity — PRs authored, PRs reviewed, issues created, commit contributions — into per-day cached JSON atoms at ~/.cache/recap/github/{user}/{YYYY-MM-DD}/activity.json.

Invocation

/recap:github-activity --since 2026-03-23
/recap:github-activity --since 2026-03-23 --until 2026-03-30
/recap:github-activity --user jeremy --org basecamp --since 2026-03-23 --reuse

Contract

  • Idempotent: same input produces same output, safe to re-run
  • Day-cached: one JSON file per user per day
  • `--reuse`: skip fetch if cache exists and is marked complete
  • Rate-limit aware: uses gh api --paginate with built-in backoff

Quick Run

bash
# 1. Validate auth
gh auth status || { echo "Run: gh auth login"; exit 1; }

# 2. Determine date range
SINCE=$(date -d "7 days ago" +%Y-%m-%d)
UNTIL=$(date +%Y-%m-%d)

# 3. Run the fetcher
"$SKILL_DIR/scripts/github-activity.sh" --since "$SINCE" --until "$UNTIL"

# 4. Verify cache
USER=$(gh api user --jq '.login')
ls ~/.cache/recap/github/$USER/
cat ~/.cache/recap/github/$USER/$SINCE/activity.json | jq '.metadata'

Where $SKILL_DIR = directory containing this SKILL.md.

Output Format

Each activity.json contains:

json
{
  "user": "jeremy",
  "date": "2026-03-24",
  "prs_authored": [
    {
      "title": "Add weekly digest skill",
      "html_url": "https://github.com/basecamp/coworker/pull/99",
      "created_at": "2026-03-24T14:30:00Z",
      "repository_url": "https://api.github.com/repos/basecamp/coworker",
      "state": "closed",
      "pull_request": { "merged_at": "2026-03-24T15:00:00Z" }
    }
  ],
  "prs_reviewed": [],
  "issues": [],
  "metadata": {
    "complete": true,
    "counts": { "prs_authored": 1, "prs_reviewed": 0, "issues": 0 }
  }
}

Commit contributions are cached separately as an aggregate at ~/.cache/recap/github/{user}/commits-{since}-{until}.json since GitHub's GraphQL API returns them as a period summary, not per-day.

Arguments

ArgumentRequiredDescription
--sinceYesStart date (YYYY-MM-DD)
--untilNoEnd date (default: today)
--userNoGitHub username (default: authenticated user)
--orgNoFilter to a specific GitHub org
--reuseNoSkip fetch if cache exists and is complete

Cache Structure

~/.cache/recap/github/
  jeremy/
    2026-03-24/activity.json
    2026-03-25/activity.json
    commits-2026-03-23-2026-03-30.json

Prerequisites

  • gh CLI installed and authenticated (gh auth login)
  • jq for JSON parsing

Failure Modes

SymptomCauseFix
"gh: not logged in"Token expiredgh auth login
Empty resultsNo activity in rangeExpected — empty days cached as complete
Rate limit (403)Too many API callsWait ~1hr and retry
>1000 PRsSearch API limitNarrow date range or add --org filter

Powiązane zadania

z tego samego repozytorium

Więcej Skills

Wszystkie Skills