forked from oleg-koval/semantic-release-npm-github-publish
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(release): add custom release-notes generator
- Loading branch information
1 parent
931153a
commit ed4a8e5
Showing
5 changed files
with
114 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
const plugins = require("./plugins.json"); | ||
|
||
parserOpts = { | ||
mergePattern: /^Merge pull request #(\d+) from (.*)$/, | ||
mergeCorrespondence: ["id", "source"] | ||
}; | ||
|
||
releaseRules = [{ type: "refactor", release: "patch" }]; | ||
|
||
customTransform = (commit, context) => { | ||
const issues = []; | ||
|
||
commit.notes.forEach(note => { | ||
note.title = `BREAKING CHANGES`; | ||
}); | ||
|
||
if (commit.type === `feat`) { | ||
commit.type = `Features`; | ||
} else if (commit.type === `fix`) { | ||
commit.type = `Bug Fixes`; | ||
} else if (commit.type === `perf`) { | ||
commit.type = `Performance Improvements`; | ||
} else if (commit.type === `revert`) { | ||
commit.type = `Reverts`; | ||
} else if (commit.type === `docs`) { | ||
commit.type = `Documentation`; | ||
} else if (commit.type === `style`) { | ||
commit.type = `Styles`; | ||
} else if (commit.type === `refactor`) { | ||
commit.type = `Code Refactoring`; | ||
} else if (commit.type === `test`) { | ||
commit.type = `Tests`; | ||
} else if (commit.type === `build`) { | ||
commit.type = `Build System`; | ||
} else if (commit.type === `ci`) { | ||
commit.type = `Continuous Integration`; | ||
} else { | ||
return; | ||
} | ||
|
||
if (commit.scope === `*`) { | ||
commit.scope = ``; | ||
} | ||
|
||
if (typeof commit.hash === `string`) { | ||
commit.shortHash = commit.hash.substring(0, 7); | ||
} | ||
|
||
if (typeof commit.subject === `string`) { | ||
let url = context.repository | ||
? `${context.host}/${context.owner}/${context.repository}` | ||
: context.repoUrl; | ||
if (url) { | ||
url = `${url}/issues/`; | ||
// Issue URLs. | ||
commit.subject = commit.subject.replace(/#([0-9]+)/g, (_, issue) => { | ||
issues.push(issue); | ||
return `[#${issue}](${url}${issue})`; | ||
}); | ||
} | ||
if (context.host) { | ||
// User URLs. | ||
commit.subject = commit.subject.replace( | ||
/\B@([a-z0-9](?:-?[a-z0-9/]){0,38})/g, | ||
(_, username) => { | ||
if (username.includes("/")) { | ||
return `@${username}`; | ||
} | ||
|
||
return `[@${username}](${context.host}/${username})`; | ||
} | ||
); | ||
} | ||
} | ||
|
||
// remove references that already appear in the subject | ||
commit.references = commit.references.filter(reference => { | ||
if (issues.indexOf(reference.issue) === -1) { | ||
return true; | ||
} | ||
|
||
return false; | ||
}); | ||
|
||
return commit; | ||
}; | ||
|
||
module.exports = { | ||
releaseRules, | ||
parserOpts, | ||
writerOpts: { transform: customTransform }, | ||
...plugins | ||
}; |
This file was deleted.
Oops, something went wrong.