Created
December 22, 2025 18:13
-
-
Save ichoosetoaccept/652110a1da72198ce25385ed532ab616 to your computer and use it in GitHub Desktop.
JSON Schema for git-town.toml configuration files (kebab-case)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "$schema": "http://json-schema.org/draft-07/schema#", | |
| "title": "Git Town Configuration", | |
| "description": "JSON schema for git-town.toml configuration files", | |
| "type": "object", | |
| "properties": { | |
| "branches": { | |
| "type": "object", | |
| "description": "Branch-related settings", | |
| "properties": { | |
| "main": { | |
| "type": "string", | |
| "description": "Name of the main branch", | |
| "default": "main" | |
| }, | |
| "perennials": { | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| }, | |
| "description": "List of perennial branch names" | |
| }, | |
| "perennial-regex": { | |
| "type": "string", | |
| "description": "Regex pattern for perennial branches" | |
| }, | |
| "feature-regex": { | |
| "type": "string", | |
| "description": "Regex pattern for feature branches" | |
| }, | |
| "contribution-regex": { | |
| "type": "string", | |
| "description": "Regex pattern for contribution branches" | |
| }, | |
| "observed-regex": { | |
| "type": "string", | |
| "description": "Regex pattern for observed branches" | |
| }, | |
| "order": { | |
| "type": "string", | |
| "enum": [ | |
| "asc", | |
| "desc" | |
| ], | |
| "description": "Branch display order", | |
| "default": "asc" | |
| }, | |
| "unknown-branch-type": { | |
| "type": "string", | |
| "description": "Default type for unknown branches", | |
| "default": "feature" | |
| }, | |
| "default-type": { | |
| "type": "string", | |
| "description": "Default branch type" | |
| }, | |
| "display-types": { | |
| "type": "string", | |
| "description": "How branch types are displayed" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "create": { | |
| "type": "object", | |
| "description": "New branch creation settings", | |
| "properties": { | |
| "new-branch-type": { | |
| "type": "string", | |
| "description": "Default type for new branches", | |
| "default": "feature" | |
| }, | |
| "share-new-branches": { | |
| "type": "string", | |
| "enum": [ | |
| "push", | |
| "propose", | |
| "no" | |
| ], | |
| "description": "How to share new branches", | |
| "default": "propose" | |
| }, | |
| "stash": { | |
| "type": "boolean", | |
| "description": "Whether to stash uncommitted changes", | |
| "default": true | |
| }, | |
| "push-newbranches": { | |
| "type": "boolean", | |
| "description": "Whether to push new branches" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "hosting": { | |
| "type": "object", | |
| "description": "Code hosting platform settings", | |
| "properties": { | |
| "forge-type": { | |
| "type": "string", | |
| "enum": [ | |
| "github", | |
| "gitlab", | |
| "gitea", | |
| "bitbucket" | |
| ], | |
| "description": "Type of the forge" | |
| }, | |
| "origin-hostname": { | |
| "type": "string", | |
| "description": "Hostname of the origin" | |
| }, | |
| "dev-remote": { | |
| "type": "string", | |
| "description": "Name of the development remote" | |
| }, | |
| "github-connector-type": { | |
| "type": "string", | |
| "enum": [ | |
| "api", | |
| "gh" | |
| ], | |
| "description": "Type of GitHub connector" | |
| }, | |
| "gitlab-connector-type": { | |
| "type": "string", | |
| "enum": [ | |
| "api", | |
| "glab" | |
| ], | |
| "description": "Type of GitLab connector" | |
| }, | |
| "platform": { | |
| "type": "string", | |
| "description": "Deprecated, use forge-type" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "propose": { | |
| "type": "object", | |
| "description": "Proposal-related settings", | |
| "properties": { | |
| "lineage": { | |
| "type": "string", | |
| "enum": [ | |
| "cli", | |
| "api" | |
| ], | |
| "description": "Lineage setting for proposals", | |
| "default": "cli" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "ship": { | |
| "type": "object", | |
| "description": "Shipping (merging to main) settings", | |
| "properties": { | |
| "delete-tracking-branch": { | |
| "type": "boolean", | |
| "description": "Whether to delete the tracking branch after shipping", | |
| "default": true | |
| }, | |
| "strategy": { | |
| "type": "string", | |
| "enum": [ | |
| "api", | |
| "squash-merge", | |
| "fast-forward" | |
| ], | |
| "description": "Shipping strategy", | |
| "default": "api" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "sync": { | |
| "type": "object", | |
| "description": "Branch synchronization settings", | |
| "properties": { | |
| "auto-sync": { | |
| "type": "boolean", | |
| "description": "Whether to auto-sync before commands", | |
| "default": true | |
| }, | |
| "detached": { | |
| "type": "boolean", | |
| "description": "Whether to run in detached mode", | |
| "default": false | |
| }, | |
| "feature-strategy": { | |
| "type": "string", | |
| "enum": [ | |
| "merge", | |
| "rebase" | |
| ], | |
| "description": "Sync strategy for feature branches", | |
| "default": "rebase" | |
| }, | |
| "perennial-strategy": { | |
| "type": "string", | |
| "enum": [ | |
| "merge", | |
| "rebase", | |
| "ff-only" | |
| ], | |
| "description": "Sync strategy for perennial branches", | |
| "default": "ff-only" | |
| }, | |
| "prototype-strategy": { | |
| "type": "string", | |
| "enum": [ | |
| "merge", | |
| "rebase", | |
| "compress" | |
| ], | |
| "description": "Sync strategy for prototype branches", | |
| "default": "rebase" | |
| }, | |
| "push-branches": { | |
| "type": "boolean", | |
| "description": "Whether to push branches to remote", | |
| "default": true | |
| }, | |
| "push-hook": { | |
| "type": "boolean", | |
| "description": "Whether to run pre-push Git hook", | |
| "default": true | |
| }, | |
| "tags": { | |
| "type": "boolean", | |
| "description": "Whether to sync Git tags", | |
| "default": true | |
| }, | |
| "upstream": { | |
| "type": "boolean", | |
| "description": "Whether to sync with upstream remote", | |
| "default": true | |
| }, | |
| "auto-resolve": { | |
| "type": "boolean", | |
| "description": "Whether to auto-resolve phantom conflicts" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "sync-strategy": { | |
| "type": "object", | |
| "description": "Granular sync strategy settings", | |
| "properties": { | |
| "feature-branches": { | |
| "type": "string", | |
| "enum": [ | |
| "merge", | |
| "rebase" | |
| ], | |
| "description": "Sync strategy for feature branches" | |
| }, | |
| "perennial-branches": { | |
| "type": "string", | |
| "enum": [ | |
| "merge", | |
| "rebase", | |
| "ff-only" | |
| ], | |
| "description": "Sync strategy for perennial branches" | |
| }, | |
| "prototype-branches": { | |
| "type": "string", | |
| "enum": [ | |
| "merge", | |
| "rebase", | |
| "compress" | |
| ], | |
| "description": "Sync strategy for prototype branches" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "push-newbranches": { | |
| "type": "boolean", | |
| "description": "Whether to push new branches" | |
| }, | |
| "push-hook": { | |
| "type": "boolean", | |
| "description": "Whether to run Git's pre-push hook" | |
| }, | |
| "ship-delete-tracking-branch": { | |
| "type": "boolean", | |
| "description": "Whether to delete the tracking branch after shipping" | |
| }, | |
| "ship-strategy": { | |
| "type": "string", | |
| "description": "Strategy for shipping branches" | |
| }, | |
| "sync-tags": { | |
| "type": "boolean", | |
| "description": "Whether to sync Git tags" | |
| }, | |
| "sync-upstream": { | |
| "type": "boolean", | |
| "description": "Whether to sync with the upstream remote" | |
| }, | |
| "create-prototype-branches": { | |
| "type": "boolean", | |
| "description": "Whether to create prototype branches" | |
| } | |
| }, | |
| "additionalProperties": false | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment