GitHub Repo Exporter — Releases · Issues · PRs · Discussions

Export all of a GitHub repo's release notes into a single page, or generate a complete index of every issue, PR & discussion — as HTML or Markdown. No more endless scrolling through paginated release histories. Perfect for feeding a full project overview to an LLM, finding related discussions, or offline reference.

คุณจะต้องติดตั้งส่วนขยาย เช่น Tampermonkey, Greasemonkey หรือ Violentmonkey เพื่อติดตั้งสคริปต์นี้

You will need to install an extension such as Tampermonkey to install this script.

คุณจะต้องติดตั้งส่วนขยาย เช่น Tampermonkey หรือ Violentmonkey เพื่อติดตั้งสคริปต์นี้

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

ผู้เขียน
piknockyou
จำนวนติดตั้งประจำวัน
0
จำนวนติดตั้งทั้งหมด
5
คะแนน
0 0 0
เวอร์ชัน
5.6.4
สร้างเมื่อ
17-01-2026
อัปเดตเมื่อ
06-02-2026
Size
61.1 กิโลไบต์
สัญญาอนุญาต
AGPL-3.0
ปรับใช้กับ

☕ If you find this tool helpful & would like to support its maintenance, please consider leaving a tip on:

https://ko-fi.com/piknockyou

Thank you! :-)


🖼 For a quick impression of this script, refer to the screenshots at the bottom.


GitHub Repo Exporter — Releases · Issues · PRs · Discussions

Export all of a GitHub repo's release notes into a single page, or generate a complete index of every issue, PR & discussion — as HTML or Markdown. No more endless scrolling through paginated release histories. Perfect for feeding a full project overview to an LLM, finding related discussions, or offline reference.


Why You Need This

Working with GitHub repositories at scale is painful:

  • No native bulk export: No way to save release notes, changelogs, and asset lists in one go
  • Pagination everywhere: Releases, issues, and PRs are spread across dozens of pages requiring endless clicking
  • Scattered context: Issues, PRs, and discussions live in separate tabs with no unified view
  • LLM-unfriendly: Feeding a full project history to an AI assistant means hours of manual copy-paste
  • Missing metadata: Manual copying loses SHA256 checksums, download counts, reaction data, labels, and status information

This script talks directly to the GitHub API to fetch everything — all releases with full asset details, and complete indexes of issues, pull requests, and discussions — then packages it into clean, self-contained files.


Key Features

📦 Complete Release Export

  • API-powered fetching: Pulls all releases directly from GitHub's REST API (no fragile HTML scraping)
  • Full asset details: Download counts, file sizes, SHA256 digests, upload dates, and auto-classified file types (Installer, macOS, Linux, Archive, Signature, Checksum, etc.)
  • Rendered release notes: Markdown bodies rendered to formatted HTML using the marked library
  • Smart auto-linking: Automatically links #123 issue references, @username mentions, commit SHAs, and cross-repo references within release notes
  • Reaction data: Displays emoji reactions (👍👎😄🎉😕❤️🚀👀) on each release
  • Source archives: Zipball and tarball download links included automatically

📋 Issues, Pull Requests & Discussions Index

  • Unified listing: Get a complete numbered index of every issue, PR, and discussion in one file
  • Selective export: Choose any combination of Issues, PRs, and Discussions via checkboxes
  • Range filtering: Target specific items (e.g., 1-500, 1,5,10-50) instead of fetching everything
  • Smart API usage: Uses REST API for issues/PRs and GraphQL for discussions; switches to efficient GraphQL batch queries when a range and token are set
  • Status tracking: Shows open/closed/not planned/answered status with color coding
  • Label display: Includes all labels associated with each item

🔑 Authentication & Rate Limits

  • Token management: Save a GitHub Personal Access Token for higher rate limits (60 → 5,000 requests/hour) and Discussions access
  • Persistent storage: Token and all preferences saved across sessions
  • Rate limit awareness: Real-time display of remaining API calls and reset times
  • Pause & resume: If rate limited, the export pauses and can resume exactly where it left off — no lost progress

🖥️ Modern Panel UI

  • Collapsible floating panel: Clean interface that stays out of your way until needed
  • Independent sections: Releases and Issues/PRs/Discussions each have their own controls, status, and output buttons
  • Smart button states: Action button adapts (Start → Cancel → Resume → New Export) based on current status
  • Light/dark theme: Toggle between themes with preference persistence
  • Debug logging: Optional per-section log viewer for troubleshooting API calls
  • SPA-aware: Handles GitHub's Turbo navigation — no need to refresh when switching repos

Dual Export Formats

HTML Export

  • Self-contained: Custom dark-themed styling with no external dependencies — works completely offline
  • Open or download: Preview in a new tab or save as a file
  • Releases: Styled cards with tag badges, metadata, collapsible asset tables, and reaction badges
  • Issues index: Color-coded status indicators, type labels, and clickable links

Markdown Export

  • LLM-ready: Clean, structured text perfect for pasting into AI assistants
  • Releases: Full release notes preserved as-is, asset tables in Markdown format
  • Issues index: Simple list format with status, type, and links

What Gets Exported

For Each Release

  • ✅ Release title and tag name
  • ✅ Author and publication date
  • ✅ Draft and pre-release flags
  • ✅ Full release notes (rendered from Markdown)
  • ✅ Auto-linked references (#issues, @users, SHAs)
  • ✅ Emoji reactions with counts
  • ✅ Complete asset list with:
    • Filenames and auto-detected type classification
    • File sizes
    • Download counts
    • SHA256 digests
    • Upload dates
    • Source code archive links

For Each Issue / PR / Discussion

  • ✅ Number, title, and direct link
  • ✅ Type classification (Issue / Pull Request / Discussion)
  • ✅ Status (Open / Closed / Not Planned / Answered)
  • ✅ Creation date
  • ✅ All associated labels
  • ℹ️ This is an index listing — titles, status, and links only. Full content (descriptions, comments, diffs) is not included.

Usage

Quick Start

  1. Navigate to any page of a GitHub repository
  2. Click the "📋 Repo Lister" button in the bottom-right corner
  3. The control panel opens with two sections

Exporting Releases

1. Open the panel → Releases section
2. Click "Start"
   ↓
3. Script fetches all releases via API (shows progress)
   ↓
4. Choose output:
   🔗 HTML — open in new tab
   💾 HTML — download file
   💾 MD  — download Markdown

Exporting Issues / PRs / Discussions

1. Open the panel → Issues · PRs · Discussions section
2. Check which types you want (Issues ✓, PRs ✓, Discussions ✓)
3. Optionally set a range (e.g., "1-500")
4. Click "Start"
   ↓
5. Script fetches via REST API + GraphQL (shows progress)
   ↓
6. If rate limited → pauses → click "Resume" after reset
   ↓
7. Choose output:
   🔗 HTML — open in new tab
   💾 HTML — download file
   💾 MD  — download Markdown

Example Output

Release (Markdown)

## Moonlight PC v6.1.0 (`v6.1.0`)
*cgutman · 2024-09-17 · Pre-release*

### OS Support Changes

- Windows 10 (1809), Windows Server 2019, or later is now required
- 32-bit versions of Windows are no longer supported

### New Features

- Experimental YUV 4:4:4 support for improved text clarity
- HDR streaming now supported with software decoding

### Assets

| Type | File | Size | Downloads | Uploaded | SHA256 |
|:-----|:-----|-----:|----------:|:---------|:-------|
| Linux | [Moonlight-6.1.0-x86_64.AppImage](...) | 52.8 MB | 14,302 | 2024-09-17 | `a3f2d1e9…b8c4` |
| Installer | [MoonlightSetup-6.1.0.exe](...) | 41.3 MB | 89,547 | 2024-09-17 | `7b2e8f4d…1a6c` |
| Source | Source code (zip) | | | | |
| Source | Source code (tar.gz) | | | | |

Reactions: 🚀 42 · ❤️ 18 · 👍 12

---

Issues Index (Markdown)

# Issues, Pull Requests & Discussions Index — user/repo

> ℹ️ This is an index listing — titles, status, and links only.

Repository: `user/repo`
Total: 1,247 (Issues: 892 · Pull Requests: 314 · Discussions: 41)

- [#1 Initial project setup](https://github.com/...) — ISSUE · **CLOSED**
- [#2 Add CI/CD pipeline](https://github.com/...) — Pull Request · **CLOSED**
- [#3 Feature request: dark mode](https://github.com/...) — ISSUE · **OPEN**
- [#4 How to configure custom themes?](https://github.com/...) — DISCUSSION · **ANSWERED**

Installation

Requirements

Steps

  1. Install a userscript manager
  2. Install this script
  3. Visit any GitHub repository
  4. The "📋 Repo Lister" button appears automatically in the bottom-right corner

Optional: GitHub Token

For Discussions export and higher rate limits:

  1. Go to GitHub Settings → Tokens
  2. Create a token with public_repo scope
  3. Paste it into the 🔑 Token section in the panel

Technical Details

How It Works

Releases:

  1. Calls GET /repos/{owner}/{repo}/releases?per_page=100 with pagination
  2. Renders Markdown bodies to HTML via the marked library
  3. Auto-links issue refs, mentions, and SHAs
  4. Classifies assets by file extension
  5. Generates self-contained HTML and clean Markdown output

Issues & PRs:

  1. Calls GET /repos/{owner}/{repo}/issues?state=all (REST API, paginated)
  2. For PRs-only queries, uses the dedicated /pulls endpoint
  3. When a range and token are set, switches to GraphQL batch queries (50 items per request) for efficiency
  4. Normalizes data from both REST and GraphQL into a unified format

Discussions:

  1. Uses GitHub's GraphQL API with cursor-based pagination
  2. Requires a Personal Access Token (GraphQL is authenticated-only)
  3. Fetches number, title, URL, answered status, and labels

Rate Limit Handling:

  1. Monitors x-ratelimit-remaining and x-ratelimit-reset headers
  2. On HTTP 403 with zero remaining: pauses and saves exact position
  3. Resume picks up from saved page number, GraphQL batch index, or discussion cursor

Architecture

  • API-first: All data comes from GitHub's REST and GraphQL APIs — no brittle DOM scraping
  • Modular design: Releases, Issues, and UI are independent modules with clean interfaces
  • SPA-aware navigation: Listens for Turbo events, popstate, and polls for URL changes
  • Persistent state: Token and preferences stored via GM_getValue/GM_setValue
  • External dependency: marked library (v17.0.1) for Markdown rendering, loaded via CDN
  • Error resilience: Network errors retry, rate limits pause gracefully, partial exports are preserved

FAQ

Q: Does this work on private repositories? A: Yes, if you provide a GitHub token with appropriate permissions. The token is sent with all API requests.

Q: Why do I need a token for Discussions? A: GitHub's Discussions data is only available through the GraphQL API, which requires authentication. Issues and PRs work without a token (at lower rate limits).

Q: Can I export just a subset of issues? A: Yes. Use the range filter — enter something like 1-100, 42, or 1,5,10-50. When combined with a token, this uses efficient GraphQL batch queries instead of paginating through everything.

Q: What happens if I get rate limited? A: The script pauses automatically and shows the reset time. Click "Resume" after the reset to continue exactly where you left off. With a token, you get 5,000 requests/hour instead of 60.

Q: Why is the Issues export just an index? A: Full issue/PR content (descriptions, comments, review threads, diffs) would require significantly more API calls and produce extremely large files. The index gives you a complete overview with direct links to each item.

Q: Does the HTML export work offline? A: Yes. All CSS is embedded directly in the file. No external stylesheets, fonts, or scripts are needed.

Q: Can I export releases AND issues at the same time? A: The two sections operate independently. Start a release export and an issues export separately — they run in their own sections with their own progress tracking.

Q: What happened to the TXT export format? A: It's been replaced by Markdown (.md), which is more structured, more widely compatible, and better suited for LLM input.


Known Limitations

  • Rate limiting: Large repos may exhaust API limits, especially without a token (60 requests/hour). Use a token for 5,000/hour.
  • Issues export is index-only: Full descriptions, comments, and diffs are not included — only titles, status, labels, and links.
  • Discussions require a token: The GraphQL API used for Discussions is authenticated-only.
  • Asset files not downloaded: Exports contain asset metadata (names, sizes, checksums, URLs) — the actual files are not downloaded.
  • Memory usage: Repositories with thousands of releases or issues may consume significant browser memory.
  • Markdown rendering: Release notes are rendered using the marked library. Complex or non-standard Markdown may render slightly differently than on GitHub.

Permissions Explained

Permission Purpose
@match *://github.com/*/* Activates on all GitHub repository pages
@grant GM_openInTab Opens HTML preview in a new browser tab
@grant GM_getValue / GM_setValue Persists your token and preferences across sessions
@require marked Markdown-to-HTML rendering for release notes
@run-at document-idle Waits for page to fully load before initializing