Repository navigation
feat(release)!: support partial configuration overrides - #493
Merged
Merged
Conversation
Contributor
Super-linter summary
All files and directories linted successfully For more information, see the GitHub Actions workflow run Powered by Super-linter |
Accept YAML or JSON workflow overrides above repository settings and shared defaults using native Release Drafter inheritance. BREAKING CHANGE: Repository release configuration without an explicit _extends chain now inherits HoverKraft defaults for omitted settings.
neilime
force-pushed
the
feat/release-config-overrides
branch
from
November 5, 2026 08:50
f40f949 to
9bc8ab1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Allow consumers to customize release configuration without duplicating HoverKraft defaults.
release/planandrelease/createaccept the same partial YAML or JSONrelease-configinput; repository configuration files can also contain only the settings they override.Precedence is shared defaults, then the selected repository file, then workflow input. Native Release Drafter inheritance replaces supplied top-level values, including whole lists and mappings; omitted settings remain inherited. Empty lists clear inherited lists. Existing files with an explicit
_extendschain retain their chosen base. Repository files are never rewritten.The configuration action creates temporary inheritance layers and owns its YAML parser dependency. It follows the parse-ci-reports setup and test pattern: shared
setup-nodeatgithub.action_path, action-local implementation and tests, and shared unit-test CI separate from integration tests. The setup and unit-test workflows use published ci-github-nodejs2.0.0, which supports disabling lifecycle scripts during installation. Default compare links use the resolved tag, so customized prefixes stay consistent with release notes. Version planning applies the configuration before its existing change-detection wrapper.Breaking change: files without an explicit
_extendschain now inherit shared defaults for omitted keys. Their effectiveconfig-pathis temporary andis-generatedis true. Files that declare their own inheritance keep their existing base and path when no workflow override is supplied.Validation:
test:ciscripts with non-empty LCOV reports. Each action also exposestestandtest:watch; its tracked coverage placeholder ignores generated reports.Supports the shared Node.js workflow extension in hoverkraft-tech/ci-github-nodejs#563 and its consumer reactionable/reactionable#2695. No production release was dispatched or published.