|
| 1 | +--- |
| 2 | +tags: |
| 3 | + - Semgrep CLI |
| 4 | + - Semgrepignore |
| 5 | +description: Why am I getting findings in files that should be ignored? |
| 6 | +--- |
| 7 | + |
| 8 | +# Why am I getting findings in files that should be ignored? |
| 9 | + |
| 10 | +If you don't have already a `.semgrepignore` file, refer to our |
| 11 | +[guide on how to exclude files from Semgrep |
| 12 | +scans](/docs/ignoring-files-folders-code). Otherwise, if |
| 13 | +you already have a `.semgrepignore` file, read on. |
| 14 | + |
| 15 | +Starting with Semgrep CE 1.112.0, the Semgrepignore specification has |
| 16 | +changed slightly to better align with Git and Gitignore and to offer |
| 17 | +more flexibility. |
| 18 | +The new specification is referred to as |
| 19 | +[Semgrepignore v2](/docs/semgrepignore-v2-reference). |
| 20 | +If you're getting findings in files that should have been |
| 21 | +ignored according to your `.semgrepignore` file, check the |
| 22 | +following: |
| 23 | + |
| 24 | +1. If you're using Git, check that the `.semgrepignore` file is at the |
| 25 | + root of the Git project or at least is within the project. |
| 26 | + `.semgrepignore` files can be placed in any folder in the project |
| 27 | + and follow the same specification as `.gitignore` files, |
| 28 | + which they extend. |
| 29 | +2. If you're not using Git, check that the `.semgrepignore` file |
| 30 | + is in the folder passed on the `semgrep scan` command line. |
| 31 | + For example, if the command is `semgrep scan foo/`, you must move |
| 32 | + the `.semgrepignore` file from the current folder |
| 33 | + to `foo/.semgrepignore`. |
| 34 | + |
| 35 | +To ensure you're using Semgrepignore v2, pass the flag |
| 36 | +`--semgrepignore-v2` to `semgrep scan` or to `semgrep |
| 37 | +ci`. To use the legacy Semgrepignore v1 implementation, use |
| 38 | +`--no-semgrepignore-v2`. These options are for troubleshooting the |
| 39 | +migration from v1 to v2. These flags will be removed when v2 becomes |
| 40 | +only implementation available. |
| 41 | + |
| 42 | +## Best practices |
| 43 | + |
| 44 | +* When scanning a whole project, run `semgrep` from the project root. |
| 45 | +* Place a `.semgrepignore` file at the project root. |
| 46 | +* Optionally, place `.semgrepignore` files in subfolders so as to keep the |
| 47 | + exclusion patterns simple and to allow moving these subfolders |
| 48 | + around without having to edit the file exclusion patterns. |
| 49 | +* Refer to the [Gitignore |
| 50 | + specification](https://git-scm.com/docs/gitignore) |
| 51 | + for the precise syntax and usage of `.semgrepignore` files. |
0 commit comments