name: Update changelog on: push: branches: [ "**" ] workflow_dispatch: {} jobs: changelog: container: docker.io/thegeeklab/git-sv:2.0.5 runs-on: ubuntu-latest steps: - name: Install packages via apt run: | apk add -q --update --no-cache nodejs curl jq sed - uses: actions/checkout@v5.0.0 with: fetch-depth: 0 - name: Generate upcoming changelog env: ISSUE_RW_TOKEN: ${{ secrets.ISSUE_RW_TOKEN }} run: | 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