#conventional-commits #commit-message #message-parser #specification #git

conventional_commit_parser

A rust implementation of the conventional commit specification

13 releases (6 breaking)

0.9.4 Jan 17, 2022
0.9.3 Nov 21, 2021
0.8.0 Nov 1, 2021

#2370 in Parser implementations

Download history 1359/week @ 2024-01-10 2561/week @ 2024-01-17 2373/week @ 2024-01-24 1547/week @ 2024-01-31 1686/week @ 2024-02-07 3406/week @ 2024-02-14 2905/week @ 2024-02-21 3175/week @ 2024-02-28 2983/week @ 2024-03-06 2834/week @ 2024-03-13 3394/week @ 2024-03-20 3026/week @ 2024-03-27 2652/week @ 2024-04-03 4930/week @ 2024-04-10 3411/week @ 2024-04-17 2245/week @ 2024-04-24

13,801 downloads per month
Used in 14 crates (6 directly)

Custom license

27KB
495 lines

Conventional commit parser

Latest Version Conventional Commits License

A rust implementation of the conventional commit specification.

Example

use conventional_commit_parser::parse;
use conventional_commit_parser::commit::*;
let message = r#"fix: correct minor typos in code

see the issue for details

on typos fixed.

Reviewed-by: Z
Refs #133"#;

let conventional_commit = parse(message)?;

assert_eq!(conventional_commit.commit_type, CommitType::BugFix);
assert_eq!(conventional_commit.summary, "correct minor typos in code".to_string());
assert_eq!(conventional_commit.body, Some(r#"see the issue for details

on typos fixed."#.to_string()));

assert_eq!(conventional_commit.footers, vec![
    Footer {token: "Reviewed-by".to_string(), content: "Z".to_string()},
    Footer {token: "Refs".to_string(), content: "133".to_string(),}
]);

Licence

All the code in this repository is released under the MIT License, for more information take a look at the LICENSE file.

Dependencies

~2.2–2.9MB
~58K SLoC