Skip to content

fix: respect input_draft when updating existing release#801

Open
godfengliang wants to merge 1 commit into
softprops:masterfrom
godfengliang:fix-draft-prerelease-update
Open

fix: respect input_draft when updating existing release#801
godfengliang wants to merge 1 commit into
softprops:masterfrom
godfengliang:fix-draft-prerelease-update

Conversation

@godfengliang

Copy link
Copy Markdown

Fixes #795

Problem

When updating an existing draft release to a prerelease, the draft field is hardcoded to existingRelease.draft (always true for a draft release). This means the release cannot be converted from draft to published prerelease even when draft input is explicitly set to false or omitted.

Root Cause

In src/github.ts line 582, the draft field in the updateRelease call uses existingRelease.draft directly, ignoring the user's input_draft setting. Compare this to the prerelease field on lines 569-570, which correctly respects config.input_prerelease.

Fix

Mirror the prerelease logic for draft:

Before:

draft: existingRelease.draft,

After:

draft: config.input_draft !== undefined ? config.input_draft : existingRelease.draft,

This ensures that when input_draft is explicitly provided, it overrides the existing value. When not provided, the existing draft status is preserved (backward compatible).

Testing

The user's reproduction case should now work:

  1. Create a draft release with draft: true
  2. In a subsequent workflow, set draft: false (or omit) and prerelease: true
  3. The existing draft release is now correctly published as a prerelease

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Creating prerelease from draft release fails

1 participant