Skip to content

feat(fetchers): add GitHub commit and compare fetcher#164

Merged
chaliy merged 1 commit into
mainfrom
feat/github-commit-compare-fetchers
Jul 14, 2026
Merged

feat(fetchers): add GitHub commit and compare fetcher#164
chaliy merged 1 commit into
mainfrom
feat/github-commit-compare-fetchers

Conversation

@chaliy

@chaliy chaliy commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

What changed

Fetch public GitHub commit and comparison URLs as structured Markdown through GitHub's REST API. Responses include authorship, signature verification, change statistics, files, and bounded patch excerpts. Comparisons additionally summarize ahead/behind counts, merge base, and included commits.

Why

Generic GitHub HTML conversion is noisy and often omits patch and comparison context. Stable API data gives agents a compact review-oriented representation.

Before / After

Before: Commit and comparison URLs used generic HTML conversion.

After: Commit URLs return format: github_commit; comparison URLs return format: github_compare. Patch excerpts are capped at 2,000 Unicode characters per file and the configured overall response limit remains enforced.

Proof:

cargo test --workspace: passed
cargo clippy --workspace --all-targets -- -D warnings: passed
RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps: passed
cargo build --workspace --exclude fetchkit-python --release: passed

Risk

  • Medium
  • Unauthenticated API requests are subject to GitHub rate limits.
  • Private repository commits return a not-found/private error.
  • Very large comparisons may be paginated by GitHub; output remains explicitly bounded.

Checklist

  • Unit tests are passed
  • Smoke tests are passed
  • Documentation is updated
  • Specs are up to date and not in conflict

Produced by yolop

Co-Authored-By: yolop <yolop@everruns.com>
@chaliy
chaliy merged commit de8d349 into main Jul 14, 2026
11 checks passed
@chaliy
chaliy deleted the feat/github-commit-compare-fetchers branch July 14, 2026 23:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant