2.6.1 is a patch release focused on restoring linked discussion thread creation when
discussion_category_name is set. It fixes #764, where the draft-first publish flow
stopped carrying the discussion category through the final publish step.
If you still hit an issue after upgrading, please open a report with the bug template and include a minimal repro or sanitized workflow snippet where possible.
- fix: preserve discussion category on publish by @chenrui333 in #765
2.6.0 is a minor release centered on previous_tag support for generate_release_notes,
which lets workflows pin GitHub's comparison base explicitly instead of relying on the default range.
It also includes the recent concurrent asset upload recovery fix, a working_directory docs sync,
a checked-bundle freshness guard for maintainers, and clearer immutable-prerelease guidance where
GitHub platform behavior imposes constraints on how prerelease asset uploads can be published.
If you still hit an issue after upgrading, please open a report with the bug template and include a minimal repro or sanitized workflow snippet where possible.
- feat: support previous_tag for generate_release_notes by @pocesar in #372
- fix: recover concurrent asset metadata 404s by @chenrui333 in #760
- docs: clarify reused draft release behavior by @chenrui333 in #759
- docs: clarify working_directory input by @chenrui333 in #761
- ci: verify dist bundle freshness by @chenrui333 in #762
- fix: clarify immutable prerelease uploads by @chenrui333 in #763
2.5.3 is a patch release focused on the remaining path-handling and release-selection bugs uncovered after 2.5.2.
It fixes #639, #571, #280, #614, #311, #403, and #368.
It also adds documentation clarifications for #541, #645, #542, #393, and #411,
where the current behavior is either usage-sensitive or constrained by GitHub platform limits rather than an action-side runtime bug.
If you still hit an issue after upgrading, please open a report with the bug template and include a minimal repro or sanitized workflow snippet where possible.
- fix: prefer token input over GITHUB_TOKEN by @chenrui333 in #751
- fix: clean up duplicate drafts after canonicalization by @chenrui333 in #753
- fix: support Windows-style file globs by @chenrui333 in #754
- fix: normalize refs-tag inputs by @chenrui333 in #755
- fix: expand tilde file paths by @chenrui333 in #756
- docs: clarify token precedence by @chenrui333 in #752
- docs: clarify GitHub release limits by @chenrui333 in #758
- documentation clarifications for empty-token handling,
preserve_order, and special-character asset filename behavior
2.5.2 is a patch release focused on the remaining release-creation and prerelease regressions in the 2.5.x bug-fix cycle.
It fixes #705, fixes #708, fixes #740, fixes #741, and fixes #722.
Regression testing covers the shared-tag race, prerelease event behavior, dotfile asset labels,
same-filename concurrent uploads, and blocked-tag cleanup behavior.
If you still hit an issue after upgrading, please open a report with the bug template and include a minimal repro or sanitized workflow snippet where possible.
- fix: canonicalize releases after concurrent create by @chenrui333 in #746
- fix: preserve prereleased events for prereleases by @chenrui333 in #748
- fix: restore dotfile asset labels by @chenrui333 in #749
- fix: handle upload already_exists races across workflows by @api2062 in #745
- fix: clean up orphan drafts when tag creation is blocked by @chenrui333 in #750
2.5.1 is a patch release focused on regressions introduced in 2.5.0 and on release lookup reliability.
It fixes #713, addresses #703, and fixes #724. Regression testing shows that
current master no longer reproduces the finalize-race behavior reported in #704 and #709.
- fix: fetch correct asset URL after finalization; test; some refactoring by @pzhlkj6612 in #738
- fix: release marked as 'latest' despite make_latest: false by @Boshen in #715
- fix: use getReleaseByTag API instead of iterating all releases by @kim-em in #725
- dependency updates, including the ESM/runtime compatibility refresh in #731
- feat: mark release as draft until all artifacts are uploaded by @dumbmoron in #692
- dependency updates
- feat: Ensure generated release notes cannot be over 125000 characters by @BeryJu in #684
- dependency updates
- fix(util): support brace expansion globs containing commas in parseInputFiles by @Copilot in #672
- fix: gracefully fallback to body when body_path cannot be read by @Copilot in #671
- feat(action): respect working_directory for files globs by @stephenway in #667
- fix(action): handle 422 already_exists race condition by @stephenway in #665
- dependency updates
- feat: add input option
overwrite_filesby @asfernandes in #343
- dependency updates
- fix: revert fs
readableWebStreamchange
- fix: fix file closing issue by @WailGree in #629
- Migrate from jest to vitest
- Replace
mimewithmime-types - Bump to use node 24
- Dependency updates
- fix: updating release draft status from true to false by @galargh in #316
- chore: simplify ref_type test by @steinybot in #598
- fix(docs): clarify the default for tag_name by @muzimuzhi in #599
- test(release): add unit tests when searching for a release by @rwaskiewicz in #603
- dependency updates
- fix: big file uploads by @xen0n in #562
- chore(deps): bump @types/node from 22.10.1 to 22.10.2 by @dependabot in #559
- chore(deps): bump @types/node from 22.10.2 to 22.10.5 by @dependabot in #569
- chore: update error and warning messages for not matching files in files field by @ytimocin in #568
- feat: read the release assets asynchronously by @xen0n in #552
- fix(docs): clarify the default for tag_name by @alexeagle in #544
- chore(deps): bump typescript from 5.6.3 to 5.7.2 by @dependabot in #548
- chore(deps): bump @types/node from 22.9.0 to 22.9.4 by @dependabot in #547
- chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 by @dependabot in #545
- chore(deps): bump @vercel/ncc from 0.38.2 to 0.38.3 by @dependabot in #543
- chore(deps): bump prettier from 3.3.3 to 3.4.1 by @dependabot in #550
- chore(deps): bump @types/node from 22.9.4 to 22.10.1 by @dependabot in #551
- chore(deps): bump prettier from 3.4.1 to 3.4.2 by @dependabot in #554
- feat: add support for release assets with multiple spaces within the name by @dukhine in #518
- feat: preserve upload order by @richarddd in #500
- chore(deps): bump @types/node from 22.8.2 to 22.8.7 by @dependabot in #539
- maintenance release with updated dependencies
- chore(deps): bump prettier from 2.8.0 to 3.3.3 by @dependabot in #480
- chore(deps): bump @types/node from 20.14.9 to 20.14.11 by @dependabot in #483
- chore(deps): bump @octokit/plugin-throttling from 9.3.0 to 9.3.1 by @dependabot in #484
- chore(deps): bump glob from 10.4.2 to 11.0.0 by @dependabot in #477
- refactor: write jest config in ts by @chenrui333 in #485
- chore(deps): bump @actions/github from 5.1.1 to 6.0.0 by @dependabot in #470
- Fix missing update release body by @FirelightFlagboy in #365
- Bump @octokit/plugin-retry from 4.0.3 to 7.1.1 by @dependabot in #443
- Bump typescript from 4.9.5 to 5.5.2 by @dependabot in #467
- Bump @types/node from 20.14.6 to 20.14.8 by @dependabot in #469
- Bump @types/node from 20.14.8 to 20.14.9 by @dependabot in #473
- Bump typescript from 5.5.2 to 5.5.3 by @dependabot in #472
- Bump ts-jest from 29.1.5 to 29.2.2 by @dependabot in #479
- docs: document that existing releases are updated by @jvanbruegge in #474
- maintenance release with updated dependencies
- Factor in file names with spaces when upserting files #446 via @MystiPanda
- Improvements to error handling #449 via @till
- Declare
make_latestas an input field inaction.yml#419
- Add support for make_latest property #304 via @samueljseay
- Fail run if files setting contains invalid patterns #384 via @rpdelaney
- Add support for proxy env variables (don't use node-fetch) #386 via @timor-raiman
- Suppress confusing warning when input_files is empty #389 via @Drowze
2.0.0!? this release corrects a disjunction between git tag versions used in the marketplace and the versions listed in this file. Previous versions should have really been 1.*. Going forward this should be better aligned.- Upgrade action.yml declaration to node20 to address deprecations
- Upgrade to action.yml declaration to node16 to address deprecations
- Upgrade dependencies
- Add
assetoutput as a JSON array containing information about the uploaded assets
- provides a new workflow input option
generate_release_noteswhich when set to true will automatically generate release notes for you based on GitHub activity #179. Please see the GitHub docs for this feature for more information
- fix issue with multiple runs concatenating release bodies #145
- fix bug leading to empty strings substituted for inputs users don't provide breaking api calls #144
- better error message on release create failed #143
- fixed error message formatting for file uploads
- add support for linking release to GitHub discussion #136
- address recent warnings in assert upload api as well as introduce asset upload overrides, allowing for multiple runs for the same release with the same named asserts #134
- fix backwards compatibility with
GITHUB_TOKENresolution.GITHUB_TOKENis now resolved first from an env variable and then from an input #133 - trim white space in provided
tag_name#130
- allow creating draft releases without a tag #95
- Set default token for simpler setup #83
- fix regression with action yml #126
This is a release catch up have a hiatus. Future releases will happen more frequently
- Add 'fail_on_unmatched_files' input, useful for catching cases where your
filesinput does not actually match what you expect #55 - Add
repositoryinput, useful for creating a release in an external repository #61 - Add release
idto outputs, useful for referring to release in workflow steps following the step that uses this action #60 - Add
upload_urlas action output, useful for managing uploads separately #75 - Support custom
target_commitishvalue, useful to customize the default #76 - fix
body_pathinput first then fall back onbodyinput. This was the originally documented precedence but was implemented in the opposite order! #85 - Retain original release info if the keys are not set, useful for filling in blanks for a release you've already started separately #109
- Limit number of times github api request to create a release is retried, useful for avoiding eating up your rate limit and action minutes due to either an invalid token or other circumstance causing the api call to fail #111
- Added support for specifying tag name #39
- Added support for updating releases body #36
- Steps can now access the url of releases with the
urloutput of this Action #28 - Added basic GitHub API retry support to manage API turbulence #26
- Fixed where
with: body_pathwas not being used in generated GitHub releases
- Add support for merging draft releases #16
GitHub's api doesn't explicitly have a way of fetching a draft release by tag name which caused draft releases to appear as separate releases when used in a build matrix. This is now fixed.
- Add support for newline-delimited asset list #18
GitHub actions inputs don't inherently support lists of things and one might like to append a list of files to include in a release. Previously this was possible using a comma-delimited list of asset path patterns to upload. You can now provide these as a newline delimited list for better readability
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
filea.txt
fileb.txt
filec.txt
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}- Add support for prerelease annotated GitHub releases with the new input field
with.prerelease: true#19
- Add support for publishing releases on all supported virtual hosts
You'll need to remove docker:// prefix and use the @v1 action tag
- Initial release