git-release-manager
Version:
A tool to generate release notes from git commit history
260 lines โข 8.46 kB
JSON
{
"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": []
}
}