From 7efbeef9fa485fd4ce31cd0bfd7398281e00d611 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 27 Mar 2026 19:25:23 +0100 Subject: [PATCH 1/3] Switch changelog to HYBRID mode for PRs and direct commits --- .github/workflows/release-nuget.yml | 128 ++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/.github/workflows/release-nuget.yml b/.github/workflows/release-nuget.yml index 0ee377c..25a8a11 100644 --- a/.github/workflows/release-nuget.yml +++ b/.github/workflows/release-nuget.yml @@ -178,6 +178,134 @@ jobs: with: fetchReleaseInformation: true failOnError: false + mode: "HYBRID" + configurationJson: | + { + "template": "## What's Changed\n\n#{{CHANGELOG}}\n\n**Full Changelog**: #{{RELEASE_DIFF}}", + "empty_template": "## What's Changed\n\nNo user-facing changes in this release.", + "pr_template": "- #{{TITLE}} by @#{{AUTHOR}} in ##{{NUMBER}}", + "commit_template": "- #{{TITLE}} by @#{{AUTHOR}} (`#{{MERGE_SHA}}`)", + "categories": [ + { + "title": "## ๐Ÿš€ Features", + "labels": ["enhancement", "feature", "feat"], + "mode": "PR" + }, + { + "title": "## ๐Ÿ› Bug Fixes", + "labels": ["bug", "fix", "bugfix"], + "mode": "PR" + }, + { + "title": "## ๐Ÿ“ Documentation", + "labels": ["docs", "documentation"], + "mode": "PR" + }, + { + "title": "## ๐Ÿงช Tests", + "labels": ["test", "tests", "qa"], + "mode": "PR" + }, + { + "title": "## ๐Ÿงฐ Maintenance", + "labels": ["chore", "ci", "build", "dependencies", "refactor"], + "mode": "PR" + }, + { + "title": "## ๐Ÿ”’ Security", + "labels": ["security"], + "mode": "PR" + }, + { + "title": "## ๐Ÿš€ Features (Direct Commits)", + "mode": "COMMIT", + "rules": [ + { + "pattern": "^(feat|feature)(\\(.+\\))?:\\s+.+$", + "flags": "giu", + "on_property": "title" + } + ] + }, + { + "title": "## ๐Ÿ› Bug Fixes (Direct Commits)", + "mode": "COMMIT", + "rules": [ + { + "pattern": "^(fix|bugfix|bug)(\\(.+\\))?:\\s+.+$", + "flags": "giu", + "on_property": "title" + } + ] + }, + { + "title": "## ๐Ÿงฐ Maintenance (Direct Commits)", + "mode": "COMMIT", + "rules": [ + { + "pattern": "^(build|chore|ci|refactor|perf|style|test|docs)(\\(.+\\))?:\\s+.+$", + "flags": "giu", + "on_property": "title" + } + ] + }, + { + "title": "## ๐Ÿ“ฆ Other Direct Commits", + "mode": "COMMIT", + "rules": [ + { + "pattern": "^.+$", + "flags": "gu", + "on_property": "title" + } + ] + } + ], + "sort": { + "order": "ASC", + "on_property": "mergedAt" + }, + "label_extractor": [ + { + "pattern": "(?i)^(enhancement|feature|feat)$", + "target": "$1" + }, + { + "pattern": "(?i)^(bug|fix|bugfix)$", + "target": "$1" + }, + { + "pattern": "(?i)^(docs|documentation)$", + "target": "$1" + }, + { + "pattern": "(?i)^(test|tests|qa)$", + "target": "$1" + }, + { + "pattern": "(?i)^(chore|ci|build|dependencies|refactor)$", + "target": "$1" + }, + { + "pattern": "(?i)^security$", + "target": "$0" + } + ], + "autolabeler": [ + { + "label": "docs", + "files": ["**/*.md", "docs/**"] + }, + { + "label": "test", + "files": ["**/*test*/**", "**/*tests*/**", "**/*.Tests/**"] + }, + { + "label": "ci", + "files": [".github/workflows/**"] + } + ] + } env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 274ac1aefdde464e4d292a4e2cf5513851e08462 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 27 Mar 2026 19:55:10 +0100 Subject: [PATCH 2/3] Fix label extractor regex flags for changelog builder --- .github/workflows/release-nuget.yml | 30 +++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release-nuget.yml b/.github/workflows/release-nuget.yml index 25a8a11..e643066 100644 --- a/.github/workflows/release-nuget.yml +++ b/.github/workflows/release-nuget.yml @@ -267,28 +267,34 @@ jobs: }, "label_extractor": [ { - "pattern": "(?i)^(enhancement|feature|feat)$", - "target": "$1" + "pattern": "^(enhancement|feature|feat)$", + "target": "$1", + "flags": "i" }, { - "pattern": "(?i)^(bug|fix|bugfix)$", - "target": "$1" + "pattern": "^(bug|fix|bugfix)$", + "target": "$1", + "flags": "i" }, { - "pattern": "(?i)^(docs|documentation)$", - "target": "$1" + "pattern": "^(docs|documentation)$", + "target": "$1", + "flags": "i" }, { - "pattern": "(?i)^(test|tests|qa)$", - "target": "$1" + "pattern": "^(test|tests|qa)$", + "target": "$1", + "flags": "i" }, { - "pattern": "(?i)^(chore|ci|build|dependencies|refactor)$", - "target": "$1" + "pattern": "^(chore|ci|build|dependencies|refactor)$", + "target": "$1", + "flags": "i" }, { - "pattern": "(?i)^security$", - "target": "$0" + "pattern": "^security$", + "target": "$0", + "flags": "i" } ], "autolabeler": [ From 80673309df7564ab8fd4686c2c697280bf738922 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 27 Mar 2026 19:55:24 +0100 Subject: [PATCH 3/3] Expand test autolabeler glob to include lowercase .tests paths --- .github/workflows/release-nuget.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-nuget.yml b/.github/workflows/release-nuget.yml index e643066..ec27492 100644 --- a/.github/workflows/release-nuget.yml +++ b/.github/workflows/release-nuget.yml @@ -304,7 +304,7 @@ jobs: }, { "label": "test", - "files": ["**/*test*/**", "**/*tests*/**", "**/*.Tests/**"] + "files": ["**/*test*/**", "**/*tests*/**", "**/*.tests/**", "**/*.Tests/**"] }, { "label": "ci",