Skip to content

AnthropicBots/IssueScout

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

41 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ IssueScout

Intelligent GitHub Contribution Assistant

Discover meaningful GitHub contribution opportunities through evidence-driven repository analysis, intelligent issue ranking, and explainable pull request prediction.

Python FastAPI React TypeScript Vite License Tests MyPy Ruff GitHub Actions

Backend: βœ… Production Ready Β Β |Β Β  Frontend: βœ… Complete Β Β |Β Β  Documentation: 🚧 Improving


🎬 Demo

See IssueScout in action

IssueScout Demo

Demo workflow

Repository β†’ Scan β†’ Intelligent Analysis β†’ Ranked Issues β†’ PR Prediction β†’ Confidence Score


πŸ“Έ Screenshots

Home Repository Analysis
Issue Details Prediction View

⚑ Quick Start

Get IssueScout running in under 5 minutes.

git clone https://github.com/AnthropicBots/IssueScout.git

cd IssueScout/backend

python -m venv .venv

# Windows
.venv\Scripts\activate

# Linux/macOS
source .venv/bin/activate

pip install -e .

uvicorn issuescout.main:app --reload

Then start the frontend:

cd ../frontend

npm install

npm run dev

🎯 Why Use IssueScout?

Finding meaningful issues in large open-source repositories can be time-consuming.

IssueScout analyzes multiple repository signals to help contributors focus on the most promising opportunities.

Traditional GitHub Search IssueScout
Manual issue browsing βœ… Automated repository analysis
Depends on labels βœ… Multi-signal ranking
No confidence estimation βœ… Confidence scoring
Limited issue context βœ… Explainable predictions
No PR relationship analysis βœ… Issue ↔ Pull Request prediction

πŸš€ Key Highlights

  • πŸ” Analyze any public GitHub repository
  • 🧠 Multi-signal issue and pull request relation engine
  • πŸ“Š Explainable confidence scoring
  • ⚑ FastAPI backend with asynchronous scanning
  • 🎨 Modern React + TypeScript frontend
  • πŸ§ͺ 484+ automated tests
  • πŸ”„ GitHub Actions CI with Ruff & MyPy
  • πŸ“š Comprehensive documentation
  • πŸ—οΈ Clean, modular, production-ready architecture

πŸ“– Overview

IssueScout is an intelligent GitHub contribution assistant that helps developers discover meaningful open-source contribution opportunities through evidence-driven repository analysis.

Instead of relying solely on labels like good first issue or help wanted, IssueScout analyzes repository activity, issue discussions, commits, pull requests, reviews, timelines, and metadata to identify meaningful relationships between issues and development activity.

Its explainable ranking engine provides confidence scores and supporting evidence for every prediction, helping contributors understand why an issue is recommended rather than simply presenting a ranked list.

Built with a modern React frontend and a FastAPI backend, IssueScout is designed to work with any public GitHub repository while remaining fast, transparent, and extensible.


✨ Features

🎨 Frontend

  • Modern React + TypeScript interface
  • Repository search
  • Live repository scan progress
  • Responsive layout
  • Result cards
  • Error and loading states
  • Fast Vite development experience

βš™οΈ Backend

  • FastAPI REST API
  • Asynchronous repository scanning
  • Evidence collection pipeline
  • Repository metadata analysis
  • Issue filtering
  • Confidence scoring
  • JSON response models

🧠 Relation Engine

IssueScout combines multiple independent detectors including:

  • Author similarity
  • Title similarity
  • Body references
  • Timeline references
  • Commit references
  • Commit message references
  • Branch similarity
  • Reviewer similarity
  • File similarity
  • Label similarity
  • Repository metadata similarity

πŸ“Š Prediction Engine

  • Intelligent pull request prediction
  • Explainable results
  • Candidate ranking
  • Confidence scoring

πŸ› οΈ Developer Experience

  • Ruff
  • MyPy
  • Pytest
  • GitHub Actions
  • Pre-commit
  • Dependabot
  • Structured logging
  • Modular architecture

πŸ“Š Example Repository Analysis

Repository:

python/cpython

Issue Selected:

#152997
Add an iconv-based codec engine to support all system locale encodings

IssueScout Analysis:

Metric Result
Repository Scan βœ… Completed
Confidence Score 94%
Related Pull Requests 3 Candidates
Evidence Signals 11
Ranking Top Recommendation

Example Evidence

  • βœ… Title similarity detected
  • βœ… Commit reference found
  • βœ… Timeline activity matched
  • βœ… Author relationship detected
  • βœ… Repository metadata similarity

Every recommendation is accompanied by supporting evidence so contributors can understand why it was ranked.

πŸ—οΈ System Architecture

                  React Frontend
                        β”‚
                        β–Ό
                 FastAPI Backend
                        β”‚
                        β–Ό
                Repository Scanner
                        β”‚
                        β–Ό
              GitHub REST API Client
                        β”‚
                        β–Ό
               Evidence Collection
        β”œβ”€β”€ Timeline Events
        β”œβ”€β”€ Issue Comments
        β”œβ”€β”€ Commit History
        β”œβ”€β”€ Pull Requests
        └── Repository Metadata
                        β”‚
                        β–Ό
                 Relation Engine
        β”œβ”€β”€ Author Similarity
        β”œβ”€β”€ Title Similarity
        β”œβ”€β”€ Timeline References
        β”œβ”€β”€ Commit References
        β”œβ”€β”€ Branch Similarity
        β”œβ”€β”€ File Similarity
        └── Metadata Similarity
                        β”‚
                        β–Ό
               Prediction Engine
                        β”‚
                        β–Ό
                Confidence Scoring
                        β”‚
                        β–Ό
                 Ranked Results API

πŸ“‚ Project Structure

IssueScout/
β”‚
β”œβ”€β”€ .github/
β”‚   β”œβ”€β”€ workflows/
β”‚   β”œβ”€β”€ ISSUE_TEMPLATE/
β”‚   └── dependabot.yml
β”‚
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ issuescout/
β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”œβ”€β”€ core/
β”‚   β”‚   β”œβ”€β”€ evidence/
β”‚   β”‚   β”œβ”€β”€ github/
β”‚   β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ output/
β”‚   β”‚   β”œβ”€β”€ prediction/
β”‚   β”‚   β”œβ”€β”€ presentation/
β”‚   β”‚   β”œβ”€β”€ ranking/
β”‚   β”‚   β”œβ”€β”€ scanner/
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   └── utils/
β”‚   β”‚
β”‚   β”œβ”€β”€ tests/
β”‚   └── pyproject.toml
β”‚
β”œβ”€β”€ docs/
β”œβ”€β”€ frontend/
β”‚
β”œβ”€β”€ CHANGELOG.md
β”œβ”€β”€ CONTRIBUTING.md
β”œβ”€β”€ ROADMAP.md
β”œβ”€β”€ LICENSE
└── README.md

⚑ Installation

Prerequisites

Before getting started, ensure you have:

  • Python 3.12 or later
  • Git
  • A GitHub Personal Access Token (recommended to avoid rate limits)

Clone the Repository

git clone https://github.com/AnthropicBots/IssueScout.git

cd IssueScout

Backend Setup

cd backend

python -m venv .venv

Activate the Virtual Environment

Windows

.venv\Scripts\activate

Linux / macOS

source .venv/bin/activate

Install Backend Dependencies

Install IssueScout in editable mode:

pip install -e .

Install development dependencies:

pip install pytest pytest-cov ruff mypy pre-commit

Enable Git hooks:

pre-commit install

Install Frontend Dependencies

Open another terminal.

cd ../frontend

npm install

βš™οΈ Configuration

Create a .env file inside the backend directory.

GITHUB_TOKEN=your_github_personal_access_token

Environment Variables

Variable Required Description
GITHUB_TOKEN Recommended GitHub Personal Access Token
GITHUB_API Optional GitHub REST API endpoint

▢️ Running the Application

Backend

cd backend

uvicorn issuescout.main:app --reload

Backend API:

http://127.0.0.1:8000

Interactive API Documentation:

http://127.0.0.1:8000/docs

Frontend

cd frontend

npm install

npm run dev

Frontend:

http://localhost:5173

πŸ“š API Documentation

FastAPI automatically generates interactive documentation.

Swagger UI

http://127.0.0.1:8000/docs

ReDoc

http://127.0.0.1:8000/redoc

OpenAPI Schema

http://127.0.0.1:8000/openapi.json

🌐 REST API Endpoints

Method Endpoint Description
GET / Welcome endpoint
GET /health Health check
GET /github Repository information
GET /issues List repository issues
GET /scan/{owner}/{repo} Scan a GitHub repository

πŸ§ͺ Testing

Run the complete test suite:

pytest

Run tests with coverage:

pytest --cov=issuescout

Run a specific test:

pytest tests/github/test_client.py

Run all GitHub-related tests:

pytest tests/github

Current status:

  • βœ… 484 automated tests passing
  • βœ… Ruff linting passing
  • βœ… MyPy static type checking passing
  • βœ… High test coverage
  • βœ… GitHub Actions CI
  • βœ… Production-ready backend

🧹 Code Quality

Lint the project:

ruff check .

Automatically format code:

ruff format .

Run all pre-commit hooks:

pre-commit run --all-files

πŸ”„ Continuous Integration

IssueScout uses GitHub Actions for continuous integration.

Every push and pull request automatically runs:

  • Ruff linting
  • Ruff formatting checks
  • Complete test suite
  • Coverage reporting

Dependabot automatically keeps:

  • Python dependencies updated
  • GitHub Actions updated

πŸ› οΈ Technology Stack

Backend

  • Python 3.12
  • FastAPI
  • Pydantic
  • HTTPX
  • AsyncIO

Frontend

  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS
  • React Router
  • Lucide React

Testing

  • Pytest
  • Pytest-Cov

Code Quality

  • Ruff
  • Pre-commit

Automation

  • GitHub Actions
  • Dependabot

APIs

  • GitHub REST API

πŸ“¦ What Makes IssueScout Different?

Unlike traditional GitHub search tools, IssueScout focuses on understanding repository activity rather than simply filtering issues by labels.

Core Capabilities

  • πŸ” Repository-wide evidence collection
  • 🧠 Multi-signal relation analysis
  • πŸ“ˆ Explainable issue ranking
  • 🎯 Pull request prediction
  • πŸ“Š Confidence scoring
  • ⚑ Asynchronous repository scanning
  • πŸ—οΈ Modular architecture
  • πŸ§ͺ Extensive automated testing
  • πŸ”„ Continuous integration
  • πŸ“š Comprehensive documentation

IssueScout is designed to help contributors spend less time searching and more time contributing.


πŸ“ˆ Project Maturity

IssueScout is actively developed and maintained.

Current project status:

Component Status
Frontend βœ… Complete
Backend βœ… Complete
REST API βœ… Stable
Repository Scanner βœ… Stable
Evidence Collection βœ… Stable
Relation Engine βœ… Stable
Prediction Engine βœ… Stable
Ranking Engine βœ… Stable
Automated Tests βœ… 484 Passing
Ruff βœ… Passing
MyPy βœ… Passing
GitHub Actions βœ… Enabled
Documentation 🚧 Improving

πŸ—ΊοΈ Roadmap

βœ… Completed

  • Modern React frontend
  • FastAPI backend
  • Repository scanner
  • Evidence collection pipeline
  • Relation engine
  • Confidence scoring
  • Ranking engine
  • REST API
  • CLI support
  • Comprehensive automated testing
  • Ruff linting
  • MyPy static type checking
  • GitHub Actions CI

πŸš€ Future Enhancements

  • GitHub GraphQL support
  • AI-assisted issue recommendations
  • Scan history
  • Repository analytics dashboard
  • Browser extension
  • Plugin system
  • Saved repositories
  • User authentication
  • Docker deployment

🀝 Contributing

Contributions are always welcome!

Whether you'd like to:

  • Report a bug
  • Suggest a feature
  • Improve documentation
  • Write tests
  • Refactor existing code
  • Improve performance

your contributions are appreciated.

Please read the project's CONTRIBUTING.md before opening a pull request.

Typical workflow:

  1. Fork the repository.
  2. Create a new branch.
  3. Make your changes.
  4. Run Ruff and the test suite.
  5. Commit your work.
  6. Open a Pull Request.

πŸ§ͺ Development Workflow

Install pre-commit hooks:

pre-commit install

Before committing:

ruff check .

ruff format .

python -m pytest

mypy issuescout

If all checks pass, commit your changes.


πŸ“„ License

This project is licensed under the MIT License.

See the LICENSE file for details.


πŸ™ Acknowledgements

IssueScout is built using several excellent open-source projects.

Special thanks to the communities behind:

  • Python
  • FastAPI
  • Pydantic
  • HTTPX
  • Pytest
  • Ruff
  • GitHub REST API
  • GitHub Actions

Their work makes projects like IssueScout possible.


πŸ‘¨β€πŸ’» Maintainers

IssueScout is maintained by the AnthropicBots organization.

Originally created and developed by Bhuvansh Kataria.

GitHub Organization:

https://github.com/AnthropicBots


⭐ Support the Project

If you find IssueScout useful, consider:

  • ⭐ Starring the repository
  • 🍴 Forking the project
  • πŸ› Reporting bugs
  • πŸ’‘ Suggesting new features
  • 🀝 Contributing code
  • πŸ“’ Sharing the project with others

Every contributionβ€”big or smallβ€”helps improve IssueScout.


πŸš€ Happy Contributing!

Made with ❀️ for the open-source community.

IssueScout β€” Helping developers discover meaningful GitHub contributions.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors