awslabs / git-secrets

Prevents you from committing secrets and credentials into git repositories
Apache License 2.0
12.36k stars 1.17k forks source link

Fix for issue where git-secrets could fail on Windows if enough files… #193

Closed lemonade-dm closed 1 year ago

lemonade-dm commented 3 years ago

… where modified to be over the 32727 command line length

When git-secrets is run, for all filepaths that are part of the staged list of changes they get passed into an invocation of git grep If there is a large number of staged files, depending on the length of each file path from the git repo root, it could result in an extremely long line being supplied to git grep For example if the git structure is as below

/
  Include/
    TestLibrary/
      MyTestComponent1.h
      MyTestComponent2.h
...
      MyTestComponent1000.h

It would take around changes to 900 Include/TestLibrary/MyTestComponentNNNN.h files within the repo to cause the git grep to be passed an argument list that is too long

Issue #192, if available:

Description of changes: Fixed issue where git secrets could fail if the bash invocation of git grep within the git-secrets shell script passed enough file paths that caused the command line invocation for git grep to be over 32767 characters

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

lemonade-dm commented 1 year ago

Any updates for reviewers on this PR

sparr commented 1 year ago

153 is a more robust solution to this problem. If we don't merge that, we can re-open this.