← ClaudeAtlas

obsidian-pr-synclisted

Fetch open GitHub PRs where the user is an assignee or review-requested reviewer, then write or refresh a "## PRs to review" section in today's Obsidian daily note. Use this skill whenever the user asks to sync PRs to Obsidian, update their daily note with GitHub reviews, check what PRs need attention, or run a morning PR sync routine. Also suitable for scheduled/automated runs — fully idempotent (re-running replaces the section, never appends).
oleg-koval/agent-skills · ★ 2 · AI & Automation · score 74
Install: claude install-skill oleg-koval/agent-skills
# Obsidian PR Sync Fetch all open PRs where the user is assigned or requested as reviewer, filter out noise (bots, drafts, self-authored), and write a clean grouped section into today's daily note. ## Configuration Before running, confirm: - `VAULT_DAILY` — absolute path to the daily notes folder (e.g. `/Users/you/obsidian/vault/Lead/Daily`) - `GH_USERNAME` — GitHub login to exclude self-authored PRs (e.g. `oleg-koval`) - `ORG_PREFIX` — org name to group as "Work" (e.g. `Teifi-Digital`); everything else goes to "Personal" If not specified by the user, infer from context (git config, existing vault files). ## Step 1 — Fetch PRs Run two `gh` queries and merge results, deduplicating by URL: ```bash # Review-requested gh search prs --review-requested=@me --state=open \ --json title,url,repository,author,createdAt,isDraft --limit 50 # Assigned gh search prs --assignee=@me --state=open \ --json title,url,repository,author,createdAt,isDraft --limit 50 ``` Merge both lists, deduplicate by `url`. The union is what needs attention. ## Step 2 — Filter Discard entries where: - `isDraft` is `true` - `author.login` matches any bot pattern: `dependabot`, `copilot`, `renovate`, `github-actions`, or `author.is_bot` is `true` - `author.login` equals `GH_USERNAME` — self-authored PRs are not reviews; they're your own work ## Step 3 — Enrich authors For each unique author login, resolve a display name for the Obsidian wiki-link: ```bash gh api /users/<login> --jq '.name // .log