github-repo-explore
Anleitung zum Durchsuchen und Erkunden externer GitHub-Repositories mit der gh CLI. Verwenden Sie dies, wenn Sie Referenzimplementierungen, Muster oder Codebeispiele benötigen…
npx skills add https://github.com/microsoft/semantic-link-labs --skill github-repo-exploreGitHub Repository Search and Exploration
This skill enables agents to discover, clone, and explore external GitHub repositories when implementing features that may benefit from reference implementations in open-source projects.
When to Use This Skill
Use this skill when you need to:
- Find reference implementations for features you're building
- Explore how other projects implement similar patterns
- Search for code examples across GitHub
- Clone external repos for local exploration and learning
- Find libraries or tools that could inform your implementation
Do NOT use this skill when:
- The task is straightforward and doesn't need external references
- The codebase already has established patterns to follow
- You're working on proprietary code that shouldn't reference external sources
Resource Directory
All external GitHub repositories MUST be stored in:
.agent_cache/resources/
This is the centralized location for all cloned external repositories. Always check here first before searching GitHub.
Directory Structure
.agent_cache/
└── resources/
├── microsoft/
│ ├── semantic-kernel/
│ └── TypeChat/
├── langchain-ai/
│ └── langchain/
└── Significant-Gravitas/
└── AutoGPT/
Repositories are organized by {owner}/{repo} structure to prevent naming conflicts.
Workflow Overview
┌─────────────────────────────────────────────────────────────────┐
│ 1. Check Local Cache (.agent_cache/resources/) │
│ └─ If found → Use local repo for exploration │
└────────────────────────────┬────────────────────────────────────┘
│ Not found
▼
┌─────────────────────────────────────────────────────────────────┐
│ 2. Authenticate with GitHub (if needed) │
│ └─ gh auth login │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 3. Search GitHub for Repositories │
│ └─ gh search repos <query> │
│ └─ gh search code <query> │
└────────────────────────────┬────────────────────────────────────┘
│ Found match
▼
┌───────────────────────────────────────────────────────────────────┐
│ 4. Clone to Cache Directory │
│ └─ gh repo clone owner/repo .agent_cache/resources/owner/repo │
└────────────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 5. Explore Repository │
│ └─ Use gh commands and file reading tools │
└─────────────────────────────────────────────────────────────────┘
Phase 1: Check Local Cache First
Before searching GitHub, always check if a relevant repository is already cloned locally.
List Cached Repositories
# List all cached repositories
ls -la .agent_cache/resources/
# List repos by owner
ls -la .agent_cache/resources/microsoft/
# Search for specific repo by name
find .agent_cache/resources -type d -name "*semantic*" 2>/dev/null
Explore Local Repository
If the repository exists locally, use standard file tools:
# View repository structure
tree -L 2 .agent_cache/resources/microsoft/semantic-kernel/
# Search for patterns in local repo
grep -r "planning" .agent_cache/resources/microsoft/semantic-kernel/python/ --include="*.py" | head -20
# Find specific files
find .agent_cache/resources/microsoft/semantic-kernel -name "*.md" -path "*skills*"
Phase 2: GitHub Authentication
If you need to search or clone from GitHub, ensure authentication is set up.
Check Authentication Status
gh auth status
Interactive Login (if needed)
# Interactive login - user will authenticate via browser
gh auth login
This opens a browser for the user to authenticate with their GitHub account.
Verify Login
# Verify authentication worked
gh auth status
Phase 3: Search GitHub
Use gh search commands to find relevant repositories or code.
Search for Repositories
# Search repos by keywords
gh search repos "agent planning skills" --limit 10
# Search with language filter
gh search repos "agent planning" --language python --limit 10
# Search by owner
gh search repos --owner microsoft "semantic kernel" --limit 10
# Search with JSON output for parsing
gh search repos "agent planning" --json fullName,description,stargazersCount --limit 5
# Sort by stars (most popular)
gh search repos "agent planning" --sort stars --limit 10
# Filter by number of stars
gh search repos "agent framework" --stars ">1000" --limit 10
Search for Code
# Search code across GitHub
gh search code "TaskLedger" --limit 10
# Search code in specific language
gh search code "def plan" --language python --limit 10
# Search code in specific repo
gh search code "planning" --repo microsoft/semantic-kernel --limit 20
# Search code by filename
gh search code "skills" --filename "*.md" --limit 10
# Search with JSON output
gh search code "agent skills" --json path,repository --limit 10
View Repository Details
# View repo README and description
gh repo view microsoft/semantic-kernel
# View repo with specific fields as JSON
gh repo view microsoft/semantic-kernel --json name,description,stargazerCount,defaultBranchRef
# Open repo in browser
gh repo view microsoft/semantic-kernel --web
Phase 4: Clone Repository to Cache
When you find a useful repository, clone it to the cache directory.
Clone Commands
# Create cache directory structure
mkdir -p .agent_cache/resources/{owner}
# Clone repository
gh repo clone microsoft/semantic-kernel .agent_cache/resources/microsoft/semantic-kernel
# Clone with shallow history (faster, uses less disk)
gh repo clone microsoft/semantic-kernel .agent_cache/resources/microsoft/semantic-kernel -- --depth 1
# Clone specific branch
gh repo clone microsoft/semantic-kernel .agent_cache/resources/microsoft/semantic-kernel -- --branch main --depth 1
Update Existing Clone
# Pull latest changes
cd .agent_cache/resources/microsoft/semantic-kernel && git pull && cd -
Phase 5: Explore Repository
Once cloned, use a combination of gh commands and file reading tools.
Repository Structure Exploration
# View directory structure
tree -L 3 .agent_cache/resources/microsoft/semantic-kernel/python/ | head -50
# Find README files
find .agent_cache/resources/microsoft/semantic-kernel -name "README.md" | head -10
# Find Python files related to agents
find .agent_cache/resources/microsoft/semantic-kernel -path "*agents*" -name "*.py" | head -20
Code Search in Local Clone
# Search for specific patterns
grep -r "class.*Agent" .agent_cache/resources/microsoft/semantic-kernel/python --include="*.py" | head -20
# Find function definitions
grep -rn "def plan" .agent_cache/resources/microsoft/semantic-kernel/python --include="*.py"
# Search for imports
grep -r "from.*import" .agent_cache/resources/microsoft/semantic-kernel/python --include="*.py" | grep planning
Read Specific Files
After identifying relevant files with grep/find, use the read_file tool to examine content:
# Example files to read
read_file .agent_cache/resources/microsoft/semantic-kernel/python/semantic_kernel/agents/orchestration/magentic.py
Useful gh Commands Reference
Repository Commands
| Command | Description |
|---|---|
gh repo view <owner/repo> | View repo README and details |
gh repo view <owner/repo> --json <fields> | Get repo metadata as JSON |
gh repo clone <owner/repo> <path> | Clone repo to specific path |
gh repo list <owner> | List repos owned by user/org |
Search Commands
| Command | Description |
|---|---|
gh search repos <query> | Search for repositories |
gh search code <query> | Search within code |
gh search issues <query> | Search issues |
gh search prs <query> | Search pull requests |
Search Filters
| Filter | Example | Description |
|---|---|---|
--language | --language python | Filter by programming language |
--owner | --owner microsoft | Filter by repository owner |
--stars | --stars ">1000" | Filter by star count |
--limit | --limit 20 | Limit number of results |
--sort | --sort stars | Sort results (stars, forks, updated) |
--json | --json fullName,description | Output as JSON |
JSON Fields for Repos
Common fields for --json output:
fullName- owner/reponame- repo name onlydescription- repo descriptionstargazersCount- number of starslanguage- primary languageurl- GitHub URLdefaultBranchRef- main branch name
Example Workflows
Example 1: Find Reference Implementations for REST API Patterns
# 1. Check local cache
ls .agent_cache/resources/ 2>/dev/null || echo "Cache empty"
# 2. Search GitHub for Fabric/Power BI SDK examples
gh search repos "fabric rest api python" --stars ">50" --limit 10
# 3. View promising repo
gh repo view microsoft/semantic-link-labs
# 4. Clone to cache
mkdir -p .agent_cache/resources/microsoft
gh repo clone microsoft/semantic-link-labs .agent_cache/resources/microsoft/semantic-link-labs -- --depth 1
# 5. Explore API patterns
grep -r "_base_api" .agent_cache/resources/microsoft/semantic-link-labs --include="*.py" | head -20
Example 2: Search for Code Patterns
# Search for specific pattern across GitHub
gh search code "FabricRestClient" --language python --limit 5
# Clone repo containing the pattern
gh repo clone owner/repo .agent_cache/resources/owner/repo -- --depth 1
# Find and read the file
grep -rn "FabricRestClient" .agent_cache/resources/owner/repo --include="*.py"
Example 3: Explore Multiple Repos
# Search for agent frameworks
gh search repos "agent framework" --language python --stars ">2000" --json fullName,description,stargazersCount
# Clone top candidates
for repo in "langchain-ai/langchain" "Significant-Gravitas/AutoGPT"; do
owner=$(dirname $repo)
mkdir -p ".agent_cache/resources/$owner"
gh repo clone "$repo" ".agent_cache/resources/$repo" -- --depth 1
done
# Compare implementations
diff <(grep -r "def plan" .agent_cache/resources/langchain-ai/langchain --include="*.py" | head -5) \
<(grep -r "def plan" .agent_cache/resources/Significant-Gravitas/AutoGPT --include="*.py" | head -5)
Best Practices
- Always check local cache first -- Avoid redundant cloning
- Use shallow clones -- Add
-- --depth 1to save disk space and time - Organize by owner/repo -- Prevents naming conflicts
- Use JSON output -- Easier to parse programmatically
- Start with grep/find -- Narrow down before reading full files
- Respect rate limits -- GitHub has API rate limits; cache results
- Clean up periodically -- Remove unused repos from cache
Troubleshooting
Authentication Issues
# Check current auth status
gh auth status
# Re-authenticate
gh auth login
# Use different auth method
gh auth login --with-token < token.txt
Rate Limiting
# Check rate limit status
gh api rate_limit
# If rate limited, wait or use cached repos
Clone Failures
# If clone fails, try with HTTPS explicitly
git clone https://github.com/owner/repo.git .agent_cache/resources/owner/repo
# Or try shallow clone
git clone --depth 1 https://github.com/owner/repo.git .agent_cache/resources/owner/repo