Skip to main content
Applies to BloodHound Enterprise and CE This page covers downloading and running the GitHound collector against your GitHub organization.

Prerequisites

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.
Functions with internal checkpointing (RepositoryRole, Workflow, Secret, Variable) save intermediate chunk files, so they can resume mid-function rather than starting over.

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 using Invoke-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 a githound_<orgId>.json file that you can upload to BloodHound.

Next Steps