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}", }, ], ], };