mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-24 08:57:03 -05:00
5c734d8885
If the 'worth a release-note' label is set, add a release note entry to the description of the pull request as a preview. * use the `release-notes/<pr-number>.md` file if any * otherwise use the pull request title Refs: https://code.forgejo.org/forgejo/release-notes-assistant
73 lines
1.7 KiB
Bash
Executable file
73 lines
1.7 KiB
Bash
Executable file
#!/bin/bash
|
|
# Copyright twenty-panda <twenty-panda@posteo.com>
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
payload=$(mktemp)
|
|
pr=$(mktemp)
|
|
trap "rm $payload $pr" EXIT
|
|
|
|
cat >$payload
|
|
#
|
|
# If this is a backport, refer to the original PR to figure
|
|
# out the classification.
|
|
#
|
|
if $(jq --raw-output .IsBackportedFrom <$payload); then
|
|
jq --raw-output '.BackportedFrom[0]' <$payload >$pr
|
|
else
|
|
jq --raw-output '.Pr' <$payload >$pr
|
|
fi
|
|
|
|
labels=$(jq --raw-output '.labels[].name' <$pr)
|
|
|
|
#
|
|
# Was this PR labeled `worth a release note`?
|
|
#
|
|
if echo "$labels" | grep --quiet worth; then
|
|
worth=true
|
|
else
|
|
worth=false
|
|
fi
|
|
|
|
#
|
|
# If there was no release-notes/N.md file and it is not
|
|
# worth a release note, just forget about it.
|
|
#
|
|
if test -z "$(jq --raw-output .Draft <$payload)"; then
|
|
if ! $worth; then
|
|
echo -n ZA Included for completness but not worth a release note
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
case "$labels" in
|
|
*bug*)
|
|
if $(jq --raw-output .IsBackportedTo <$payload); then
|
|
#
|
|
# if it has been backported, it was in the release notes of an older stable release
|
|
# and does not need to be in this more recent release notes
|
|
#
|
|
echo -n ZB Already announced in the release notes of an older stable release
|
|
exit 0
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
case "$labels" in
|
|
*breaking*)
|
|
case "$labels" in
|
|
*feature*) echo -n AA Breaking features ;;
|
|
*bug*) echo -n AB Breaking bug fixes ;;
|
|
*) echo -n ZC Breaking changes without a feature or bug label ;;
|
|
esac
|
|
;;
|
|
*forgejo/ui*)
|
|
case "$labels" in
|
|
*feature*) echo -n BA User Interface features ;;
|
|
*bug*) echo -n BB User Interface bug fixes ;;
|
|
*) echo -n ZD User Interface changes without a feature or bug label ;;
|
|
esac
|
|
;;
|
|
*feature*) echo -n CA Features ;;
|
|
*bug*) echo -n CB Bug fixes ;;
|
|
*) echo -n ZE Other changes without a feature or bug label ;;
|
|
esac
|