Skip to main content

GitHub Issue Fixer

github-issue-fixer.py caches GitHub issues assigned to the authenticated GitHub CLI user and prepares manual Codex commands to solve them locally.

The script opens Warp best-effort, but it never runs Codex automatically. For each selected issue it writes a prompt file under the cache directory and prints the exact codex command to paste/run in Warp when ready.

Requirements

  • Python 3.10 or newer
  • GitHub CLI (gh)
  • An authenticated GitHub CLI session:
gh auth login
  • Warp terminal (warp-terminal) for fix commands
  • Local clones of target repositories under your home directory by default

Usage

./github-issue-fixer.py --refresh
./github-issue-fixer.py --list
./github-issue-fixer.py --org ORGANIZATION --refresh
./github-issue-fixer.py --repo OWNER/REPO --list
./github-issue-fixer.py --repo OWNER/REPO --issue 123 --fix
./github-issue-fixer.py --repo OWNER/REPO --fix
./github-issue-fixer.py --org ORGANIZATION --fix

By default, the analyzed username is the authenticated gh user. Use --username to inspect issues assigned to another GitHub user while still using the logged-in gh account for organization and repository access:

./github-issue-fixer.py --username monalisa --refresh
./github-issue-fixer.py --username monalisa --list
./github-issue-fixer.py --username monalisa --repo OWNER/REPO --fix

Use --cache-dir to change local cache storage:

./github-issue-fixer.py --cache-dir ~/tmp/github-issue-fixer --refresh

Use --repos-root when clones are not under ~:

./github-issue-fixer.py --repos-root ~/work --repo OWNER/REPO --issue 123 --fix

Commands

--refresh

Reads the authenticated GitHub username with gh, discovers organizations with access, lists non-archived repositories in each organization, and caches open non-PR issues assigned to the selected username. It prints the authenticated GitHub user, the username under analysis, the per-user cache directory, organization discovery, and per-repository issue analysis progress.

Use --org ORGANIZATION to refresh one organization, or --repo OWNER/REPO to refresh one repository.

--list

Prints cached open assigned issues:

| Repository | Issue number | Issue title | Issue URL | Time since creation |

Issue titles are normalized to one line and limited to 30 characters.

Run --refresh first when you want current GitHub data.

Use --org ORGANIZATION to list one cached organization, or --repo OWNER/REPO to list one cached repository.

--repo OWNER/REPO --issue NUMBER --fix

Finds the matching local clone by comparing GitHub origin remotes under --repos-root, fetches the latest issue details, opens Warp if it is not already running, writes a prompt file, and prints a manual Codex command.

The issue number may also be written as #123, but quote or escape it in a shell because # starts a comment.

--repo OWNER/REPO --fix

Prepares one manual Codex command for each cached open assigned issue in the repository.

--org ORGANIZATION --fix

For each cached repository in the organization, selects the oldest cached open assigned issue and prepares one manual Codex command.

Local Storage

By default, files are stored under:

~/.github-issue-fixer/
  USERNAME/
    ORGANIZATION/
      issues.json
      prompts/
        REPO/
          issue-NUMBER.md

Each analyzed username has its own cache directory, and each organization under that username has its own issues.json. Prompt files contain issue details and are safe to regenerate.

Notes

  • Pull requests are excluded.
  • Archived repositories are skipped.
  • GitHub search can return at most 1000 assigned issues per repository.
  • Warp command prefill is not used; the script prints commands for manual execution so Codex does not start solving until you run the command.

Metadata

Release files for github-issue-fixer 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for github-issue-fixer 0.0.1
File Size Uploaded
github_issue_fixer-0.0.1.tar.gz 12.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for github-issue-fixer 0.0.1
File Interpreter ABI Platform
github_issue_fixer-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 22.2 kB

Release files / github_issue_fixer-0.0.1.tar.gz

Download URL github_issue_fixer-0.0.1.tar.gz
Size 12.1 kB
Tags Source
SHA-256 checksum
How to use checksums
03042367f6ff1cec2062da91f2b8d7def67ed93b78290788992b50faf86d496b
BLAKE2b-256 checksum
How to use checksums
4def399f2bddb19357c5f9a7d1b37a86cf20ada6f1a33f9cd0b7fd597aa8d6f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / github_issue_fixer-0.0.1-py3-none-any.whl

Download URL github_issue_fixer-0.0.1-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7a7e42d5bfa288301eca7b9f65886c8dc9081d2d847762ee1c0faaef4365a10c
BLAKE2b-256 checksum
How to use checksums
ecd1838a3ac7b658b451c14501455f38b9fe0eb20a5b05f510518ae501337d93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page