diff --git a/packages/commitlint_lint/README.md b/packages/commitlint_lint/README.md index e972a39..f542b53 100644 --- a/packages/commitlint_lint/README.md +++ b/packages/commitlint_lint/README.md @@ -1,4 +1,8 @@ # commitlint_lint Commitlint is a tool for lint commit messages. -This package is for linting commit messages according to configured rules for commitlint cli package. \ No newline at end of file +This package is for linting commit messages according to configured rules for commitlint cli package. + +## Documentation + +See [documention](https://hyiso.github.io/commitlint) \ No newline at end of file diff --git a/packages/commitlint_lint/lib/commitlint_lint.dart b/packages/commitlint_lint/lib/commitlint_lint.dart index 93c8751..ed5b97b 100644 --- a/packages/commitlint_lint/lib/commitlint_lint.dart +++ b/packages/commitlint_lint/lib/commitlint_lint.dart @@ -3,27 +3,17 @@ /// More dartdocs go here. library commitlint_lint; +import 'package:commitlint_parse/commitlint_parse.dart'; import 'package:commitlint_rules/commitlint_rules.dart'; import 'package:commitlint_types/commitlint_types.dart'; -import 'package:conventional_commit/conventional_commit.dart'; Future lint( String message, Map rulesConfig) async { - final commit = ConventionalCommit.tryParse(message); - if (commit == null) { - return LintOutcome(input: message, valid: false, errors: [ - LintRuleOutcome( - level: RuleConfigSeverity.error, - valid: false, - name: 'message-format', - message: [ - 'Commit message does not meet the conventional commit format.', - ' - See format guide: https://www.conventionalcommits.org', - ].join('\n'), - ), - ], warnings: []); - } - if (commit.isMergeCommit) { + // Parse the commit message + final commit = message.isEmpty ? Commit.empty() : parse(message); + + if (commit.header.isEmpty && commit.body == null && commit.footer == null) { + // Commit is empty, skip return LintOutcome(input: message, valid: true, errors: [], warnings: []); } final allRules = Map.of(supportedRules); diff --git a/packages/commitlint_lint/pubspec.yaml b/packages/commitlint_lint/pubspec.yaml index 4326918..62c156f 100644 --- a/packages/commitlint_lint/pubspec.yaml +++ b/packages/commitlint_lint/pubspec.yaml @@ -5,15 +5,15 @@ description: version: 0.1.0 homepage: https://github.com/hyiso/commitlint repository: https://github.com/hyiso/commitlint/packages/commitlint_lint -# homepage: https://www.example.com +documentation: https://hyiso.github.io/commitlint environment: sdk: '>=2.12.0 <3.0.0' dependencies: + commitlint_parse: ^0.1.0 commitlint_rules: ^0.1.0 commitlint_types: ^0.1.0 - conventional_commit: ^0.5.0+1 path: ^1.8.0 dev_dependencies: diff --git a/packages/commitlint_lint/test/commitlint_lint_test.dart b/packages/commitlint_lint/test/commitlint_lint_test.dart index 3e0bd1a..689bcdc 100644 --- a/packages/commitlint_lint/test/commitlint_lint_test.dart +++ b/packages/commitlint_lint/test/commitlint_lint_test.dart @@ -3,17 +3,17 @@ import 'package:commitlint_types/commitlint_types.dart'; import 'package:test/test.dart'; void main() { - test('negative on empty message', () async { + test('positive on empty message', () async { final result = await lint('', {}); - expect(result.valid, false); + expect(result.valid, true); expect(result.input, equals('')); - expect(result.errors.isEmpty, false); + expect(result.errors.isEmpty, true); expect(result.warnings.isEmpty, true); }); test('positive on stub message and no rule', () async { - final result = await lint('', {}); - expect(result.valid, false); + final result = await lint('foo: bar', {}); + expect(result.valid, true); }); test('positive on stub message and adhered rule', () async {