# RepoPulse Repository Health Scorer

> RepoPulse Repository Health Scorer is a paid API for AI agents from repo-pulse.dvd90.workers.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-10).

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.

## Facts

- Endpoint: GET https://repo-pulse.dvd90.workers.dev/v1/health?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/repopulse-repository-health-scorer-93494aab
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_3GYBzrgGx999W1cCf4dhl

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability repopulse-repository-health-scorer-93494aab
```

Example prompt: 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?

## When to prefer this

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.

## Known failure modes

- 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

## How this service works

A deterministic 0-100 health score for any public GitHub repository. $0.01 per call, paid over HTTP with x402 on Base.

## Output

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.

## Request schema (JSON Schema)

```json
{
 "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
        }
 
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "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"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/repopulse-repository-health-scorer-93494aab/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from repo-pulse.dvd90.workers.dev](https://www.zero.xyz/host/repo-pulse.dvd90.workers.dev/llms.txt)
