Prerequisites
- PowerShell
- A Personal Access Token (PAT) or GitHub App Installation configured with the required permissions
Required Permissions
Both PAT and GitHub App authentication methods require the same set of Read-only permissions. The table below maps each permission to the collection functions it enables. Repository permissions:
Organization permissions:
Load GitHound
Retrieve the latest PowerShell version of the GitHound collector from the GitHub repo. Load the collector script and create an authenticated session.With a Personal Access Token
With a GitHub App Installation
Run the Collector
Parameters
Collect All Data
By default, GitHound collects core organizational data. Use-CollectAll to include optional collection steps such as Workflows, Environments, Repository Secrets, Repository Variables, App Installations, and PATs:
Resume an Interrupted Collection
If a collection is interrupted, use-Resume to continue from where it stopped. GitHound writes a per-step output file after each collection function completes. The -Resume flag detects existing files on disk and skips completed steps.
Custom Checkpoint Path
Use-CheckpointPath to specify a directory for output and checkpoint files:
Clean Up Intermediate Files
Use-CleanupIntermediates to delete per-step files after the final consolidated JSON is generated:
Rate Limits
GitHound monitors rate limit headers and automatically pauses collection when limits are exhausted. You can check your current rate limit status:
Manual Step-by-Step Collection
For very large environments, you can run individual collection functions instead of usingInvoke-GitHound. This gives you maximum control over the process and lets you monitor each step independently.
Functions marked with checkpointing are also rate limit aware and will automatically pause and resume when API limits are exhausted.
Collection Output
GitHound generates agithound_<orgId>.json file that you can upload to BloodHound.
Next Steps
- Having issues? See the Troubleshooting guide