Release Note Generator

Release Note Generator

Last modified on 2025-04-18 , by hjjae2

Gitlab 에서 자동으로 Release Note 를 생성하는 방법을 알아보자.

Tutorial #

https://about.gitlab.com/blog/2023/11/01/tutorial-automated-release-and-release-notes-with-gitlab/

Example #

아래는 태그 생성 시 MR label 에 따라 Release Note 를 생성하는 스크립트다.

#!/bin/bash

API="$CI_API_V4_URL/projects/$CI_PROJECT_ID/merge_requests?state=merged&milestone=$CI_COMMIT_TAG"
MERGE_REQUESTS_JSON="merge_requests.json"

# Create release_notes.md
rm -f "$RELEASE_NOTE"
touch "$RELEASE_NOTE"

# Get MRs
curl \
--location "$API" \
--header "PRIVATE-TOKEN: $ACCESS_TOKEN" \
--output "$MERGE_REQUESTS_JSON"

# Add release notes
## Features
FEAT_COUNT=$(jq -r '[.[] | select(.labels[] | contains("feat"))] | length' "$MERGE_REQUESTS_JSON")
if [ "$FEAT_COUNT" -gt 0 ]; then
  cat <<EOF >> "$RELEASE_NOTE"
# :rocket: Features
$(jq -r '.[] | select(.labels[] | contains("feat")) | ["* ", .title, "(",  .reference, ") ", "(by @", .author.username, ")"] | add' "$MERGE_REQUESTS_JSON")

EOF
fi

...