Skip to content

Releases: runsascoded/ghpr

v0.1.9

25 Mar 17:50

Choose a tag to compare

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

Full Changelog: v0.1.8...v0.1.9

v0.1.8

27 Feb 12:42

Choose a tag to compare

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Full Changelog: v0.1.7...v0.1.8

v0.1.7

24 Feb 14:41

Choose a tag to compare

What's Changed

Bug Fixes

  • Fix trailing newline loss in write_description_with_link_ref — GitHub strips trailing newlines from PR descriptions, causing diff thrashing on subsequent pulls
  • Fix spurious \ No newline at end of file in render_unified_diff — indicator now only appears when the two sides actually differ in trailing newline status

Improvements

  • ghpr diff and ghpr push -n now warn when showing diffs for comments authored by others (which won't be pushed without -C)
  • ghpr push summary distinguishes "unchanged" comments from ownership-skipped ones, with a clear hint about ghprp -C

Testing & Docs

  • Fix pytest collection (pythonpath = ["src"]) so all test modules resolve correctly
  • Add tests for trailing newline handling and diff newline indicator
  • Update CLAUDE.md and README.md with recent changes

Full Changelog: v0.1.6...v0.1.7

v0.1.6

28 Nov 03:46

Choose a tag to compare

Shell Integration Fix + Improved CLI Help

Bug Fixes

  • Fixed ghprc shell function: Now uses a GHPR_DIR: marker to reliably extract the cloned directory path, fixing the cd into cloned directory after ghpr clone

Improvements

  • Better CLI help: Added docstrings to all commands so ghpr --help shows useful descriptions for every command
  • Documentation: Added note about GitHub gist MIME type limitation (videos won't preview inline; use GitHub's native upload for video files)

Full Changelog: v0.1.5...v0.1.6

v0.1.5

22 Nov 16:43

Choose a tag to compare

Critical Bug Fix + Shell Integration Improvements

This release fixes a critical bug in v0.1.4 and improves the shell integration experience.

Bug Fixes

  • Critical: Fixed clone command argument order bug that prevented cloning from working (introduced in decorator refactoring in v0.1.4)

Improvements

  • Shell integration: ghprc now automatically cds into the cloned directory (similar to ghpri)
  • Better UX: Removed automatic browser opening when creating gist mirrors
  • Shell integration: ghpr clone now outputs the directory path to stdout for easier scripting

Note

v0.1.4 is broken due to the clone bug. Please use v0.1.5 instead.

Full Changelog: v0.1.4...v0.1.5

v0.1.4

09 Nov 01:20

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.1.3...v0.1.4

v0.1.3

08 Nov 21:44

Choose a tag to compare

  • ghpr init creates gh/new/: Automatically creates and initializes the gh/new/ directory
  • Shell integration auto-cd: ghpri function now automatically cd's to gh/new/ after init
  • README improvements: Added prominent examples using real PRs/Issues (marin#1773, marin#1723)
  • PyPI badge: Added version badge to README
  • Shell integration packaging: Shell files (.bash, .fish) now properly included in PyPI package
  • pull single commit: Changed to create one atomic commit instead of separate commits for description and comments
  • pull Issue support: Fixed to work with Issues, not just PRs
  • All 92 tests passing

Full Changelog: v0.1.2...v0.1.3

v0.1.2

08 Nov 15:47

Choose a tag to compare

  • Issue Support: Fixed pull command to work with Issues, not just PRs

    • Changed from get_pr_metadata() to get_item_metadata() for unified handling
    • Properly detects item type and adjusts messaging accordingly
  • Single Atomic Commit: Changed to create one comprehensive commit instead of separate commits for description and comments

    • Commit message format: Pull from {issue/PR}: description, X new comment(s), Y updated comment(s)
    • Stages all changes then commits once at the end
  • Description Filename Handling: Uses proper repo#number.md format instead of hardcoded DESCRIPTION.md

  • Legacy Migration: Added support for migrating old comment filenames (z{id}.mdz{id}-{author}.md)

  • All 92 tests passing

Full Changelog: v0.1.1...v0.1.2

v0.1.1

03 Nov 22:25

Choose a tag to compare

  • Directory naming: Fixed nested gh/gh/{number}/ bug when cloning from within gh/ directory

    • Now correctly creates {git_root}/gh/{number}/ regardless of current directory
    • From git root → gh/1690/
    • From gh/1690/
    • From gh/subdir/../1690/
  • Ownership check: Fixed clone command editing others' PRs/Issues

    • Now only adds gist footer if current user is the PR/Issue author
    • Prevents "edited by" appearing on others' PRs
  • Visible footer extraction: Made extract_gist_footer() more permissive

    • Now handles both 3-line and 4-line visible footer formats
    • Accepts optional blank line before "Synced with..." line
  • Added 54 new tests across 4 test modules

    • test_patterns.py: PR/Issue spec parsing (10 tests)
    • test_files.py: Description file operations (20 tests)
    • test_ownership.py: Ownership checks (6 tests)
    • test_gist.py: Gist footer operations (18 tests)
  • Total: 92 tests, all passing

New comprehensive test coverage for:

  • PR spec parsing: full URLs, owner/repo#number, just numbers
  • Description file operations: finding, reading, writing with link refs
  • Ownership validation: user matching for PR/Issue editing
  • Gist footer handling: visible/hidden formats, extraction, addition
  • Roundtrip testing: ensure write→read preserves data

Full Changelog: v0.1.0...v0.1.1

v0.1.0

03 Nov 16:28

Choose a tag to compare

First public release of ghpr:

  • Clone and sync GitHub PR/Issue descriptions locally
  • Bidirectional sync with GitHub
  • Gist mirroring as read replica
  • Comment support with draft workflow
  • Image upload to gists
  • Modular architecture with separate command modules
  • Uses utz 0.21.3 for git utilities

Full Changelog: https://github.com/runsascoded/ghpr/commits/v0.1.0