MCPcopy Index your code
hub / github.com/americanexpress/earlybird

github.com/americanexpress/earlybird @v4.6.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v4.6.1 ↗ · + Follow
356 symbols 936 edges 78 files 164 documented · 46%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Logo

EarlyBird is a sensitive data detection tool capable of scanning source code repositories for clear text password violations, PII, outdated cryptography methods, key files and more. It can be used to scan remote git repositories, local files or directories or as a pre-commit step.

Prerequisites

Before running the build and install scripts on your local machine, you must ensure that go is installed locally on your machine. The following command can be used to check whether go has been installed.

go version

If go is not installed locally on your machine, then you ned to ensure that it is installed and the above command works on your local machine. The latest version of go can be downloaded from the following link.

https://go.dev/dl/

Installation

Linux & Mac

Running the build.sh script will produce a binary for each OS, while the install.sh script will install Earlybird on your system. This will create a .go-earlybird directory in your home directory with all the configuration files. Finally installing go-earlybird as an executable in /usr/local/bin/.

./build.sh && ./install.sh

Windows

Running build.bat will produce your binaries while the install.bat script will create a 'go-earlybird' directory in C:\Users\[my user]\App Data\, and copy the required configurations there. This script will also install go-earlybird.exe as an executable in the App Data directory (which should be in your path).

build.bat && install.bat

Usage

To launch a basic EarlyBird scan against a directory:

$ go-earlybird --path=/path/to/directory
$ go-earlybird.exe --path=C:\path\to\directory

or to scan a remote git repo:

$ go-earlybird --git=https://github.com/americanexpress/earlybird

Click here for Detailed Usage instructions.

Documentation

Why Are We Doing This?

The MITRE Corporation provides a catalog of Common Weakness Enumerations (CWE), documenting issues that should be avoided. Some of the relevant CWEs that are handled by the use of EarlyBird include: - CWE-798 - Use of Hardcoded Credentials - CWE-259 - Use of Hardcoded Password - CWE-321 - Use of Hardcoded Cryptographic Key - CWE-257 - Storing Password in a Recoverable Format - CWE-312 - Cleartext Storage of Sensitive Information - CWE-327 - Use of Broken or Risky Cryptographic Algorithm - CWE-338 - Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG) - CWE-615 - Information Exposure Through Comments - CWE-546 - Suspicious Comments - CWE-521 - Weak Password Requirements


Contributing

We welcome your interest in the American Express Open Source Community on Github. Any Contributor to any Open Source Project managed by the American Express Open Source Community must accept and sign an Agreement indicating agreement to the terms below. Except for the rights granted in this Agreement to American Express and to recipients of software distributed by American Express, You reserve all right, title, and interest, if any, in and to your contributions. Please fill out the Agreement.

License

Any contributions made under this project will be governed by the Apache License 2.0.

Code of Conduct

This project adheres to the American Express Community Guidelines. By participating, you are expected to honor these guidelines.

Extension points exported contracts — how you extend this code

List (Interface)
List is an interface for adding items to a list [1 implementers]
pkg/git/structures.go
EarlybirdCore (Interface)
EarlybirdCore is the main interface for interacting with Earlybird as a package [1 implementers]
pkg/core/structures.go
BroadcastServer (Interface)
(no doc) [1 implementers]
pkg/broadcast/broadcast.go

Core symbols most depended-on inside this repo

String
called by 24
pkg/core/const.go
Error
called by 19
pkg/git/structures.go
MustGetWD
called by 16
pkg/utils/utils.go
GetConfigDir
called by 13
pkg/utils/utils.go
TranslateLevelID
called by 11
pkg/config/cfgReader.go
readUint32
called by 8
pkg/jks/read.go
Scan
called by 7
pkg/core/structures.go
getLevelNameFromID
called by 7
pkg/scan/scanUtil.go

Shape

Function 253
Struct 64
Method 33
Interface 3
TypeAlias 3

Languages

Go100%

Modules by API surface

pkg/scan/scan.go21 symbols
pkg/file/fileUtil.go18 symbols
pkg/utils/utils.go16 symbols
pkg/utils/utils_test.go15 symbols
pkg/scan/scan_test.go15 symbols
pkg/git/structures.go15 symbols
pkg/file/fileUtil_test.go15 symbols
pkg/scan/structures.go13 symbols
pkg/scan/scanUtil.go11 symbols
pkg/scan/scanUtil_test.go10 symbols
pkg/core/core.go10 symbols
pkg/config/cfgReader_test.go9 symbols

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add earlybird \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page