MIT License

项目介绍

0xarchit/github-profile-analyzer 是一个托管在 GitHub 上的开源项目,主要使用 TypeScript 编写,采用 MIT License 许可证,目前获得 1.0k 个 Star、9 次 Fork。

仓库全名
0xarchit/github-profile-analyzer
开源许可证
MIT License
Star 数
1.0k
Fork 数
9
未关闭 Issue
10

README 摘要

GitHub Profile Analyzer A deterministic GitHub profile analyzer that scores developer profiles across 14 weighted categories, detects authenticity anomalies, and produces fully explainable reports. No black boxes: every score shows exactly which factors earned or lost points, and every claim links back to real GitHub data. Try it live  ·  Repository Why this project is different Most profile analyzers…

完整内容见 GitHub 原始 README 或本页 。

常见问题

github-profile-analyzer 用什么语言开发?

主要使用 TypeScript 编写,采用 MIT License 许可证,目前有 1.0k 个 Star。

github-profile-analyzer 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 github-profile-analyzer 的源码?

可以直接克隆仓库:git clone https://github.com/0xarchit/github-profile-analyzer.git,默认分支为 main;安装与运行步骤见仓库 README。

github-profile-analyzer 最近还在维护吗?

仓库最近一次更新为 10月2日,当前有 10 个未关闭 Issue;Star 数为 1.0k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

AI Powered Github Profile analyzer or analyser and reviewer tool. Gives review based on first 100 repos and only includes those forks in which user has contributions to avoid fake results | #1 Profile analyzer tool on GitHub | #underActiveMaintainance [suffering neon db failures]

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

语言占比

CSS
JavaScript
TypeScript

README

GitHub Profile Analyzer

GitHub Profile Analyzer

A deterministic GitHub profile analyzer that scores developer profiles across 14 weighted categories, detects authenticity anomalies, and produces fully explainable reports. No black boxes: every score shows exactly which factors earned or lost points, and every claim links back to real GitHub data.

Try it live  ·  Repository

Stars Forks Issues MIT License Next.js 16

Why this project is different

Most profile analyzers either show raw numbers with no context or hide behind an LLM that invents a different story on every run. This project takes a third path:

  • Deterministic by design. The same profile always produces the same scores. 43 sampled rules evaluate account age, contribution patterns, repository quality, release discipline, security posture, community health, and more.
  • Explainable scores. Hovering any score reveals its factor breakdown: what was measured, how many repositories were sampled, points earned versus possible, and concrete remediation steps when a score is low.
  • Anomaly detection without accusations. 45 signals flag statistical patterns such as burst contributions, self-merge ratios, fork abandonment, and commit monotony. Flags are presented as context with caveats, never as verdicts.
  • Honest about limits. Rules that cannot be computed truthfully from public data (branch protection, follower history) report themselves as unavailable instead of guessing.

How the engine works

A single deep-dive pass collects everything in about 30 GitHub API requests, well inside the Cloudflare Workers subrequest budget:

  1. One batched GraphQL query loads the profile core: contribution calendar, social graph, gists, pinned items, and two years of contribution history.
  2. Repository discovery runs through paginated GraphQL, then top repositories are enriched in batches of four with languages, releases, community files, dependency manifests, CI status, and per-commit statistics including additions, deletions, and signature validity.
  3. Weekly activity, punch cards, participation splits, contributor rankings, and churn series are derived from already-fetched data instead of extra REST calls.
  4. Search aggregators compute global counters such as external PR acceptance rate, discussion answers, and issue resonance in one request.
  5. Community health profiles and Actions run histories add authoritative documentation coverage and live CI pass rates for the top five repositories.

All results stream to the dashboard over Server-Sent Events so you can watch each phase complete.

Features

Analysis

  • Deterministic scoring across 14 categories with published weights
  • 38 baseline metrics, from GPG signature ratio to release cadence
  • 45 anomaly signals with sampling caveats and confidence ratings
  • Year-over-year momentum, work rhythm, archetype, and portfolio interpretation

Transparency

  • Per-factor score breakdowns with earned-versus-max bars
  • Remediation hints attached to low scores
  • Sampling windows and data-source labels on every metric

Platform

  • GitHub OAuth login plus verified-star guest access
  • Server-side rate limiting and encrypted session handling
  • Snapshot history with side-by-side comparison
  • PDF report export
  • Responsive retro-styled dashboard with dark mode

Tech Stack

  • Framework: Next.js 16 with React 19 (App Router)
  • Language: TypeScript
  • Database: Neon serverless PostgreSQL
  • Caching and rate limiting: Upstash Redis
  • Sessions: JWT via jose, AES-256-GCM encrypted tokens
  • PDF generation: react-pdf
  • Styling: Tailwind CSS v4
  • Validation: Zod
  • Testing: Vitest

Getting Started

Prerequisites

  • Node.js 22+ (npm)
  • A GitHub OAuth application (client id and secret)
  • GitHub personal access tokens for the analysis pool
  • Neon PostgreSQL database
  • Upstash Redis instance

Installation

git clone https://github.com/0xarchit/github-profile-analyzer.git
cd github-profile-analyzer
npm install

Environment Variables

Create a .env.local file:

Variable Purpose
GITHUB_TOKENS Comma-separated token pool used for analysis
GITHUB_PAT_TOKENS Optional secondary PAT pool
DATABASE_WRITE Neon PostgreSQL connection string
GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET OAuth application credentials
JWT_SECRET Session signing key
ENCRYPTION_SECRET AES-256-GCM encryption key
UPSTASH_URL / UPSTASH_TOKEN Redis caching and rate limiting
NEXT_PUBLIC_APP_URL Public base URL of the deployment

Development

npm run dev

Server runs on http://localhost:3000

Testing

npm run test

Production Build

npm run build
npm run start

API Routes

Route Description
GET /api/analyze/deterministic/stream Run the deterministic engine with SSE progress streaming
GET /api/analyze/deterministic Run the deterministic engine and return JSON
POST /api/analyze Legacy AI-assisted analysis
GET /api/contributions Fetch contribution data
GET /api/scans/[id] Retrieve a stored scan
GET /api/star-status Verify repository-star access
POST /api/auth/github Initiate GitHub OAuth
GET /api/auth/github/callback OAuth callback handler
GET /api/auth/me Current session identity
POST /api/auth/logout End session
GET /api/users/settings Fetch user settings
POST /api/users/settings Update user settings

Project Structure

src/
├── app/                 # App Router pages and API routes
├── components/          # Dashboard UI and charts
├── lib/
│   └── deterministic/   # Scoring engine
│       ├── fetchers/    # Batched GraphQL and REST collection
│       ├── rules/       # Baseline, signal, score, and chart rules
│       └── types.ts     # Engine contracts
└── types/               # Shared TypeScript types
scripts/                 # Smoke tests and GraphQL experiment harnesses

Supporting the Project

If this project helped you, here are two ways to give back:

  • Give the repository a star. Stars help other developers discover the tool and guide which features get built next.
  • Sponsor the maintainer to support ongoing development, token costs for the public instance, and future features.

Star the repo Sponsor

Community

Contributing Security License Support
Guidelines Policy MIT Issues

Issues and pull requests are welcome.

StarMapper

StarMapper

Star History

Star History Chart

评论

暂无评论