Skip to content

Commit bda41a8

Browse files
authored
Merge pull request #67 from nmfs-opensci/copilot/fix-draft-release-error
Fix `unknown flag: --generate-notes` in create-draft-release action
2 parents 5d10e7b + a842dce commit bda41a8

1 file changed

Lines changed: 19 additions & 11 deletions

File tree

.github/actions/create-draft-release/action.yml

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -104,18 +104,30 @@ runs:
104104
echo ""
105105
} >> "$body_file"
106106
107+
# Append auto-generated release notes via API (avoids --generate-notes flag compatibility issues)
108+
if [ "${{ inputs.generate_notes }}" = "true" ]; then
109+
generated=$(gh api "repos/$GITHUB_REPOSITORY/releases/generate-notes" \
110+
--method POST \
111+
--field tag_name="$tag" \
112+
--field target_commitish="$target" \
113+
--jq '.body' 2>&1) && api_ok=true || api_ok=false
114+
if [ "$api_ok" = "true" ] && [ -n "$generated" ]; then
115+
echo "$generated" >> "$body_file"
116+
elif [ "$api_ok" = "false" ]; then
117+
echo "::warning::Failed to generate release notes via API: $generated"
118+
else
119+
echo "::notice::Auto-generated release notes were empty; body will contain only the standard description."
120+
fi
121+
fi
122+
107123
# Check if a release with this tag already exists
108124
release_info=$(gh release view "$tag" --json isDraft 2>/dev/null || echo "")
109125
110126
if [ -n "$release_info" ]; then
111127
is_draft=$(echo "$release_info" | jq -r '.isDraft')
112128
if [ "$is_draft" = "true" ] && [ "${{ inputs.force_update }}" = "true" ]; then
113129
# Update existing draft release
114-
edit_args=(release edit "$tag" --draft --title "$title" --target "$target" --notes-file "$body_file")
115-
if [ "${{ inputs.generate_notes }}" = "true" ]; then
116-
edit_args+=(--generate-notes)
117-
fi
118-
gh "${edit_args[@]}"
130+
gh release edit "$tag" --draft --title "$title" --target "$target" --notes-file "$body_file"
119131
echo "✓ Updated existing draft release for tag $tag"
120132
elif [ "$is_draft" != "true" ]; then
121133
echo "::error::Release for tag '$tag' already exists and is not a draft. Cannot update a published release."
@@ -125,12 +137,8 @@ runs:
125137
exit 1
126138
fi
127139
else
128-
# Create new draft release; GitHub-generated notes will append after notes-file.
129-
args=(release create "$tag" --draft --title "$title" --target "$target" --notes-file "$body_file")
130-
if [ "${{ inputs.generate_notes }}" = "true" ]; then
131-
args+=(--generate-notes)
132-
fi
133-
gh "${args[@]}"
140+
# Create new draft release
141+
gh release create "$tag" --draft --title "$title" --target "$target" --notes-file "$body_file"
134142
echo "✓ Draft release created for tag $tag"
135143
fi
136144

0 commit comments

Comments
 (0)