const releaseUsername = process.env.GITEA_REGISTRY_USERNAME; const releaseToken = process.env.GITEA_RELEASE_TOKEN; const repositoryUrl = releaseUsername && releaseToken ? `https://${encodeURIComponent(releaseUsername)}:${encodeURIComponent(releaseToken)}@git.mifi.dev/mifi/logger.git` : 'https://git.mifi.dev/mifi/logger.git'; /** * Default Angular preset rejects `feat!` / `fix!` headers entirely (no release). * These parser options match Conventional Commits so `!` becomes a BREAKING CHANGE note. */ const conventionalCommitParserOpts = { headerPattern: /^(\w*)(?:\((.*)\))?!?: (.*)$/, breakingHeaderPattern: /^(\w*)(?:\((.*)\))?!: (.*)$/, noteKeywords: ['BREAKING CHANGE', 'BREAKING-CHANGE'], }; module.exports = { branches: ['main'], repositoryUrl, tagFormat: 'v${version}', plugins: [ ['@semantic-release/commit-analyzer', { parserOpts: conventionalCommitParserOpts }], ['@semantic-release/release-notes-generator', { parserOpts: conventionalCommitParserOpts }], ['@semantic-release/changelog', { changelogFile: 'CHANGELOG.md' }], '@semantic-release/npm', [ '@semantic-release/git', { assets: ['CHANGELOG.md', 'package.json', 'pnpm-lock.yaml'], message: 'chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}', }, ], ], };