Skip to content

Latest commit

 

History

History
189 lines (125 loc) · 4.66 KB

File metadata and controls

189 lines (125 loc) · 4.66 KB

TestSource

TestSource analyzes any GitHub repository, pull request, or issue and instantly tells you:

  • Whether the project is ready for open-source contribution
  • What parts should be tested
  • The exact TestSprite workflow to run

Paste a GitHub link. Get a structured report in seconds.


Demo

🌐 Live App: https://testsource.netlify.app/

Screenshot 2026-03-15 150414

Why TestSource

Open-source contributors often spend significant time figuring out whether a repository is worth contributing to. Important signals like contributor guidelines, issue readiness, project health, and testing setup are scattered across different parts of the repository.

TestSource analyzes a GitHub link and surfaces these signals instantly.

Instead of manually exploring a repository for several minutes, developers get a structured report in seconds that helps them decide:

  • Is this project healthy and active?
  • Is it ready for testing?
  • What parts of the codebase should be tested?
  • What TestSprite workflow should be used?

What It Does

TestSource accepts three types of GitHub URLs and returns a tailored analysis for each.

Repository Analysis

Paste a repository URL (e.g. github.com/vercel/next.js) to receive:

  • Repo Health — open issues, open PRs, recent merges, contributor count, latest release
  • Contributor Readiness — presence of CONTRIBUTING.md, issue/PR templates, Code of Conduct, good-first-issue labels
  • Pre-flight Checklist — README, license, build file, test directory, test framework detection
  • TestSprite Readiness — project type detection, compatibility score, suggested testing mode, target modules
  • Recommended TestSprite Workflow — scope, focus areas, and a ready-to-copy TestSprite prompt
  • Overall VerdictStrongly test-ready, Moderately test-ready, or Needs setup before contribution

Pull Request Analysis

Paste a PR URL (e.g. github.com/pnpm/pnpm/pull/10920) to receive:

  • PR metadata (author, branches, additions/deletions, changed files)
  • Diff scope classification — frontend, backend/API, mixed, or config/docs
  • Changed areas and impacted modules
  • Recommended TestSprite workflow scoped to the diff

Issue Analysis

Paste an issue URL (e.g. github.com/facebook/react/issues/28779) to receive:

  • Issue status and quality signals
  • Work-status detection (assignment, comments, linked PRs)
  • Contributor signals and complexity estimate
  • Recommended next action
  • Issue quality score
Screenshot 2026-03-16 174705

Key User Flow

  1. Paste a GitHub repository, PR, or issue URL into the input field
  2. TestSource detects the link type and calls the appropriate analysis API
  3. A structured report renders with color-coded signals (pass / warn / fail)

Tech Stack

Layer Technology
Frontend Next.js 15 (App Router), TypeScript, Tailwind CSS
API Next.js Route Handlers
Data Source GitHub REST API
Test Execution Node.js microservice (runner-api)
E2E Testing Playwright + TestSprite

Project Structure

app/
  page.tsx
  api/
    analyze/
    analyze-pr/
    analyze-issue/
    testsprite/

components/
  ReportCard.tsx
  PRReportCard.tsx
  IssueReportCard.tsx
  RepoHealthSection.tsx
  ContributorSection.tsx
  PreflightChecklist.tsx
  TestSpriteSection.tsx
  WorkflowSection.tsx
  VerdictBadge.tsx

lib/
  github.ts
  scoring.ts
  types.ts
  jobs.ts

runner-api/
testsprite_tests/

Getting Started

Prerequisites

  • Node.js 18+

(Optional)

  • GitHub Personal Access Token (avoids API rate limits)

Installation

npm install

Environment Variables

Create a .env.local file:

GITHUB_TOKEN=your_github_pat_here
RUNNER_API_URL=http://localhost:4000

Run the Development Server

npm run dev

Open:

http://localhost:3000

TestSprite Tests

The testsprite_tests/ folder contains Playwright tests generated by TestSprite covering:

  • Repository analysis rendering
  • PR and Issue report generation
  • Invalid URL validation
  • 404 handling
  • UI state and tab switching behavior

Tests can run directly with Playwright or through the TestSprite runner.