
Research
/Security News
60 Malicious Ruby Gems Used in Targeted Credential Theft Campaign
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
parse-commit-message
Advanced tools
An extensible parser for commit message that follows Conventional Commits v1 spec
An extensible parser for commit message that follows Conventional Commits v1 spec
You might also be interested in hela or in the other related projects.
If you have any how-to kind of questions, please read Code of Conduct and join the chat rooms or open an issue.
You may also read the Contributing Guide. There, beside "How to contribute?", we describe everything stated by the badges.
(TOC generated by verb using markdown-toc)
This project requires Node.js v8 or above. Install it using yarn v1 or above / npm v5 or above.
$ yarn add parse-commit-message
Review carefully the provided examples and the working tests.
const parseCommitMessage = require('parse-commit-message');
const commitMsg1 = `feat(ng-list): Allow custom separator
bla bla bla
BREAKING CHANGE: some breaking change.
Thanks @foobar
`;
const commit = parseCommitMessage(commitMsg1);
console.log(commit);
// => { type: 'feat',
// scope: 'ng-list',
// subject: 'Allow custom separator',
// header: 'feat(ng-list): Allow custom separator',
// body: 'bla bla bla',
// footer: 'BREAKING CHANGE: some breaking change.\nThanks @stevemao' }
It is also extensible if you pass function
as second argument, so you can add more
properties to the end object.
For example adding increment
and mentions
properties like following. Notice that
the increment
property here is "major" because it detects "BREAKING CHANGE:" somewhere
in the commit.
That's cool and can be combined with the semver's .inc
method like semver.inc('1.1.0', commit.increment)
const commit = parseCommitMessage(commitMsg1, (commit) => {
const withIncrement = incrementMapper(commit);
const withMentions = mentionsMapper(commit);
return Object.assign({}, commit, withIncrement, withMentions);
});
console.log(commit);
// => { type: 'feat',
// scope: 'ng-list',
// subject: 'Allow custom separator',
// header: 'feat(ng-list): Allow custom separator',
// body: 'bla bla bla',
// footer: 'BREAKING CHANGE: some breaking change.\nThanks @stevemao, @foobar',
// increment: 'major',
// isBreaking: true,
// mentions: ['stevemao', 'foobar'] }
detects if commit is patch, minor or major type
function incrementMapper (commit) {
const isBreaking = isBreakingChange(commit);
let increment = null;
if (/fix|bugfix|patch/.test(commit.type)) {
increment = 'patch';
}
if (/feat|feature|minor/.test(commit.type)) {
increment = 'minor';
}
if (/break|breaking|major/.test(commit.type) || isBreaking) {
increment = 'major';
}
return { increment, isBreaking };
}
function isBreakingChange ({ subject, body, footer }) {
const re = 'BREAKING CHANGE:';
return subject.includes(re) || body.includes(re) || footer.includes(re);
}
Collects all mentions from subject
, body
and footer
into one single array that will be added to the end "commit" object
const collectMentions = require('collect-mentions');
function mentionsMapper ({ subject, body, footer }) {
const mentions = []
.concat(collectMentions(subject))
.concat(collectMentions(body))
.concat(collectMentions(footer));
return { mentions };
}
Some of these projects are used here or were inspiration for this one, others are just related. So, thanks for your existance!
child_process
| homepagePlease read the Contributing Guide and Code of Conduct documents for advices.
For bugs reports and feature requests, please create an issue or join us at our Flock chat rooms.
Thanks to the hard work of these wonderful people this project is alive and it also follows the all-contributors specification.
Pull requests, stars and all kind of contributions are always welcome.
You can see who uses parse-commit-message
in the USERS.md file. Please feel free adding this file if it not exists.
If you or your organization are using this project, consider adding yourself to the list of users. Thank You!
Copyright (c) 2017-present, Charlike Mike Reagent <olsten.larck@gmail.com>
.
Released under the Apache-2.0 License.
This file was generated by verb-generate-readme, v0.6.0, on November 14, 2017.
Project scaffolded and managed with hela.
FAQs
Extensible parser for git commit messages following Conventional Commits Specification
The npm package parse-commit-message receives a total of 1,068 weekly downloads. As such, parse-commit-message popularity was classified as popular.
We found that parse-commit-message demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.
Research
/Security News
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.