@@ -147,28 +147,32 @@ jobs:
147147 fi
148148
149149 if [[ -s changed-files.txt ]]; then
150- # One TruffleHog per argv batch (not per file): avoids repeated process startup on
151- # large diffs; GNU xargs -0 splits when argv would exceed OS limits.
152- paths=()
150+ # One TruffleHog process over repo root; --include-paths file lists anchored regexes
151+ # (TruffleHog expects regex lines, not raw paths — see trufflesecurity docs).
152+ INCLUDE_REGEXES=/tmp/trufflehog-pr-include-regexes.txt
153+ : > "${INCLUDE_REGEXES}"
153154 while IFS= read -r file; do
154155 if [[ -s /tmp/exclude-regexes.txt ]] && echo "$file" | grep -qEf /tmp/exclude-regexes.txt 2>/dev/null; then
155156 echo "Skipping: ${file} (matches exclude pattern)"
156157 continue
157158 fi
158159 if [[ -f "${file}" ]]; then
159- paths+=("${ file}")
160+ python3 -c 'import re, sys; print("^" + re.escape(sys.argv[1]) + "$")' "$ file" >> "${INCLUDE_REGEXES}"
160161 fi
161162 done < changed-files.txt
162163
163- if ((${#paths[@]} > 0)); then
164- echo "TruffleHog: ${#paths[@]} path(s), batched by xargs as needed"
164+ if [[ -s "${INCLUDE_REGEXES}" ]]; then
165+ sort -u -o "${INCLUDE_REGEXES}" "${INCLUDE_REGEXES}"
166+ n_inc=$(wc -l < "${INCLUDE_REGEXES}")
167+ echo "TruffleHog: ${n_inc} path(s) via --include-paths (anchored regexes)"
165168 : > results.ndjson
166- printf '%s\0' "${paths[@]}" | xargs -0 -r trufflehog filesystem \
169+ trufflehog filesystem . \
170+ --include-paths "${INCLUDE_REGEXES}" \
167171 --exclude-paths /tmp/trufflehog-exclude.txt \
168172 --concurrency 16 \
169173 --json \
170174 --no-update \
171- --results=verified,unverified >> results.ndjson || true
175+ --results=verified,unverified > results.ndjson || true
172176 else
173177 echo "No files to scan after excludes (only deletions or excluded paths)"
174178 fi
@@ -393,7 +397,7 @@ jobs:
393397 id-token : write
394398 steps :
395399 - name : Get Prometheus secrets from Vault
396- uses : grafana/shared-workflows/actions/get-vault-secrets@078c4a8af09e06d646077550f9e0f68171d5881e # get-vault-secrets/v1.3.1
400+ uses : grafana/shared-workflows/actions/get-vault-secrets@f1614b210386ac420af6807a997ac7f6d96e477a # get-vault-secrets/v1.3.1
397401 with :
398402 common_secrets : |
399403 PROMETHEUS_URL=grafana-bench:prometheus_url
0 commit comments