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
}