SuperAPI AI Directory

github-release-checker

General & other

View repository

Updated 10-15 21:08

About this skill

GitHub Release Checker

Fetch all releases of a GitHub project within a specified version range and generate a change summary report.

Quick Start

Use the built-in script to fetch version changes:

python3 scripts/check_releases.py owner/repo <起始版本> <目标版本>

Common commands:

# 两个版本之间的变更
python3 scripts/check_releases.py facebook/react v18.0.0 v18.2.0
All releases after a certain version (up to the latest)

python3 scripts/check_releases.py kubernetes/kubernetes v1.28.0

Machine-readable JSON output (for pipelines/subsequent processing)

python3 scripts/check_releases.py facebook/react v18.0.0 v18.2.0 --json

Include prerelease versions

python3 scripts/check_releases.py facebook/react v18.0.0 v18.3.0 --include-prereleases

Preview the API request to be sent (without actually calling it)

python3 scripts/check_releases.py facebook/react v18.0.0 v18.2.0 --dry-run


## 工作流程

1. **解析输入** — 提取 owner/repo、起始和目标版本号
2. **获取版本列表** — 通过 GitHub API 分页拉取所有 release,按发布时间排序
3. **筛选** — 过滤 draft/prerelease(可通过 flag 覆盖),定位版本区间
4. **生成报告** — Markdown 格式(默认)或 JSON 格式(--json)

## 选项速查

| 选项 | 说明 |
|------|------|
| `--json` | 输出 JSON,用于管道和后续处理 |
| `--verbose` | 输出详细进度到 stderr(不污染 stdout) |
| `--dry-run` | 仅显示将要发送的请求,不实际调用 API |
| `--max-pages N` | 最大分页数,默认 10 |
| `--per-page N` | 每页数量(1-100),默认 100 |
| `--include-prereleases` | 包含预发布版本 |
| `--include-drafts` | 包含草稿 release |
| `--github-token TOKEN` | GitHub PAT(或设置 `GITHUB_TOKEN` 环境变量) |

## 输出格式

### Markdown(默认)

标准输出包含:版本区间、每个 release 的详细信息(发布日期、变更内容)、版本汇总表。

### JSON(--json)

```json
{
  "repo": "owner/repo",
  "range": {"start": "v1.0.0", "end": "v2.0.0"},
  "count": 3,
  "releases": [
    {
      "tag_name": "v1.1.0",
      "name": "Release Title",
      "published_at": "2024-01-15T10:00:00Z",
      "prerelease": false,
      "draft": false,
      "html_url": "https://...",
      "body": "...",
      "summary": "前 200 字符摘要..."
    }
  ]
}

Notes

  • Unauthenticated requests are rate-limited to 60 per hour. It is recommended to set the GITHUB_TOKEN environment variable to increase it to 5000 per hour
  • Version numbers support both the v prefix (e.g., v1.2.3) and no prefix (1.2.3) formats
  • By default, draft and prerelease are filtered out; use --include-prereleases / --include-drafts to override
  • A maximum of 100 per page; automatically paginates when spanning a large version range
  • All requests are read-only GET and can be safely executed repeatedly