Skip to content

AnthropicBots/IssueScout

Repository files navigation

πŸš€ IssueScout

Intelligent GitHub Contribution Assistant

Discover meaningful open-source contribution opportunities through explainable repository analysis, intelligent issue ranking, confidence scoring, and pull request prediction.

Python FastAPI React TypeScript Vite Tailwind CSS License Backend Frontend Tests Coverage MyPy Ruff Build

πŸš€ Production Ready β€’ 🧠 AI Powered β€’ ⚑ FastAPI β€’ βš›οΈ React β€’ πŸ“Š Explainable Predictions


IssueScout is an intelligent GitHub repository analysis platform that helps contributors discover high-quality contribution opportunities by analyzing repository activity, issue discussions, pull requests, commit history, repository intelligence, and multiple relationship signals.

Unlike traditional issue search tools, IssueScout explains why an issue is recommended through evidence-driven confidence scoring rather than relying only on labels such as good first issue or help wanted.


πŸ‘₯ Who Is IssueScout For?

IssueScout is designed for:

  • Open-source contributors looking for meaningful issues beyond repository labels.
  • Project maintainers who want better visibility into issue and pull request relationships.
  • Students and newcomers exploring real-world open-source projects.
  • Engineering teams interested in repository analytics and explainable contribution recommendations.

⚑ Quick Start

Get IssueScout running locally in just a few minutes.

1. Clone the Repository

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

cd IssueScout

Configure the Backend (Optional but Recommended)

Copy the example environment file and configure your GitHub Personal Access Token.

cd backend

cp .env.example .env

Then edit .env and set:

GITHUB_TOKEN=your_personal_access_token

IssueScout works without a token, but authenticated requests provide significantly higher GitHub API rate limits.


2. Start the Backend

cd backend

python -m venv .venv

# Windows
.venv\Scripts\activate

# Linux / macOS
source .venv/bin/activate

pip install -e .

uvicorn issuescout.main:app --reload

Backend:

http://127.0.0.1:8000

Swagger:

http://127.0.0.1:8000/docs

3. Start the Frontend

cd frontend

npm install

npm run dev

Frontend:

http://localhost:5173

🎬 Demo

Repository β†’ Analysis β†’ Prediction β†’ Confidence β†’ Contribution

IssueScout Demo

IssueScout performs the following workflow automatically:

Repository
      β”‚
      β–Ό
Fetch Repository Information
      β”‚
      β–Ό
Fetch Issues
      β”‚
      β–Ό
Fetch Pull Requests
      β”‚
      β–Ό
Collect Repository Intelligence
      β”‚
      β–Ό
Relationship Detection
      β”‚
      β–Ό
Evidence Collection
      β”‚
      β–Ό
Confidence Scoring
      β”‚
      β–Ό
Issue Ranking
      β”‚
      β–Ό
Interactive Dashboard

πŸ“Έ Screenshots

🏠 Landing Page


πŸ” Repository Scanner


πŸ“Š Repository Dashboard


πŸ“‘ Issue Intelligence


🎯 Key Highlights

  • πŸ” Analyze any public GitHub repository
  • 🧠 Multi-signal relationship detection engine
  • πŸ“ˆ Explainable confidence scoring
  • 🎯 Pull request prediction
  • πŸ“Š Repository intelligence dashboard
  • ⚑ High-performance FastAPI backend
  • 🎨 Modern React + TypeScript frontend
  • πŸ“± Fully responsive interface
  • πŸ§ͺ 620 automated backend tests
  • πŸ“ˆ 94% backend test coverage
  • βœ… Production-ready architecture
  • πŸ“š Comprehensive documentation
  • πŸ”„ Continuous integration support

🎯 Why IssueScout?

Finding meaningful issues in large open-source repositories is difficult.

Traditional issue discovery relies heavily on labels like:

  • good first issue
  • help wanted
  • documentation
  • enhancement

Unfortunately these labels often become outdated, incomplete, or inconsistent across repositories.

IssueScout instead analyzes actual repository activity.

It combines repository intelligence, issue discussions, commit history, pull requests, review activity, timelines, metadata, and relationship signals to determine which issues are genuinely active and most likely connected to ongoing development.

Instead of simply telling contributors what to work on, IssueScout explains why an issue is recommended.


πŸ“– Overview

IssueScout is an intelligent GitHub contribution assistant designed to improve how contributors discover work in open-source projects.

The backend continuously gathers repository intelligence from the GitHub REST API and combines multiple independent analyzers to understand relationships between issues and pull requests.

Each recommendation is accompanied by confidence scores and detailed evidence, making the prediction process transparent and explainable rather than a black-box ranking system.

The frontend presents this information through a modern analytics dashboard that allows contributors to quickly evaluate repositories, inspect issues, understand prediction confidence, and review related pull requests.

IssueScout was designed with three primary goals:

  • Help contributors find meaningful work faster.
  • Reduce manual repository exploration.
  • Provide explainable recommendations backed by evidence.

✨ Features

🎨 Modern Frontend

  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS
  • React Query
  • React Router
  • Premium responsive interface
  • Interactive repository dashboard
  • Issue detail analytics
  • Confidence visualizations
  • Loading, error, and empty states
  • Mobile-friendly design

βš™οΈ FastAPI Backend

  • High-performance REST API
  • Asynchronous repository scanning
  • Dependency injection architecture
  • Repository intelligence collection
  • Candidate pull request discovery
  • Resolution analysis
  • Confidence calculation
  • Ranking engine
  • CLI support
  • Production-ready architecture

🧠 Intelligence Engine

IssueScout analyzes numerous repository signals including:

  • Repository metadata
  • Issue body
  • Issue comments
  • Timeline events
  • Commit history
  • Pull requests
  • Pull request reviews
  • Changed files
  • Repository branches
  • Labels
  • Contributors
  • Merge status
  • Discussion intelligence

πŸ” Relationship Detection

Multiple analyzers work together to detect issue ↔ pull request relationships.

Current analyzers include:

  • Title similarity
  • Body similarity
  • Author similarity
  • Comment references
  • Timeline references
  • Commit references
  • Branch similarity
  • Changed file similarity
  • Label similarity
  • Merge detection
  • Review detection
  • Repository intelligence

πŸ“ˆ Prediction Engine

IssueScout produces explainable predictions through:

  • Candidate discovery
  • Evidence collection
  • Confidence scoring
  • Issue ranking
  • Prediction summaries
  • Recommendation generation

Every prediction includes supporting evidence so contributors understand exactly why an issue received its score.


πŸ—οΈ System Architecture

                     React Frontend
                            β”‚
                            β–Ό
                 React Query + Router
                            β”‚
                            β–Ό
                    FastAPI REST API
                            β”‚
                            β–Ό
                 Application Services
                            β”‚
                            β–Ό
                   Repository Scanner
                            β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β–Ό                   β–Ό                   β–Ό
 Repository Data      Pull Requests      GitHub Metadata
        β”‚                   β”‚                   β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β–Ό
                Repository Intelligence
                            β”‚
                            β–Ό
                 Candidate Discovery
                            β”‚
                            β–Ό
                 Relationship Engine
        β”œβ”€β”€ Title Analyzer
        β”œβ”€β”€ Body Analyzer
        β”œβ”€β”€ Timeline Analyzer
        β”œβ”€β”€ Commit Analyzer
        β”œβ”€β”€ Review Analyzer
        β”œβ”€β”€ Metadata Analyzer
        └── Discussion Analyzer
                            β”‚
                            β–Ό
                  Evidence Collection
                            β”‚
                            β–Ό
                  Confidence Calculator
                            β”‚
                            β–Ό
                     Ranking Engine
                            β”‚
                            β–Ό
                    Prediction Results
                            β”‚
                            β–Ό
                Interactive Web Dashboard

πŸ“‚ Project Structure

IssueScout
β”‚
β”œβ”€β”€ backend
β”‚   β”œβ”€β”€ issuescout
β”‚   β”‚   β”œβ”€β”€ api
β”‚   β”‚   β”œβ”€β”€ application
β”‚   β”‚   β”œβ”€β”€ cli
β”‚   β”‚   β”œβ”€β”€ github
β”‚   β”‚   β”œβ”€β”€ intelligence
β”‚   β”‚   β”œβ”€β”€ models
β”‚   β”‚   β”œβ”€β”€ prediction
β”‚   β”‚   β”œβ”€β”€ ranking
β”‚   β”‚   β”œβ”€β”€ scanner
β”‚   β”‚   β”œβ”€β”€ services
β”‚   β”‚   └── utils
β”‚   β”‚
β”‚   └── tests
β”‚
β”œβ”€β”€ frontend
β”‚   β”œβ”€β”€ src
β”‚   β”œβ”€β”€ public
β”‚   └── dist
β”‚
β”œβ”€β”€ docs
β”‚
β”œβ”€β”€ CHANGELOG.md
β”œβ”€β”€ CONTRIBUTING.md
β”œβ”€β”€ ROADMAP.md
β”œβ”€β”€ LICENSE
└── README.md

πŸ”§ Advanced Setup

Requirements

Before installing IssueScout, ensure your system has:

Requirement Version
Python 3.12+
Node.js 20+
npm 10+
Git Latest
GitHub Personal Access Token Recommended

πŸ“¦ Clone Repository

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

cd IssueScout

πŸ–₯️ Backend Installation

Create a virtual environment.

cd backend

python -m venv .venv

Activate Environment

Windows

.venv\Scripts\activate

Linux / macOS

source .venv/bin/activate

Install Backend

pip install -e .

Install Development Tools

pip install \
pytest \
pytest-cov \
ruff \
mypy \
pre-commit

Enable Git Hooks

pre-commit install

🌐 Frontend Installation

Open another terminal.

cd frontend

npm install

Start Development Server

npm run dev

βš™οΈ Configuration

IssueScout works without authentication but using a GitHub Personal Access Token is strongly recommended to avoid GitHub rate limits.

Create a file named:

backend/.env

Example:

GITHUB_TOKEN=your_personal_access_token

Environment Variables

Variable Required Description
GITHUB_TOKEN Recommended GitHub Personal Access Token
GITHUB_API Optional GitHub API endpoint
LOG_LEVEL Optional Logging level

▢️ Running After Installation

Backend

cd backend

uvicorn issuescout.main:app --reload

Available at:

http://127.0.0.1:8000

Swagger UI:

http://127.0.0.1:8000/docs

ReDoc:

http://127.0.0.1:8000/redoc

Frontend

cd frontend

npm run dev

Available at:

http://localhost:5173

πŸš€ Production Build

Backend

uvicorn issuescout.main:app

Frontend

npm run build

Preview production build:

npm run preview

πŸ“ Project Configuration

Backend Structure

backend/
    issuescout/
    tests/
    pyproject.toml

Frontend Structure

frontend/
    src/
    public/
    package.json

πŸ§ͺ Development Commands

Backend

Run tests

pytest

Coverage

pytest --cov=issuescout

Lint

ruff check .

Format

ruff format .

Type Checking

mypy issuescout

Frontend

Development

npm run dev

Lint

npm run lint

Production Build

npm run build

Preview Build

npm run preview

πŸ’‘ Typical Development Workflow

Fork Repository
        β”‚
        β–Ό
Clone Repository
        β”‚
        β–Ό
Create Feature Branch
        β”‚
        β–Ό
Implement Changes
        β”‚
        β–Ό
Run Ruff
        β”‚
        β–Ό
Run MyPy
        β”‚
        β–Ό
Run Tests
        β”‚
        β–Ό
Run Frontend Lint
        β”‚
        β–Ό
Run Frontend Build
        β”‚
        β–Ό
Commit Changes
        β”‚
        β–Ό
Open Pull Request

πŸ“š API Documentation

IssueScout exposes a modern REST API built with FastAPI.

Interactive documentation is generated automatically using the OpenAPI specification.

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

Repository

Method Endpoint Description
GET /github/{owner}/{repo} Repository information

Issues

Method Endpoint Description
GET /issues/{owner}/{repo} Fetch repository issues

Scanner

Method Endpoint Description
GET /scan/{owner}/{repo} Scan repository
GET /scan/jobs Active scan jobs
GET /scan/jobs/stats Scanner statistics

Health

Method Endpoint Description
GET / Welcome endpoint
GET /health Health status

πŸ–₯️ Command Line Interface

IssueScout includes a command-line interface for development and repository analysis.

Available commands include:

issuescout scan
issuescout evaluate
issuescout dataset
issuescout version

πŸ§ͺ Testing

IssueScout includes a comprehensive automated backend test suite.

Current Status

Metric Status
Backend Tests βœ… 620 Passing
Backend Coverage βœ… 94%
Ruff βœ… Passing
MyPy βœ… Passing
Frontend ESLint βœ… Passing
Frontend Production Build βœ… Passing

Run All Tests

pytest

Coverage Report

pytest --cov=issuescout

Specific Test

pytest tests/scanner/test_engine.py

Entire Test Directory

pytest tests

πŸ“ˆ Test Coverage

Current backend coverage:

94%

Coverage includes:

  • API
  • Scanner
  • Repository Fetcher
  • Prediction Engine
  • Confidence Calculator
  • Candidate Discovery
  • Resolution Analysis
  • Evidence Collection
  • Intelligence Collectors
  • Ranking
  • CLI
  • Application Services

🧹 Code Quality

IssueScout follows strict quality standards.

Ruff

Lint the backend:

ruff check .

Format the backend:

ruff format .

MyPy

Static type checking:

mypy issuescout

Frontend

Lint:

npm run lint

Build:

npm run build

πŸ”„ Continuous Integration

Every pull request is automatically validated.

Backend validation includes:

  • Ruff
  • Ruff Formatting
  • MyPy
  • Pytest
  • Coverage

Frontend validation includes:

  • ESLint
  • TypeScript Compilation
  • Production Build

This ensures every change merged into the project satisfies the same quality standards as the main branch.


πŸ› οΈ Technology Stack

Backend

  • Python 3.12
  • FastAPI
  • Pydantic
  • HTTPX
  • AsyncIO

Frontend

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

Testing

  • Pytest
  • Pytest-Cov

Code Quality

  • Ruff
  • MyPy
  • ESLint

Automation

  • GitHub Actions
  • Dependabot
  • Pre-commit

Development Tools

  • Pre-commit
  • GitHub Actions
  • MyPy
  • Ruff
  • ESLint

External APIs

  • GitHub REST API

πŸ“Š Project Statistics

Category Value
Backend Tests 620
Backend Coverage 94%
Python Version 3.12
Frontend React 19
Backend FastAPI
Build Status Passing
Type Checking Passing
Production Build Passing

πŸ† Quality Assurance

IssueScout has completed the following quality verification:

  • βœ… Backend feature complete
  • βœ… Frontend feature complete
  • βœ… Production-ready architecture
  • βœ… 620 automated backend tests
  • βœ… 94% backend test coverage
  • βœ… Ruff clean
  • βœ… Ruff formatted
  • βœ… MyPy clean
  • βœ… Frontend ESLint passing
  • βœ… Frontend production build passing
  • βœ… Comprehensive documentation
  • βœ… Production-ready release

🌟 Why IssueScout?

Most GitHub contribution tools focus on filtering issues using labels such as good first issue or help wanted.

IssueScout goes much further.

Instead of relying on labels alone, it analyzes real repository activity to understand the relationship between issues and ongoing development.

Every recommendation is supported by evidence and confidence scoring, helping contributors make informed decisions before starting work.


πŸš€ Core Capabilities

  • πŸ” Intelligent repository scanning
  • 🧠 Multi-signal relationship detection
  • πŸ“ˆ Explainable confidence scoring
  • 🎯 Pull request prediction
  • πŸ“Š Repository intelligence
  • ⚑ High-performance asynchronous scanning
  • πŸ“± Modern responsive dashboard
  • πŸ§ͺ Extensive automated testing
  • πŸ—οΈ Clean modular architecture
  • πŸ“š Comprehensive documentation

πŸ“ˆ Project Status

IssueScout is feature complete for its planned v1.0 release and is undergoing final quality polishing before release.

Component Status
Backend βœ… Production Ready
Frontend βœ… Production Ready
REST API βœ… Stable
CLI βœ… Stable
Repository Scanner βœ… Stable
Candidate Discovery βœ… Stable
Relationship Engine βœ… Stable
Prediction Engine βœ… Stable
Confidence Calculator βœ… Stable
Ranking Engine βœ… Stable
Documentation βœ… Complete
Backend Tests βœ… 620 Passing
Backend Coverage βœ… 94%
Ruff βœ… Passing
MyPy βœ… Passing
ESLint βœ… Passing
Production Build βœ… Passing

πŸ—ΊοΈ Roadmap

IssueScout v1.0.0 is feature complete.

Future releases will focus on expanding functionality rather than completing existing features.

v1.1

  • Repository comparison
  • Saved scans
  • Repository bookmarking
  • Better filtering
  • Export scan results
  • Dark mode
  • Keyboard shortcuts

v1.2

  • GitHub GraphQL integration
  • Incremental repository scanning
  • Historical repository analytics
  • Improved recommendation engine
  • Performance optimizations

v2.0

  • User authentication
  • Organization dashboards
  • Scan history
  • Team workspaces
  • Notifications
  • AI-assisted recommendations
  • Docker deployment
  • Cloud-hosted IssueScout

🀝 Contributing

Contributions of every size are welcome.

Whether you're fixing bugs, improving documentation, adding tests, enhancing the frontend, or implementing new features, we'd love your help.

Please read CONTRIBUTING.md before opening a pull request.

Typical Workflow

Fork Repository
      β”‚
      β–Ό
Create Feature Branch
      β”‚
      β–Ό
Implement Changes
      β”‚
      β–Ό
Run Backend Checks
      β”‚
      β–Ό
Run Frontend Checks
      β”‚
      β–Ό
Commit Changes
      β”‚
      β–Ό
Open Pull Request

πŸ§ͺ Development Checklist

Before submitting a pull request, verify the following.

Backend

ruff check .

ruff format .

mypy issuescout

pytest

Frontend

npm run lint

npm run build

All checks should pass before opening a pull request.


πŸ“š Documentation

The following documents provide a deeper understanding of IssueScout's architecture and implementation:

  • docs/API.md β€” REST API reference.
  • docs/ARCHITECTURE.md β€” Overall system architecture.
  • docs/BACKEND.md β€” Backend implementation details.
  • docs/SCANNER.md β€” Scanner pipeline and relation engine.

Additional project resources include:

  • CONTRIBUTING.md
  • CHANGELOG.md
  • ROADMAP.md

πŸ“„ License

IssueScout is licensed under the MIT License.

See the LICENSE file for complete license information.


πŸ™ Acknowledgements

IssueScout would not have been possible without the incredible open-source ecosystem.

Special thanks to the communities behind:

  • Python
  • FastAPI
  • React
  • TypeScript
  • Tailwind CSS
  • Vite
  • Pydantic
  • HTTPX
  • Pytest
  • Ruff
  • GitHub REST API
  • GitHub Actions

Thank you to everyone who contributes to open source.


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

IssueScout is maintained by the AnthropicBots organization.

Project Lead

Bhuvansh Kataria

GitHub: https://github.com/BHUVANSH855

Organization: https://github.com/AnthropicBots


❀️ Support

If you find IssueScout useful, consider supporting the project.

You can help by:

  • ⭐ Starring the repository
  • 🍴 Forking the project
  • πŸ› Reporting bugs
  • πŸ’‘ Suggesting features
  • πŸ“– Improving documentation
  • πŸ§ͺ Adding tests
  • πŸš€ Opening pull requests
  • πŸ“’ Sharing the project

Every contribution helps make IssueScout better for the entire open-source community.


πŸš€ IssueScout v1.0.0

Intelligent GitHub Repository Analysis

Explainable β€’ Evidence Driven β€’ Production Ready

Made with ❀️ for the Open Source Community.

If this project helped you, consider leaving a ⭐ on GitHub.

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