Giter VIP home page Giter VIP logo

gitleaks's Introduction

gitleaks

Travis

Gitleaks Action now available for your workflows!

Audit git repos for secrets. Gitleaks provides a way for you to find unencrypted secrets and other unwanted data types in git repositories. As part of its core functionality, it provides:

  • Audits for uncommitted changes
  • Github and Gitlab support including support for bulk organization and repository owner (user) repository scans, as well as pull/merge request scanning for use in common CI workflows.
  • Support for private repository scans, and repositories that require key based authentication
  • Output in JSON formats for consumption in other reporting tools and frameworks
  • Externalised configuration for environment specific customisation including regex rules
  • High performance through the use of src-d's go-git framework
repo scan

pre commit scan

Getting Started

Written in Go, gitleaks is available in binary form for many popular platforms and OS types from the releases page. Alternatively, executed via Docker or it can be installed using Go directly, as per the below;

MacOS

brew install gitleaks

Docker

docker pull zricethezav/gitleaks

Go

Ensure GO111MODULE=on is set as an env var

go get github.com/zricethezav/gitleaks/v4@latest

Usage

gitleaks has a wide range of configuration options that can be adjusted at runtime or via a configuration file based on your specific requirements.

Usage:
  gitleaks [OPTIONS]

Application Options:
  -v, --verbose          Show verbose output from audit
  -r, --repo=            Target repository
      --config=          config path
      --disk             Clones repo(s) to disk
      --version          version number
      --username=        Username for git repo
      --password=        Password for git repo
      --access-token=    Access token for git repo
      --commit=          sha of commit to audit
      --files-at-commit= sha of commit to audit all files at commit or "latest" to scan the last commit of the repository
      --threads=         Maximum number of threads gitleaks spawns
      --ssh-key=         path to ssh key used for auth
      --uncommitted      run gitleaks on uncommitted code
      --repo-path=       Path to repo
      --owner-path=      Path to owner directory (repos discovered)
      --branch=          Branch to audit
      --report=          path to write json leaks file
      --report-format=   json or csv (default: json)
      --redact           redact secrets from log messages and leaks
      --debug            log debug messages
      --repo-config      Load config from target repo. Config file must be ".gitleaks.toml" or "gitleaks.toml"
      --pretty           Pretty print json if leaks are present
      --commit-from=     Commit to start audit from
      --commit-to=       Commit to stop audit
      --timeout=         Time allowed per audit. Ex: 10us, 30s, 1m, 1h10m1s
      --depth=           Number of commits to audit

      --host=            git hosting service like gitlab or github. Supported hosts include: Github, Gitlab
      --baseurl=         Base URL for API requests. Defaults to the public GitLab or GitHub API, but can be set to a domain endpoint to use with a self hosted server.
      --org=             organization to audit
      --user=            user to audit
      --pr=              pull/merge request url
      --exclude-forks    audit excludes forks

Help Options:
  -h, --help             Show this help message

Docker usage examples

Run gitleaks against:

Public repository
docker run --rm --name=gitleaks zricethezav/gitleaks -v -r https://github.com/zricethezav/gitleaks.git
Local repository already cloned into /tmp/
docker run --rm --name=gitleaks -v /tmp/:/code/ zricethezav/gitleaks -v --repo-path=/code/gitleaks

By default repos cloned to memory. Using --disk for clone to disk or you can quickly out of memory.

For speed up analyze operation using --threads parameter, which set to ALL - 1 threads at your instance CPU.

Exit Codes

Gitleaks provides consistent exist codes to assist in automation workflows such as CICD platforms and bulk scanning.

0: no leaks
1: leaks present
2: error encountered

Give Thanks

πŸ‘‹ If using gitleaks has made your job easier consider sponsoring me through github's sponsorship program or donating a little something

❀️ sponsor

πŸ’΅ paypal

β‚Ώitcoin:3GndEzRZa6rJ8ZpkLureUcc5TDHMYfpDxn

Sponsors

These users are sponsors of gitleaks:

Adam Shannon Granville Schmidt
Adam Shannon Granville Schmidt

Logo Attribution

The Gitleaks logo uses the Git Logo created Jason Long is licensed under the Creative Commons Attribution 3.0 Unported License.

gitleaks's People

Contributors

zricethezav avatar petegallagher avatar adamkobi avatar eripa avatar milo-minderbinder avatar devnixs avatar bufferoverflow avatar ziyaddin avatar denwwer avatar arjunyel avatar noelalgora avatar keirans avatar realzcong avatar dorneanu avatar helixspiral avatar chenrui333 avatar harston avatar akerl avatar jesmg avatar martelo avatar cfzlp avatar madblobfish avatar stone-z avatar ryan-copperleaf avatar chapeupreto avatar r--w avatar pbnj avatar maxymvlasov avatar bestform avatar theoretick avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.