npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ziul285/gitleaks

v1.0.0

Published

A custom Gitleaks-like scanner for detecting sensitive data.

Downloads

1,049

Readme

@ziul285/gitleaks

npm version License: MIT Tests Coverage Node.js

By: Luiz Carlos Aguiar Carrion

A lightweight and customizable tool for detecting sensitive data in your repositories. Git Leaks scans files for patterns like API keys, tokens, and other sensitive information based on default or user-defined configurations.

⚙️ Easily configurable via .gitleaksrc.json, with support for:

🔍 Default and custom regex-based patterns

📂 Ignored paths and excluded patterns

🧪 CLI + Husky integration for pre-commit/pre-push scans

🧵 Inline ignore support — skip specific lines with @gitleaks ignore

🔄 Reusable API for embedding into Node.js projects

Table of Contents

  1. Features
  2. Installation
  3. Usage
  4. Integrating with Husky
  5. Configuration
  6. Development
  7. Adding to Another Project
  8. Contributing
  9. License

Features

  • Detect sensitive data such as API keys, AWS secrets, GitHub tokens, etc.
  • Customizable patterns and ignore paths via .gitleaksrc.json.
  • CLI support for easy integration into CI/CD pipelines.
  • Modular and extensible codebase.

Installation

Option 1: Install via npm

npm install @ziul285/gitleaks

Option 2: Clone the Repository

git clone https://github.com/IKuuhakuI/gitleaks.git
cd gitleaks-scanner
npm install

Usage

CLI Command

Run Git Leaks in the root directory of your repository:

gitleaks [options]

Available Flags

| Flag | Alias | Type | Description | | ------------ | ----- | --------- | ------------------------------------------ | | --staged | -s | boolean | Scan only files in the staging area | | --all | -a | boolean | Scan all files in the repository (default) | | --quiet | -q | boolean | Suppress all output except errors | | --ignore | | array | Additional paths to ignore during the scan | | --patterns | -p | array | Specify additional patterns to scan for | | --exclude | -e | array | Exclude specific patterns from the scan | | --version | -v | boolean | Display the current version of the tool | | --help | -h | boolean | Show help message with usage details |

Example Commands

  • Scan Staged Files Only:
    gitleaks --staged
  • Scan All Files in Quiet Mode:
    gitleaks --all --quiet
  • Ignore Additional Paths:
    gitleaks --all --ignore dist build
  • Add Custom Patterns:
    gitleaks --all --patterns "CUSTOM_PATTERN_1" "CUSTOM_PATTERN_2"
  • Exclude Patterns:
    gitleaks --all --exclude githubToken

Integrating with Husky

You can integrate Git Leaks with Husky to automatically scan files during Git operations like commit or push.

Step 1: Install Husky

If Husky is not already installed in your project, run:

npm install husky --save-dev

Set up Husky in your project:

npx husky install

Step 2: Create a Pre-Commit Hook

Add a Husky pre-commit hook to scan staged files for sensitive data:

npx husky add .husky/pre-commit "npx gitleaks --staged"

Step 3: Create a Pre-Push Hook

Optionally, add a pre-push hook to scan the entire repository before pushing:

npx husky add .husky/pre-push "npx gitleaks --all"

Step 4: Test the Setup

To verify the integration:

  1. Stage some changes with sensitive data.
  2. Attempt to commit or push.
  3. Git Leaks will run, and the commit/push will be blocked if sensitive data is detected.

Advanced Husky Integration

  • If you want to customize the hooks further, you can modify the commands in the .husky/pre-commit or .husky/pre-push files.

  • Example pre-commit file:

    #!/bin/sh
    
    npx gitleaks --staged --quiet

Configuration

.gitleaksrc.json

The project uses a .gitleaksrc.json file for custom configurations. This file should be located in the root directory of the repository you want to scan.

Example .gitleaksrc.json:

{
  "maxFileSizeKb": 500,
  "ignoreExtensions": [".jpg", ".zip", ".log"],
  "includePatterns": ["**/*.js", "src/**/*.ts"],
  "customPatterns": ["TEST_KEY_[A-Za-z0-9]{10}"],
  "ignorePaths": ["node_modules", ".git", "dist"],
  "ignoredPatterns": ["awsAccessKey", "openAiSecretKey"]
}

📘 Available Configuration Fields

| Field | Type | Description | | ------------------ | ---------- | ------------------------------------------------------- | | ignorePaths | string[] | Folders or files to skip entirely. | | ignoreExtensions | string[] | File extensions to skip (e.g., [".zip", ".log"]). | | maxFileSizeKb | number | Skip files larger than this (in kilobytes). | | includePatterns | string[] | Glob patterns for files to include (e.g., "**/*.js"). | | ignoredPatterns | string[] | Keys of default patterns to disable. | | customPatterns | string[] | User-defined regex patterns to scan for. |

Default Config (if .gitleaksrc.json is not present):

{
  "customPatterns": [],
  "ignoredPatterns": [],
  "ignorePaths": ["node_modules", ".git", "package.json", "package-lock.json"]
}

Development

Run the Project Locally

node index.js

Run Tests

The project uses Mocha and Chai for testing. Run the test suite with:

npm test

Test Coverage

Ensure all major features are tested:

  1. Default patterns detection.
  2. Custom patterns detection.
  3. ignoredPatterns functionality.
  4. File and path exclusions.

Adding to Another Project

Install as a Dependency

npm install gitleaks

Using in Code

const { scanRepository } = require("gitleaks/core/scanner");

(async () => {
  const results = await scanRepository("/path/to/repo", {
    ignorePaths: ["node_modules"],
    customPatterns: ["MY_SECRET_[A-Za-z0-9]{20}"],
  });
  console.log(results);
})();

Contributing

Contributions are welcome! Follow these steps to contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-name).
  3. Implement your feature.
  4. Create tests!
  5. Commit your changes (git commit -m "Add new feature").
  6. Push to your branch (git push origin feature-name).
  7. Create a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.