Configuration Schema

Updated Jul 14, 2026

The simulator requires a specific initial state structure. The following top-level arrays are required by the simulator:

Field Type Description
users array GitHub user objects
organizations array GitHub organization objects
repositories array GitHub repository objects
branches array Git branch objects
blobs array Git blob objects

Optional arrays, when supported by the simulator version in use:

Field Type Description
issues array GitHub issue objects
pull_requests array GitHub pull request objects

When starting the simulator with start_sim_process, simulacat fills any missing required top-level arrays with empty lists. This allows callers to provide partial configurations (for example, only users) without manually including the other keys.

User Schema

{
    "login": "username",  # Required
    "organizations": ["org1"],  # Required, list of org logins
    "id": 1,  # Optional, auto-generated
    "name": "Display Name",  # Optional
    "bio": "Profile bio",  # Optional
    "email": "[email protected]",  # Optional
}

Repository Schema

{
    "owner": "username",  # Required
    "name": "repo-name",  # Required
    "id": 1,  # Optional, auto-generated
    "description": "About repo",  # Optional
    "private": False,  # Optional
    "default_branch": "main",  # Optional
}

Branch Schema

{
    "owner": "username",  # Required
    "repository": "repo-name",  # Required
    "name": "main",  # Required
    "sha": "abc123",  # Optional
    "protected": False,  # Optional
}