@liquid-js/commitlint-plugin-workspace-scopes

commitlint-plugin-workspace-scopes

GitHub license npm scope

A commitlint plugin to discover workspace packages as scopes.

npm install @liquid-js/commitlint-plugin-workspace-scopes

https://liquid-js.github.io/commitlint-plugin-workspace-scopes/

To configure that only workspace-packages are accepted scopes:

{
"plugins": [
"@liquid-js/commitlint-plugin-workspace-scopes"
],
"rules": {
"scope-enum": [
2,
"always",
{}
]
}
}

To configure that workspace-packages and codeowners are accepted scopes:

{
"plugins": [
"@liquid-js/commitlint-plugin-workspace-scopes"
],
"rules": {
"scope-enum": [
2,
"always",
{
"extra": [
"codeowners"
]
}
]
}
}

To strip namespace prefix from workspace packages:

{
"plugins": [
"@liquid-js/commitlint-plugin-workspace-scopes"
],
"rules": {
"scope-enum": [
2,
"always",
{
"stripPrefix": [
"@my-org/"
]
}
]
}
}
$ cat .commitlintrc.json

{
    "extends": [
        "@commitlint/config-conventional"
    ],
    "plugins": [
        "@liquid-js/commitlint-plugin-workspace-scopes"
    ],
    "rules": {
        "scope-enum": [
            2,
            "always",
            [
                "codeowners"
            ]
        ]
    }
}

$ tree packages

packages
├── api
├── app
└── web

$ echo "feat(api): this will succeed" | npx commitlint --verbose
⧗   input: feat(api): this will succeed
✔   found 0 problems, 0 warnings

$ echo "feat(codeowners): this will succeed" | npx commitlint --verbose
⧗   input: feat(codeowners): this will succeed
✔   found 0 problems, 0 warnings

$ echo "feat(foo): this will fail" | npx commitlint --verbose
⧗   input: feat(foo): this will fail
✖   scope must be one of [api, app, web] [scope-enum]
✖   found 1 problems, 0 warnings

MIT License