Unified GitHub Search, Download, and Processing Engine with Autonomous Processing Capabilities
GithubSearchEngine combines intelligent GitHub search with autonomous repository processing through browser automation.
- Repository Search - Find repos by keywords, language, stars, topics
- User Search - Discover developers by location, skills, followers
- Organization Search - Map organizations and their members
- Code Search - Find specific code patterns across GitHub
- Secret Hunting - Detect exposed API keys, tokens, and credentials
- GitHub Repositories - Download, extract, and analyze
- PyPI Packages - Process Python packages
- NPM Packages - Process JavaScript/TypeScript packages
- Rust Crates - Process crates.io packages
- Go Packages - Process Go modules
- Local Directories - Analyze local codebases
- Autonomous Pipeline - Search → Download → Process in one command
- Continuous Mode - Loop through queries automatically
- Stealth Mode - Evade rate limits with headless browser
- Token Rotation - Automatic token management
- Parallel Processing - Concurrent downloads and analysis
# Clone the repository
git clone https://github.com/yourrepo/githubstealth.git
cd githubstealth/OpenStealth
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Install in development mode
pip install -e .
# Install Playwright browsers
playwright install chromium# Basic search
githubstealth search repos "security scanner"
# With filters
githubstealth search repos "vulnerability scanner" -l rust --stars ">100"
# Save results
githubstealth search repos "pentesting tool" -o results.json -f json# Search and process top 10 repos
githubstealth pipeline "security automation" -n 10
# Search only (no processing)
githubstealth pipeline "api gateway" --no-process
# Custom output directory
githubstealth pipeline "cli tool" -o ./my-output# Explore an org and process their repos
githubstealth explore microsoft --max-repos 20
# Explore without processing
githubstealth explore google --no-process# Hunt secrets in an organization
githubstealth hunt uber lyft airbnb --org
# Hunt secrets in user repos
githubstealth hunt someuser --user -o secrets.json# Process a single repo
githubstealth process repo rust-lang/rust
# Process multiple repos
githubstealth process batch rust-lang/rust golang/go python/cpython# Cycle through multiple queries
githubstealth continuous "security tool" "pentesting" "vulnerability" --delay 300Uses GitHub API with token rotation:
# Set tokens (multiple for rotation)
export GITHUB_TOKEN="token1,token2,token3"
# Or add to tokens file
echo "ghp_your_token_here" >> ~/.config/githubstealth/.tokens
githubstealth search repos "query" --mode apiUses headless browser with anti-detection:
githubstealth search repos "query" --mode stealthTries API first, falls back to stealth:
githubstealth search repos "query" --mode autoConfiguration file: ~/.config/githubstealth/config.yaml
search:
max_results: 100
delay_ms: 200
max_concurrent: 5
stealth:
headless: true
browser: chromium
enable_webdriver_evasion: true
enable_cdp_evasion: true
processing:
max_concurrent_downloads: 5
max_files_per_repo: 100
skip_forks: true
min_stars: 0
pipeline:
auto_process: true
process_top_n: 10
continuous: false
loop_delay_seconds: 300
output:
base_dir: ./output
format: txt
include_source_code: truegithubstealth config initgithubstealth config showimport asyncio
from githubstealth import GithubStealthEngine, Config
async def main():
async with GithubStealthEngine(mode="auto") as engine:
# Search for repositories
results = await engine.search_repos(
"security scanner",
language="rust",
stars=">100"
)
print(f"Found {len(results.repositories)} repos")
# Process search results
processed = await engine.process_search_results(results, top_n=5)
for result in processed:
if result.success:
print(f"✓ {result.repo.full_name} -> {result.output_path}")
# Or use the integrated pipeline
pipeline_result = await engine.search_and_process(
"vulnerability scanner",
search_type="repos"
)
asyncio.run(main())async with GithubStealthEngine() as engine:
result = await engine.explore_org(
"microsoft",
process_repos=True,
max_repos=10
)
print(f"Found {len(result['repos'])} repos")async with GithubStealthEngine() as engine:
results = await engine.hunt_secrets(
["uber", "lyft", "airbnb"],
is_org=True,
output_dir=Path("./secrets")
)
print(f"Found {len(results.secret_matches)} potential secrets")| Command | Description |
|---|---|
githubstealth search repos |
Search repositories |
githubstealth search users |
Search users |
githubstealth search orgs |
Search organizations |
githubstealth search code |
Search code |
githubstealth search secrets |
Hunt for secrets |
| Command | Description |
|---|---|
githubstealth process repo |
Process single repository |
githubstealth process batch |
Process multiple repositories |
| Command | Description |
|---|---|
githubstealth pipeline |
Run search → process pipeline |
githubstealth continuous |
Run continuous pipeline loop |
githubstealth explore |
Explore organization |
githubstealth hunt |
Hunt secrets across targets |
| Command | Description |
|---|---|
githubstealth config show |
Display configuration |
githubstealth config init |
Initialize config files |
githubstealth config tokens |
Show token status |
| Command | Description |
|---|---|
githubstealth version |
Show version |
githubstealth status |
Show engine status |
Processed repositories are saved as comprehensive text files:
# owner/repo
**Type:** GITHUB
**Generated:** 2024-01-15T12:00:00 UTC
## Repository Information
- **URL:** https://github.com/owner/repo
- **Stars:** 1234
- **Forks:** 56
- **Primary Language:** Rust
## README
[README content]
## Repository Structure
├── src/
│ ├── main.rs
│ └── lib.rs
├── Cargo.toml
└── README.md
## Language Statistics
| Language | Files |
|----------|-------|
| Rust | 15 |
| TOML | 2 |
## Source Code
### src/main.rs
```rust
fn main() {
println!("Hello, world!");
}
## Architecture
githubstealth/ ├── init.py # Package entry ├── cli.py # CLI interface ├── config.py # Configuration management ├── engine.py # Main engine (unified interface) ├── pipeline.py # Pipeline orchestrator ├── processor.py # Repository processor └── processors/ # Package processors ├── github.py # GitHub repos ├── pypi.py # PyPI packages ├── npm.py # NPM packages ├── crates.py # Rust crates ├── go.py # Go packages └── local.py # Local directories
## Included Modules
- **githubstealth** - Main unified engine
- **github_search** - GitHub search capabilities
- **pystealth** - Anti-detection browser automation
- **webscrape2anki** - Web scraping utilities
## License
MIT License - see LICENSE file for details.
## Disclaimer
This tool is for educational and authorized security research purposes only. Always ensure you have proper authorization before scanning or processing repositories. Respect GitHub's terms of service and rate limits.