Thanks to all our contributors, users, and the many people that make detect-secrets possible! ❤️
If you love detect-secrets, please star our project on GitHub to show your support! ⭐
- Adding plugin for IBM's Cloudant (#261, thanks @killuazhu)
- Adding plugin for IBM Cloud Object Storage HMAC (#263, thanks @killuazhu)
- Adding Twilio plugin (#267, thanks @EdOverflow)
- Support for
DETECT_SECRETS_SECURITY_TEAMenvironment variable to customize the pre-commit hook error message (#283, thanks @0atman)
- Adhoc
HighEntropyStringscanning supports multiple words (#287)
- Rationale for the minor version bump:
- Some accuracy changes that might change baselines significantly
- @OiCMudkips' first release increases spookiness
- It being almost Halloweeen increases spookiness
- Added a Softlayer plugin (#254, thanks @killuazhu and @justineyster)
- Support URL-safe base64 strings in the base64 plugin (#245)
- Make it easier to add new plugins to detect-secrets (#248)
- Exclude NOPASSWD from the keyword detector (#247, thanks @security-architecture)
- Ignore lines with
idin them in the high-entropy plugins (#245) - Ignore UUIDs detected by the base64 plugin (#245)
- Fix the signal metric in the audit results view (#251)
- Added a
JwtTokenDetectorplugin (#239, thanks @gdemarcsek) - Added verification for Mailchimp API keys
- Added verification for Stripe secret API keys
- Added a
--word-listoption for filtering secrets with words in them (#241, dopip install detect-secrets[word_list]to use this feature)
- Fixed a bug where we were not skipping ignored file extensions
- Fixed a bug in the
auditfunctionality where we crashed if the baseline had a Mailchimp secret in it
- Added a
MailchimpDetectorplugin (#217, thanks @dgzlopes) - Added verification for Slack webhooks (#233, thanks @Patil2099)
- Added handling of binary secrets in YAML files (#223)
- Added various accuracy improvements to the
KeywordDetectorplugin (#229)
- Fixed a bug in the
auditfunctionality where we crashed when the highlighter failed (#228) - Fixed a bug in the
auditfunctionality where there was no (b)ack audit functionality when a secret was not found (#215, thanks @dgzlopes) - Fixed a bug where we were not excluding SVG files (#219)
- Added a unique exit code to identify baseline changes (#214, thanks @lirantal)
- Updated and ran our pre-commit hooks (#221, thanks @killuazhu)
- Added webhook detection to our
SlackDetectorplugin (#195, thanks @adrianbn) - Added support for scanning multiple files (#188, thanks @dgzlopes)
- Added support for scanning multiple repositories (#193)
- Added verification for AWS access keys and Slack tokens (#194)
- Added an
audit --display-resultsfeature to aid plugin development (#205)
- Improved our Artifactory regex (#195, thanks @adrianbn)
- Improved sequential string detection to catch the Base64 character set (#207)
- Moved our sequential string detection so it is used by all plugins (#196)
whitelist/blacklisthave been replaced withallowlist/denylist(#178, thanks @richo). This includes using# pragma: allowlist secretnow for inline allowlisting.# pragma: whitelist secretcompatibility will be removed in a later major version bump.
- Added a
StripeDetectorplugin (#169, thanks @dgzlopes) - Improved handling of un-scannable files (#176, thanks @dgzlopes)
- Added an
ArtifactoryDetectorplugin (#157 and #163, thanks @justineyster) - Added support for Golang string assignments in the
KeywordDetectorplugin (#162, thanks @baboateng) - Added support for XML inline whitelisting comments (#152, thanks @killuazhu)
- Added support for text after inline whitelisting comments (#168, thanks @dgzlopes)
- Fixed a bug where filetype detection failed due to an inconsistent
configparserimport (#155, thanks @Namburgesas)
- Greatly improved the readability of regular expressions in the
KeywordDetectorplugin, and the maintainability of the corresponding test (#160 and #161, thanks @baboateng) - Added a contribution guide (#166, thanks @zioalex)
- Documented all of our inline whitelisting directives (#165 and #172, thanks @dgzlopes)
- Fixed a bug where the improved performance for high-entropy strings (#144) did not work on Python 2 (#147)
- Added a
--keyword-excludeargument toscan(#132, thanks @hpandeycodeit)
- For the
KeywordDetectorplugin: made quotes required for secrets in.clsand.javafiles, and skipped{{secrets like this}}in YAML files (#133/#145)
- Improved performance when scanning for high-entropy strings (#144, thanks @killuazhu)
- Fixed an uncaught
UnicodeEncodeErrorexception in ourinifile parser, when using Python 2 (#143)
- Fixed the example pre-commit configuration in the README (#135, thanks @nymous) (#138, thanks @neunkasulle)
- Refactored some
auditcode intoCodeSnippetandCodeSnippetHighlighterclasses (#137)
- Added a
SlackDetectorplugin (#122, thanks @killuazhu) - Added a
--use-all-pluginsargument to--updatethat adds all plugins to the baseline (#124, thanks @killuazhu) - Added
--exclude-filesand--exclude-linesarguments toscan(#127)
- Removed the
--excludeCLI scan argument (#127)
- Reduced false-positives by excluding more characters (
!$&\';) in theBasicAuthDetectorregex (#126, #123, thanks @killuazhu) - Added more to the
FALSE_POSITIVESdict for theKeywordDetectorplugin, includingpassword(#118)
- Fixed a bug where
--updatewas adding all plugins to the baseline, instead of respecting the plugins used in the baseline (#124, thanks @killuazhu) - Fixed an uncaught
UnicodeEncodeErrorexception when scanning non-ini files (e.g. markdown) containing unicode, when using Python 2 (#128, thanks @killuazhu) - Fixed a bug where non-ini files (e.g. markdown) containing unicode caused a
UnicodeEncodeErrorexception in theauditfunctionality, when using Python 2 (#129, thanks @killuazhu) - Fixed a bug where non-posix end of line characters caused a "Secret not found on line...." error in the
auditfunctionality (#120, thanks @killuazhu) - Fixed a bug where
scan_diff, called bydetect-secrets-server, was ignoring inlinepragma: whitelist secretcomments (#127)
- Relaxed the number of spaces before inline
pragma: whitelist secretcomment (#125, thanks @killuazhu] - Added Python 3.7 to Travis CI and
tox.initesting (#114, thanks @cclauss) - Increased minimum test coverage from 97% to 98%
- Fixed a bug where we were adding an extra-newline in
detect-secrets scanoutput (#111)
- Reorganized the code, mainly creating a
common/directory (#113)
- Turned the
KeywordDetectorplugin back on, with new regexes and accuracy improvements (#86) - Added an
AWSAccessKeyDetectorplugin (#100) - Added the ability to scan
.initypes files that don't have a header (#106)
- Add blacklisting of PGP private key headers in
PrivateKeyDetectorplugin (#104) - Reduced false-positives by improving
BasicAuthDetectorplugin regex (#98)
- Fixed a bug where we were not showing removed lines in the
auditfunctionality (#98)
- Added whitelist directive regexes to match against inline comment syntaxes in more languages (#105)
- Refactored various detectors to use
RegexBasedDetector(#103) - Refactored the
BashColorsingleton into thecolorizefunction (#109) - Small improvements to existing file parsers (#107)
- Refactored the
BasePluginto use theWHITELIST_REGEX(#99) - Removed
unidifffrom standard dependencies (#101)
- Made the pre-commit hook automatically update the baseline (#96)
- Added the
audit --difffunctionality (#95)
- Added display of secret type in audit functionality (#94)
- Added a "Please git add the baseline" message (#89)
- Improved the "Unable to open baseline file" message (#91)
- Update
scan --updateresults to only propagateis_secretof new secrets (#90)
- Disabled
KeywordDetectorplugin temporarily (#89)
- Ordered baseline hashes, for better diffs (#84)
- Added a "Please git add the baseline" message (#89)
- Improved error messages for pre-commit hook (#85)
- Fixed a couple bugs in the
auditfunctionality, one for small files and the other case-sensitivity in theKeywordDetectorplugin (#83, thanks @jkozera)
- Added a
KeywordDetectorplugin, that was horrible and regretful (#76)
- Fixed a bug in
scan --updatewhere we would append the baseline exclude regex to itself (#78) - Fixed the regular expression in the
BasicAuthDetectorplugin so that it didn't run forever (#80) - Removed trailing whitespace from
scanoutput (#78)
- Added command line hints and baseline clarification in the README (#81, thanks @JoshuaRLi)
- Added a (b)ack option to 'Is this a valid secret?' (#72, thanks @cleborys)
- Added a
BasicAuthDetectorplugin (#74) - Added CLI functionality to check strings in an adhoc manner (#73)
- Fixed a typo in the README (#68, thanks @whathejoe)
- Fixed a bug where we didn't skip sequential strings when we should have (#67)
- Changed
--auditand--scantoauditandscan(#51) - Changed
scan --import <baseline>toscan --update <baseline>(#58)
- Reduced false-positives caused by sequential strings, e.g.
ABCDEF(#64)
- Fixed a bug where the pre-commit code would remove the
is_secretattribute from audited baselines (#65) - Fixed an
auditbug where we would crash if a file in the baseline did not exist (#56) - Improved the
auditfunctionality to handle short files better (#48)
- Fixed numbering system with interactive audit
- Fixed "leapfrog" edge case for audit functionality (#47)
- Added ability to migrate baselines from an older version to a newer version
- Added functionality to audit baseline, to distinguish difference between false and true positives in the baseline file (#44)
- Upgraded
PrivateKeyPlugin: more search parameters, more lines searched, and secret hash created using payload (rather than the entire line content)
- Differentiate between
Base64HighEntropyStringsandHexHighEntropyStringsthroughsecret_type(#26) - Got rid of
SensitivityValuesas a means to store plugin configs
- Improved the heuristic for
HexHighEntropyStrings, reducing the false positive rates for large numbers identified in code
- Baseline always outputs in sorted order now, to prevent unnecessary diffs (#25)
- Escape exclude regex statements before compilation (#39)
- Fixed case where details of plugins used were not included in the baseline, when the pre-commit hook updated it (#40)
- Simplified logging by removing
CustomLog(#46)
- Allow scanning of non-git files (#18)
- Improved scanning of INI config files with
HighEntropyString(#13 and #17) - Improved scanning of YAML files with
HighEntropyString(#16)
- Fixed
PrivateKeyDetectorplugin analyze results' representation (#15)