UNPKG

git-release-manager

Version:

A tool to generate release notes from git commit history

260 lines โ€ข 8.46 kB
{ "appName": "My App", "output": "stdout", "tag": { "format": "^v(\\d+)\\.(\\d+)\\.(\\d+)(?:-([a-zA-Z0-9]+)\\.(\\d+))?$" }, "channels": { "dev": { "title": "Development", "description": "Development channel is for testing new features and bug fixes before they are released to the public.", "branch": "dev", "prerelease": true }, "alpha": { "title": "Alpha", "description": "Alpha channel is for testing new features and bug fixes before they are released to the public.", "branch": "test", "prerelease": true }, "beta": { "title": "Beta", "description": "Beta channel is for testing new features and bug fixes before they are released to the public.", "branch": "test", "prerelease": true }, "preview": { "title": "Preview", "description": "Preview channel is for testing new features and bug fixes before they are released to the public.", "branch": "release/*", "prerelease": true }, "stable": { "title": "Stable", "description": "Stable channel is for the final release of new features and bug fixes.", "branch": "main", "prerelease": false } }, "noteTypes": [ { "sign": "!", "type": "breaking-change", "terms": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"], "title": "โš ๏ธ BREAKING CHANGE", "order": 1 }, { "sign": "-", "type": "deprecate", "terms": ["DEPRECATE", "DEPRECATION"], "title": "๐Ÿ“‰ DEPRECATE", "order": 2 }, { "sign": "+", "type": "new", "terms": ["NEW"], "title": "๐Ÿ†• NEW", "order": 3 }, { "sign": "~", "type": "change", "terms": ["CHANGE", "CHANGES"], "title": "๐Ÿ”„ CHANGE", "order": 4 }, { "sign": "*", "type": "highlight", "terms": ["HIGHLIGHT", "HIGHLIGHTS"], "title": "๐ŸŒŸ KEY HIGHLIGHTS", "order": 5 }, { "sign": "?", "type": "experimental", "terms": ["EXPERIMENTAL"], "title": "๐Ÿ”ฌ EXPERIMENTAL", "order": 6 }, { "sign": "", "type": "known-issue", "terms": ["KNOWN ISSUE", "KNOWN ISSUES", "ISSUE", "ISSUES"], "title": "๐Ÿ› KNOWN ISSUES" } ], "commitTypes": [ { "type": "feature", "terms": ["feat"], "title": "โœจ New Features & Enhancements", "order": 1 }, { "type": "bug-fix", "terms": ["fix"], "title": "๐Ÿž Resolved Issues", "order": 2 }, { "type": "documentation", "terms": ["docs"], "title": "๐Ÿ“š Documentation", "order": 3 }, { "type": "style", "terms": ["style"], "title": "๐ŸŽจ Code Style", "order": 4 }, { "type": "refactor", "terms": ["refactor"], "title": "โ™ป๏ธ Refactoring", "order": 5 }, { "type": "performance", "terms": ["perf"], "title": "๐Ÿš€ Performance Improvements", "order": 6 }, { "type": "test", "terms": ["test"], "title": "๐Ÿงช Tests", "order": 7 }, { "type": "ci-cd", "terms": ["ci"], "title": "๐Ÿ”„ CI/CD", "order": 8 }, { "type": "chore", "terms": ["chore"], "title": "๐Ÿ”ง Codebase Maintenance and Updates", "order": 9 } ], "linkTypes": [ { "type": "basic", "sign": ["#"], "title": "Linked to" }, { "type": "closed", "terms": ["Closes", "Closed"], "title": "Closed", "order": 1 }, { "type": "fixed", "terms": ["Fixes", "Fixed"], "title": "Fixed", "order": 2 }, { "type": "resolved", "terms": ["Resolves", "Resolved"], "title": "Resolved", "order": 3 }, { "type": "related", "terms": ["Related", "Related to"], "title": "Related to", "order": 4 }, { "type": "connects", "terms": ["Connects", "Connects to"], "title": "Connects to", "order": 5 } ], "mentionTypes": [ { "type": "co-authored-by", "terms": ["Co-authored-by"], "title": "Co-authored-by", "order": 1 }, { "type": "signed-off-by", "terms": ["Signed-off-by"], "title": "Signed Off By", "order": 2 }, { "type": "acked-by", "terms": ["Acked-by"], "title": "Acknowledged By", "order": 3 }, { "type": "reviewed-by", "terms": ["Reviewed-by"], "title": "Reviewed By", "order": 4 }, { "type": "helped-by", "terms": ["Helped-by"], "title": "Helped By", "order": 5 } ], "fileGroups": { "Code": ["src/", "plugins/", "pkg/", "cmake/", "build/", "bin/", "sysmodules/", "modules/"], "Docs": ["docs/", ".github/", ".config/", ".vscode/", "README.md", "README.tr.md", "CONTRIBUTING.md", "CODE_OF_CONDUCT.md", "CHANGELOG.md", "release.config.mjs"], "Tests": ["tests/", "data/", "cache/", "temp/", "drafts/", "log/"], "Configurations": ["config/", ".editorconfig", ".env", ".gitignore", ".gitmodules", ".gitattributes", ".golangci.yml", "Dockerfile", "Makefile", "CMakeLists.txt", "package.json", "package-lock.json", "t.txt"], "Assets": ["assets/", "dist/", "templates/"] }, "allowedBranches": ["dev", "test", "release/*", "main"], "allowedChannels": ["beta", "rc", "alpha", "stable"], "options": { "commits": { "sort": "date" } }, "helpers": { "groupBy": "function(array, key, config) { return array.reduce((result, item) => { const groupKey = key.split('.').reduce((acc, part) => acc && acc[part], item); if (!result[groupKey]) { const matchingType = config.commitTypes.find(ct => ct.terms.includes(groupKey)); const typeTitle = matchingType ? matchingType.title : 'Other Changes'; result[groupKey] = { title: typeTitle, items: [] }; } result[groupKey].items.push(item); return result; }, {}); }", "groupByNotes": "function(array, config, includeUnmatched = true) { return array.reduce((result, item) => { if (!item.notes || item.notes.length === 0) return result; item.notes.forEach(note => { const groupKey = note.type; const matchingType = config.noteTypes.find(nt => nt.type === groupKey); if (!matchingType && !includeUnmatched) return; if (!result[groupKey]) { const typeTitle = matchingType ? matchingType.title : groupKey; result[groupKey] = { title: typeTitle, items: [] }; } result[groupKey].items.push({ note, commit: item }); }); return result; }, {}); }" }, "branchStrategies":{ "feature": { "baseBranches": ["develop"], "createTag": false, "deleteAfterMerge": true }, "release": { "baseBranches": ["main", "develop"], "createTag": true, "deleteAfterMerge": true, "tagPrefix": "v" }, "hotfix": { "baseBranches": ["main", "develop"], "createTag": true, "deleteAfterMerge": true, "tagPrefix": "hotfix-" } }, "repository":{ "remote":{ "default": "origin" } }, "app":{ "OS": [], "ARCH": [] } }