Registry / devops / danger-plugin-conventional-commitlint

danger-plugin-conventional-commitlint

JSON →
library3.1.0jsnpmunverified

danger-plugin-conventional-commitlint is a Danger JS plugin that runs commitlint rules against pull request commit messages to enforce conventional commit formats. Current stable version is 3.1.0 (Dec 2025) with release cadence tied to commitlint major upgrades. Key differentiators: integrates directly with Danger's CI workflow, supports custom messages via messageReplacer, and requires Node.js >=20. Alternatives include manual commitlint checks in CI or other Danger linting plugins.

npm install danger-plugin-conventional-commitlint
INSTALL
IMPORT
SIG · DANGER-PLUGIN-CONV
D
danger-plugin-conventional-commitlint
devopsjavascriptv3.1.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
import commitlint from 'danger-plugin-conventional-commitlint';
const commitlint = require('danger-plugin-conventional-commitlint');
This is an ESM-only package since v3. Do not use CommonJS require. In TypeScript, use the default import.
commitlint (named export)
import { default as commitlint } from 'danger-plugin-conventional-commitlint';
import { commitlint } from 'danger-plugin-conventional-commitlint';
The package exposes only a default export. There is no named export named 'commitlint'.
types (LintOutcome, etc.)
import type { LintOutcome } from 'danger-plugin-conventional-commitlint';
import LintOutcome from 'danger-plugin-conventional-commitlint';
Types are exported as named exports from the package. Use 'import type' for type-only imports.

Configure commitlint plugin in Dangerfile with custom rules, severity, and message replacer.

// dangerfile.js import commitlint from 'danger-plugin-conventional-commitlint'; import configConventional from '@commitlint/config-conventional'; (async function dangerReport() { const commitlintConfig = { severity: 'warn', messageReplacer: (outcome, msg) => `Commit "${msg}" failed: ${outcome.errors.map(e => e.message).join(', ')}` }; await commitlint(configConventional.rules, commitlintConfig); })();
Debug
Known issues
breakingv3.0.0 dropped support for Node <18. Requires Node >=18.
fix
Upgrade Node to v18 or later.
affects: >=3.0.0
breakingv2.0.0 upgraded @commitlint/lint from v8 to v13, bringing breaking changes from commitlint, including minimum Node version >=12.
fix
If using older commitlint config or Node <12, upgrade accordingly.
affects: >=2.0.0
gotchaThe plugin expects the array of commit messages from danger, but commitlint rules must be provided manually. Forgetting to pass rules will result in an error.
fix
Always provide a valid rules object (e.g., from @commitlint/config-conventional).
affects: >=1.0.0
gotchaDefault severity is 'fail', which calls `danger.fail()`. This may cause CI to fail even for warnings; adjust severity to 'warn' if desired.
fix
Set `severity: 'warn'` in options to avoid blocking PRs.
affects: >=1.0.0
Errors
Common errors & fixes
SyntaxError: Cannot use import statement outside a module
Using ESM import in a CommonJS project or without configuring "type": "module" in package.json.
fix
Add "type": "module" to package.json or use .mjs extension for Dangerfile.
Invalid severity 'critical'. Must be one of: 'fail', 'warn', 'message'
Passing an invalid severity value in options.
fix
Use one of 'fail', 'warn', or 'message'.
commitlint is not a function
Attempting to import a named export 'commitlint' instead of the default export.
fix
Use `import commitlint from 'danger-plugin-conventional-commitlint'` (default import).
Upgrade
Version history
3.1.0latest on npm
Audit
Dependencies
dangeroptionalPeer dependency required to use danger utilities like warn, fail, message
@commitlint/lintrequiredUsed internally to lint commit messages
Agent activity
8 hits · last 30 days
node
8
Resources
danger-plugin-conventional-commitlint — npm install danger-plugin-conventional-commitlint · libregistry