conventional-changelog/commitlint

Plugins should be provided with git diff

Open

#3408 aperta il 17 ott 2022

Vedi su GitHub
 (2 commenti) (2 reazioni) (0 assegnatari)TypeScript (896 fork)batch import
featurehelp wanted

Metriche repository

Star
 (15.497 star)
Metriche merge PR
 (Merge medio 5g 19h) (65 PR mergiate in 30 g)

Descrizione

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.

Guida contributor