Skip to content

Native GitHub API ingestion: vajra ingest github owner/repo #25

Description

@copyleftdev

Problem

Every report starts with the same boilerplate:
```bash
gh pr list --repo X --state all --limit 500 --json ... | python3 -c "flatten..."
gh issue list --repo X --state all --limit 500 --json ... | python3 -c "flatten..."
gh api graphql ... | python3 -c "extract..."
```

This is 50+ lines of Python per report, repeated identically three times across Effect-TS, React, and uv.

Proposal

New command:
```bash
vajra ingest github astral-sh/uv --output /tmp/uv_data/

Produces:

/tmp/uv_data/commits.json (from git log)

/tmp/uv_data/prs.json (from GitHub API, flattened)

/tmp/uv_data/issues.json (from GitHub API, flattened)

/tmp/uv_data/releases.json (from GitHub API)

/tmp/uv_data/reviews.json (from GitHub GraphQL)

```

Each file is a clean JSON array ready for vajra analysis. Author objects flattened to login strings. Labels flattened to comma-separated. Dates in ISO 8601.

Implementation

  • Shell out to `gh` CLI (require it in PATH)
  • Or use GitHub REST/GraphQL API directly via `reqwest`
  • Flatten PR/issue data during ingestion (no post-processing needed)

Evidence

Built 3 reports. Wrote the same flattening code 3 times. This is the #1 time sink.

Complexity

Medium-High. New `vajra-ingest` crate with GitHub adapter.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions