{
  "id": "git",
  "name": "Git",
  "homepage": "https://git-scm.com",
  "description": "Distributed version control, built for speed and cheap branching.",
  "icon": "theSVG:git",
  "executables": [
    "git"
  ],
  "dotfiles": {
    "paths": [
      "~/.gitconfig",
      "~/.config/git/config",
      "~/.config/git/ignore",
      "~/.config/git/attributes"
    ],
    "exclude": [],
    "secret": [
      "~/.git-credentials",
      "~/.config/git/credentials"
    ],
    "side_effect": true,
    "machine_lines": [
      {
        "file": [
          "~/.gitconfig",
          "~/.config/git/config"
        ],
        "match": {
          "prefix": [
            "signingkey"
          ]
        },
        "scope": "backup"
      },
      {
        "file": [
          "~/.gitconfig",
          "~/.config/git/config"
        ],
        "match": {
          "prefix": [
            "helper"
          ]
        },
        "scope": "platform"
      }
    ]
  },
  "commands": {
    "format": 1,
    "label": "Git",
    "description": "Common Git jobs: commit, clone, status, push and pull. Rebase, merge, stash and the rest of Git are left out.",
    "quality": "ai-draft",
    "base": "fig:git",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": true
    },
    "source": [
      {
        "id": "fig",
        "kind": "completion",
        "url": "https://github.com/withfig/autocomplete/blob/master/src/git.ts",
        "license": "MIT"
      }
    ],
    "subcommand": [
      {
        "path": [
          "commit"
        ],
        "label": "Commit changes",
        "source": [
          {
            "id": "fig",
            "kind": "completion",
            "url": "https://github.com/withfig/autocomplete/blob/master/src/git.ts",
            "license": "MIT"
          }
        ],
        "field": [
          {
            "id": "message",
            "label": "Message",
            "type": "string",
            "option": [
              "--message",
              "-m"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "all",
            "label": "Stage all modified and deleted files",
            "type": "boolean",
            "option": [
              "--all",
              "-a"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "amend",
            "label": "Amend previous commit",
            "description": "Replaces the tip of the current branch.",
            "type": "boolean",
            "option": [
              "--amend"
            ],
            "effect": "overwrite",
            "sources": [
              "fig"
            ]
          },
          {
            "id": "signoff",
            "label": "Add Signed-off-by",
            "type": "boolean",
            "option": [
              "--signoff",
              "-s"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "no_verify",
            "label": "Skip pre-commit and commit-msg hooks",
            "type": "boolean",
            "option": [
              "--no-verify",
              "-n"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "allow_empty",
            "label": "Allow empty commit",
            "type": "boolean",
            "option": [
              "--allow-empty"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "dry_run",
            "label": "Dry run",
            "type": "boolean",
            "option": [
              "--dry-run"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "no_edit",
            "label": "Keep message without editor",
            "type": "boolean",
            "option": [
              "--no-edit"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "author",
            "label": "Author override",
            "type": "string",
            "option": [
              "--author"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "pathspec",
            "label": "Paths",
            "type": "path",
            "position": 0,
            "multiple": true,
            "path": {
              "kind": "any",
              "role": "input"
            },
            "sources": [
              "fig"
            ]
          }
        ],
        "task": [
          {
            "id": "commit-all",
            "label": "Commit all with message",
            "set": {
              "all": [
                true
              ]
            },
            "fields": [
              "message",
              "all"
            ],
            "required": [
              "message"
            ]
          },
          {
            "id": "amend-no-edit",
            "label": "Amend, keep message",
            "set": {
              "amend": [
                true
              ],
              "no_edit": [
                true
              ]
            },
            "fields": [
              "amend",
              "no_edit"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "message",
              "all",
              "amend"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "signoff",
              "no_verify",
              "allow_empty",
              "dry_run",
              "no_edit",
              "author",
              "pathspec"
            ]
          }
        ]
      },
      {
        "path": [
          "clone"
        ],
        "label": "Clone a repository",
        "source": [
          {
            "id": "fig",
            "kind": "completion",
            "url": "https://github.com/withfig/autocomplete/blob/master/src/git.ts",
            "license": "MIT"
          }
        ],
        "field": [
          {
            "id": "repository",
            "label": "Repository URL",
            "type": "string",
            "position": 0,
            "sources": [
              "fig"
            ]
          },
          {
            "id": "directory",
            "label": "Directory",
            "type": "path",
            "position": 1,
            "path": {
              "kind": "any",
              "role": "input"
            },
            "sources": [
              "fig"
            ]
          },
          {
            "id": "branch",
            "label": "Branch",
            "type": "string",
            "option": [
              "--branch",
              "-b"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "depth",
            "label": "Shallow depth",
            "type": "integer",
            "option": [
              "--depth"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "single_branch",
            "label": "Single branch only",
            "type": "boolean",
            "option": [
              "--single-branch"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "bare",
            "label": "Bare repository",
            "type": "boolean",
            "option": [
              "--bare"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "no_tags",
            "label": "Skip tags",
            "type": "boolean",
            "option": [
              "--no-tags"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "quiet",
            "label": "Quiet",
            "type": "boolean",
            "option": [
              "--quiet",
              "-q"
            ],
            "sources": [
              "fig"
            ]
          }
        ],
        "task": [
          {
            "id": "clone",
            "label": "Clone",
            "fields": [
              "repository",
              "directory",
              "branch"
            ],
            "required": [
              "repository"
            ]
          },
          {
            "id": "shallow",
            "label": "Shallow clone",
            "set": {
              "depth": [
                1
              ],
              "single_branch": [
                true
              ]
            },
            "fields": [
              "repository",
              "directory",
              "depth",
              "single_branch"
            ],
            "required": [
              "repository"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "repository",
              "directory"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "branch",
              "depth",
              "single_branch",
              "bare",
              "no_tags",
              "quiet"
            ]
          }
        ]
      },
      {
        "path": [
          "status"
        ],
        "label": "Show status",
        "source": [
          {
            "id": "fig",
            "kind": "completion",
            "url": "https://github.com/withfig/autocomplete/blob/master/src/git.ts",
            "license": "MIT"
          }
        ],
        "field": [
          {
            "id": "short",
            "label": "Short format",
            "type": "boolean",
            "option": [
              "--short",
              "-s"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "branch",
            "label": "Show branch",
            "type": "boolean",
            "option": [
              "--branch",
              "-b"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "show_stash",
            "label": "Show stash",
            "type": "boolean",
            "option": [
              "--show-stash"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "verbose",
            "label": "Verbose",
            "type": "boolean",
            "option": [
              "--verbose",
              "-v"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "porcelain",
            "label": "Porcelain",
            "type": "boolean",
            "option": [
              "--porcelain"
            ],
            "sources": [
              "fig"
            ]
          }
        ],
        "task": [
          {
            "id": "status",
            "label": "Short status",
            "set": {
              "short": [
                true
              ],
              "branch": [
                true
              ]
            },
            "fields": [
              "short",
              "branch"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "short",
              "branch"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "show_stash",
              "verbose",
              "porcelain"
            ]
          }
        ]
      },
      {
        "path": [
          "push"
        ],
        "label": "Push to a remote",
        "source": [
          {
            "id": "fig",
            "kind": "completion",
            "url": "https://github.com/withfig/autocomplete/blob/master/src/git.ts",
            "license": "MIT"
          }
        ],
        "field": [
          {
            "id": "remote",
            "label": "Remote",
            "type": "string",
            "position": 0,
            "suggestions": [
              {
                "value": "origin",
                "label": "origin"
              }
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "branch",
            "label": "Branch",
            "type": "string",
            "position": 1,
            "sources": [
              "fig"
            ]
          },
          {
            "id": "set_upstream",
            "label": "Set upstream",
            "type": "boolean",
            "option": [
              "--set-upstream",
              "-u"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "tags",
            "label": "Push tags",
            "type": "boolean",
            "option": [
              "--tags"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "dry_run",
            "label": "Dry run",
            "type": "boolean",
            "option": [
              "--dry-run",
              "-n"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "force_with_lease",
            "label": "Force with lease",
            "description": "Overwrites remote history if the remote ref is where you expect.",
            "type": "boolean",
            "option": [
              "--force-with-lease"
            ],
            "effect": "overwrite",
            "sources": [
              "fig"
            ]
          },
          {
            "id": "force",
            "label": "Force",
            "description": "Overwrites remote history.",
            "type": "boolean",
            "option": [
              "--force",
              "-f"
            ],
            "effect": "overwrite",
            "sources": [
              "fig"
            ]
          },
          {
            "id": "delete",
            "label": "Delete remote ref",
            "type": "boolean",
            "option": [
              "--delete",
              "-d"
            ],
            "effect": "delete",
            "sources": [
              "fig"
            ]
          },
          {
            "id": "no_verify",
            "label": "Skip pre-push hook",
            "type": "boolean",
            "option": [
              "--no-verify"
            ],
            "sources": [
              "fig"
            ]
          }
        ],
        "task": [
          {
            "id": "push-upstream",
            "label": "Push and set upstream",
            "set": {
              "set_upstream": [
                true
              ],
              "remote": [
                "origin"
              ]
            },
            "fields": [
              "remote",
              "branch",
              "set_upstream"
            ],
            "required": [
              "remote",
              "branch"
            ]
          },
          {
            "id": "dry-run",
            "label": "Preview push",
            "set": {
              "dry_run": [
                true
              ]
            },
            "fields": [
              "remote",
              "branch",
              "dry_run"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "remote",
              "branch",
              "set_upstream"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "tags",
              "dry_run",
              "force_with_lease",
              "force",
              "delete",
              "no_verify"
            ]
          }
        ]
      },
      {
        "path": [
          "pull"
        ],
        "label": "Pull from a remote",
        "source": [
          {
            "id": "fig",
            "kind": "completion",
            "url": "https://github.com/withfig/autocomplete/blob/master/src/git.ts",
            "license": "MIT"
          }
        ],
        "field": [
          {
            "id": "remote",
            "label": "Remote",
            "type": "string",
            "position": 0,
            "suggestions": [
              {
                "value": "origin",
                "label": "origin"
              }
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "branch",
            "label": "Branch",
            "type": "string",
            "position": 1,
            "sources": [
              "fig"
            ]
          },
          {
            "id": "ff_only",
            "label": "Fast-forward only",
            "type": "boolean",
            "option": [
              "--ff-only"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "no_ff",
            "label": "Always create merge commit",
            "type": "boolean",
            "option": [
              "--no-ff"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "no_commit",
            "label": "Do not commit the merge",
            "type": "boolean",
            "option": [
              "--no-commit"
            ],
            "sources": [
              "fig"
            ]
          }
        ],
        "task": [
          {
            "id": "ff-only",
            "label": "Fast-forward pull",
            "set": {
              "ff_only": [
                true
              ]
            },
            "fields": [
              "remote",
              "branch",
              "ff_only"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "remote",
              "branch",
              "ff_only"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "no_ff",
              "no_commit"
            ]
          }
        ]
      }
    ]
  }
}
