@@ -17,13 +17,10 @@ body = """
1717{% endif %}\
1818{% for group, commits in commits | group_by(attribute="group") %}
1919### {{ group }}
20- {% for commit in commits | unique(attribute="message") %}
20+ {% for commit in commits | unique(attribute="message") %}\
2121- {{ commit.message | upper_first }}\
22- {% if commit.remote.pr_number %}\
23- ([#{{ commit.remote.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.remote.pr_number }}))\
24- {% endif %}\
25- ([`{{ commit.id | truncate(length=7, end="") }}`]({{ self::remote_url() }}/commit/{{ commit.id }}))
26- {%- endfor %}
22+ {% if commit.remote.pr_number %} ([#{{ commit.remote.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.remote.pr_number }})){% endif %} ([`{{ commit.id | truncate(length=7, end="") }}`]({{ self::remote_url() }}/commit/{{ commit.id }}))
23+ {% endfor %}
2724{% endfor %}\n
2825"""
2926trim = true
@@ -33,13 +30,14 @@ footer = ""
3330conventional_commits = true
3431filter_unconventional = false
3532split_commits = false
36- commit_preprocessors = [
37- # 이슈/PR 번호를 링크로 변환
38- { pattern = ' \(#([0-9]+)\)' , replace = " ([#${1}]({{ self::remote_url() }}/pull/${1}))" },
39- ]
33+
34+ # commit_preprocessors는 정규식 치환만 지원하므로 self::remote_url() 사용 불가
35+ # PR 링크는 body 템플릿의 commit.remote.pr_number 로 처리
36+ commit_preprocessors = []
37+
4038commit_parsers = [
41- # 문제 콘텐츠 추가 (content: ...)
42- { message = " ^content" , group = " 📚 문제 추가" },
39+ # 문제 콘텐츠 추가 (feat( content) : ...)
40+ { message = " ^feat \\ ( content\\ ) " , group = " 📚 문제 추가" },
4341 # 새 기능
4442 { message = " ^feat" , group = " ✨ 새 기능" },
4543 # 버그 수정
@@ -49,12 +47,15 @@ commit_parsers = [
4947 # 리팩터링
5048 { message = " ^refactor" , group = " ♻️ 리팩터링" },
5149 # 아래는 CHANGELOG에 포함하지 않음
52- { message = " ^docs|^style|^test|^chore|^ci|^build" , skip = true },
53- { message = " ^Merge" , skip = true },
54- # 위에 해당하지 않는 나머지
55- { body = " .*" , group = " 📦 기타" },
50+ { message = " ^docs|^style|^test|^chore|^ci|^build|^Merge" , skip = true },
51+ # 위에 해당하지 않는 모든 커밋 → 기타 (message = ".*" 로 body 없는 커밋도 포함)
52+ { message = " .*" , group = " 📦 기타" },
5653]
57- filter_commits = true
54+
55+ # false: 위 파서에서 skip=true 인 것만 제외, 나머지는 모두 포함
56+ # (true 시 unmatched 커밋 전체 제외 → 빈 릴리즈 발생 가능)
57+ filter_commits = false
58+
5859tag_pattern = " v[0-9].*"
5960sort_commits = " oldest"
6061topo_order = false
0 commit comments