Skip to content
Core concepts

Branch analysis

Gittensory analyzes branches using metadata only. Your source code never leaves your machine.

Inputs

  • Repository identity (owner/repo).
  • Branch, base, and head refs.
  • Changed-file metadata — paths, sizes, line counts.
  • Labels and linked issues.
  • Commit messages.
  • Validation summaries (lint/test outcomes, not logs).
  • Optional local scorer output.
  • User-supplied scenario assumptions.

Outputs

  • Lane context (maintainer / contributor / hybrid).
  • Role context for your account.
  • Scoreability scenarios (see Scoreability).
  • Branch blockers and account/queue blockers.
  • Maintainer-fit notes.
  • Public-safe PR packet preview.
  • Ranked next actions.

Example invocation

POST /v1/local/branch-analysis
Authorization: Bearer ••••••••
Content-Type: application/json

{
  "login": "your-github-login",
  "repoFullName": "entrius/gittensor",
  "baseRef": "main",
  "headRef": "feat/scorer-cleanup",
  "changedFiles": [
    { "path": "src/scorer.ts", "additions": 42, "deletions": 8, "status": "modified" }
  ],
  "labels": ["scorer", "ready-for-review"],
  "linkedIssues": [421],
  "commitMessages": ["refactor scorer gating", "fix linked-issue projection"],
  "validation": [
    { "command": "npm run typecheck", "status": "passed" }
  ]
}
http

The request body is a strict schema — every field must match a known key exactly (repoFullName not a nested repo object, changedFiles with additions/deletions, linkedIssues not linked_issues) and unknown keys are rejected rather than ignored.

File metadata is allowed (path, line counts). File contents are not requested, accepted, or stored. The MCP enforces this on the client.