conventional-changelog/commitlint

Plugins should be provided with git diff

Open

#3 408 ouverte le 17 oct. 2022

Voir sur GitHub
 (2 commentaires) (2 réactions) (0 assignés)TypeScript (896 forks)batch import
featurehelp wanted

Métriques du dépôt

Stars
 (15 497 stars)
Métriques de merge PR
 (Merge moyen 5j 19h) (65 PRs mergées en 30 j)

Description

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
  • 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.

Guide contributeur