{
  "name": "vcspull",
  "url": "https://vcspull.git-pull.com",
  "description": "CLI workspace manager for VCS repos. Sync, organize, and manage multiple git (and hg/svn) repositories from a single YAML config.",
  "sourceRepository": "https://github.com/vcs-python/vcspull/",
  "agentEntrypoints": {
    "manifest": "/docs.json",
    "llms": "/llms.txt",
    "llmsFull": "/llms-full.txt"
  },
  "pages": [
    {
      "title": "Config - vcspull.config",
      "description": "Configuration functionality for vcspull.",
      "section": "Documentation",
      "url": "/api/config/",
      "markdownUrl": "/api/config.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Config - vcspull.config"
        },
        {
          "id": "vcspull.config.expand_dir",
          "level": 2,
          "text": "expand_dir()"
        },
        {
          "id": "vcspull.config.normalize_config_file_path",
          "level": 2,
          "text": "normalize_config_file_path()"
        },
        {
          "id": "vcspull.config._validate_worktrees_config",
          "level": 2,
          "text": "_validate_worktrees_config()"
        },
        {
          "id": "vcspull.config.extract_repos",
          "level": 2,
          "text": "extract_repos()"
        },
        {
          "id": "vcspull.config.find_home_config_files",
          "level": 2,
          "text": "find_home_config_files()"
        },
        {
          "id": "vcspull.config.find_config_files",
          "level": 2,
          "text": "find_config_files()"
        },
        {
          "id": "vcspull.config.load_configs",
          "level": 2,
          "text": "load_configs()"
        },
        {
          "id": "vcspull.config.detect_duplicate_repos",
          "level": 2,
          "text": "detect_duplicate_repos()"
        },
        {
          "id": "vcspull.config.in_dir",
          "level": 2,
          "text": "in_dir()"
        },
        {
          "id": "vcspull.config.filter_repos",
          "level": 2,
          "text": "filter_repos()"
        },
        {
          "id": "vcspull.config.is_config_file",
          "level": 2,
          "text": "is_config_file()"
        },
        {
          "id": "vcspull.config._atomic_write",
          "level": 2,
          "text": "_atomic_write()"
        },
        {
          "id": "vcspull.config.save_config_yaml",
          "level": 2,
          "text": "save_config_yaml()"
        },
        {
          "id": "vcspull.config.save_config_json",
          "level": 2,
          "text": "save_config_json()"
        },
        {
          "id": "vcspull.config.save_config",
          "level": 2,
          "text": "save_config()"
        },
        {
          "id": "vcspull.config.save_config_yaml_with_items",
          "level": 2,
          "text": "save_config_yaml_with_items()"
        },
        {
          "id": "vcspull.config._VALID_OPS",
          "level": 2,
          "text": "_VALID_OPS"
        },
        {
          "id": "vcspull.config.is_pinned_for_op",
          "level": 2,
          "text": "is_pinned_for_op()"
        },
        {
          "id": "vcspull.config.get_pin_reason",
          "level": 2,
          "text": "get_pin_reason()"
        },
        {
          "id": "vcspull.config.MergeAction",
          "level": 2,
          "text": "MergeAction"
        },
        {
          "id": "vcspull.config.MergeAction.KEEP_EXISTING",
          "level": 3,
          "text": "KEEP_EXISTING"
        },
        {
          "id": "vcspull.config.MergeAction.KEEP_INCOMING",
          "level": 3,
          "text": "KEEP_INCOMING"
        },
        {
          "id": "vcspull.config._classify_merge_action",
          "level": 2,
          "text": "_classify_merge_action()"
        },
        {
          "id": "vcspull.config.merge_duplicate_workspace_root_entries",
          "level": 2,
          "text": "merge_duplicate_workspace_root_entries()"
        },
        {
          "id": "vcspull.config.merge_duplicate_workspace_roots",
          "level": 2,
          "text": "merge_duplicate_workspace_roots()"
        },
        {
          "id": "vcspull.config.canonicalize_workspace_path",
          "level": 2,
          "text": "canonicalize_workspace_path()"
        },
        {
          "id": "vcspull.config.workspace_root_label",
          "level": 2,
          "text": "workspace_root_label()"
        },
        {
          "id": "vcspull.config.normalize_workspace_roots",
          "level": 2,
          "text": "normalize_workspace_roots()"
        }
      ]
    },
    {
      "title": "Exceptions - vcspull.exc",
      "description": "Exceptions for vcspull.",
      "section": "Documentation",
      "url": "/api/exc/",
      "markdownUrl": "/api/exc.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Exceptions - vcspull.exc"
        },
        {
          "id": "vcspull.exc.VCSPullException",
          "level": 2,
          "text": "VCSPullException"
        },
        {
          "id": "vcspull.exc.MultipleConfigWarning",
          "level": 2,
          "text": "MultipleConfigWarning"
        },
        {
          "id": "vcspull.exc.MultipleConfigWarning.message",
          "level": 3,
          "text": "message"
        },
        {
          "id": "vcspull.exc.WorktreeError",
          "level": 2,
          "text": "WorktreeError"
        },
        {
          "id": "vcspull.exc.WorktreeConfigError",
          "level": 2,
          "text": "WorktreeConfigError"
        },
        {
          "id": "vcspull.exc.WorktreeConfigError.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull.exc.WorktreeRefNotFoundError",
          "level": 2,
          "text": "WorktreeRefNotFoundError"
        },
        {
          "id": "vcspull.exc.WorktreeRefNotFoundError.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull.exc.WorktreeDirtyError",
          "level": 2,
          "text": "WorktreeDirtyError"
        },
        {
          "id": "vcspull.exc.WorktreeDirtyError.__init__",
          "level": 3,
          "text": "__init__()"
        }
      ]
    },
    {
      "title": "API Reference",
      "description": "Configuration loading and repo extraction.",
      "section": "Documentation",
      "url": "/api/",
      "markdownUrl": "/api/index.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "API Reference"
        }
      ]
    },
    {
      "title": "Logging - vcspull.log",
      "description": "Log utilities for formatting CLI output in vcspull.",
      "section": "Documentation",
      "url": "/api/log/",
      "markdownUrl": "/api/log.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Logging - vcspull.log"
        },
        {
          "id": "vcspull.log.get_cli_logger_names",
          "level": 2,
          "text": "get_cli_logger_names()"
        },
        {
          "id": "vcspull.log._libvcs_stream_level",
          "level": 2,
          "text": "_libvcs_stream_level()"
        },
        {
          "id": "vcspull.log.setup_logger",
          "level": 2,
          "text": "setup_logger()"
        },
        {
          "id": "vcspull.log.LogFormatter",
          "level": 2,
          "text": "LogFormatter"
        },
        {
          "id": "vcspull.log.LogFormatter.template",
          "level": 3,
          "text": "template()"
        },
        {
          "id": "vcspull.log.LogFormatter.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull.log.LogFormatter.format",
          "level": 3,
          "text": "format()"
        },
        {
          "id": "vcspull.log.DebugLogFormatter",
          "level": 2,
          "text": "DebugLogFormatter"
        },
        {
          "id": "vcspull.log.DebugLogFormatter.template",
          "level": 3,
          "text": "template()"
        },
        {
          "id": "vcspull.log.RepoLogFormatter",
          "level": 2,
          "text": "RepoLogFormatter"
        },
        {
          "id": "vcspull.log.RepoLogFormatter.template",
          "level": 3,
          "text": "template()"
        },
        {
          "id": "vcspull.log.SimpleLogFormatter",
          "level": 2,
          "text": "SimpleLogFormatter"
        },
        {
          "id": "vcspull.log.SimpleLogFormatter.format",
          "level": 3,
          "text": "format()"
        },
        {
          "id": "vcspull.log.RepoFilter",
          "level": 2,
          "text": "RepoFilter"
        },
        {
          "id": "vcspull.log.RepoFilter.filter",
          "level": 3,
          "text": "filter()"
        },
        {
          "id": "vcspull.log._DEBUG_FILE_FORMAT",
          "level": 2,
          "text": "_DEBUG_FILE_FORMAT"
        },
        {
          "id": "vcspull.log.default_debug_log_path",
          "level": 2,
          "text": "default_debug_log_path()"
        },
        {
          "id": "vcspull.log.setup_file_logger",
          "level": 2,
          "text": "setup_file_logger()"
        },
        {
          "id": "vcspull.log.teardown_file_logger",
          "level": 2,
          "text": "teardown_file_logger()"
        }
      ]
    },
    {
      "title": "Typings - vcspull.types",
      "description": "Typings for vcspull.",
      "section": "Documentation",
      "url": "/api/types/",
      "markdownUrl": "/api/types.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Typings - vcspull.types"
        },
        {
          "id": "configuration-object-graph",
          "level": 2,
          "text": "Configuration Object Graph"
        },
        {
          "id": "vcspull.types.WorktreeConfigDict",
          "level": 2,
          "text": "WorktreeConfigDict"
        },
        {
          "id": "vcspull.types.WorktreeConfigDict.dir",
          "level": 3,
          "text": "dir"
        },
        {
          "id": "vcspull.types.WorktreeConfigDict.tag",
          "level": 3,
          "text": "tag"
        },
        {
          "id": "vcspull.types.WorktreeConfigDict.branch",
          "level": 3,
          "text": "branch"
        },
        {
          "id": "vcspull.types.WorktreeConfigDict.commit",
          "level": 3,
          "text": "commit"
        },
        {
          "id": "vcspull.types.WorktreeConfigDict.detach",
          "level": 3,
          "text": "detach"
        },
        {
          "id": "vcspull.types.WorktreeConfigDict.lock",
          "level": 3,
          "text": "lock"
        },
        {
          "id": "vcspull.types.WorktreeConfigDict.lock_reason",
          "level": 3,
          "text": "lock_reason"
        },
        {
          "id": "vcspull.types.RepoPinDict",
          "level": 2,
          "text": "RepoPinDict"
        },
        {
          "id": "vcspull.types.RepoPinDict.add",
          "level": 3,
          "text": "add"
        },
        {
          "id": "vcspull.types.RepoPinDict.discover",
          "level": 3,
          "text": "discover"
        },
        {
          "id": "vcspull.types.RepoPinDict.fmt",
          "level": 3,
          "text": "fmt"
        },
        {
          "id": "vcspull.types.RepoPinDict.import",
          "level": 3,
          "text": "import"
        },
        {
          "id": "vcspull.types.RepoPinDict.merge",
          "level": 3,
          "text": "merge"
        },
        {
          "id": "vcspull.types.RepoOptionsDict",
          "level": 2,
          "text": "RepoOptionsDict"
        },
        {
          "id": "vcspull.types.RepoOptionsDict.pin",
          "level": 3,
          "text": "pin"
        },
        {
          "id": "vcspull.types.RepoOptionsDict.allow_overwrite",
          "level": 3,
          "text": "allow_overwrite"
        },
        {
          "id": "vcspull.types.RepoOptionsDict.pin_reason",
          "level": 3,
          "text": "pin_reason"
        },
        {
          "id": "vcspull.types.RepoEntryDict",
          "level": 2,
          "text": "RepoEntryDict"
        },
        {
          "id": "vcspull.types.RepoEntryDict.repo",
          "level": 3,
          "text": "repo"
        },
        {
          "id": "vcspull.types.RepoEntryDict.options",
          "level": 3,
          "text": "options"
        },
        {
          "id": "vcspull.types.RawConfigDict",
          "level": 2,
          "text": "RawConfigDict"
        },
        {
          "id": "vcspull.types.RawConfigDict.vcs",
          "level": 3,
          "text": "vcs"
        },
        {
          "id": "vcspull.types.RawConfigDict.name",
          "level": 3,
          "text": "name"
        },
        {
          "id": "vcspull.types.RawConfigDict.path",
          "level": 3,
          "text": "path"
        },
        {
          "id": "vcspull.types.RawConfigDict.url",
          "level": 3,
          "text": "url"
        },
        {
          "id": "vcspull.types.RawConfigDict.remotes",
          "level": 3,
          "text": "remotes"
        },
        {
          "id": "vcspull.types.ConfigDict",
          "level": 2,
          "text": "ConfigDict"
        },
        {
          "id": "vcspull.types.ConfigDict.vcs",
          "level": 3,
          "text": "vcs"
        },
        {
          "id": "vcspull.types.ConfigDict.name",
          "level": 3,
          "text": "name"
        },
        {
          "id": "vcspull.types.ConfigDict.path",
          "level": 3,
          "text": "path"
        },
        {
          "id": "vcspull.types.ConfigDict.url",
          "level": 3,
          "text": "url"
        },
        {
          "id": "vcspull.types.ConfigDict.workspace_root",
          "level": 3,
          "text": "workspace_root"
        },
        {
          "id": "vcspull.types.ConfigDict.remotes",
          "level": 3,
          "text": "remotes"
        },
        {
          "id": "vcspull.types.ConfigDict.shell_command_after",
          "level": 3,
          "text": "shell_command_after"
        },
        {
          "id": "vcspull.types.ConfigDict.worktrees",
          "level": 3,
          "text": "worktrees"
        },
        {
          "id": "vcspull.types.ConfigDict.options",
          "level": 3,
          "text": "options"
        }
      ]
    },
    {
      "title": "Utilities - vcspull.util",
      "description": "Utility functions for vcspull.",
      "section": "Documentation",
      "url": "/api/util/",
      "markdownUrl": "/api/util.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Utilities - vcspull.util"
        },
        {
          "id": "vcspull.util.get_config_dir",
          "level": 2,
          "text": "get_config_dir()"
        },
        {
          "id": "vcspull.util.update_dict",
          "level": 2,
          "text": "update_dict()"
        }
      ]
    },
    {
      "title": "Validation - vcspull.validator",
      "description": "Validation of vcspull configuration file.",
      "section": "Documentation",
      "url": "/api/validator/",
      "markdownUrl": "/api/validator.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Validation - vcspull.validator"
        },
        {
          "id": "vcspull.validator.is_valid_config",
          "level": 2,
          "text": "is_valid_config()"
        }
      ]
    },
    {
      "title": "vcspull add",
      "description": "The vcspull add command registers a repository in your configuration by pointing vcspull at a checkout on disk. The command inspects the directory, merges duplicate workspace roots by default, and ...",
      "section": "Documentation",
      "url": "/cli/add/",
      "markdownUrl": "/cli/add.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull add"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "add-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "add-examples",
          "level": 3,
          "text": "Examples"
        },
        {
          "id": "add-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "add-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "basic-usage",
          "level": 2,
          "text": "Basic usage"
        },
        {
          "id": "overriding-detected-information",
          "level": 2,
          "text": "Overriding detected information"
        },
        {
          "id": "choose-a-different-name",
          "level": 3,
          "text": "Choose a different name"
        },
        {
          "id": "override-the-remote-url",
          "level": 3,
          "text": "Override the remote URL"
        },
        {
          "id": "select-a-workspace-explicitly",
          "level": 3,
          "text": "Select a workspace explicitly"
        },
        {
          "id": "confirmation-and-dry-runs",
          "level": 2,
          "text": "Confirmation and dry runs"
        },
        {
          "id": "choosing-configuration-files",
          "level": 2,
          "text": "Choosing configuration files"
        },
        {
          "id": "handling-duplicates",
          "level": 2,
          "text": "Handling duplicates"
        },
        {
          "id": "pinned-entries",
          "level": 2,
          "text": "Pinned entries"
        },
        {
          "id": "after-adding-repositories",
          "level": 2,
          "text": "After adding repositories"
        },
        {
          "id": "migration-from-the-old-vcspull-import",
          "level": 2,
          "text": "Migration from the old vcspull import"
        }
      ]
    },
    {
      "title": "Completions",
      "description": "Provisional support for completions in vcspull 1.15+ are powered by shtab. This must be installed separately, as it’s not currently bundled with vcspull.",
      "section": "Documentation",
      "url": "/cli/completion/",
      "markdownUrl": "/cli/completion.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Completions"
        },
        {
          "id": "vcspull-1-15-experimental",
          "level": 2,
          "text": "vcspull 1.15+ (experimental)"
        },
        {
          "id": "vcspull-0-9-to-1-14",
          "level": 2,
          "text": "vcspull 0.9 to 1.14"
        }
      ]
    },
    {
      "title": "vcspull discover",
      "description": "The vcspull discover command scans directories for existing Git repositories and adds them to your vcspull configuration. This is ideal for importing existing workspaces or migrating from other tools.",
      "section": "Documentation",
      "url": "/cli/discover/",
      "markdownUrl": "/cli/discover.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull discover"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "discover-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "discover-examples",
          "level": 3,
          "text": "Examples"
        },
        {
          "id": "discover-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "discover-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "basic-usage",
          "level": 2,
          "text": "Basic usage"
        },
        {
          "id": "recursive-scanning",
          "level": 2,
          "text": "Recursive scanning"
        },
        {
          "id": "unattended-mode",
          "level": 2,
          "text": "Unattended mode"
        },
        {
          "id": "dry-run-mode",
          "level": 2,
          "text": "Dry run mode"
        },
        {
          "id": "workspace-root-override",
          "level": 2,
          "text": "Workspace root override"
        },
        {
          "id": "choosing-configuration-files",
          "level": 2,
          "text": "Choosing configuration files"
        },
        {
          "id": "repository-detection",
          "level": 2,
          "text": "Repository detection"
        },
        {
          "id": "repositories-without-remotes",
          "level": 3,
          "text": "Repositories without remotes"
        },
        {
          "id": "examples",
          "level": 2,
          "text": "Examples"
        },
        {
          "id": "after-discovering-repositories",
          "level": 2,
          "text": "After discovering repositories"
        },
        {
          "id": "handling-existing-entries",
          "level": 2,
          "text": "Handling existing entries"
        },
        {
          "id": "pinned-entries",
          "level": 2,
          "text": "Pinned entries"
        },
        {
          "id": "migration-from-vcspull-import-scan",
          "level": 2,
          "text": "Migration from vcspull import –scan"
        },
        {
          "id": "use-cases",
          "level": 2,
          "text": "Use cases"
        }
      ]
    },
    {
      "title": "vcspull fmt",
      "description": "vcspull fmt normalizes configuration files so directory keys and repository entries stay consistent. By default the formatter prints the proposed changes to stdout. Apply the updates in place with ...",
      "section": "Documentation",
      "url": "/cli/fmt/",
      "markdownUrl": "/cli/fmt.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull fmt"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "fmt-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "fmt-examples",
          "level": 3,
          "text": "Examples"
        },
        {
          "id": "fmt-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "what-gets-formatted",
          "level": 2,
          "text": "What gets formatted"
        },
        {
          "id": "pinned-entries",
          "level": 3,
          "text": "Pinned entries"
        },
        {
          "id": "writing-changes",
          "level": 2,
          "text": "Writing changes"
        }
      ]
    },
    {
      "title": "vcspull import codeberg",
      "description": "Import repositories from Codeberg.",
      "section": "Documentation",
      "url": "/cli/import/codeberg/",
      "markdownUrl": "/cli/import/codeberg.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull import codeberg"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "import-codeberg-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "import-codeberg-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "import-codeberg-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "import-codeberg-filtering",
          "level": 3,
          "text": "Filtering"
        },
        {
          "id": "import-codeberg-output",
          "level": 3,
          "text": "Output"
        },
        {
          "id": "authentication",
          "level": 2,
          "text": "Authentication"
        }
      ]
    },
    {
      "title": "vcspull import codecommit",
      "description": "Import repositories from AWS CodeCommit.",
      "section": "Documentation",
      "url": "/cli/import/codecommit/",
      "markdownUrl": "/cli/import/codecommit.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull import codecommit"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "import-codecommit-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "import-codecommit-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "import-codecommit-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "import-codecommit-filtering",
          "level": 3,
          "text": "Filtering"
        },
        {
          "id": "import-codecommit-output",
          "level": 3,
          "text": "Output"
        },
        {
          "id": "usage",
          "level": 2,
          "text": "Usage"
        },
        {
          "id": "authentication",
          "level": 2,
          "text": "Authentication"
        }
      ]
    },
    {
      "title": "vcspull import forgejo",
      "description": "Import repositories from a self-hosted Forgejo instance.",
      "section": "Documentation",
      "url": "/cli/import/forgejo/",
      "markdownUrl": "/cli/import/forgejo.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull import forgejo"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "import-forgejo-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "import-forgejo-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "import-forgejo-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "import-forgejo-filtering",
          "level": 3,
          "text": "Filtering"
        },
        {
          "id": "import-forgejo-output",
          "level": 3,
          "text": "Output"
        },
        {
          "id": "authentication",
          "level": 2,
          "text": "Authentication"
        }
      ]
    },
    {
      "title": "vcspull import gitea",
      "description": "Import repositories from a self-hosted Gitea instance.",
      "section": "Documentation",
      "url": "/cli/import/gitea/",
      "markdownUrl": "/cli/import/gitea.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull import gitea"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "import-gitea-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "import-gitea-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "import-gitea-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "import-gitea-filtering",
          "level": 3,
          "text": "Filtering"
        },
        {
          "id": "import-gitea-output",
          "level": 3,
          "text": "Output"
        },
        {
          "id": "authentication",
          "level": 2,
          "text": "Authentication"
        }
      ]
    },
    {
      "title": "vcspull import github",
      "description": "Import repositories from GitHub or GitHub Enterprise.",
      "section": "Documentation",
      "url": "/cli/import/github/",
      "markdownUrl": "/cli/import/github.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull import github"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "import-github-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "import-github-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "import-github-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "import-github-filtering",
          "level": 3,
          "text": "Filtering"
        },
        {
          "id": "import-github-output",
          "level": 3,
          "text": "Output"
        },
        {
          "id": "authentication",
          "level": 2,
          "text": "Authentication"
        }
      ]
    },
    {
      "title": "vcspull import gitlab",
      "description": "Import repositories from GitLab or a self-hosted GitLab instance.",
      "section": "Documentation",
      "url": "/cli/import/gitlab/",
      "markdownUrl": "/cli/import/gitlab.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull import gitlab"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "import-gitlab-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "import-gitlab-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "import-gitlab-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "import-gitlab-filtering",
          "level": 3,
          "text": "Filtering"
        },
        {
          "id": "import-gitlab-output",
          "level": 3,
          "text": "Output"
        },
        {
          "id": "subgroup-targeting",
          "level": 2,
          "text": "Subgroup targeting"
        },
        {
          "id": "group-flattening",
          "level": 2,
          "text": "Group flattening"
        },
        {
          "id": "workspace-structure-by-target-and-flag",
          "level": 3,
          "text": "Workspace structure by target and flag"
        },
        {
          "id": "including-shared-repositories",
          "level": 2,
          "text": "Including shared repositories"
        },
        {
          "id": "skipping-subgroups",
          "level": 2,
          "text": "Skipping subgroups"
        },
        {
          "id": "authentication",
          "level": 2,
          "text": "Authentication"
        }
      ]
    },
    {
      "title": "vcspull import",
      "description": "The vcspull import command bulk-imports repositories from remote hosting services into your vcspull configuration. It connects to the service API, fetches a list of repositories, and writes them to...",
      "section": "Documentation",
      "url": "/cli/import/",
      "markdownUrl": "/cli/import/index.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull import"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "import-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "basic-usage",
          "level": 2,
          "text": "Basic usage"
        },
        {
          "id": "supported-services",
          "level": 2,
          "text": "Supported services"
        },
        {
          "id": "import-modes",
          "level": 2,
          "text": "Import modes"
        },
        {
          "id": "user-mode-default",
          "level": 3,
          "text": "User mode (default)"
        },
        {
          "id": "organization-mode",
          "level": 3,
          "text": "Organization mode"
        },
        {
          "id": "search-mode",
          "level": 3,
          "text": "Search mode"
        },
        {
          "id": "filtering",
          "level": 2,
          "text": "Filtering"
        },
        {
          "id": "output-formats",
          "level": 2,
          "text": "Output formats"
        },
        {
          "id": "dry-runs-and-confirmation",
          "level": 2,
          "text": "Dry runs and confirmation"
        },
        {
          "id": "syncing-existing-entries",
          "level": 2,
          "text": "Syncing existing entries"
        },
        {
          "id": "provenance-tracking",
          "level": 3,
          "text": "Provenance tracking"
        },
        {
          "id": "pruning-stale-entries",
          "level": 3,
          "text": "Pruning stale entries"
        },
        {
          "id": "pruning-untracked-entries",
          "level": 3,
          "text": "Pruning untracked entries"
        },
        {
          "id": "pin-aware-behavior",
          "level": 3,
          "text": "Pin-aware behavior"
        },
        {
          "id": "configuration-file-selection",
          "level": 2,
          "text": "Configuration file selection"
        },
        {
          "id": "protocol-selection",
          "level": 2,
          "text": "Protocol selection"
        },
        {
          "id": "self-hosted-instances",
          "level": 2,
          "text": "Self-hosted instances"
        },
        {
          "id": "authentication",
          "level": 2,
          "text": "Authentication"
        },
        {
          "id": "after-importing",
          "level": 2,
          "text": "After importing"
        }
      ]
    },
    {
      "title": "CLI Reference",
      "description": "Pull / clone repositories from config.",
      "section": "Documentation",
      "url": "/cli/",
      "markdownUrl": "/cli/index.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "CLI Reference"
        },
        {
          "id": "command-vcspull",
          "level": 2,
          "text": "Command: vcspull"
        },
        {
          "id": "usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "sync-examples",
          "level": 3,
          "text": "Sync Examples"
        },
        {
          "id": "list-examples",
          "level": 3,
          "text": "List Examples"
        },
        {
          "id": "search-examples",
          "level": 3,
          "text": "Search Examples"
        },
        {
          "id": "add-examples",
          "level": 3,
          "text": "Add Examples"
        },
        {
          "id": "discover-examples",
          "level": 3,
          "text": "Discover Examples"
        },
        {
          "id": "fmt-examples",
          "level": 3,
          "text": "Fmt Examples"
        },
        {
          "id": "import-examples",
          "level": 3,
          "text": "Import Examples"
        },
        {
          "id": "options",
          "level": 3,
          "text": "Options"
        }
      ]
    },
    {
      "title": "vcspull list",
      "description": "The vcspull list command displays configured repositories from your vcspull configuration files. Use this introspection command to verify your configuration, filter repositories by patterns, and ex...",
      "section": "Documentation",
      "url": "/cli/list/",
      "markdownUrl": "/cli/list.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull list"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "list-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "list-examples",
          "level": 3,
          "text": "Examples"
        },
        {
          "id": "list-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "list-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "basic-usage",
          "level": 2,
          "text": "Basic usage"
        },
        {
          "id": "filtering-repositories",
          "level": 2,
          "text": "Filtering repositories"
        },
        {
          "id": "tree-view",
          "level": 2,
          "text": "Tree view"
        },
        {
          "id": "json-output",
          "level": 2,
          "text": "JSON output"
        },
        {
          "id": "ndjson-output",
          "level": 2,
          "text": "NDJSON output"
        },
        {
          "id": "choosing-configuration-files",
          "level": 2,
          "text": "Choosing configuration files"
        },
        {
          "id": "workspace-filtering",
          "level": 2,
          "text": "Workspace filtering"
        },
        {
          "id": "color-output",
          "level": 2,
          "text": "Color output"
        }
      ]
    },
    {
      "title": "vcspull search",
      "description": "The vcspull search command looks up repositories across your vcspull configuration with an rg-like query syntax. Queries are regex by default, can scope to specific fields, and can emit structured ...",
      "section": "Documentation",
      "url": "/cli/search/",
      "markdownUrl": "/cli/search.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull search"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "search-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "search-examples",
          "level": 3,
          "text": "Examples"
        },
        {
          "id": "search-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "search-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "basic-usage",
          "level": 2,
          "text": "Basic usage"
        },
        {
          "id": "field-scoped-queries",
          "level": 2,
          "text": "Field-scoped queries"
        },
        {
          "id": "literal-matches",
          "level": 2,
          "text": "Literal matches"
        },
        {
          "id": "case-handling",
          "level": 2,
          "text": "Case handling"
        },
        {
          "id": "boolean-matching",
          "level": 2,
          "text": "Boolean matching"
        },
        {
          "id": "json-output",
          "level": 2,
          "text": "JSON output"
        }
      ]
    },
    {
      "title": "vcspull status",
      "description": "The vcspull status command checks the health of configured repositories, showing which repositories exist on disk, which are missing, and their Git status. This introspection command helps verify y...",
      "section": "Documentation",
      "url": "/cli/status/",
      "markdownUrl": "/cli/status.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull status"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "status-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "status-examples",
          "level": 3,
          "text": "Examples"
        },
        {
          "id": "status-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "status-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "basic-usage",
          "level": 2,
          "text": "Basic usage"
        },
        {
          "id": "filtering-repositories",
          "level": 2,
          "text": "Filtering repositories"
        },
        {
          "id": "detailed-status",
          "level": 2,
          "text": "Detailed status"
        },
        {
          "id": "json-output",
          "level": 2,
          "text": "JSON output"
        },
        {
          "id": "ndjson-output",
          "level": 2,
          "text": "NDJSON output"
        },
        {
          "id": "use-cases",
          "level": 2,
          "text": "Use cases"
        },
        {
          "id": "choosing-configuration-files",
          "level": 2,
          "text": "Choosing configuration files"
        },
        {
          "id": "workspace-filtering",
          "level": 2,
          "text": "Workspace filtering"
        },
        {
          "id": "color-output",
          "level": 2,
          "text": "Color output"
        },
        {
          "id": "future-enhancements",
          "level": 2,
          "text": "Future enhancements"
        }
      ]
    },
    {
      "title": "vcspull sync",
      "description": "The vcspull sync command clones and updates repositories defined in your vcspull configuration. It’s the primary command for keeping your local workspace synchronized with remote repositories.",
      "section": "Documentation",
      "url": "/cli/sync/",
      "markdownUrl": "/cli/sync.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull sync"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "sync-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "sync-examples",
          "level": 3,
          "text": "Examples"
        },
        {
          "id": "sync-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "sync-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "dry-run-mode",
          "level": 2,
          "text": "Dry run mode"
        },
        {
          "id": "json-output",
          "level": 2,
          "text": "JSON output"
        },
        {
          "id": "ndjson-output",
          "level": 2,
          "text": "NDJSON output"
        },
        {
          "id": "configuration-file-selection",
          "level": 2,
          "text": "Configuration file selection"
        },
        {
          "id": "workspace-filtering",
          "level": 2,
          "text": "Workspace filtering"
        },
        {
          "id": "color-output",
          "level": 2,
          "text": "Color output"
        },
        {
          "id": "filtering-repos",
          "level": 2,
          "text": "Filtering repos"
        },
        {
          "id": "sync-all-repos",
          "level": 3,
          "text": "Sync all repos"
        },
        {
          "id": "filtering",
          "level": 3,
          "text": "Filtering"
        },
        {
          "id": "multiple-terms",
          "level": 3,
          "text": "Multiple terms"
        },
        {
          "id": "error-handling",
          "level": 2,
          "text": "Error handling"
        },
        {
          "id": "repos-not-found-in-config",
          "level": 3,
          "text": "Repos not found in config"
        },
        {
          "id": "syncing",
          "level": 3,
          "text": "Syncing"
        }
      ]
    },
    {
      "title": "vcspull worktree",
      "description": "The vcspull worktree command manages git worktrees declaratively from your vcspull configuration. Instead of manually running git worktree add for each branch or tag, you declare the desired worktr...",
      "section": "Documentation",
      "url": "/cli/worktree/",
      "markdownUrl": "/cli/worktree/index.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull worktree"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "worktree-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "configuration",
          "level": 2,
          "text": "Configuration"
        },
        {
          "id": "fields",
          "level": 3,
          "text": "Fields"
        },
        {
          "id": "integration-with-vcspull-sync",
          "level": 2,
          "text": "Integration with vcspull sync"
        },
        {
          "id": "json-output",
          "level": 2,
          "text": "JSON output"
        },
        {
          "id": "ndjson-output",
          "level": 3,
          "text": "NDJSON output"
        },
        {
          "id": "safety",
          "level": 2,
          "text": "Safety"
        },
        {
          "id": "pattern-filtering",
          "level": 2,
          "text": "Pattern filtering"
        },
        {
          "id": "workspace-filtering",
          "level": 2,
          "text": "Workspace filtering"
        },
        {
          "id": "configuration-file-selection",
          "level": 2,
          "text": "Configuration file selection"
        },
        {
          "id": "color-output",
          "level": 2,
          "text": "Color output"
        },
        {
          "id": "use-cases",
          "level": 2,
          "text": "Use cases"
        },
        {
          "id": "llm-agentic-workflows",
          "level": 3,
          "text": "LLM / agentic workflows"
        },
        {
          "id": "parallel-development-across-branches",
          "level": 3,
          "text": "Parallel development across branches"
        },
        {
          "id": "maintaining-versioned-reference-copies",
          "level": 3,
          "text": "Maintaining versioned reference copies"
        }
      ]
    },
    {
      "title": "vcspull worktree list",
      "description": "Show configured worktrees and their planned status without making changes.",
      "section": "Documentation",
      "url": "/cli/worktree/list/",
      "markdownUrl": "/cli/worktree/list.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull worktree list"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "worktree-list-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "worktree-list-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "worktree-list-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "basic-usage",
          "level": 2,
          "text": "Basic usage"
        },
        {
          "id": "filtering",
          "level": 2,
          "text": "Filtering"
        },
        {
          "id": "json-output",
          "level": 2,
          "text": "JSON output"
        },
        {
          "id": "ndjson-output",
          "level": 2,
          "text": "NDJSON output"
        }
      ]
    },
    {
      "title": "vcspull worktree prune",
      "description": "Remove worktrees that are no longer in your configuration.",
      "section": "Documentation",
      "url": "/cli/worktree/prune/",
      "markdownUrl": "/cli/worktree/prune.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull worktree prune"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "worktree-prune-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "worktree-prune-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "worktree-prune-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "basic-usage",
          "level": 2,
          "text": "Basic usage"
        },
        {
          "id": "dry-run",
          "level": 2,
          "text": "Dry run"
        },
        {
          "id": "filtering",
          "level": 2,
          "text": "Filtering"
        },
        {
          "id": "json-output",
          "level": 2,
          "text": "JSON output"
        },
        {
          "id": "ndjson-output",
          "level": 2,
          "text": "NDJSON output"
        }
      ]
    },
    {
      "title": "vcspull worktree sync",
      "description": "Create or update worktrees to match configuration.",
      "section": "Documentation",
      "url": "/cli/worktree/sync/",
      "markdownUrl": "/cli/worktree/sync.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull worktree sync"
        },
        {
          "id": "command",
          "level": 2,
          "text": "Command"
        },
        {
          "id": "worktree-sync-usage",
          "level": 3,
          "text": "Usage"
        },
        {
          "id": "worktree-sync-positional-arguments",
          "level": 3,
          "text": "Positional Arguments"
        },
        {
          "id": "worktree-sync-options",
          "level": 3,
          "text": "Options"
        },
        {
          "id": "basic-usage",
          "level": 2,
          "text": "Basic usage"
        },
        {
          "id": "dry-run",
          "level": 2,
          "text": "Dry run"
        },
        {
          "id": "filtering",
          "level": 2,
          "text": "Filtering"
        },
        {
          "id": "json-output",
          "level": 2,
          "text": "JSON output"
        },
        {
          "id": "ndjson-output",
          "level": 2,
          "text": "NDJSON output"
        }
      ]
    },
    {
      "title": "Config generation",
      "description": "The vcspull import command can generate configuration by fetching repositories from remote services. See cli-import for details.",
      "section": "Documentation",
      "url": "/configuration/generation/",
      "markdownUrl": "/configuration/generation.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Config generation"
        }
      ]
    },
    {
      "title": "Configuration",
      "description": "Import repos from forges and generate config automatically.",
      "section": "Documentation",
      "url": "/configuration/",
      "markdownUrl": "/configuration/index.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Configuration"
        },
        {
          "id": "url-format",
          "level": 2,
          "text": "URL Format"
        },
        {
          "id": "config-locations",
          "level": 2,
          "text": "Config locations"
        },
        {
          "id": "schema",
          "level": 2,
          "text": "Schema"
        },
        {
          "id": "examples",
          "level": 3,
          "text": "Examples"
        },
        {
          "id": "worktree-configuration",
          "level": 2,
          "text": "Worktree configuration"
        },
        {
          "id": "repository-pinning",
          "level": 2,
          "text": "Repository pinning"
        },
        {
          "id": "pin-all-operations",
          "level": 3,
          "text": "Pin all operations"
        },
        {
          "id": "pin-specific-operations",
          "level": 3,
          "text": "Pin specific operations"
        },
        {
          "id": "shorthand-allow-overwrite",
          "level": 3,
          "text": "Shorthand: allow_overwrite"
        },
        {
          "id": "pin-behavior",
          "level": 3,
          "text": "Pin behavior"
        },
        {
          "id": "import-provenance",
          "level": 2,
          "text": "Import provenance"
        },
        {
          "id": "caveats",
          "level": 2,
          "text": "Caveats"
        },
        {
          "id": "ssh-git-urls",
          "level": 3,
          "text": "SSH Git URLs"
        }
      ]
    },
    {
      "title": "Changelog",
      "description": "To install the unreleased vcspull version, see developmental releases.",
      "section": "Documentation",
      "url": "/history/",
      "markdownUrl": "/history.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Changelog"
        },
        {
          "id": "vcspull-v1-61-x-unreleased",
          "level": 2,
          "text": "vcspull v1.61.x (unreleased)"
        },
        {
          "id": "vcspull-v1-60-1-2026-05-16",
          "level": 2,
          "text": "vcspull v1.60.1 (2026-05-16)"
        },
        {
          "id": "development",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "test-suite-works-under-distro-relative-pythonpath-builds-549",
          "level": 4,
          "text": "Test suite works under distro relative-PYTHONPATH builds (#549)"
        },
        {
          "id": "vcspull-v1-60-0-2026-05-18",
          "level": 2,
          "text": "vcspull v1.60.0 (2026-05-18)"
        },
        {
          "id": "dependencies",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "documentation",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-59-0-2026-04-25",
          "level": 2,
          "text": "vcspull v1.59.0 (2026-04-25)"
        },
        {
          "id": "id2",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "what-s-new",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-sync-per-repo-timeout-544",
          "level": 4,
          "text": "vcspull sync: Per-repo timeout (#544)"
        },
        {
          "id": "vcspull-sync-live-status-while-work-is-running-544",
          "level": 4,
          "text": "vcspull sync: Live status while work is running (#544)"
        },
        {
          "id": "vcspull-sync-streaming-output-trail-544",
          "level": 4,
          "text": "vcspull sync: Streaming output trail (#544)"
        },
        {
          "id": "vcspull-sync-per-invocation-debug-log-544",
          "level": 4,
          "text": "vcspull sync: Per-invocation debug log (#544)"
        },
        {
          "id": "vcspull-sync-ctrl-c-aborts-shell-chains-544",
          "level": 4,
          "text": "vcspull sync: Ctrl-C aborts shell chains (#544)"
        },
        {
          "id": "quieter-default-terminal-output-544",
          "level": 4,
          "text": "Quieter default terminal output (#544)"
        },
        {
          "id": "fixes",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id3",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-58-1-2026-03-29",
          "level": 2,
          "text": "vcspull v1.58.1 (2026-03-29)"
        },
        {
          "id": "id4",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "config-writes-preserve-symlinks-538",
          "level": 4,
          "text": "Config writes preserve symlinks (#538)"
        },
        {
          "id": "vcspull-v1-58-0-2026-03-01",
          "level": 2,
          "text": "vcspull v1.58.0 (2026-03-01)"
        },
        {
          "id": "id5",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-import-sync-and-prune-520",
          "level": 4,
          "text": "vcspull import --sync and --prune (#520)"
        },
        {
          "id": "vcspull-import-prune-untracked-520",
          "level": 4,
          "text": "vcspull import --prune-untracked (#520)"
        },
        {
          "id": "import-provenance-via-metadata-imported-from-520",
          "level": 4,
          "text": "Import provenance via metadata.imported_from (#520)"
        },
        {
          "id": "options-pin-mutation-guards-520",
          "level": 4,
          "text": "options.pin mutation guards (#520)"
        },
        {
          "id": "id6",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v1-57-0-2026-02-22",
          "level": 2,
          "text": "vcspull v1.57.0 (2026-02-22)"
        },
        {
          "id": "breaking-changes",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id7",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-import-gitlab-with-shared-519",
          "level": 4,
          "text": "vcspull import gitlab --with-shared (#519)"
        },
        {
          "id": "vcspull-import-gitlab-skip-group-519",
          "level": 4,
          "text": "vcspull import gitlab --skip-group (#519)"
        },
        {
          "id": "vcspull-v1-56-1-2026-02-18",
          "level": 2,
          "text": "vcspull v1.56.1 (2026-02-18)"
        },
        {
          "id": "id8",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-import-limit-0-means-unlimited-518",
          "level": 4,
          "text": "vcspull import --limit 0 means unlimited (#518)"
        },
        {
          "id": "gitlab-rate-limit-logging-518",
          "level": 4,
          "text": "GitLab rate-limit logging (#518)"
        },
        {
          "id": "id9",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "import-truncation-warnings-518",
          "level": 4,
          "text": "Import truncation warnings (#518)"
        },
        {
          "id": "http-429-retries-518",
          "level": 4,
          "text": "HTTP 429 retries (#518)"
        },
        {
          "id": "vcspull-v1-56-0-2026-02-15",
          "level": 2,
          "text": "vcspull v1.56.0 (2026-02-15)"
        },
        {
          "id": "id10",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "new-command-group-vcspull-worktree-508",
          "level": 4,
          "text": "New command group: vcspull worktree (#508)"
        },
        {
          "id": "vcspull-sync-include-worktrees-508",
          "level": 4,
          "text": "vcspull sync --include-worktrees (#508)"
        },
        {
          "id": "id11",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id12",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-55-0-2026-02-15",
          "level": 2,
          "text": "vcspull v1.55.0 (2026-02-15)"
        },
        {
          "id": "id13",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "new-command-vcspull-import-510",
          "level": 4,
          "text": "New command: vcspull import (#510)"
        },
        {
          "id": "ssh-clone-urls-by-default-510",
          "level": 4,
          "text": "SSH clone URLs by default (#510)"
        },
        {
          "id": "gitlab-subgroup-workspaces-510",
          "level": 4,
          "text": "GitLab subgroup workspaces (#510)"
        },
        {
          "id": "id14",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id15",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-54-0-2026-02-08",
          "level": 2,
          "text": "vcspull v1.54.0 (2026-02-08)"
        },
        {
          "id": "id16",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id17",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id18",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id19",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-53-0-2026-02-08",
          "level": 2,
          "text": "vcspull v1.53.0 (2026-02-08)"
        },
        {
          "id": "id20",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "vcspull-sync-all-is-required-for-all-repo-syncs-511",
          "level": 4,
          "text": "vcspull sync --all is required for all-repo syncs (#511)"
        },
        {
          "id": "id21",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-v1-52-1-2026-02-08",
          "level": 2,
          "text": "vcspull v1.52.1 (2026-02-08)"
        },
        {
          "id": "id22",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-52-0-2026-02-07",
          "level": 2,
          "text": "vcspull v1.52.0 (2026-02-07)"
        },
        {
          "id": "id23",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id24",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-sync-errored-sync-reporting-512",
          "level": 4,
          "text": "vcspull sync: Errored sync reporting (#512)"
        },
        {
          "id": "vcspull-sync-exit-on-error-unmatched-pattern-failures-512",
          "level": 4,
          "text": "vcspull sync --exit-on-error: Unmatched pattern failures (#512)"
        },
        {
          "id": "clearer-sync-summaries-512",
          "level": 4,
          "text": "Clearer sync summaries (#512)"
        },
        {
          "id": "id25",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id26",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-51-1-2026-02-01",
          "level": 2,
          "text": "vcspull v1.51.1 (2026-02-01)"
        },
        {
          "id": "id27",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-51-0-2026-01-27",
          "level": 2,
          "text": "vcspull v1.51.0 (2026-01-27)"
        },
        {
          "id": "id28",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id29",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id30",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-50-1-2026-01-25",
          "level": 2,
          "text": "vcspull v1.50.1 (2026-01-25)"
        },
        {
          "id": "id31",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-50-0-2026-01-24",
          "level": 2,
          "text": "vcspull v1.50.0 (2026-01-24)"
        },
        {
          "id": "id32",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id33",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "cli-reference-rendered-by-the-internal-argparse-extension-499",
          "level": 4,
          "text": "CLI reference rendered by the internal argparse extension (#499)"
        },
        {
          "id": "id34",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-49-0-2026-01-03",
          "level": 2,
          "text": "vcspull v1.49.0 (2026-01-03)"
        },
        {
          "id": "id35",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "new-command-vcspull-search-494",
          "level": 4,
          "text": "New command: vcspull search (#494)"
        },
        {
          "id": "id36",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id37",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-48-1-2025-12-06",
          "level": 2,
          "text": "vcspull v1.48.1 (2025-12-06)"
        },
        {
          "id": "id38",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id39",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-48-0-2025-11-30",
          "level": 2,
          "text": "vcspull v1.48.0 (2025-11-30)"
        },
        {
          "id": "id40",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id41",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "consistent-home-directory-redaction-488",
          "level": 4,
          "text": "Consistent home-directory redaction (#488)"
        },
        {
          "id": "vcspull-v1-47-0-2025-11-15",
          "level": 2,
          "text": "vcspull v1.47.0 (2025-11-15)"
        },
        {
          "id": "id42",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-discover-redacted-config-paths-487",
          "level": 4,
          "text": "vcspull discover: Redacted config paths (#487)"
        },
        {
          "id": "vcspull-discover-scope-aware-workspace-labels-487",
          "level": 4,
          "text": "vcspull discover: Scope-aware workspace labels (#487)"
        },
        {
          "id": "id43",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-46-1-2025-11-03",
          "level": 2,
          "text": "vcspull v1.46.1 (2025-11-03)"
        },
        {
          "id": "id44",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "correct-vcspull-version",
          "level": 4,
          "text": "Correct vcspull.__version__"
        },
        {
          "id": "vcspull-add-cleaner-path-first-writes-484",
          "level": 4,
          "text": "vcspull add: Cleaner path-first writes (#484)"
        },
        {
          "id": "vcspull-v1-46-0-2025-11-02",
          "level": 2,
          "text": "vcspull v1.46.0 (2025-11-02)"
        },
        {
          "id": "id45",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v1-45-0-2025-11-02",
          "level": 2,
          "text": "vcspull v1.45.0 (2025-11-02)"
        },
        {
          "id": "id46",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v1-44-0-2025-11-02",
          "level": 2,
          "text": "vcspull v1.44.0 (2025-11-02)"
        },
        {
          "id": "id47",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-add-path-first-imports-481",
          "level": 4,
          "text": "vcspull add: Path-first imports (#481)"
        },
        {
          "id": "id48",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-43-0-2025-11-02",
          "level": 2,
          "text": "vcspull v1.43.0 (2025-11-02)"
        },
        {
          "id": "id49",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-fmt-merge-duplicate-workspace-roots-479",
          "level": 4,
          "text": "vcspull fmt: Merge duplicate workspace roots (#479)"
        },
        {
          "id": "vcspull-add-safer-duplicate-root-behavior-480",
          "level": 4,
          "text": "vcspull add: Safer duplicate-root behavior (#480)"
        },
        {
          "id": "vcspull-discover-no-merge-480",
          "level": 4,
          "text": "vcspull discover --no-merge (#480)"
        },
        {
          "id": "duplicate-aware-config-loading-480",
          "level": 4,
          "text": "Duplicate-aware config loading (#480)"
        },
        {
          "id": "id50",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-42-0-2025-11-01",
          "level": 2,
          "text": "vcspull v1.42.0 (2025-11-01)"
        },
        {
          "id": "id51",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id52",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-41-0-2025-10-25",
          "level": 2,
          "text": "vcspull v1.41.0 (2025-10-25)"
        },
        {
          "id": "id53",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id54",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v1-40-0-2025-10-19",
          "level": 2,
          "text": "vcspull v1.40.0 (2025-10-19)"
        },
        {
          "id": "id55",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "concurrent-vcspull-status-474",
          "level": 4,
          "text": "Concurrent vcspull status (#474)"
        },
        {
          "id": "vcspull-v1-39-1-2025-10-19",
          "level": 2,
          "text": "vcspull v1.39.1 (2025-10-19)"
        },
        {
          "id": "id56",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id57",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-39-0-2025-10-19",
          "level": 2,
          "text": "vcspull v1.39.0 (2025-10-19)"
        },
        {
          "id": "id58",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "command-split-add-discover-list-and-status-472",
          "level": 4,
          "text": "Command split: add, discover, list, and status (#472)"
        },
        {
          "id": "flag-modernization-472",
          "level": 4,
          "text": "Flag modernization (#472)"
        },
        {
          "id": "id59",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "terraform-style-dry-run-plans-472",
          "level": 4,
          "text": "Terraform-style dry-run plans (#472)"
        },
        {
          "id": "new-introspection-commands-472",
          "level": 4,
          "text": "New introspection commands (#472)"
        },
        {
          "id": "vcspull-v1-38-0-2025-10-18",
          "level": 2,
          "text": "vcspull v1.38.0 (2025-10-18)"
        },
        {
          "id": "id60",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-v1-37-0-2025-10-18",
          "level": 2,
          "text": "vcspull v1.37.0 (2025-10-18)"
        },
        {
          "id": "id61",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id62",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id63",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-36-0-2025-10-18",
          "level": 2,
          "text": "vcspull v1.36.0 (2025-10-18)"
        },
        {
          "id": "id64",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "legacy-vcspull-import-and-scan-465",
          "level": 4,
          "text": "Legacy vcspull import and --scan (#465)"
        },
        {
          "id": "vcspull-fmt-465",
          "level": 4,
          "text": "vcspull fmt (#465)"
        },
        {
          "id": "id65",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-35-0-2025-09-04",
          "level": 2,
          "text": "vcspull v1.35.0 (2025-09-04)"
        },
        {
          "id": "id66",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-34-1-2025-06-21",
          "level": 2,
          "text": "vcspull v1.34.1 (2025-06-21)"
        },
        {
          "id": "id67",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-34-0-2025-02-22",
          "level": 2,
          "text": "vcspull v1.34.0 (2025-02-22)"
        },
        {
          "id": "id68",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id69",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-33-0-2024-11-23",
          "level": 2,
          "text": "vcspull v1.33.0 (2024-11-23)"
        },
        {
          "id": "id70",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "vcspull-v1-32-0-2024-10-13",
          "level": 2,
          "text": "vcspull v1.32.0 (2024-10-13)"
        },
        {
          "id": "id71",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id72",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-31-0-2024-06-18",
          "level": 2,
          "text": "vcspull v1.31.0 (2024-06-18)"
        },
        {
          "id": "id73",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id74",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id75",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-30-0-2024-03-24",
          "level": 2,
          "text": "vcspull v1.30.0 (2024-03-24)"
        },
        {
          "id": "id76",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-29-0-2024-03-24",
          "level": 2,
          "text": "vcspull v1.29.0 (2024-03-24)"
        },
        {
          "id": "id77",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id78",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-28-1-2024-02-17",
          "level": 2,
          "text": "vcspull v1.28.1 (2024-02-17)"
        },
        {
          "id": "id79",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id80",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-28-0-2024-02-07",
          "level": 2,
          "text": "vcspull v1.28.0 (2024-02-07)"
        },
        {
          "id": "id81",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-27-0-2024-02-07",
          "level": 2,
          "text": "vcspull v1.27.0 (2024-02-07)"
        },
        {
          "id": "id82",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id83",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id84",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-26-0-2023-12-16",
          "level": 2,
          "text": "vcspull v1.26.0 (2023-12-16)"
        },
        {
          "id": "id85",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id86",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-25-0-2023-11-26",
          "level": 2,
          "text": "vcspull v1.25.0 (2023-11-26)"
        },
        {
          "id": "id87",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id88",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-24-1-2023-11-24",
          "level": 2,
          "text": "vcspull v1.24.1 (2023-11-24)"
        },
        {
          "id": "id89",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-24-0-2023-11-19",
          "level": 2,
          "text": "vcspull v1.24.0 (2023-11-19)"
        },
        {
          "id": "id90",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id91",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-23-0-2023-10-22",
          "level": 2,
          "text": "vcspull v1.23.0 (2023-10-22)"
        },
        {
          "id": "id92",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id93",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id94",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-22-0-2023-09-02",
          "level": 2,
          "text": "vcspull v1.22.0 (2023-09-02)"
        },
        {
          "id": "id95",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-21-1-2023-05-28",
          "level": 2,
          "text": "vcspull v1.21.1 (2023-05-28)"
        },
        {
          "id": "id96",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-21-0-2023-05-27",
          "level": 2,
          "text": "vcspull v1.21.0 (2023-05-27)"
        },
        {
          "id": "id97",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-20-3-2023-05-14",
          "level": 2,
          "text": "vcspull v1.20.3 (2023-05-14)"
        },
        {
          "id": "id98",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v1-20-2-2023-04-07",
          "level": 2,
          "text": "vcspull v1.20.2 (2023-04-07)"
        },
        {
          "id": "id99",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-20-1-2023-03-15",
          "level": 2,
          "text": "vcspull v1.20.1 (2023-03-15)"
        },
        {
          "id": "id100",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-20-0-2023-03-15",
          "level": 2,
          "text": "vcspull v1.20.0 (2023-03-15)"
        },
        {
          "id": "id101",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-19-0-2022-12-31",
          "level": 2,
          "text": "vcspull v1.19.0 (2022-12-31)"
        },
        {
          "id": "id102",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-18-0-2022-10-31",
          "level": 2,
          "text": "vcspull v1.18.0 (2022-10-31)"
        },
        {
          "id": "id103",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-17-1-2022-10-23",
          "level": 2,
          "text": "vcspull v1.17.1 (2022-10-23)"
        },
        {
          "id": "id104",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-17-0-2022-10-23",
          "level": 2,
          "text": "vcspull v1.17.0 (2022-10-23)"
        },
        {
          "id": "id105",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-16-0-2022-10-23",
          "level": 2,
          "text": "vcspull v1.16.0 (2022-10-23)"
        },
        {
          "id": "id106",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id107",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-15-8-2022-10-16",
          "level": 2,
          "text": "vcspull v1.15.8 (2022-10-16)"
        },
        {
          "id": "id108",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-15-7-2022-10-16",
          "level": 2,
          "text": "vcspull v1.15.7 (2022-10-16)"
        },
        {
          "id": "id109",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-15-6-2022-10-16",
          "level": 2,
          "text": "vcspull v1.15.6 (2022-10-16)"
        },
        {
          "id": "id110",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-15-5-2022-10-16",
          "level": 2,
          "text": "vcspull v1.15.5 (2022-10-16)"
        },
        {
          "id": "id111",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v1-15-4-2022-10-16",
          "level": 2,
          "text": "vcspull v1.15.4 (2022-10-16)"
        },
        {
          "id": "id112",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id113",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-15-3-2022-10-09",
          "level": 2,
          "text": "vcspull v1.15.3 (2022-10-09)"
        },
        {
          "id": "id114",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id115",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-15-2-2022-10-08",
          "level": 2,
          "text": "vcspull v1.15.2 (2022-10-08)"
        },
        {
          "id": "id116",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-15-1-2022-10-02",
          "level": 2,
          "text": "vcspull v1.15.1 (2022-10-02)"
        },
        {
          "id": "id117",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v1-15-0-2022-10-02",
          "level": 2,
          "text": "vcspull v1.15.0 (2022-10-02)"
        },
        {
          "id": "id118",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id119",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-14-0-2022-10-01",
          "level": 2,
          "text": "vcspull v1.14.0 (2022-10-01)"
        },
        {
          "id": "id120",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id121",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id122",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-13-0-2022-09-25",
          "level": 2,
          "text": "vcspull v1.13.0 (2022-09-25)"
        },
        {
          "id": "id123",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-sync-help-on-empty-command-395",
          "level": 4,
          "text": "vcspull sync: Help on empty command (#395)"
        },
        {
          "id": "vcspull-sync-notices-for-unmatched-terms-394",
          "level": 4,
          "text": "vcspull sync: Notices for unmatched terms (#394)"
        },
        {
          "id": "vcspull-sync-continue-on-error-by-default-387",
          "level": 4,
          "text": "vcspull sync: Continue on error by default (#387)"
        },
        {
          "id": "id124",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id125",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-12-3-2022-06-01",
          "level": 2,
          "text": "vcspull v1.12.3 (2022-06-01)"
        },
        {
          "id": "id126",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v1-12-2-2022-05-15",
          "level": 2,
          "text": "vcspull v1.12.2 (2022-05-15)"
        },
        {
          "id": "id127",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-12-1-2022-05-02",
          "level": 2,
          "text": "vcspull v1.12.1 (2022-05-02)"
        },
        {
          "id": "id128",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v1-12-0-2022-04-24",
          "level": 2,
          "text": "vcspull v1.12.0 (2022-04-24)"
        },
        {
          "id": "id129",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id130",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id131",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id132",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-11-5-2022-04-20",
          "level": 2,
          "text": "vcspull v1.11.5 (2022-04-20)"
        },
        {
          "id": "id133",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-v1-11-4-2022-04-17",
          "level": 2,
          "text": "vcspull v1.11.4 (2022-04-17)"
        },
        {
          "id": "id134",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-11-3-2022-04-11",
          "level": 2,
          "text": "vcspull v1.11.3 (2022-04-11)"
        },
        {
          "id": "id135",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-v1-11-2-2022-03-21",
          "level": 2,
          "text": "vcspull v1.11.2 (2022-03-21)"
        },
        {
          "id": "id136",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-v1-11-1-2022-03-12",
          "level": 2,
          "text": "vcspull v1.11.1 (2022-03-12)"
        },
        {
          "id": "id137",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id138",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id139",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-11-0-2022-02-28",
          "level": 2,
          "text": "vcspull v1.11.0 (2022-02-28)"
        },
        {
          "id": "id140",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "id141",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-10-0-2022-02-28",
          "level": 2,
          "text": "vcspull v1.10.0 (2022-02-28)"
        },
        {
          "id": "id142",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id143",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-v1-9-0-2022-02-26",
          "level": 2,
          "text": "vcspull v1.9.0 (2022-02-26)"
        },
        {
          "id": "id144",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id145",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id146",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id147",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-8-1-2021-12-05",
          "level": 2,
          "text": "vcspull v1.8.1 (2021-12-05)"
        },
        {
          "id": "id148",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-8-0-2021-06-16",
          "level": 2,
          "text": "vcspull v1.8.0 (2021-06-16)"
        },
        {
          "id": "id149",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id150",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-7-0post0-2021-06-14",
          "level": 2,
          "text": "vcspull v1.7.0post0 (2021-06-14)"
        },
        {
          "id": "id151",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-7-0-2021-06-14",
          "level": 2,
          "text": "vcspull v1.7.0 (2021-06-14)"
        },
        {
          "id": "id152",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-6-1-2021-06-14",
          "level": 2,
          "text": "vcspull v1.6.1 (2021-06-14)"
        },
        {
          "id": "id153",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-6-0-2021-06-14",
          "level": 2,
          "text": "vcspull v1.6.0 (2021-06-14)"
        },
        {
          "id": "id154",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "vcspull-v1-5-0-2020-08-11",
          "level": 2,
          "text": "vcspull v1.5.0 (2020-08-11)"
        },
        {
          "id": "id155",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id156",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-4-3-2020-08-05",
          "level": 2,
          "text": "vcspull v1.4.3 (2020-08-05)"
        },
        {
          "id": "id157",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-4-2-2020-08-01",
          "level": 2,
          "text": "vcspull v1.4.2 (2020-08-01)"
        },
        {
          "id": "id158",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v1-4-1-2020-08-01",
          "level": 2,
          "text": "vcspull v1.4.1 (2020-08-01)"
        },
        {
          "id": "id159",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v1-4-0-2020-08-01",
          "level": 2,
          "text": "vcspull v1.4.0 (2020-08-01)"
        },
        {
          "id": "id160",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id161",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-3-1-2020-07-26",
          "level": 2,
          "text": "vcspull v1.3.1 (2020-07-26)"
        },
        {
          "id": "id162",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id163",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v1-3-0post2-2020-07-26",
          "level": 2,
          "text": "vcspull v1.3.0post2 (2020-07-26)"
        },
        {
          "id": "id164",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v1-3-0post1-2020-07-26",
          "level": 2,
          "text": "vcspull v1.3.0post1 (2020-07-26)"
        },
        {
          "id": "id165",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id166",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-3-0-2020-07-25",
          "level": 2,
          "text": "vcspull v1.3.0 (2020-07-25)"
        },
        {
          "id": "id167",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id168",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id169",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-2-0-2018-07-08",
          "level": 2,
          "text": "vcspull v1.2.0 (2018-07-08)"
        },
        {
          "id": "id170",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "id171",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-1-0-2018-03-11",
          "level": 2,
          "text": "vcspull v1.1.0 (2018-03-11)"
        },
        {
          "id": "id172",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id173",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v1-0-3-2016-12-19",
          "level": 2,
          "text": "vcspull v1.0.3 (2016-12-19)"
        },
        {
          "id": "id174",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-0-2-2016-12-19",
          "level": 2,
          "text": "vcspull v1.0.2 (2016-12-19)"
        },
        {
          "id": "id175",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id176",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v1-0-1-2016-11-24",
          "level": 2,
          "text": "vcspull v1.0.1 (2016-11-24)"
        },
        {
          "id": "id177",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id178",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v1-0-0-2016-09-13",
          "level": 2,
          "text": "vcspull v1.0.0 (2016-09-13)"
        },
        {
          "id": "id179",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id180",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id181",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id182",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-9-0-2016-05-26",
          "level": 2,
          "text": "vcspull v0.9.0 (2016-05-26)"
        },
        {
          "id": "id183",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id184",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id185",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id186",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-2-2-2015-07-10",
          "level": 2,
          "text": "vcspull v0.2.2 (2015-07-10)"
        },
        {
          "id": "id187",
          "level": 3,
          "text": "Dependencies"
        },
        {
          "id": "vcspull-v0-2-1-2015-06-12",
          "level": 2,
          "text": "vcspull v0.2.1 (2015-06-12)"
        },
        {
          "id": "id188",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v0-2-0-2015-05-19",
          "level": 2,
          "text": "vcspull v0.2.0 (2015-05-19)"
        },
        {
          "id": "id189",
          "level": 3,
          "text": "Breaking changes"
        },
        {
          "id": "id190",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v0-1-1-2015-05-09",
          "level": 2,
          "text": "vcspull v0.1.1 (2015-05-09)"
        },
        {
          "id": "id191",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v0-1-0-2015-04-30",
          "level": 2,
          "text": "vcspull v0.1.0 (2015-04-30)"
        },
        {
          "id": "id192",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id193",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v0-0-10-2015-04-08",
          "level": 2,
          "text": "vcspull v0.0.10 (2015-04-08)"
        },
        {
          "id": "id194",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id195",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id196",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-0-9-1-2015-03-27",
          "level": 2,
          "text": "vcspull v0.0.9-1 (2015-03-27)"
        },
        {
          "id": "id197",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id198",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-0-9-2015-03-25",
          "level": 2,
          "text": "vcspull v0.0.9 (2015-03-25)"
        },
        {
          "id": "id199",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id200",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id201",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-0-8-4-2014-02-06",
          "level": 2,
          "text": "vcspull v0.0.8-4 (2014-02-06)"
        },
        {
          "id": "id202",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v0-0-8-3-2014-02-06",
          "level": 2,
          "text": "vcspull v0.0.8-3 (2014-02-06)"
        },
        {
          "id": "id203",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v0-0-8-2-2014-02-05",
          "level": 2,
          "text": "vcspull v0.0.8-2 (2014-02-05)"
        },
        {
          "id": "id204",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v0-0-8-1-2014-02-05",
          "level": 2,
          "text": "vcspull v0.0.8-1 (2014-02-05)"
        },
        {
          "id": "id205",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v0-0-8-2014-02-05",
          "level": 2,
          "text": "vcspull v0.0.8 (2014-02-05)"
        },
        {
          "id": "id206",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id207",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-0-7-2014-01-07",
          "level": 2,
          "text": "vcspull v0.0.7 (2014-01-07)"
        },
        {
          "id": "id208",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id209",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-0-6-2013-12-03",
          "level": 2,
          "text": "vcspull v0.0.6 (2013-12-03)"
        },
        {
          "id": "id210",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "vcspull-v0-0-5-2013-11-28",
          "level": 2,
          "text": "vcspull v0.0.5 (2013-11-28)"
        },
        {
          "id": "id211",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id212",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-0-4-2013-11-25",
          "level": 2,
          "text": "vcspull v0.0.4 (2013-11-25)"
        },
        {
          "id": "id213",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id214",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v0-0-3-2013-11-23",
          "level": 2,
          "text": "vcspull v0.0.3 (2013-11-23)"
        },
        {
          "id": "id215",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id216",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id217",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-0-2-2013-11-23",
          "level": 2,
          "text": "vcspull v0.0.2 (2013-11-23)"
        },
        {
          "id": "id218",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-0-2-2013-11-16",
          "level": 2,
          "text": "vcspull v0.0.2 (2013-11-16)"
        },
        {
          "id": "id219",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-0-1-2013-11-15",
          "level": 2,
          "text": "vcspull v0.0.1 (2013-11-15)"
        },
        {
          "id": "id220",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "id221",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-0-1-2013-11-09",
          "level": 2,
          "text": "vcspull v0.0.1 (2013-11-09)"
        },
        {
          "id": "id222",
          "level": 3,
          "text": "What’s new"
        },
        {
          "id": "id223",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-0-1-2013-10-23",
          "level": 2,
          "text": "vcspull v0.0.1 (2013-10-23)"
        },
        {
          "id": "id224",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "vcspull-v0-0-1-2013-10-17",
          "level": 2,
          "text": "vcspull v0.0.1 (2013-10-17)"
        },
        {
          "id": "id225",
          "level": 3,
          "text": "Fixes"
        },
        {
          "id": "vcspull-v0-0-1-2013-10-08",
          "level": 2,
          "text": "vcspull v0.0.1 (2013-10-08)"
        },
        {
          "id": "id226",
          "level": 3,
          "text": "Development"
        },
        {
          "id": "vcspull-v0-0-1-2013-10-06",
          "level": 2,
          "text": "vcspull v0.0.1 (2013-10-06)"
        },
        {
          "id": "id227",
          "level": 3,
          "text": "What’s new"
        }
      ]
    },
    {
      "title": "vcspull",
      "description": "CLI workspace manager for VCS repos. Sync, organize, and manage multiple git (and hg/svn) repositories from a single YAML config.",
      "section": "",
      "url": "/",
      "markdownUrl": "/index.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull"
        },
        {
          "id": "install",
          "level": 2,
          "text": "Install"
        },
        {
          "id": "at-a-glance",
          "level": 2,
          "text": "At a glance"
        }
      ]
    },
    {
      "title": "vcspull add - vcspull.cli.add",
      "description": "Add single repository functionality for vcspull.",
      "section": "Documentation",
      "url": "/internals/api/cli/add/",
      "markdownUrl": "/internals/api/cli/add.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull add - vcspull.cli.add"
        },
        {
          "id": "vcspull.cli.add.AddAction",
          "level": 2,
          "text": "AddAction"
        },
        {
          "id": "vcspull.cli.add.AddAction.ADD",
          "level": 3,
          "text": "ADD"
        },
        {
          "id": "vcspull.cli.add.AddAction.SKIP_EXISTING",
          "level": 3,
          "text": "SKIP_EXISTING"
        },
        {
          "id": "vcspull.cli.add.AddAction.SKIP_PINNED",
          "level": 3,
          "text": "SKIP_PINNED"
        },
        {
          "id": "vcspull.cli.add._classify_add_action",
          "level": 2,
          "text": "_classify_add_action()"
        },
        {
          "id": "vcspull.cli.add.create_add_subparser",
          "level": 2,
          "text": "create_add_subparser()"
        },
        {
          "id": "vcspull.cli.add._resolve_workspace_path",
          "level": 2,
          "text": "_resolve_workspace_path()"
        },
        {
          "id": "vcspull.cli.add._detect_git_remote",
          "level": 2,
          "text": "_detect_git_remote()"
        },
        {
          "id": "vcspull.cli.add._normalize_detected_url",
          "level": 2,
          "text": "_normalize_detected_url()"
        },
        {
          "id": "vcspull.cli.add._build_ordered_items",
          "level": 2,
          "text": "_build_ordered_items()"
        },
        {
          "id": "vcspull.cli.add._aggregate_from_ordered_items",
          "level": 2,
          "text": "_aggregate_from_ordered_items()"
        },
        {
          "id": "vcspull.cli.add._collapse_ordered_items_to_dict",
          "level": 2,
          "text": "_collapse_ordered_items_to_dict()"
        },
        {
          "id": "vcspull.cli.add._collect_duplicate_sections",
          "level": 2,
          "text": "_collect_duplicate_sections()"
        },
        {
          "id": "vcspull.cli.add._save_ordered_items",
          "level": 2,
          "text": "_save_ordered_items()"
        },
        {
          "id": "vcspull.cli.add.handle_add_command",
          "level": 2,
          "text": "handle_add_command()"
        },
        {
          "id": "vcspull.cli.add.add_repo",
          "level": 2,
          "text": "add_repo()"
        }
      ]
    },
    {
      "title": "vcspull discover - vcspull.cli.discover",
      "description": "Discover repositories from filesystem for vcspull.",
      "section": "Documentation",
      "url": "/internals/api/cli/discover/",
      "markdownUrl": "/internals/api/cli/discover.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull discover - vcspull.cli.discover"
        },
        {
          "id": "vcspull.cli.discover.DiscoverAction",
          "level": 2,
          "text": "DiscoverAction"
        },
        {
          "id": "vcspull.cli.discover.DiscoverAction.ADD",
          "level": 3,
          "text": "ADD"
        },
        {
          "id": "vcspull.cli.discover.DiscoverAction.SKIP_EXISTING",
          "level": 3,
          "text": "SKIP_EXISTING"
        },
        {
          "id": "vcspull.cli.discover.DiscoverAction.SKIP_PINNED",
          "level": 3,
          "text": "SKIP_PINNED"
        },
        {
          "id": "vcspull.cli.discover._classify_discover_action",
          "level": 2,
          "text": "_classify_discover_action()"
        },
        {
          "id": "vcspull.cli.discover._classify_config_scope",
          "level": 2,
          "text": "_classify_config_scope()"
        },
        {
          "id": "vcspull.cli.discover.is_git_worktree",
          "level": 2,
          "text": "is_git_worktree()"
        },
        {
          "id": "vcspull.cli.discover.get_git_origin_url",
          "level": 2,
          "text": "get_git_origin_url()"
        },
        {
          "id": "vcspull.cli.discover.create_discover_subparser",
          "level": 2,
          "text": "create_discover_subparser()"
        },
        {
          "id": "vcspull.cli.discover._resolve_workspace_path",
          "level": 2,
          "text": "_resolve_workspace_path()"
        },
        {
          "id": "vcspull.cli.discover.discover_repos",
          "level": 2,
          "text": "discover_repos()"
        }
      ]
    },
    {
      "title": "vcspull fmt - vcspull.cli.fmt",
      "description": "Format vcspull configuration files.",
      "section": "Documentation",
      "url": "/internals/api/cli/fmt/",
      "markdownUrl": "/internals/api/cli/fmt.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull fmt - vcspull.cli.fmt"
        },
        {
          "id": "vcspull.cli.fmt.FmtAction",
          "level": 2,
          "text": "FmtAction"
        },
        {
          "id": "vcspull.cli.fmt.FmtAction.NORMALIZE",
          "level": 3,
          "text": "NORMALIZE"
        },
        {
          "id": "vcspull.cli.fmt.FmtAction.NO_CHANGE",
          "level": 3,
          "text": "NO_CHANGE"
        },
        {
          "id": "vcspull.cli.fmt.FmtAction.SKIP_PINNED",
          "level": 3,
          "text": "SKIP_PINNED"
        },
        {
          "id": "vcspull.cli.fmt.create_fmt_subparser",
          "level": 2,
          "text": "create_fmt_subparser()"
        },
        {
          "id": "vcspull.cli.fmt.normalize_repo_config",
          "level": 2,
          "text": "normalize_repo_config()"
        },
        {
          "id": "vcspull.cli.fmt._classify_fmt_action",
          "level": 2,
          "text": "_classify_fmt_action()"
        },
        {
          "id": "vcspull.cli.fmt.format_config",
          "level": 2,
          "text": "format_config()"
        },
        {
          "id": "vcspull.cli.fmt.format_single_config",
          "level": 2,
          "text": "format_single_config()"
        },
        {
          "id": "vcspull.cli.fmt.format_config_file",
          "level": 2,
          "text": "format_config_file()"
        }
      ]
    },
    {
      "title": "vcspull import - vcspull.cli.import_cmd",
      "description": "vcspull import subcommand package.",
      "section": "Documentation",
      "url": "/internals/api/cli/import/",
      "markdownUrl": "/internals/api/cli/import.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull import - vcspull.cli.import_cmd"
        },
        {
          "id": "vcspull.cli.import_cmd.create_import_subparser",
          "level": 2,
          "text": "create_import_subparser()"
        },
        {
          "id": "vcspull.cli.import_cmd._common.Importer",
          "level": 2,
          "text": "Importer"
        },
        {
          "id": "vcspull.cli.import_cmd._common.Importer.service_name",
          "level": 3,
          "text": "service_name"
        },
        {
          "id": "vcspull.cli.import_cmd._common.Importer.fetch_repos",
          "level": 3,
          "text": "fetch_repos()"
        },
        {
          "id": "vcspull.cli.import_cmd._common.Importer.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull.cli.import_cmd._common.Importer._abc_impl",
          "level": 3,
          "text": "_abc_impl"
        },
        {
          "id": "vcspull.cli.import_cmd._common.Importer._is_protocol",
          "level": 3,
          "text": "_is_protocol"
        },
        {
          "id": "vcspull.cli.import_cmd._common.ImportAction",
          "level": 2,
          "text": "ImportAction"
        },
        {
          "id": "vcspull.cli.import_cmd._common.ImportAction.ADD",
          "level": 3,
          "text": "ADD"
        },
        {
          "id": "vcspull.cli.import_cmd._common.ImportAction.SKIP_UNCHANGED",
          "level": 3,
          "text": "SKIP_UNCHANGED"
        },
        {
          "id": "vcspull.cli.import_cmd._common.ImportAction.SKIP_EXISTING",
          "level": 3,
          "text": "SKIP_EXISTING"
        },
        {
          "id": "vcspull.cli.import_cmd._common.ImportAction.UPDATE_URL",
          "level": 3,
          "text": "UPDATE_URL"
        },
        {
          "id": "vcspull.cli.import_cmd._common.ImportAction.SKIP_PINNED",
          "level": 3,
          "text": "SKIP_PINNED"
        },
        {
          "id": "vcspull.cli.import_cmd._common.ImportAction.PRUNE",
          "level": 3,
          "text": "PRUNE"
        },
        {
          "id": "vcspull.cli.import_cmd._common._classify_import_action",
          "level": 2,
          "text": "_classify_import_action()"
        },
        {
          "id": "vcspull.cli.import_cmd._common._classify_prune_action",
          "level": 2,
          "text": "_classify_prune_action()"
        },
        {
          "id": "vcspull.cli.import_cmd._common._classify_untracked_prune_action",
          "level": 2,
          "text": "_classify_untracked_prune_action()"
        },
        {
          "id": "vcspull.cli.import_cmd._common._create_shared_parent",
          "level": 2,
          "text": "_create_shared_parent()"
        },
        {
          "id": "vcspull.cli.import_cmd._common._create_token_parent",
          "level": 2,
          "text": "_create_token_parent()"
        },
        {
          "id": "vcspull.cli.import_cmd._common._create_mode_parent",
          "level": 2,
          "text": "_create_mode_parent()"
        },
        {
          "id": "vcspull.cli.import_cmd._common._create_target_parent",
          "level": 2,
          "text": "_create_target_parent()"
        },
        {
          "id": "vcspull.cli.import_cmd._common._resolve_config_file",
          "level": 2,
          "text": "_resolve_config_file()"
        },
        {
          "id": "vcspull.cli.import_cmd._common._run_import",
          "level": 2,
          "text": "_run_import()"
        }
      ]
    },
    {
      "title": "CLI",
      "description": "CLI utilities for vcspull.",
      "section": "Documentation",
      "url": "/internals/api/cli/",
      "markdownUrl": "/internals/api/cli/index.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "CLI"
        },
        {
          "id": "module-vcspull.cli",
          "level": 2,
          "text": "vcspull CLI - vcspull.cli"
        },
        {
          "id": "vcspull.cli.build_description",
          "level": 3,
          "text": "build_description()"
        },
        {
          "id": "vcspull.cli.create_parser",
          "level": 3,
          "text": "create_parser()"
        },
        {
          "id": "vcspull.cli.cli",
          "level": 3,
          "text": "cli()"
        }
      ]
    },
    {
      "title": "vcspull list - vcspull.cli.list",
      "description": "List repositories functionality for vcspull.",
      "section": "Documentation",
      "url": "/internals/api/cli/list/",
      "markdownUrl": "/internals/api/cli/list.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull list - vcspull.cli.list"
        },
        {
          "id": "vcspull.cli.list.create_list_subparser",
          "level": 2,
          "text": "create_list_subparser()"
        },
        {
          "id": "vcspull.cli.list.list_repos",
          "level": 2,
          "text": "list_repos()"
        },
        {
          "id": "vcspull.cli.list._output_flat",
          "level": 2,
          "text": "_output_flat()"
        },
        {
          "id": "vcspull.cli.list._output_tree",
          "level": 2,
          "text": "_output_tree()"
        }
      ]
    },
    {
      "title": "vcspull search - vcspull.cli.search",
      "description": "… automodule:: vcspull.cli.search",
      "section": "Documentation",
      "url": "/internals/api/cli/search/",
      "markdownUrl": "/internals/api/cli/search.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull search - vcspull.cli.search"
        }
      ]
    },
    {
      "title": "vcspull status - vcspull.cli.status",
      "description": "Repository status checking functionality for vcspull.",
      "section": "Documentation",
      "url": "/internals/api/cli/status/",
      "markdownUrl": "/internals/api/cli/status.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull status - vcspull.cli.status"
        },
        {
          "id": "vcspull.cli.status.StatusCheckConfig",
          "level": 2,
          "text": "StatusCheckConfig"
        },
        {
          "id": "vcspull.cli.status.StatusCheckConfig.max_concurrent",
          "level": 3,
          "text": "max_concurrent"
        },
        {
          "id": "vcspull.cli.status.StatusCheckConfig.detailed",
          "level": 3,
          "text": "detailed"
        },
        {
          "id": "vcspull.cli.status.StatusCheckConfig.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull.cli.status._visible_length",
          "level": 2,
          "text": "_visible_length()"
        },
        {
          "id": "vcspull.cli.status.StatusProgressPrinter",
          "level": 2,
          "text": "StatusProgressPrinter"
        },
        {
          "id": "vcspull.cli.status.StatusProgressPrinter.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull.cli.status.StatusProgressPrinter.update",
          "level": 3,
          "text": "update()"
        },
        {
          "id": "vcspull.cli.status.StatusProgressPrinter.finish",
          "level": 3,
          "text": "finish()"
        },
        {
          "id": "vcspull.cli.status.create_status_subparser",
          "level": 2,
          "text": "create_status_subparser()"
        },
        {
          "id": "vcspull.cli.status._check_repos_status_async",
          "level": 2,
          "text": "_check_repos_status_async()"
        },
        {
          "id": "vcspull.cli.status._run_git_command",
          "level": 2,
          "text": "_run_git_command()"
        },
        {
          "id": "vcspull.cli.status.check_repo_status",
          "level": 2,
          "text": "check_repo_status()"
        },
        {
          "id": "vcspull.cli.status.status_repos",
          "level": 2,
          "text": "status_repos()"
        },
        {
          "id": "vcspull.cli.status._format_status_line",
          "level": 2,
          "text": "_format_status_line()"
        }
      ]
    },
    {
      "title": "vcspull sync - vcspull.cli.sync",
      "description": "Synchronization functionality for vcspull.",
      "section": "Documentation",
      "url": "/internals/api/cli/sync/",
      "markdownUrl": "/internals/api/cli/sync.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull sync - vcspull.cli.sync"
        },
        {
          "id": "vcspull.cli.sync.SyncPlanConfig",
          "level": 2,
          "text": "SyncPlanConfig"
        },
        {
          "id": "vcspull.cli.sync.SyncPlanConfig.fetch",
          "level": 3,
          "text": "fetch"
        },
        {
          "id": "vcspull.cli.sync.SyncPlanConfig.offline",
          "level": 3,
          "text": "offline"
        },
        {
          "id": "vcspull.cli.sync.SyncPlanConfig.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull.cli.sync._visible_length",
          "level": 2,
          "text": "_visible_length()"
        },
        {
          "id": "vcspull.cli.sync.PlanProgressPrinter",
          "level": 2,
          "text": "PlanProgressPrinter"
        },
        {
          "id": "vcspull.cli.sync.PlanProgressPrinter.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull.cli.sync.PlanProgressPrinter.update",
          "level": 3,
          "text": "update()"
        },
        {
          "id": "vcspull.cli.sync.PlanProgressPrinter.finish",
          "level": 3,
          "text": "finish()"
        },
        {
          "id": "vcspull.cli.sync._extract_repo_url",
          "level": 2,
          "text": "_extract_repo_url()"
        },
        {
          "id": "vcspull.cli.sync._get_repo_path",
          "level": 2,
          "text": "_get_repo_path()"
        },
        {
          "id": "vcspull.cli.sync.clamp",
          "level": 2,
          "text": "clamp()"
        },
        {
          "id": "vcspull.cli.sync._DEFAULT_REPO_TIMEOUT_SECONDS",
          "level": 2,
          "text": "_DEFAULT_REPO_TIMEOUT_SECONDS"
        },
        {
          "id": "vcspull.cli.sync._get_no_prompt_env",
          "level": 2,
          "text": "_get_no_prompt_env()"
        },
        {
          "id": "vcspull.cli.sync._maybe_fetch",
          "level": 2,
          "text": "_maybe_fetch()"
        },
        {
          "id": "vcspull.cli.sync._determine_plan_action",
          "level": 2,
          "text": "_determine_plan_action()"
        },
        {
          "id": "vcspull.cli.sync._update_summary",
          "level": 2,
          "text": "_update_summary()"
        },
        {
          "id": "vcspull.cli.sync._build_plan_entry",
          "level": 2,
          "text": "_build_plan_entry()"
        },
        {
          "id": "vcspull.cli.sync._build_plan_result_async",
          "level": 2,
          "text": "_build_plan_result_async()"
        },
        {
          "id": "vcspull.cli.sync._filter_entries_for_display",
          "level": 2,
          "text": "_filter_entries_for_display()"
        },
        {
          "id": "vcspull.cli.sync._format_detail_text",
          "level": 2,
          "text": "_format_detail_text()"
        },
        {
          "id": "vcspull.cli.sync._render_plan",
          "level": 2,
          "text": "_render_plan()"
        },
        {
          "id": "vcspull.cli.sync._emit_plan_output",
          "level": 2,
          "text": "_emit_plan_output()"
        },
        {
          "id": "vcspull.cli.sync.create_sync_subparser",
          "level": 2,
          "text": "create_sync_subparser()"
        },
        {
          "id": "vcspull.cli.sync._TimedOutRepo",
          "level": 2,
          "text": "_TimedOutRepo"
        },
        {
          "id": "vcspull.cli.sync._TimedOutRepo.name",
          "level": 3,
          "text": "name"
        },
        {
          "id": "vcspull.cli.sync._TimedOutRepo.path",
          "level": 3,
          "text": "path"
        },
        {
          "id": "vcspull.cli.sync._TimedOutRepo.workspace_root",
          "level": 3,
          "text": "workspace_root"
        },
        {
          "id": "vcspull.cli.sync._TimedOutRepo.duration",
          "level": 3,
          "text": "duration"
        },
        {
          "id": "vcspull.cli.sync._TimedOutRepo.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull.cli.sync._SyncOutcome",
          "level": 2,
          "text": "_SyncOutcome"
        },
        {
          "id": "vcspull.cli.sync._SyncOutcome.status",
          "level": 3,
          "text": "status"
        },
        {
          "id": "vcspull.cli.sync._SyncOutcome.captured_output",
          "level": 3,
          "text": "captured_output"
        },
        {
          "id": "vcspull.cli.sync._SyncOutcome.error",
          "level": 3,
          "text": "error"
        },
        {
          "id": "vcspull.cli.sync._SyncOutcome.duration",
          "level": 3,
          "text": "duration"
        },
        {
          "id": "vcspull.cli.sync._SyncOutcome.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull.cli.sync._positive_int_arg",
          "level": 2,
          "text": "_positive_int_arg()"
        },
        {
          "id": "vcspull.cli.sync._resolve_repo_timeout",
          "level": 2,
          "text": "_resolve_repo_timeout()"
        },
        {
          "id": "vcspull.cli.sync._DEFAULT_PANEL_LINES",
          "level": 2,
          "text": "_DEFAULT_PANEL_LINES"
        },
        {
          "id": "vcspull.cli.sync._panel_lines_arg",
          "level": 2,
          "text": "_panel_lines_arg()"
        },
        {
          "id": "vcspull.cli.sync._resolve_panel_lines",
          "level": 2,
          "text": "_resolve_panel_lines()"
        },
        {
          "id": "vcspull.cli.sync._SyncInterruptedAfterSummary",
          "level": 2,
          "text": "_SyncInterruptedAfterSummary"
        },
        {
          "id": "vcspull.cli.sync._exit_on_sigint",
          "level": 2,
          "text": "_exit_on_sigint()"
        },
        {
          "id": "vcspull.cli.sync._IndicatorStreamProxy",
          "level": 2,
          "text": "_IndicatorStreamProxy"
        },
        {
          "id": "vcspull.cli.sync._IndicatorStreamProxy.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull.cli.sync._IndicatorStreamProxy.write",
          "level": 3,
          "text": "write()"
        },
        {
          "id": "vcspull.cli.sync._IndicatorStreamProxy.flush",
          "level": 3,
          "text": "flush()"
        },
        {
          "id": "vcspull.cli.sync._install_indicator_log_diverter",
          "level": 2,
          "text": "_install_indicator_log_diverter()"
        },
        {
          "id": "vcspull.cli.sync._sync_repo_with_watchdog",
          "level": 2,
          "text": "_sync_repo_with_watchdog()"
        },
        {
          "id": "vcspull.cli.sync._emit_rerun_recipe",
          "level": 2,
          "text": "_emit_rerun_recipe()"
        },
        {
          "id": "vcspull.cli.sync.sync",
          "level": 2,
          "text": "sync()"
        },
        {
          "id": "vcspull.cli.sync._sync_impl",
          "level": 2,
          "text": "_sync_impl()"
        },
        {
          "id": "vcspull.cli.sync._run_sync_loop",
          "level": 2,
          "text": "_run_sync_loop()"
        },
        {
          "id": "vcspull.cli.sync._emit_summary",
          "level": 2,
          "text": "_emit_summary()"
        },
        {
          "id": "vcspull.cli.sync.progress_cb",
          "level": 2,
          "text": "progress_cb()"
        },
        {
          "id": "vcspull.cli.sync.guess_vcs",
          "level": 2,
          "text": "guess_vcs()"
        },
        {
          "id": "vcspull.cli.sync.CouldNotGuessVCSFromURL",
          "level": 2,
          "text": "CouldNotGuessVCSFromURL"
        },
        {
          "id": "vcspull.cli.sync.CouldNotGuessVCSFromURL.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull.cli.sync.SyncFailedError",
          "level": 2,
          "text": "SyncFailedError"
        },
        {
          "id": "vcspull.cli.sync.SyncFailedError.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull.cli.sync.update_repo",
          "level": 2,
          "text": "update_repo()"
        }
      ]
    },
    {
      "title": "vcspull worktree - vcspull.cli.worktree",
      "description": "Worktree management CLI for vcspull.",
      "section": "Documentation",
      "url": "/internals/api/cli/worktree/",
      "markdownUrl": "/internals/api/cli/worktree.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "vcspull worktree - vcspull.cli.worktree"
        },
        {
          "id": "vcspull.cli.worktree.create_worktree_subparser",
          "level": 2,
          "text": "create_worktree_subparser()"
        },
        {
          "id": "vcspull.cli.worktree._add_common_args",
          "level": 2,
          "text": "_add_common_args()"
        },
        {
          "id": "vcspull.cli.worktree.handle_worktree_command",
          "level": 2,
          "text": "handle_worktree_command()"
        },
        {
          "id": "vcspull.cli.worktree._handle_list",
          "level": 2,
          "text": "_handle_list()"
        },
        {
          "id": "vcspull.cli.worktree._emit_worktree_entry",
          "level": 2,
          "text": "_emit_worktree_entry()"
        },
        {
          "id": "vcspull.cli.worktree._handle_sync",
          "level": 2,
          "text": "_handle_sync()"
        },
        {
          "id": "vcspull.cli.worktree._handle_prune",
          "level": 2,
          "text": "_handle_prune()"
        }
      ]
    },
    {
      "title": "Config reader - vcspull._internal.config_reader",
      "description": "",
      "section": "Documentation",
      "url": "/internals/api/config_reader/",
      "markdownUrl": "/internals/api/config_reader.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Config reader - vcspull._internal.config_reader"
        },
        {
          "id": "vcspull._internal.config_reader.config_format_from_path",
          "level": 2,
          "text": "config_format_from_path()"
        },
        {
          "id": "vcspull._internal.config_reader.ConfigReader",
          "level": 2,
          "text": "ConfigReader"
        },
        {
          "id": "vcspull._internal.config_reader.ConfigReader.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull._internal.config_reader.ConfigReader._load",
          "level": 3,
          "text": "_load()"
        },
        {
          "id": "vcspull._internal.config_reader.ConfigReader.load",
          "level": 3,
          "text": "load()"
        },
        {
          "id": "vcspull._internal.config_reader.ConfigReader._from_file",
          "level": 3,
          "text": "_from_file()"
        },
        {
          "id": "vcspull._internal.config_reader.ConfigReader.from_file",
          "level": 3,
          "text": "from_file()"
        },
        {
          "id": "vcspull._internal.config_reader.ConfigReader._dump",
          "level": 3,
          "text": "_dump()"
        },
        {
          "id": "vcspull._internal.config_reader.ConfigReader.dump",
          "level": 3,
          "text": "dump()"
        },
        {
          "id": "vcspull._internal.config_reader._DuplicateTrackingSafeLoader",
          "level": 2,
          "text": "_DuplicateTrackingSafeLoader"
        },
        {
          "id": "vcspull._internal.config_reader._DuplicateTrackingSafeLoader.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull._internal.config_reader._DuplicateTrackingSafeLoader.yaml_constructors",
          "level": 3,
          "text": "yaml_constructors"
        },
        {
          "id": "vcspull._internal.config_reader._duplicate_tracking_construct_mapping",
          "level": 2,
          "text": "_duplicate_tracking_construct_mapping()"
        },
        {
          "id": "vcspull._internal.config_reader.DuplicateAwareConfigReader",
          "level": 2,
          "text": "DuplicateAwareConfigReader"
        },
        {
          "id": "vcspull._internal.config_reader.DuplicateAwareConfigReader.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull._internal.config_reader.DuplicateAwareConfigReader.duplicate_sections",
          "level": 3,
          "text": "duplicate_sections"
        },
        {
          "id": "vcspull._internal.config_reader.DuplicateAwareConfigReader.top_level_items",
          "level": 3,
          "text": "top_level_items"
        },
        {
          "id": "vcspull._internal.config_reader.DuplicateAwareConfigReader._load_yaml_with_duplicates",
          "level": 3,
          "text": "_load_yaml_with_duplicates()"
        },
        {
          "id": "vcspull._internal.config_reader.DuplicateAwareConfigReader._load_from_path",
          "level": 3,
          "text": "_load_from_path()"
        },
        {
          "id": "vcspull._internal.config_reader.DuplicateAwareConfigReader.from_file",
          "level": 3,
          "text": "from_file()"
        },
        {
          "id": "vcspull._internal.config_reader.DuplicateAwareConfigReader._from_file",
          "level": 3,
          "text": "_from_file()"
        },
        {
          "id": "vcspull._internal.config_reader.DuplicateAwareConfigReader.load_with_duplicates",
          "level": 3,
          "text": "load_with_duplicates()"
        }
      ]
    },
    {
      "title": "Internal Python API",
      "description": "",
      "section": "Documentation",
      "url": "/internals/api/",
      "markdownUrl": "/internals/api/index.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Internal Python API"
        }
      ]
    },
    {
      "title": "PrivatePath – vcspull._internal.private_path",
      "description": "PrivatePath subclasses pathlib.Path and normalizes every textual rendering (str()/repr()) so the current user’s home directory is collapsed to ~. The class behaves exactly like the standard path ob...",
      "section": "Documentation",
      "url": "/internals/api/private_path/",
      "markdownUrl": "/internals/api/private_path.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "PrivatePath – vcspull._internal.private_path"
        },
        {
          "id": "usage-guidelines",
          "level": 2,
          "text": "Usage guidelines"
        },
        {
          "id": "why-not-contract-user-home",
          "level": 2,
          "text": "Why not contract_user_home?"
        },
        {
          "id": "vcspull._internal.private_path.PrivatePath",
          "level": 3,
          "text": "PrivatePath"
        },
        {
          "id": "vcspull._internal.private_path.PrivatePath.__new__",
          "level": 4,
          "text": "__new__()"
        },
        {
          "id": "vcspull._internal.private_path.PrivatePath._collapse_home",
          "level": 4,
          "text": "_collapse_home()"
        }
      ]
    },
    {
      "title": "Worktree sync - vcspull._internal.worktree_sync",
      "description": "Core worktree synchronization logic for vcspull.",
      "section": "Documentation",
      "url": "/internals/api/worktree_sync/",
      "markdownUrl": "/internals/api/worktree_sync.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Worktree sync - vcspull._internal.worktree_sync"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeAction",
          "level": 2,
          "text": "WorktreeAction"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeAction.CREATE",
          "level": 3,
          "text": "CREATE"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeAction.UPDATE",
          "level": 3,
          "text": "UPDATE"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeAction.UNCHANGED",
          "level": 3,
          "text": "UNCHANGED"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeAction.BLOCKED",
          "level": 3,
          "text": "BLOCKED"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeAction.ERROR",
          "level": 3,
          "text": "ERROR"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeCheck",
          "level": 2,
          "text": "WorktreeCheck"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeCheck.name",
          "level": 3,
          "text": "name"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeCheck.passed",
          "level": 3,
          "text": "passed"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeCheck.detail",
          "level": 3,
          "text": "detail"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeCheck.exception",
          "level": 3,
          "text": "exception"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeCheck.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreePlanEntry",
          "level": 2,
          "text": "WorktreePlanEntry"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreePlanEntry.worktree_path",
          "level": 3,
          "text": "worktree_path"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreePlanEntry.ref_type",
          "level": 3,
          "text": "ref_type"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreePlanEntry.ref_value",
          "level": 3,
          "text": "ref_value"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreePlanEntry.action",
          "level": 3,
          "text": "action"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreePlanEntry.detail",
          "level": 3,
          "text": "detail"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreePlanEntry.error",
          "level": 3,
          "text": "error"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreePlanEntry.exists",
          "level": 3,
          "text": "exists"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreePlanEntry.is_dirty",
          "level": 3,
          "text": "is_dirty"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreePlanEntry.current_ref",
          "level": 3,
          "text": "current_ref"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreePlanEntry.checks",
          "level": 3,
          "text": "checks"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreePlanEntry.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeSyncResult",
          "level": 2,
          "text": "WorktreeSyncResult"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeSyncResult.__init__",
          "level": 3,
          "text": "__init__()"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeSyncResult.entries",
          "level": 3,
          "text": "entries"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeSyncResult.created",
          "level": 3,
          "text": "created"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeSyncResult.updated",
          "level": 3,
          "text": "updated"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeSyncResult.unchanged",
          "level": 3,
          "text": "unchanged"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeSyncResult.blocked",
          "level": 3,
          "text": "blocked"
        },
        {
          "id": "vcspull._internal.worktree_sync.WorktreeSyncResult.errors",
          "level": 3,
          "text": "errors"
        },
        {
          "id": "vcspull._internal.worktree_sync._get_ref_type_and_value",
          "level": 2,
          "text": "_get_ref_type_and_value()"
        },
        {
          "id": "vcspull._internal.worktree_sync.validate_worktree_config",
          "level": 2,
          "text": "validate_worktree_config()"
        },
        {
          "id": "vcspull._internal.worktree_sync._is_worktree_dirty",
          "level": 2,
          "text": "_is_worktree_dirty()"
        },
        {
          "id": "vcspull._internal.worktree_sync._ref_exists",
          "level": 2,
          "text": "_ref_exists()"
        },
        {
          "id": "vcspull._internal.worktree_sync._get_worktree_head",
          "level": 2,
          "text": "_get_worktree_head()"
        },
        {
          "id": "vcspull._internal.worktree_sync._worktree_exists",
          "level": 2,
          "text": "_worktree_exists()"
        },
        {
          "id": "vcspull._internal.worktree_sync._resolve_worktree_path",
          "level": 2,
          "text": "_resolve_worktree_path()"
        },
        {
          "id": "vcspull._internal.worktree_sync.plan_worktree_sync",
          "level": 2,
          "text": "plan_worktree_sync()"
        },
        {
          "id": "vcspull._internal.worktree_sync.sync_worktree",
          "level": 2,
          "text": "sync_worktree()"
        },
        {
          "id": "vcspull._internal.worktree_sync._create_worktree",
          "level": 2,
          "text": "_create_worktree()"
        },
        {
          "id": "vcspull._internal.worktree_sync._update_worktree",
          "level": 2,
          "text": "_update_worktree()"
        },
        {
          "id": "vcspull._internal.worktree_sync.sync_all_worktrees",
          "level": 2,
          "text": "sync_all_worktrees()"
        },
        {
          "id": "vcspull._internal.worktree_sync.list_existing_worktrees",
          "level": 2,
          "text": "list_existing_worktrees()"
        },
        {
          "id": "vcspull._internal.worktree_sync.prune_worktrees",
          "level": 2,
          "text": "prune_worktrees()"
        }
      ]
    },
    {
      "title": "Internals",
      "description": "Internal module reference for contributors and plugin authors.",
      "section": "Documentation",
      "url": "/internals/",
      "markdownUrl": "/internals/index.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Internals"
        }
      ]
    },
    {
      "title": "Migration notes",
      "description": "Migration and deprecation notes for vcspull are here, see changelog as well.",
      "section": "Documentation",
      "url": "/migration/",
      "markdownUrl": "/migration.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Migration notes"
        },
        {
          "id": "next-release",
          "level": 2,
          "text": "Next release"
        },
        {
          "id": "vcspull-1-15-4-2022-10-16",
          "level": 2,
          "text": "vcspull 1.15.4 (2022-10-16)"
        },
        {
          "id": "completions-for-c-config-files",
          "level": 3,
          "text": "Completions for -c / --config files"
        },
        {
          "id": "vcspull-1-15-0-2022-10-09",
          "level": 2,
          "text": "vcspull 1.15.0 (2022-10-09)"
        },
        {
          "id": "completions-have-changed",
          "level": 3,
          "text": "Completions have changed"
        },
        {
          "id": "vcspull-v1-13-0-2022-09-25",
          "level": 2,
          "text": "vcspull v1.13.0 (2022-09-25)"
        },
        {
          "id": "pulling-all-repositories",
          "level": 3,
          "text": "Pulling all repositories"
        },
        {
          "id": "terms-with-no-match-in-config-will-show-a-notice",
          "level": 3,
          "text": "Terms with no match in config will show a notice"
        },
        {
          "id": "untracked-files",
          "level": 3,
          "text": "Untracked files"
        }
      ]
    },
    {
      "title": "Code Style",
      "description": "vcspull uses ruff for formatting and linting.",
      "section": "Documentation",
      "url": "/project/code-style/",
      "markdownUrl": "/project/code-style.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Code Style"
        },
        {
          "id": "formatting-and-linting",
          "level": 2,
          "text": "Formatting and linting"
        },
        {
          "id": "type-checking",
          "level": 2,
          "text": "Type checking"
        },
        {
          "id": "docstrings",
          "level": 2,
          "text": "Docstrings"
        },
        {
          "id": "imports",
          "level": 2,
          "text": "Imports"
        }
      ]
    },
    {
      "title": "Development",
      "description": "Developing python projects associated with git-pull.com all use the same structure and workflow. At a later point these will refer to that website for documentation.",
      "section": "Documentation",
      "url": "/project/contributing/",
      "markdownUrl": "/project/contributing.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Development"
        },
        {
          "id": "bootstrap-the-project",
          "level": 2,
          "text": "Bootstrap the project"
        },
        {
          "id": "development-loop",
          "level": 2,
          "text": "Development loop"
        },
        {
          "id": "tests",
          "level": 3,
          "text": "Tests"
        },
        {
          "id": "rerun-on-file-change",
          "level": 4,
          "text": "Rerun on file change"
        },
        {
          "id": "manual-just-the-command-please",
          "level": 4,
          "text": "Manual (just the command, please)"
        },
        {
          "id": "pytest-options",
          "level": 4,
          "text": "pytest options"
        },
        {
          "id": "documentation",
          "level": 3,
          "text": "Documentation"
        },
        {
          "id": "id1",
          "level": 4,
          "text": "Rerun on file change"
        },
        {
          "id": "id2",
          "level": 4,
          "text": "Manual (just the command, please)"
        },
        {
          "id": "linting",
          "level": 2,
          "text": "Linting"
        },
        {
          "id": "ruff",
          "level": 3,
          "text": "ruff"
        },
        {
          "id": "ruff-format",
          "level": 4,
          "text": "ruff format"
        },
        {
          "id": "mypy",
          "level": 3,
          "text": "mypy"
        },
        {
          "id": "publishing-to-pypi",
          "level": 2,
          "text": "Publishing to PyPI"
        }
      ]
    },
    {
      "title": "Project",
      "description": "Information for contributors and maintainers.",
      "section": "Documentation",
      "url": "/project/",
      "markdownUrl": "/project/index.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Project"
        }
      ]
    },
    {
      "title": "Releasing",
      "description": "vcspull follows semantic versioning. Internal APIs (everything under _internal/) carry no stability guarantee.",
      "section": "Documentation",
      "url": "/project/releasing/",
      "markdownUrl": "/project/releasing.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Releasing"
        },
        {
          "id": "version-policy",
          "level": 2,
          "text": "Version policy"
        },
        {
          "id": "release-checklist",
          "level": 2,
          "text": "Release checklist"
        }
      ]
    },
    {
      "title": "Quickstart",
      "description": "For latest official version:",
      "section": "Documentation",
      "url": "/quickstart/",
      "markdownUrl": "/quickstart.md",
      "headings": [
        {
          "id": "",
          "level": 1,
          "text": "Quickstart"
        },
        {
          "id": "installation",
          "level": 2,
          "text": "Installation"
        },
        {
          "id": "developmental-releases",
          "level": 3,
          "text": "Developmental releases"
        },
        {
          "id": "configuration",
          "level": 2,
          "text": "Configuration"
        }
      ]
    }
  ]
}
