Skip to content

Repository files navigation

RepoLens — GitHub Repository Health Analyzer

RepoLens is a production-quality Chrome extension (Manifest V3) that analyzes GitHub repositories directly in the browser. It provides developers, maintainers, and open-source contributors with a concise project health overview, actionable engineering intelligence, risk intelligence, health history trends, and observable security posture.

Status: Version 1.0.0 (Final Portfolio Release)

RepoLens operates 100% on public GitHub REST API endpoints without requiring user authentication, tokens, or backend infrastructure.


Key Features

  • Tri-Score Architecture:
    • Overall Health Score (0–100): Evaluates documentation, CI/CD automation, testing structures, security configuration, and maintenance recency.
    • Repository Risk Score (0–100): Evaluates observable engineering weaknesses, missing lockfiles, ecosystem complexity, and configuration gaps (100 = Lowest Risk).
    • Security Posture Score (0–100): Evaluates observable security controls (SECURITY.md, Dependabot, CodeQL, security workflows) (100 = Strongest Observable Posture).
  • Dependency Intelligence: Identifies dependency manifests and lockfiles across 8 major ecosystems (Node.js, Python, Java, Go, Rust, PHP, Ruby, .NET) and parses package counts safely.
  • Health History & Trend Analysis: Stores up to 30 historical snapshots in local storage (repolens_history_${owner}_${repo}) with score trajectory tracking (IMPROVING, STABLE, DECLINING).
  • Production API & Rate-Limit Resilience: Centralized request manager with in-flight deduplication, max 3 concurrent requests, ETag conditional headers (304 Not Modified), 5-minute storage caching, and API rate-limit state tracking.
  • Accessible & Responsive UX: Dark developer-tool design system, collapsible section progressive disclosure, keyboard accessibility (Enter/Space), and screen-reader accessible attributes (aria-expanded).

Tech Stack & Architecture

  • Core: React 18, TypeScript, Vite, Chrome Extension Manifest V3
  • Styling: Vanilla CSS custom design system (HSL color tokens, dark mode, compact density)
  • API: GitHub REST API (v3 public endpoints)
  • Testing: Vitest (23 test files, 65 unit tests)
  • Code Quality: ESLint, Prettier
Browser Tab (GitHub URL)
        │
        ▼
  urlParser.ts
        │
        ▼
 useRepoHealth Hook
        │
        ├──────────────────────────┐
        ▼                          ▼
cacheService.ts            githubService.ts
 (5-min TTL)                       │
                                   ▼
                           requestManager.ts
                        (Deduplication / Concurrency / ETag)
                                   │
                                   ▼
                            GitHub REST API
                                   │
        ┌──────────────────────────┴──────────────────────────┐
        ▼                                                     ▼
Structure Analyzers                                    Scoring Engine
(Doc, CI/CD, Test, Dep, Risk, Security)           (Health, Risk, Security)
        │                                                     │
        └──────────────────────────┬──────────────────────────┘
                                   ▼
                           historyService.ts
                          (Snapshots & Trends)
                                   │
                                   ▼
                           React Popup UI

Documentation

  • Architecture Guide: Detailed system design, request flow, and Mermaid diagrams.
  • Scoring Methodology: Exact scoring formulas, deduction rules, and level boundaries.
  • Changelog: Complete release history from v0.1.0 to v1.0.0.
  • Contributing Guide: Setup, testing, and PR expectations.

Development Setup & Testing

Installation

git clone https://github.com/Saravanakumar2602/RepoLens.git
cd RepoLens
npm install

Running Local Preview

npm run dev

Running Unit Tests

npm run test

Running Linting & Build

npm run lint
npm run build

Loading the Extension in Chrome

  1. Build the production bundle:
    npm run build
  2. Open Google Chrome and navigate to chrome://extensions/.
  3. Enable Developer mode in top-right.
  4. Click Load unpacked.
  5. Select the dist directory inside the project folder (c:\Saravanakumar G\Projects\RepoLens\dist).
  6. Navigate to any public GitHub repository (e.g., facebook/react) and click RepoLens!

Security & Data Privacy

  • Zero Server Uploads: Repository inspection is executed strictly within the local client browser sandbox. No source code or analytics are sent to external servers.
  • Zero Credentials: No OAuth permissions, personal access tokens, or account logins required.
  • Zero False Security Claims: Un-evaluated security checks (vulnerability scanning, secret content scanning) are explicitly marked as Not evaluated.

Current Scope & Limitations (v1.0.0)

  • Public Repositories Only: Private repositories are intentionally not supported.
  • Public API Rate Limits: Unauthenticated requests are governed by GitHub's public IP rate limits (60 requests/hour).
  • Observable Posture Only: Evaluates observable repository configuration evidence only; does not claim absence of vulnerabilities or secrets.
  • Read-Only: Performs zero write actions (no automated PR creation or issue filing).

About

A browser extension that analyzes GitHub repositories and provides a project health score, engineering insights, and actionable improvement recommendations.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages