Repository navigation
β¨ Highlights
This release brings powerful new features for creating smarter, more organized release notes!
- π Issue-Linked PRs: Track complete feature stories by linking issues to multiple PRs
- π Manual Release Notes: Embed custom content using Jinja2 templates
- π Enhanced Data: PR additions/deletions stats and improved JSON output
- π― Smart Categorization: Issues prioritized over PRs to reduce duplication
What's Changed
π― Key Features in This Release
π Issue-Linked Pull Requests Support
The game-changing feature from issue #114 allows tracking complete feature stories across multiple PRs:
-
#114: Support getting All Issues Linked to Pull Requests in #129, #131, #133 by @haya14busa (
$\textsf{\color{ #3fb950}{\textsf{+1023}}\color{ #f85149}{\textsf{ -16}}}$ )
What this enables:
- Smart Grouping: When an issue is linked to multiple PRs, show the complete feature story
- Reduced Duplication: Issues take priority over individual PRs to avoid clutter
- Unified View: See the full scope of work including linked PRs and combined statistics
- Template Examples: New
github-ext-with-issues.md.jinjaandlabel-with-issues.md.jinjatemplates demonstrate this feature
π Manual Release Notes Support
With PR #118, you can now create rich, customized release notes by placing markdown files in .changelog/ directories:
- Global templates in
.changelog/templates/ - Version-specific content in
.changelog/from-v0.7.0/ - Include them with
{% include ['header.md'] ignore missing %}
π Enhanced JSON Output
- PR Statistics: Now includes
additionsanddeletionsfor each pull request (#111) - Timing Data: Added
latestMergedAttimestamp for better time tracking (#113)
This release includes 19 merged pull requests.
Enhancements π
| # | Title | Author | Changes | |
|---|---|---|---|---|
| #111 | add PR additions/deletions data |
|
@haya14busa |
|
| #113 | add latestMergedAt to JSON output |
|
@haya14busa |
|
| #118 | feat: support embedding manual release notes |
|
@haya14busa |
|
| #119 | feat: add --version flag support to CLI |
|
@haya14busa |
|
| #129 | feat: Add comprehensive closing issues support with issue prioritization |
|
@haya14busa |
|
| #132 | Add extract filter and fix duplicate authors in label-with-issues template |
|
@haya14busa |
|
| #161 | Fix the npm library entry point for direct release-note consumers |
|
@haya14busa |
|
Templates β©οΈ
| # | Title | Author | Changes | |
|---|---|---|---|---|
| #107 | fix label template |
|
@haya14busa |
|
| #111 | add PR additions/deletions data |
|
@haya14busa |
|
| #131 | Add label-with-issues template for mixed issue/PR display |
|
@haya14busa |
|
| #132 | Add extract filter and fix duplicate authors in label-with-issues template |
|
@haya14busa |
|
| #133 | feat: Add github-ext-with-issues template combining categorized PRs with issue support |
|
@haya14busa |
|
Bug Fixes π
| # | Title | Author | Changes | |
|---|---|---|---|---|
| #107 | fix label template |
|
@haya14busa |
|
Other Changes
| # | Title | Author | Changes | |
|---|---|---|---|---|
| #115 | Revert "chore(deps): bump sigstore/cosign-installer from 3.9.2 to 4.0.0" |
|
@haya14busa |
|
| #120 | feat: add manual release notes example and template cleanup |
|
@haya14busa |
|
| #121 | use {% raw %} to avoid including file unexpectedly |
|
@haya14busa |
|
Dependencies
Show all 6 items
| # | Title | Author | Changes | |
|---|---|---|---|---|
| #92 | chore(deps): bump anchore/sbom-action from 0.20.7 to 0.20.8 |
|
@dependabot[bot] |
|
| #93 | chore(deps): bump sigstore/cosign-installer from 3.9.2 to 4.0.0 |
|
@dependabot[bot] |
|
| #128 | chore(deps): bump github/codeql-action from 4.30.8 to 4.31.2 |
|
@dependabot[bot] |
|
| #127 | chore(deps-dev): bump oxlint-tsgolint from 0.2.1 to 0.4.0 |
|
@dependabot[bot] |
|
| #125 | chore(deps): bump actions/upload-artifact from 4 to 5 |
|
@dependabot[bot] |
|
| #122 | chore(deps): bump anchore/sbom-action from 0.20.8 to 0.20.9 |
|
@dependabot[bot] |
|
Contributors
|
@haya14busa |
@dependabot[bot] |
Full Changelog: v0.7.0...v0.8.0 | Pull Requests
This manual release note was created using the new manual release notes feature! π
π Release Verification Instructions
Verifying Release Artifacts
Using Cosign
All release artifacts are signed using Sigstore and can be verified using cosign:
# Download the release assets
gh release download v0.8.0 --repo actionutils/gh-release-notes
# Verify the checksum file signature
cosign verify-blob \
--certificate-identity-regexp '^https://github.com/actionutils/trusted-go-releaser/.github/workflows/trusted-release-workflow.yml@.*$' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--cert "checksums.txt.pem" \
--signature "checksums.txt.sig" \
"checksums.txt"
# Verify checksums of all binaries
sha256sum --ignore-missing -c "checksums.txt"Using GitHub Attestations
All artifacts have GitHub Attestations that can be verified:
# Verify attestations for the checksum file
gh attestation verify "checksums.txt" --repo actionutils/gh-release-notes --signer-workflow='actionutils/trusted-go-releaser/.github/workflows/trusted-release-workflow.yml'π¦ Installation Scripts
This release includes installation scripts generated by binstaller:
-
install.sh- Downloads and installs the binary -
run.sh- Downloads and runs the binary directly
Verifying Installation Scripts
Before using the installation scripts, you can verify their authenticity using cosign (signatures) or GitHub Attestations.
# Download the scripts and their signatures
gh release download v0.8.0 --pattern "*.sh*" --repo actionutils/gh-release-notes
# Verify with cosign (recommended)
cosign verify-blob \
--certificate-identity-regexp '^https://github.com/actionutils/trusted-go-releaser/.github/workflows/trusted-release-workflow.yml@.*$' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--cert install.sh.pem \
--signature install.sh.sig \
install.sh
cosign verify-blob \
--certificate-identity-regexp '^https://github.com/actionutils/trusted-go-releaser/.github/workflows/trusted-release-workflow.yml@.*$' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--cert run.sh.pem \
--signature run.sh.sig \
run.sh
# Or verify with GitHub Attestations
# Verify the install script
gh attestation verify install.sh --repo actionutils/gh-release-notes --signer-workflow='actionutils/trusted-go-releaser/.github/workflows/trusted-release-workflow.yml'
# Verify the run script
gh attestation verify run.sh --repo actionutils/gh-release-notes --signer-workflow='actionutils/trusted-go-releaser/.github/workflows/trusted-release-workflow.yml'Using Installation Scripts
# Install the binary
curl -sSfL https://github.com/actionutils/gh-release-notes/releases/download/v0.8.0/install.sh | sh
# Or run directly without installation
curl -sSfL https://github.com/actionutils/gh-release-notes/releases/download/v0.8.0/run.sh | shOne-liner Installation with Verification
Using Cosign (recommended)
# Set the desired version and script type
VERSION="v0.8.0"
SCRIPT="install.sh" # or "run.sh"
DOWNLOAD_URL="https://github.com/actionutils/gh-release-notes/releases/download/${VERSION}"
# Download and verify with cosign, then execute
curl -sL "${DOWNLOAD_URL}/${SCRIPT}" | \
(tmpfile=$(mktemp); cat > "$tmpfile"; \
cosign verify-blob \
--certificate-identity-regexp '^https://github.com/actionutils/trusted-go-releaser/.github/workflows/trusted-release-workflow.yml@.*$' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--certificate "${DOWNLOAD_URL}/${SCRIPT}.pem" \
--signature "${DOWNLOAD_URL}/${SCRIPT}.sig" \
"$tmpfile" && \
sh "$tmpfile"; rm -f "$tmpfile")Using GitHub Attestations
# Set the desired version
VERSION="v0.8.0"
# Install with attestation verification
curl -sL "https://github.com/actionutils/gh-release-notes/releases/download/${VERSION}/install.sh" | \
(tmpfile=$(mktemp); cat > "$tmpfile"; \
gh attestation verify --repo=actionutils/gh-release-notes --signer-workflow='actionutils/trusted-go-releaser/.github/workflows/trusted-release-workflow.yml' "$tmpfile" && \
sh "$tmpfile"; rm -f "$tmpfile")