Plugins should be provided with git diff
This is a feature request to provide the output of changed files, such as git diff --cached --name-only --diff-filter=ACM. The purpose of this feature is to provide a way to verify if changes described within a conventional commit's scope are actually all within that scope.
Expected Behavior
Naive example:
plugin: {
rules: {
'bounded-scope': (parsed) => {
console.log(parsed.diff);
const scope = parsed.scope;
if (scope === 'test1') {
changedStartsWithScope = parsed.diff.every((path) => path.startsWith('apps/test1'));
return [changedStartsWithScope, 'all files with scope test1 should start with apps/test1'];
}
return [true];
}
}
}
echo "feat(test1): random subject" | npm run commitlint
[ '.gitignore', 'apps/test1/testing.js' ]
â§— input: feat(test1): random subject
✖ all files with scope test1 should start with apps/test1 [scope-bounded]
✖ found 1 problems, 0 warnings
Current Behavior
No way of determining which files have been changed by the commit.
Affected packages
- [ ] cli
- [x] core
- [ ] prompt
- [ ] config-angular
Context
I'm trying to create a plugin which queries Nx to determine if the changes in the commit match the scope provided, otherwise requiring you to not specify a scope.
Hello @escapedcat didn't see much progress on this one. Just kindly asking, do you still consider adding this feature?
Sure, if someone provides a PR