GitHub

GitHub API Tools

A collection of tools for working with GitHub repositories via the GitHub API

/api/tools/github-api

3 Tools

github_api_compare

Compare Git references in a GitHub repository. Returns commits and file changes between base and head. Supports JSON or Excel spreadsheet output.

Tool

Endpoint

POST /api/tools/github-api

Input Schema

owner *
string
Repository owner (username or organization)
repo *
string
Repository name
base *
string
Base reference (commit, branch, or tag)
head *
string
Head reference to compare against base (commit, branch, or tag)
output_format
string
'json' (default) or 'spreadsheet' (Excel file in object store)
per_page
number
Commits per page, default 30. JSON only.
page
number
Page number, default 1. JSON only.
include_file_changes
boolean
Include per-file details (path, status, line stats). JSON only.
include_stats
string
'aggregate' (default), 'per-commit' (1 API call each, may hit rate limits), 'both', or 'none'
spreadsheet_name
string
Custom spreadsheet name. Auto-generated if omitted. Spreadsheet only.
sort
string
'newest_first' or 'github_default' (oldest first). Spreadsheet only.
message_subject_only
boolean
Use only first line of commit messages
collection_id
string
Collection to add spreadsheet to. Spreadsheet only.
View full schema
{ "type": "object", "properties": { "owner": { "type": "string", "description": "Repository owner (username or organization)" }, "repo": { "type": "string", "description": "Repository name" }, "base": { "type": "string", "description": "Base reference (commit, branch, or tag)" }, "head": { "type": "string", "description": "Head reference to compare against base (commit, branch, or tag)" }, "output_format": { "type": "string", "enum": [ "json", "spreadsheet" ], "description": "'json' (default) or 'spreadsheet' (Excel file in object store)" }, "per_page": { "type": "number", "description": "Commits per page, default 30. JSON only.", "minimum": 1, "maximum": 250 }, "page": { "type": "number", "description": "Page number, default 1. JSON only.", "minimum": 1 }, "include_file_changes": { "type": "boolean", "description": "Include per-file details (path, status, line stats). JSON only." }, "include_stats": { "type": "string", "enum": [ "aggregate", "per-commit", "both", "none" ], "description": "'aggregate' (default), 'per-commit' (1 API call each, may hit rate limits), 'both', or 'none'" }, "spreadsheet_name": { "type": "string", "description": "Custom spreadsheet name. Auto-generated if omitted. Spreadsheet only." }, "sort": { "type": "string", "enum": [ "newest_first", "github_default" ], "description": "'newest_first' or 'github_default' (oldest first). Spreadsheet only." }, "message_subject_only": { "type": "boolean", "description": "Use only first line of commit messages" }, "collection_id": { "type": "string", "description": "Collection to add spreadsheet to. Spreadsheet only." } }, "required": [ "owner", "repo", "base", "head" ] }

github_api_status

Debug tool to check GitHub API authentication status and current rate limits. Returns information about whether a GitHub token is configured, current rate limit usage, and when limits will reset. Does not consume rate limit quota.

Tool

Endpoint

POST /api/tools/github-api

Input Schema

View full schema
{ "type": "object", "properties": {}, "required": [] }

github_api_releases

Explore GitHub repository release versions using semantic versioning (major.minor.patch). Supports adjacent-version lookup, filtered listing, and latest-version retrieval at major, minor, or patch granularity. Non-semver tags are skipped.

Tool

Endpoint

POST /api/tools/github-api

Input Schema

owner *
string
GitHub repository owner (username or organization)
repo *
string
GitHub repository name
mode *
string
Operation mode: - "adjacent": Returns { target, prior, newer } - neighbors at granularity level (null at boundaries) - "list": Returns { target, versions } - all versions within the target range - "latest": Returns { latest } - most recent version Requires "version" for adjacent and list modes.
granularity *
string
Version granularity for grouping and output: - "major": X.x.x notation (e.g., "1.x.x", "2.x.x") - "minor": X.Y.x notation (e.g., "1.3.x", "2.0.x") - "patch": Actual tags (e.g., "v1.3.5") Input version is normalized to match (e.g., "v1.3.5" at minor granularity becomes "1.3.x").
version
string
Target version (required for adjacent/list, ignored for latest). Accepts: - Tags: "v1.3.5" or "1.3.5" - X-notation: "1.3.x" or "1.x.x" Normalized to granularity level in output.
includeDrafts
boolean
Include draft releases (default: false)
includePrereleases
boolean
Include prerelease versions (default: false)
View full schema
{ "type": "object", "properties": { "owner": { "type": "string", "description": "GitHub repository owner (username or organization)" }, "repo": { "type": "string", "description": "GitHub repository name" }, "mode": { "type": "string", "enum": [ "adjacent", "list", "latest" ], "description": "Operation mode:\n- \"adjacent\": Returns { target, prior, newer } - neighbors at granularity level (null at boundaries)\n- \"list\": Returns { target, versions } - all versions within the target range\n- \"latest\": Returns { latest } - most recent version\nRequires \"version\" for adjacent and list modes." }, "granularity": { "type": "string", "enum": [ "major", "minor", "patch" ], "description": "Version granularity for grouping and output:\n- \"major\": X.x.x notation (e.g., \"1.x.x\", \"2.x.x\")\n- \"minor\": X.Y.x notation (e.g., \"1.3.x\", \"2.0.x\")\n- \"patch\": Actual tags (e.g., \"v1.3.5\")\nInput version is normalized to match (e.g., \"v1.3.5\" at minor granularity becomes \"1.3.x\")." }, "version": { "type": "string", "description": "Target version (required for adjacent/list, ignored for latest). Accepts:\n- Tags: \"v1.3.5\" or \"1.3.5\"\n- X-notation: \"1.3.x\" or \"1.x.x\"\nNormalized to granularity level in output." }, "includeDrafts": { "type": "boolean", "description": "Include draft releases (default: false)" }, "includePrereleases": { "type": "boolean", "description": "Include prerelease versions (default: false)" } }, "required": [ "owner", "repo", "mode", "granularity" ] }