{"uid":"cap_3GYBzrgGx999W1cCf4dhl","slug":"repopulse-repository-health-scorer-93494aab","name":"RepoPulse Repository Health Scorer","description":"A deterministic 0-100 health score for any public GitHub repository. $0.01 per call, paid over HTTP with x402 on Base.","url":"https://repo-pulse.dvd90.workers.dev/v1/health?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":["repo"],"properties":{"repo":{"type":"string","pattern":"^[A-Za-z0-9-]{1,39}/[A-Za-z0-9._-]{1,100}$","examples":["honojs/hono","cloudflare/workers-sdk","coinbase/x402"],"description":"Public GitHub repository to score, in 'owner/name' form (e.g. 'honojs/hono'). Owner: 1–39 chars, alphanumeric or single hyphens. Name: 1–100 chars from [A-Za-z0-9._-]. Private repos are not supported."}},"additionalProperties":false}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"$id":"https://repo-pulse/schema/repopulse.v1.json","type":"object","title":"RepoPulse Health Report","$schema":"https://json-schema.org/draft/2020-12/schema","examples":[{"repo":"honojs/hono","flags":[],"grade":"A","score":91,"signals":{"docs":{"score":92,"hasReadme":true,"hasDocsDir":true,"hasLicense":true},"prFlow":{"score":90,"mergeRatio":0.78,"medianMergeHours":20},"busFactor":{"score":74,"topAuthorShare":0.41,"effectiveContributors":6},"ciPresence":{"hasCI":true,"score":100},"depFreshness":{"score":80,"manifest":"package.json","pinnedRatio":0.8},"issueHygiene":{"score":82,"closeRatio":0.86,"openIssues":40},"testPresence":{"score":100,"hasTests":true},"commitRecency":{"score":100,"daysSinceLastCommit":0},"releaseCadence":{"score":88,"releasesLast90Days":3,"daysSinceLastRelease":12}},"summary":"Actively maintained with strong CI, tests, and a healthy contributor base.","weights":{"docs":6,"prFlow":16,"busFactor":12,"ciPresence":10,"depFreshness":6,"issueHygiene":10,"testPresence":12,"commitRecency":20,"releaseCadence":8},"generatedAt":"2026-07-11T00:00:00.000Z","schemaVersion":"repopulse.v1"}],"required":["schemaVersion","repo","score","grade","signals","weights","flags","summary","generatedAt"],"properties":{"repo":{"type":"string","description":"Canonical owner/name identifier of the scored repository."},"flags":{"type":"array","items":{"enum":["ARCHIVED","NO_LICENSE","SINGLE_MAINTAINER","NO_CI","NO_TESTS","NO_DESCRIPTION","STALE","NO_RELEASES","FORK"],"type":"string"},"description":"Notable conditions, e.g. ARCHIVED, NO_LICENSE, SINGLE_MAINTAINER, STALE."},"grade":{"enum":["A","B","C","D","F"],"type":"string","description":"Letter grade derived from the score."},"score":{"type":"integer","maximum":100,"minimum":0,"description":"Composite health score, 0 (worst) to 100 (best)."},"stale":{"type":"boolean","description":"Present and true when served from cache because GitHub was slow or unavailable."},"signals":{"type":"object","required":["commitRecency","releaseCadence","issueHygiene","prFlow","busFactor","ciPresence","testPresence","docs","depFreshness"],"properties":{"docs":{"type":"object","required":["score"],"properties":{"score":{"type":"number","maximum":100,"minimum":0,"description":"0–100 sub-score."}},"description":"Presence and depth of documentation (README, docs/, license, description).","additionalProperties":true},"prFlow":{"type":"object","required":["score"],"properties":{"score":{"type":"number","maximum":100,"minimum":0,"description":"0–100 sub-score."}},"description":"Pull-request throughput: merge rate and how quickly PRs are resolved.","additionalProperties":true},"busFactor":{"type":"object","required":["score"],"properties":{"score":{"type":"number","maximum":100,"minimum":0,"description":"0–100 sub-score."}},"description":"Concentration of contributions; low when a single author dominates.","additionalProperties":true},"ciPresence":{"type":"object","required":["score"],"properties":{"score":{"type":"number","maximum":100,"minimum":0,"description":"0–100 sub-score."}},"description":"Whether continuous-integration configuration is present.","additionalProperties":true},"depFreshness":{"type":"object","required":["score"],"properties":{"score":{"type":"number","maximum":100,"minimum":0,"description":"0–100 sub-score."}},"description":"Best-effort freshness of declared dependencies from the manifest.","additionalProperties":true},"issueHygiene":{"type":"object","required":["score"],"properties":{"score":{"type":"number","maximum":100,"minimum":0,"description":"0–100 sub-score."}},"description":"Issue close rate and responsiveness (open/closed ratio, age of open issues).","additionalProperties":true},"testPresence":{"type":"object","required":["score"],"properties":{"score":{"type":"number","maximum":100,"minimum":0,"description":"0–100 sub-score."}},"description":"Whether a test suite / test directories are present.","additionalProperties":true},"commitRecency":{"type":"object","required":["score"],"properties":{"score":{"type":"number","maximum":100,"minimum":0,"description":"0–100 sub-score."}},"description":"How recently the default branch was updated; decays as the last commit ages.","additionalProperties":true},"releaseCadence":{"type":"object","required":["score"],"properties":{"score":{"type":"number","maximum":100,"minimum":0,"description":"0–100 sub-score."}},"description":"Regularity and recency of published releases/tags.","additionalProperties":true}},"description":"Per-signal breakdown; each entry has a 0–100 score plus signal-specific metrics.","additionalProperties":false},"summary":{"type":"string","description":"One-sentence, human-readable summary of the repository's health."},"weights":{"type":"object","required":["commitRecency","releaseCadence","issueHygiene","prFlow","busFactor","ciPresence","testPresence","docs","depFreshness"],"properties":{"docs":{"type":"number"},"prFlow":{"type":"number"},"busFactor":{"type":"number"},"ciPresence":{"type":"number"},"depFreshness":{"type":"number"},"issueHygiene":{"type":"number"},"testPresence":{"type":"number"},"commitRecency":{"type":"number"},"releaseCadence":{"type":"number"}},"description":"Relative weight applied to each signal when computing the composite score.","additionalProperties":false},"generatedAt":{"type":"string","format":"date-time","description":"When the score was computed (ISO-8601)."},"schemaVersion":{"type":"string","const":"repopulse.v1","description":"Response schema version."}},"description":"Deterministic health assessment of a public GitHub repository. The same repository state always yields the same score.","additionalProperties":false}}}}},"responseSchema":{"type":"json","example":{"repo":"honojs/hono","flags":[],"grade":"A","score":91,"signals":{"docs":{"score":92,"hasReadme":true,"hasDocsDir":true,"hasLicense":true},"prFlow":{"score":90,"mergeRatio":0.78,"medianMergeHours":20},"busFactor":{"score":74,"topAuthorShare":0.41,"effectiveContributors":6},"ciPresence":{"hasCI":true,"score":100},"depFreshness":{"score":80,"manifest":"package.json","pinnedRatio":0.8},"issueHygiene":{"score":82,"closeRatio":0.86,"openIssues":40},"testPresence":{"score":100,"hasTests":true},"commitRecency":{"score":100,"daysSinceLastCommit":0},"releaseCadence":{"score":88,"releasesLast90Days":3,"daysSinceLastRelease":12}},"summary":"Actively maintained with strong CI, tests, and a healthy contributor base.","weights":{"docs":6,"prFlow":16,"busFactor":12,"ciPresence":10,"depFreshness":6,"issueHygiene":10,"testPresence":12,"commitRecency":20,"releaseCadence":8},"generatedAt":"2026-07-11T00:00:00.000Z","schemaVersion":"repopulse.v1"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":{"p10Cents":"1.0000","medianCents":"1.0000","p90Cents":"1.0000","minCents":"1.0000","maxCents":"1.0000","p95Cents":"1.0000","sampleCount":1,"varies":false,"failureChargeRate":1},"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_EO1AFmubZ8yZIi8D6SH7K","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Returns a deterministic 0-100 health score and letter grade for any public GitHub repository, broken down across nine signals like CI, commit recency, bus factor, and issue hygiene.","exampleAgentPrompt":"Can you give me the RepoPulse health score for the vercel/next.js GitHub repo — I want to see the grade and how it breaks down across things like CI, commit recency, and bus factor before I commit to using it?","exampleUseCases":[{"title":"Vetting a new open source dependency","prompt":"Before we add it to our project, can you run a RepoPulse health check on the prisma/prisma GitHub repo and tell me the overall score, grade, and whether it has good CI and test coverage?"},{"title":"Comparing two competing libraries","prompt":"I'm choosing between expressjs/express and fastify/fastify — can you get RepoPulse health scores for both so I can compare their grades, commit recency, and contributor bus factor?"},{"title":"Auditing an internal fork for staleness","prompt":"Can you check the RepoPulse health score for our dependency at lodash/lodash and flag anything concerning, like a low commit recency score or poor issue hygiene?"}],"resultDescription":"A JSON object containing the repository identifier, an integer health score from 0 to 100, a letter grade (A through F), a per-signal breakdown (docs, prFlow, busFactor, ciPresence, depFreshness, issueHygiene, testPresence, commitRecency, releaseCadence) each with sub-scores and raw metrics, an array of any warning flags, a plain-English summary sentence, the scoring weights applied, and a generatedAt ISO timestamp.","failureModes":["Invalid repo format (must match owner/name pattern) returns a 400 error","Private repositories are not supported and will return an error or zero-signal result","Payment not received or x402 handshake failure results in a 402 Payment Required response","GitHub API rate limits or outages may cause a 503 or degraded partial result","Repo not found on GitHub returns a 404-equivalent error"],"whenToPreferThis":"Choose RepoPulse when you need a single, deterministic, weighted composite health score for a public GitHub repository rather than raw GitHub API metrics. It is ideal for automated dependency vetting, pre-adoption due diligence, library comparison workflows, or any agent pipeline that needs a structured, machine-readable quality signal without manually aggregating commit history, CI config, issue ratios, and contributor data. Prefer it over raw GitHub API calls when you want opinionated scoring with consistent weights and a letter grade.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-10T06:35:17.273Z","isFirstParty":false,"canonicalSlug":"repopulse-repository-health-scorer-93494aab"}