diff --git a/.gitea/workflows/changelog.yml b/.gitea/workflows/changelog.yml index e484adc..c907209 100644 --- a/.gitea/workflows/changelog.yml +++ b/.gitea/workflows/changelog.yml @@ -17,16 +17,44 @@ jobs: with: fetch-depth: 0 - name: Generate upcoming changelog + env: + ISSUE_RW_TOKEN: ${{ secrets.ISSUE_RW_TOKEN }} run: | - git sv rn -o changelog.md - export RELEASE_NOTES=$(cat changelog.md) - export ISSUE_NUMBER=$(curl -s "${GITHUB_SERVER_URL}/api/v1/repos/gitea/helm-gitea/issues?state=open&q=Changelog%20for%20upcoming%20version" | jq '.[].number') - - echo $RELEASE_NOTES - JSON_DATA=$(echo "" | jq -Rs --arg title 'Changelog for upcoming version' --arg body "$(cat changelog.md)" '{title: $title, body: $body}') - - if [ -z "$ISSUE_NUMBER" ]; then - curl -s -X POST "${GITHUB_SERVER_URL}/api/v1/repos/gitea/helm-gitea/issues" -H "Authorization: token ${{ secrets.ISSUE_RW_TOKEN }}" -H "Content-Type: application/json" -d "$JSON_DATA" - else - curl -s -X PATCH "${GITHUB_SERVER_URL}/api/v1/repos/gitea/helm-gitea/issues/$ISSUE_NUMBER" -H "Authorization: token ${{ secrets.ISSUE_RW_TOKEN }}" -H "Content-Type: application/json" -d "$JSON_DATA" + if [ -z "${ISSUE_RW_TOKEN}" ]; then + echo "ERROR: Secret 'ISSUE_RW_TOKEN' not defined" 1>&2 + exit 1 + fi + + git sv rn -o changelog.md + + if ! RELEASE_NOTES="$(cat changelog.md)"; then + echo "ERROR: Failed to read changelog.md" 1>&2 + exit 1 + fi + export RELEASE_NOTES + + if ! ISSUE_NUMBER="$(curl --fail -s "${GITHUB_SERVER_URL}/api/v1/repos/gitea/helm-gitea/issues?state=open&q=Changelog%20for%20upcoming%20version" | jq '.[].number')"; then + echo "ERROR: Failed query issue number" 1>&2 + exit 1 + fi + export ISSUE_NUMBER + + if ! JSON_DATA="$(echo "" | jq -Rs --arg title 'Changelog for upcoming version' --arg body "$(cat changelog.md)" '{title: $title, body: $body}')"; then + echo "ERROR: Failed to prepare JSON payload" 1>&2 + exit 1 + fi + + CURL_ARGS=( + "--data" "${JSON_DATA}" + "--fail" + "--header" "Authorization: token ${ISSUE_RW_TOKEN}" + "--header" "Content-Type: application/json" + "--location" + "--silent" + ) + + if [ -z "${ISSUE_NUMBER}" ]; then + curl "${CURL_ARGS[@]}" --request POST "${GITHUB_SERVER_URL}/api/v1/repos/gitea/helm-gitea/issues" + else + curl "${CURL_ARGS[@]}" --request PATCH "${GITHUB_SERVER_URL}/api/v1/repos/gitea/helm-gitea/issues/${ISSUE_NUMBER}" fi