id = "mob" name = "mob" homepage = "https://mob.sh" description = "Fast git handover for remote pair/mob programming." executables = ["mob"] [dotfiles] # https://mob.sh/#configure — "Override default value permanently via a `.mob` # file in your user home or in your git project repository root." The user # file is confirmed in configuration/configuration.go: # userConfigurationPath := userHomeDir + "/.mob" # The project-root `.mob` belongs to the repository, not to the user, so it is # not listed here. On Windows os.UserHomeDir() is the user profile, which is # the same `~/.mob` once the consumer resolves it. paths = ["~/.mob"] exclude = [] # MOB_* keys are branch names, commit messages, timer room and squash policy. # The timer service is addressed by room name, not by a token, so nothing in # the file is a credential. secret = [] # Read once per `mob` invocation by a process that then exits. side_effect = false # No machine_lines: everything in the file is a team or personal preference # that should follow the user. MOB_VOICE_COMMAND / MOB_NOTIFY_COMMAND default # to an OS-specific command, but a user who wrote one into ~/.mob wrote the one # they want, and the default is filled in per platform when the key is absent. [commands] format = 1 label = "mob" description = "Fast git handover for mob programming. Use the subcommand tabs for start, next and done." quality = "ai-draft" base = "fig:mob" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/mob.ts" license = "MIT" [[commands.subcommand]] path = ["start"] label = "Start a session" description = "Start a mob session from the base branch in a wip branch, optionally with a timer." parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/mob.ts" license = "MIT" [[commands.subcommand.field]] id = "minutes" label = "Timer (minutes)" type = "integer" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "include_uncommitted" label = "Move uncommitted changes to the wip branch" type = "boolean" option = ["--include-uncommitted-changes", "-i"] sources = ["fig"] [[commands.subcommand.field]] id = "branch" label = "Branch postfix" type = "string" option = ["--branch", "-b"] sources = ["fig"] [[commands.subcommand.task]] id = "start" label = "Start session" fields = ["minutes", "include_uncommitted", "branch"] required = [] [[commands.subcommand.task]] id = "timed" label = "Start with a 10 minute timer" fields = ["minutes"] required = ["minutes"] set = { minutes = [10] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["minutes", "include_uncommitted", "branch"] [[commands.subcommand]] path = ["next"] label = "Hand over" description = "Hand over changes in the wip branch to the next person." parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/mob.ts" license = "MIT" [[commands.subcommand.field]] id = "stay" label = "Stay on wip branch" type = "boolean" option = ["--stay", "-s"] sources = ["fig"] [[commands.subcommand.field]] id = "return_to_base" label = "Return to base branch" type = "boolean" option = ["--return-to-base-branch", "-r"] sources = ["fig"] [[commands.subcommand.field]] id = "message" label = "Commit message" type = "string" option = ["--message", "-m"] sources = ["fig"] [[commands.subcommand.task]] id = "next" label = "Hand over" fields = ["message", "return_to_base"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["stay", "return_to_base", "message"] [[commands.subcommand]] path = ["done"] label = "Finish the session" description = "Squash the wip branch into the base branch index." parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/mob.ts" license = "MIT" [[commands.subcommand.field]] id = "squash" label = "Squash all commits" type = "boolean" option = ["--squash"] sources = ["fig"] [[commands.subcommand.field]] id = "squash_wip" label = "Squash wip commits only" type = "boolean" option = ["--squash-wip"] sources = ["fig"] [[commands.subcommand.field]] id = "no_squash" label = "Do not squash, only merge" type = "boolean" option = ["--no-squash"] sources = ["fig"] [[commands.subcommand.task]] id = "done" label = "Finish" fields = ["squash", "squash_wip", "no_squash"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["squash", "squash_wip", "no_squash"]