git-secrets

Prevents you from committing secrets and credentials into git repositories

Multi-Cloud Open Source Self Hosted Only
Category Secrets Management
Community Stars 12547
Last Commit 1 year ago
Last page update 19 days ago
Pricing Details Free and open source
Target Audience Developers and DevOps teams concerned about security.

The core security challenge addressed by git-secrets is the accidental commitment of sensitive information, such as passwords, API keys, and other credentials, into Git repositories. This tool prevents such leaks by integrating with Git to scan commits, commit messages, and merge histories for prohibited patterns.

Technically, git-secrets operates by installing Git hooks that run on each commit, ensuring that no sensitive data is included. The tool uses regular expression patterns to identify and block commits containing secrets. For example, the --register-aws command adds common AWS patterns to the Git configuration, preventing AWS access keys and other AWS credentials from being committed.

Operationally, it is crucial to install the Git hooks for every repository you wish to protect using git secrets --install. You can also configure global settings to apply these hooks to all your local repositories by setting up a global template directory. Additionally, custom secret providers can be registered to check for specific patterns, such as credentials stored in files like ~/.aws/credentials.

Key considerations include the need for manual configuration for each repository or setting up global configurations to streamline the process. The tool also allows for scanning the entire repository history using git secrets --scan-history, which is essential for ensuring no secrets have been committed in the past. However, this comprehensive scanning can be resource-intensive and may require additional setup in CI/CD pipelines to ensure continuous protection.

Specific technical details include the use of regular expressions to define prohibited patterns, such as A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16} for AWS access key IDs. The tool exits with a non-zero status if a secret is detected, providing detailed output of the matched file, line number, and the offending line of text.

Improve this page