Earlybird

No Change
assess
First Added:October 1, 2024 Updated: July 29, 2026

Earlybird. (Amex, Go) scans repositories for secrets, PII, weak crypto, and key material in source, comments, and committed files.

Blurb

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. - americanexpre…

Summary

Garden stance: We assess Earlybird for our estate.

Key points:

TopicNotes
Installbuild.sh + install.sh (Linux/macOS) or Windows build.bat; config under ~/.go-earlybird
Scango-earlybird --path=... or --git=https://...
Ignore files.ge_ignore with .gitignore globs (IGNORE.md)
Line ignoreComment containing EARLYBIRD-IGNORE on that line
False positivesfalse-positives.json: Codes, Pattern (regex), FileExtensions, Description (docs)

Example false-positive rule (ignore rules 1, 2, 4 when pattern abc matches):

1
2
3
4
5
6
7
8
{
  "rules": [{
    "Codes": [1, 2, 4],
    "Pattern": "abc",
    "FileExtensions": [],
    "Description": "Just because"
  }]
}

Rules apply when both Pattern and FileExtensions match (empty FileExtensions = all extensions). To disable a code entirely, use pattern .*. To skip markdown: "FileExtensions": [".md"].

Pilot snapshot (internal, 2024): 21 false positives, 19 valid, 3 noise; re-run after rule tuning before org mandate.

Pipeline placement: same PR path as lint (Continuous Integration step 5 in garden CI model); do not rely on scanner alone without secret rotation process.

References

Details

TopicNotes
Installbuild.sh + install.sh (Linux/macOS) or Windows build.bat; config under ~/.go-earlybird
Scango-earlybird --path=... or --git=https://...
Ignore files.ge_ignore with .gitignore globs (IGNORE.md)
Line ignoreComment containing EARLYBIRD-IGNORE on that line
False positivesfalse-positives.json: Codes, Pattern (regex), FileExtensions, Description (docs)

Example false-positive rule (ignore rules 1, 2, 4 when pattern abc matches):

1
2
3
4
5
6
7
8
{
  "rules": [{
    "Codes": [1, 2, 4],
    "Pattern": "abc",
    "FileExtensions": [],
    "Description": "Just because"
  }]
}

Rules apply when both Pattern and FileExtensions match (empty FileExtensions = all extensions). To disable a code entirely, use pattern .*. To skip markdown: "FileExtensions": [".md"].

Pilot snapshot (internal, 2024): 21 false positives, 19 valid, 3 noise; re-run after rule tuning before org mandate.

Pipeline placement: same PR path as lint (Continuous Integration step 5 in garden CI model); do not rely on scanner alone without secret rotation process.

References