gitrob

command module
v0.0.0-...-3ca7bcd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 22, 2025 License: MIT Imports: 8 Imported by: 0

README ΒΆ

πŸ•΅οΈ Gitrob

Gitrob

Go Version License PRs Welcome

Gitrob is a tool to help find potentially sensitive files pushed to public repositories on Github.

πŸ“‹ Table of Contents

✨ Features

  • πŸ” Scans repositories for sensitive files
  • 🌐 Web interface for easy analysis
  • πŸ”„ Configurable commit depth scanning
  • πŸ‘₯ Organization member scanning
  • πŸ’Ύ Session saving and loading
  • βš™οΈ Customizable signature patterns
  • πŸš€ Multi-threaded processing

πŸ“₯ Installation

Pre-built Binaries

Download the latest pre-built release for your platform.

Using Go
go get github.com/bitthr3at/gitrob

πŸš€ Quick Start

  1. Set up GitHub Token
export GITROB_ACCESS_TOKEN=your_github_token
  1. Run Gitrob
gitrob target_organization
  1. Access Web Interface
http://localhost:9393

βš™οΈ Configuration

GitHub Access Token
  1. Create a personal access token
  2. Set it in your environment:
export GITROB_ACCESS_TOKEN=your_token_here
Signature Configuration

Gitrob uses YAML configuration files to define signature patterns for detecting sensitive information. You can specify a custom config file or use the default locations.

Using Custom Config File
gitrob -config /path/to/your/config.yaml target_organization
Default Config Locations

If no config file is specified, Gitrob searches in these locations (in order):

  1. ./config.yaml (Current directory)
  2. ./core/config.yaml (Core directory)
  3. /etc/gitrob/config.yaml (System config)
  4. $HOME/.gitrob/config.yaml (User config)
Custom Signature Format
patterns:
  - name: "sensitive_file"
    type: "content|extension|filename|path"
    pattern: "regex_pattern"
    description: "What this detects"
    comment: "Additional context"

Signature Types:

  • content: Match file contents using regex
  • extension: Match file extensions (exact match)
  • filename: Match filenames (exact match)
  • path: Match file paths using regex

Example:

patterns:
  - name: "aws_key"
    type: "content"
    pattern: "(?i)aws_access_key_id\\s*=\\s*[A-Z0-9]{20}"
    description: "AWS Access Key ID"
    comment: "AWS credentials should not be committed"

πŸ› οΈ Usage

Command Format
gitrob [options] target [target2] ... [targetN]
Options
Option Description Default
-bind-address Web server bind address 127.0.0.1
-commit-depth Number of commits to process 500
-config Path to config.yaml file core/config.yaml
-debug Enable debug output false
-github-access-token GitHub API token -
-load Load session file -
-no-expand-orgs Don't scan org members false
-port Web server port 9393
-repo Single repository to scan -
-save Save session to file -
-silent Suppress output false
-threads Concurrent threads CPU cores
Session Management
Save Session
gitrob -save ~/gitrob-session.json acmecorp
Load Session
gitrob -load ~/gitrob-session.json

πŸ”¨ Building from Source

Prerequisites
  • Go >= 1.8
  • Git
Build Steps
  1. Clone Repository
git clone https://github.com/bitthr3at/gitrob.git
cd gitrob
  1. Build
chmod +x build.sh
./build.sh

This creates binaries in the build directory for:

  • Linux (amd64)
  • macOS (amd64)
  • Windows (amd64)

For single platform build:

go build

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

πŸ“„ License

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

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis
Code generated for package core by go-bindata DO NOT EDIT.
Code generated for package core by go-bindata DO NOT EDIT.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL