Summary
This PR adds support for two new inputs to the release-please GitHub
Action:
`versioning-strategy` Allows users to specify the versioning strategy to
use for releases (e.g., default, always-bump-minor, etc.).
`release-as`: Allows users to specify the exact version to release as
(e.g., 2.0.0).
Usage Example
```
- uses: googleapis/release-please-action@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
release-type: node
versioning-strategy: always-bump-minor
release-as: 2.0.0
```
Motivation
These options provide more flexibility and control over how versions are
determined and released, addressing use cases where the default behavior
is not sufficient.
---------
Signed-off-by: Marco Ferrari <ferrarim@google.com>
Co-authored-by: Mantas Matijosaitis <mantas.matijosaitis@telesoftas.com>
Co-authored-by: Marco Ferrari <ferrarim@google.com>
## Problem
The `changelog-host` action parameter was being ignored when using
manifest configuration files (`release-please-config.json`). This caused
changelog links to always point to `github.com` instead of the specified
GitHub Enterprise Server URL, breaking changelog functionality for
GitHub Enterprise users.
## Root Cause
The original implementation attempted to pass `changelogHost` through
`manifestOverrides` to the `Manifest.fromManifest()` method. However,
`changelogHost` is not part of the `ManifestOptions` interface - it
belongs to the per-path `ReleaserConfig` interface. This architectural
mismatch meant the parameter was silently ignored.
## Solution
Modified the `loadOrBuildManifest()` function to:
1. Load the manifest normally without trying to pass `changelogHost`
through manifest options
2. Post-process the loaded manifest to override `changelogHost` for all
configured paths when the action input is provided and differs from the
default GitHub URL
## Technical Details
- **Before**: Attempted to use `manifestOverrides.changelogHost`
(invalid approach)
- **After**: Directly modifies
`manifest.repositoryConfig[path].changelogHost` for each path after
manifest loading
- Only applies the override when `changelog-host` input is provided and
differs from `https://github.com`
- Preserves existing behavior for config-less operation (single package
repos)
## Testing
- Updated existing test to verify the new implementation approach
- Maintains backward compatibility with all existing functionality
- Fixes the specific issue where GitHub Enterprise users couldn't
customize changelog host URLs
## Impact
This fix enables GitHub Enterprise Server users to properly use the
`changelog-host` parameter with manifest configurations, ensuring
changelog links point to their custom Git hosting instead
---------
Co-authored-by: Vincent Lee <vincentclee@users.noreply.github.com>
Any advanced configuration should be done via a
release-please-config.json.
Fixes#859Fixes#858Fixes#857Fixes#852
feat!: remove most configuration options in favor of manifest
configuration to configure the release-please-action
refactor!: rewrite in typescript
feat!: remove command option in favor of setting `release-type` and
`skip-github-release`/`skip-github-pull-request`
feat!: run on node20
deps!: upgrade release-please to v16
* Synchronised action inputs with ReleaserConfig and ManifestOptions from release-please 13.15.0
* fix conflict from merge
* fix merge issue
* fix merge issue
Co-authored-by: Benjamin E. Coe <bencoe@google.com>
Co-authored-by: Jeff Ching <chingor@google.com>
Major update to release-please which consolidates the manifest and single
releaser behavior into a single set of strategies, which can be used
on both split and mono-repos.
feat: adds support for draft pull requests.
feat: adds support for draft releases.
refactor!: if switching to manifest releaser, release_created will only be set if "." path is published.
refactor!: switch to using @actions/core getBooleanInput, accepted values for true = ["true", "True", "TRUE"], accepted values for false = ["false", "False", "FALSE"]