-
Notifications
You must be signed in to change notification settings - Fork 0
🚀 [Feature]: Add PR Title and Description as Configurable Release Notes #264
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…d notes in Publish-Module workflow
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds three new configurable settings for release notes generation based on pull request metadata, aligning with the Auto-Release pattern. The changes enable users to customize whether the PR title is used as the release name, whether the PR body becomes the release notes content, and whether the PR title appears as a heading above the body.
Changes:
- Added three new boolean settings to the
Publish.Moduleconfiguration section - Updated the workflow to pass these settings to the Publish-PSModule action
- Documented the new settings in the README configuration table and defaults example
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| README.md | Adds documentation for three new Publish.Module settings (UsePRTitleAsReleaseName, UsePRBodyAsReleaseNotes, UsePRTitleAsNotesHeading) in both the configuration table and defaults YAML example |
| .github/workflows/Publish-Module.yml | Passes the three new settings from the configuration to the Publish-PSModule action |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
…ion tags for Get-Settings and Publish-Module
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
… and add ReleaseType input
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.
| ``` | ||
| #### Auto-generated notes |
Copilot
AI
Jan 18, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to the Markdown style guidelines (CodingGuidelineID: 1000002), code fence blocks should always be followed by a blank line before continuing with regular text. Add a blank line after the closing code fence and before "#### Auto-generated notes".
| | Name | Type | Description | Default | | ||
| | ----------------------------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | | ||
| | `Name` | `String` | Name of the module to publish. Defaults to the repository name. | `null` | | ||
| | `Test.Skip` | `Boolean` | Skip all tests | `false` | | ||
| | `Test.Linux.Skip` | `Boolean` | Skip tests on Linux | `false` | | ||
| | `Test.MacOS.Skip` | `Boolean` | Skip tests on macOS | `false` | | ||
| | `Test.Windows.Skip` | `Boolean` | Skip tests on Windows | `false` | | ||
| | `Test.SourceCode.Skip` | `Boolean` | Skip source code tests | `false` | | ||
| | `Test.SourceCode.Linux.Skip` | `Boolean` | Skip source code tests on Linux | `false` | | ||
| | `Test.SourceCode.MacOS.Skip` | `Boolean` | Skip source code tests on macOS | `false` | | ||
| | `Test.SourceCode.Windows.Skip` | `Boolean` | Skip source code tests on Windows | `false` | | ||
| | `Test.PSModule.Skip` | `Boolean` | Skip PSModule framework tests | `false` | | ||
| | `Test.PSModule.Linux.Skip` | `Boolean` | Skip PSModule framework tests on Linux | `false` | | ||
| | `Test.PSModule.MacOS.Skip` | `Boolean` | Skip PSModule framework tests on macOS | `false` | | ||
| | `Test.PSModule.Windows.Skip` | `Boolean` | Skip PSModule framework tests on Windows | `false` | | ||
| | `Test.Module.Skip` | `Boolean` | Skip module tests | `false` | | ||
| | `Test.Module.Linux.Skip` | `Boolean` | Skip module tests on Linux | `false` | | ||
| | `Test.Module.MacOS.Skip` | `Boolean` | Skip module tests on macOS | `false` | | ||
| | `Test.Module.Windows.Skip` | `Boolean` | Skip module tests on Windows | `false` | | ||
| | `Test.TestResults.Skip` | `Boolean` | Skip test result processing | `false` | | ||
| | `Test.CodeCoverage.Skip` | `Boolean` | Skip code coverage tests | `false` | | ||
| | `Test.CodeCoverage.PercentTarget` | `Integer` | Target code coverage percentage | `0` | | ||
| | `Test.CodeCoverage.StepSummaryMode` | `String` | Step summary mode for code coverage reports | `'Missed, Files'` | | ||
| | `Build.Skip` | `Boolean` | Skip all build tasks | `false` | | ||
| | `Build.Module.Skip` | `Boolean` | Skip module build | `false` | | ||
| | `Build.Docs.Skip` | `Boolean` | Skip documentation build | `false` | | ||
| | `Build.Docs.ShowSummaryOnSuccess` | `Boolean` | Show super-linter summary on success for documentation linting | `false` | | ||
| | `Build.Site.Skip` | `Boolean` | Skip site build | `false` | | ||
| | `Publish.Module.Skip` | `Boolean` | Skip module publishing | `false` | | ||
| | `Publish.Module.CleanupPrereleases` | `Boolean` | Automatically clean up old prerelease tags when merging to main or when a PR is abandoned | `true` | | ||
| | `Publish.Module.AutoPatching` | `Boolean` | Automatically patch module version | `true` | | ||
| | `Publish.Module.IncrementalPrerelease` | `Boolean` | Use incremental prerelease versioning | `true` | | ||
| | `Publish.Module.DatePrereleaseFormat` | `String` | Format for date-based prerelease (uses [.NET DateTime format strings](https://learn.microsoft.com/dotnet/standard/base-types/standard-date-and-time-format-strings)) | `''` | | ||
| | `Publish.Module.VersionPrefix` | `String` | Prefix for version tags | `'v'` | | ||
| | `Publish.Module.MajorLabels` | `String` | Labels indicating a major version bump | `'major, breaking'` | | ||
| | `Publish.Module.MinorLabels` | `String` | Labels indicating a minor version bump | `'minor, feature'` | | ||
| | `Publish.Module.PatchLabels` | `String` | Labels indicating a patch version bump | `'patch, fix'` | | ||
| | `Publish.Module.IgnoreLabels` | `String` | Labels indicating no release | `'NoRelease'` | | ||
| | `Publish.Module.UsePRTitleAsReleaseName` | `Boolean` | Use the PR title as the GitHub release name instead of version string | `false` | | ||
| | `Publish.Module.UsePRBodyAsReleaseNotes` | `Boolean` | Use the PR body as the release notes content | `true` | | ||
| | `Publish.Module.UsePRTitleAsNotesHeading` | `Boolean` | Prepend PR title as H1 heading with PR number link before the body | `true` | | ||
| | `Linter.Skip` | `Boolean` | Skip repository linting | `false` | | ||
| | `Linter.ShowSummaryOnSuccess` | `Boolean` | Show super-linter summary on success for repository linting | `false` | | ||
| | `Linter.env` | `Object` | Environment variables for super-linter configuration | `{}` | |
Copilot
AI
Jan 18, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The PR description mentions that the workflow now uses Publish.Module.ReleaseType, and this setting is passed to the Publish-PSModule action on line 56. However, this setting is not documented in the configuration table (lines 366-409) or in the default configuration example. The ReleaseType setting should be added to the documentation to maintain completeness.
| | Parameter | Description | | ||
| |-----------|-------------| | ||
| | `UsePRTitleAsReleaseName` | Use the PR title as the GitHub release name instead of the version string | | ||
| | `UsePRBodyAsReleaseNotes` | Use the PR body as the release notes content | | ||
| | `UsePRTitleAsNotesHeading` | Prepend PR title as H1 heading with PR number link before the body | |
Copilot
AI
Jan 18, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The documentation table uses regular hyphens in the parameter names which can cause line breaks within the parameter names. According to the Markdown style guidelines (CodingGuidelineID: 1000002), these should use non-breaking hyphens. Replace regular hyphens with non-breaking hyphens for UsePRTitleAsReleaseName, UsePRBodyAsReleaseNotes, and UsePRTitleAsNotesHeading.
| ``` | ||
|
|
||
| This produces release notes like: |
Copilot
AI
Jan 18, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to the Markdown style guidelines (CodingGuidelineID: 1000002), code fence blocks should always be followed by a blank line before continuing with regular text. Add a blank line after the closing code fence and before "This produces release notes like:".
Your pull request title and description can now be used as release notes when publishing modules, giving you direct control over how your releases appear to users. Additionally, this PR updates the workflow to use the new
Publish.Module.ReleaseTypeandPublish.Module.CleanupPrereleasessettings structure.New configuration settings
Three new settings are available in your
.github/PSModule.ymlfile underPublish.Module:UsePRTitleAsReleaseNamefalseUsePRBodyAsReleaseNotestrueUsePRTitleAsNotesHeadingtrueDefault behavior
With the default settings, when you merge a PR, the GitHub release will automatically include:
# Add retry logic (#123))No configuration changes are needed to benefit from this feature—just write meaningful PR descriptions.
Usage examples
To use all default settings (recommended):
# No configuration needed - defaults work out of the boxTo also use the PR title as the release name:
To disable PR-based release notes entirely (use auto-generated notes):
Updated settings structure
The workflow now references release-related settings from
Publish.Module:Publish.Module.ReleaseType(wasRun.ReleaseType)Publish.Module.CleanupPrereleases(wasRun.CleanupPrereleases/Publish.Module.AutoCleanup)