Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: joshjohanning/publish-github-action
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.0.2
Choose a base ref
...
head repository: joshjohanning/publish-github-action
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v3.0.3
Choose a head ref
  • 2 commits
  • 14 files changed
  • 4 contributors

Commits on Apr 15, 2026

  1. fix: use semver-based selection for release notes baseline (#89)

    * Initial plan
    
    * fix: use getLatestRelease API for release notes baseline instead of chronological ordering
    
    Fixes bug where hotpatches to older version lines (e.g. v2.0.6 published
    after v4.0.0) would be picked as the release notes baseline instead of
    the semantically latest release. Uses GitHub's getLatestRelease endpoint
    which respects the "latest" designation, with fallback to listReleases.
    
    Agent-Logs-Url: https://github.com/joshjohanning/publish-github-action/sessions/61a91a3a-130d-4656-9ca0-5c9ac14f529a
    
    Co-authored-by: joshjohanning <19912012+joshjohanning@users.noreply.github.com>
    
    * fix: add logging for getLatestRelease fallback and fix variable shadowing
    
    Agent-Logs-Url: https://github.com/joshjohanning/publish-github-action/sessions/61a91a3a-130d-4656-9ca0-5c9ac14f529a
    
    Co-authored-by: joshjohanning <19912012+joshjohanning@users.noreply.github.com>
    
    * fix: fall back to listReleases when latest release tag is not semver
    
    Address review feedback:
    - Restructure so listReleases fallback runs whenever previousTag is
      unset (not only when getLatestRelease throws)
    - Update catch comment to reflect all failure modes, not just first release
    - Add test for non-semver latest release tag falling back to listReleases
    
    * refactor: use semver-based selection for release notes baseline
    
    Replace getLatestRelease API with semver comparison to find the highest
    released version less than the current version. This correctly handles
    both hotpatches (v2.0.6 published after v4.0.0) and backports (publishing
    v2.0.7 when v4.0.1 exists).
    
    - Use semver.valid/lt/rcompare to filter and sort release tags
    - Remove getLatestRelease dependency entirely
    - Add backport scenario test (v2.0.7 when v4.0.1 exists → picks v2.0.6)
    - Add non-semver tag filtering test
    
    * fix: paginate releases and use real semver in tests
    
    - Use octokit.paginate() to fetch all releases instead of per_page: 100
    - Use real semver valid/lt/rcompare in test mocks instead of simplified
      re-implementations, only mock major/minor which need controlled values
    
    ---------
    
    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: joshjohanning <19912012+joshjohanning@users.noreply.github.com>
    Co-authored-by: Josh Johanning <joshjohanning@github.com>
    3 people authored Apr 15, 2026
    Configuration menu
    Copy the full SHA
    b135774 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    573e8bc View commit details
    Browse the repository at this point in the history
Loading