github-content

krmcbride's avatarfrom krmcbride

Fetch GitHub issues, PRs, repo contents, and code using the gh CLI. Use when the user shares GitHub URLs (issues, PRs, repos, source files) or asks about GitHub content. The gh CLI provides complete content that web fetching often misses due to JavaScript rendering.

⭐2stars🔀0forks📁View on GitHub🕐Updated Dec 20, 2025

When & Why to Use This Skill

This Claude skill enables seamless interaction with GitHub repositories using the gh CLI to fetch complete issues, pull requests, and source code. It overcomes the limitations of traditional web fetching by accessing the GitHub API directly, ensuring high-fidelity data retrieval for technical analysis, code reviews, and development workflows.

Use Cases

  • Comprehensive Code Review: Retrieve full PR diffs, comments, and review history to provide detailed feedback or summarize changes.
  • In-depth Issue Analysis: Fetch entire issue discussions and metadata to help troubleshoot bugs, clarify requirements, or track project progress.
  • Repository Exploration & Search: Browse directory structures and search for specific code patterns across a repository to understand codebase architecture.
  • Context-Aware Debugging: Access raw source files and historical PR context to identify the root cause of regressions or logic errors.
namegithub-content
descriptionFetch GitHub issues, PRs, repo contents, and code using the gh CLI. Use when the user shares GitHub URLs (issues, PRs, repos, source files) or asks about GitHub content. The gh CLI provides complete content that web fetching often misses due to JavaScript rendering.

GitHub Content Fetching

When to activate:

  • User pastes a GitHub URL (issue, PR, repo, or source file)
  • User asks about PR comments, reviews, or discussions
  • User wants to browse or search code in a GitHub repository
  • User references a GitHub issue or PR by number and repo

Why use gh CLI instead of web fetching:

GitHub's web interface relies heavily on JavaScript to load comments, reviews, and discussions. Web fetching often retrieves only partial content. The gh CLI accesses the API directly and returns complete data.

Issues

View an issue with all comments:

gh issue view <number> --repo owner/repo --comments

Pull Requests

View a PR with comments and review status:

gh pr view <number> --repo owner/repo --comments

View the diff for a PR:

gh pr diff <number> --repo owner/repo

View PR review comments (inline code comments):

gh api repos/owner/repo/pulls/<number>/comments

List files changed in a PR:

gh pr view <number> --repo owner/repo --json files --jq '.files[].path'

Repository Browsing

List contents of a directory (defaults to root):

gh api repos/owner/repo/contents/path/to/dir

View a specific file's contents:

gh api repos/owner/repo/contents/path/to/file --jq '.content' | base64 -d

Get the full repository tree (all files):

gh api repos/owner/repo/git/trees/main?recursive=1 --jq '.tree[] | select(.type=="blob") | .path'

Replace main with the appropriate branch name if needed.

Search for code within a specific repository:

gh search code "search query" --repo owner/repo

Search with language filter:

gh search code "search query" --repo owner/repo --language python

Search with path filter:

gh search code "search query" --repo owner/repo --path "src/"

View search results with more context:

gh search code "search query" --repo owner/repo --json path,repository,textMatches

Parsing GitHub URLs

Extract owner/repo from common URL patterns:

URL Pattern Example
github.com/owner/repo github.com/zed-industries/zed
github.com/owner/repo/issues/123 Issue #123 in that repo
github.com/owner/repo/pull/456 PR #456 in that repo
github.com/owner/repo/blob/branch/path Source file at path
github.com/owner/repo/tree/branch/path Directory at path

Tips

  • For large outputs, pipe through head -n 100 or use --jq to filter
  • Use --json flag with gh pr view or gh issue view for structured data
  • For private repos, ensure gh auth status shows you're authenticated
  • When browsing files, the API returns base64-encoded content that needs decoding