shipit 2.0.0

Shipit is an open source command line interface for managing merge requests, changelogs, tags, and releases using a plan and apply interface. Built with coding agent integration in mind.
Documentation
# Command-Line Help for `shipit`

This document contains the help content for the `shipit` command-line program.

**Command Overview:**

* [`shipit`]#shipit
* [`shipit b2b`]#shipit-b2b
* [`shipit b2b plan`]#shipit-b2b-plan
* [`shipit b2b apply`]#shipit-b2b-apply
* [`shipit b2t`]#shipit-b2t
* [`shipit b2t plan`]#shipit-b2t-plan
* [`shipit b2t apply`]#shipit-b2t-apply
* [`shipit init`]#shipit-init

## `shipit`

**Usage:** `shipit [OPTIONS] [COMMAND]`

###### **Subcommands:**

* `b2b` — Open or apply a merge/pull request (alias: `t2b`)
* `b2t` — Plan or apply an annotated tag on a branch
* `init` — Write the default config to the platform config directory (overwrites existing config)

###### **Options:**

* `-v`, `--verbose` — Increase log verbosity (`-v` for info, `-vv` for debug)



## `shipit b2b`

Open or apply a merge/pull request

**Usage:** `shipit b2b <SUBCOMMAND>`

**Alias:** `t2b`

###### **Subcommands:**

* `plan` — Generate a plan file for a merge/pull request without creating it
* `apply` — Open a merge/pull request using a plan file from `.shipit/plans/`



## `shipit b2b plan`

Generate a plan file for a merge/pull request without creating it

**Usage:** `shipit b2b plan [OPTIONS] <SOURCE> <TARGET>`

###### **Arguments:**

* `<SOURCE>` — Source branch to open the merge/pull request from
* `<TARGET>` — Target branch to merge into

###### **Options:**

* `-c`, `--conventional-commits` — Categorize commits by conventional commit type and structure the description accordingly
* `--dir <DIR>` — Path to the git repository (default: present working directory)
* `--remote <REMOTE>` — Name of the git remote to use

  Default value: `origin`
* `--title <TITLE>` — Title to use for the merge/pull request (default: `Release Candidate vX.Y.Z`)
* `--description <DESCRIPTION>` — Description to use for the merge/pull request; when combined with `--title`, skips commit discovery entirely
* `--only-merges` — Only include merge commits in the discovered commits
* `--no-sign` — Do not append the 'generated by Shipit' line to the created description
* `-y`, `--yes` — Automatically approve all shipit command prompts
* `--yaml` — Emit the plan as YAML to stdout (useful for piping to `yq`; adds a `plan_file` field)
* `--allow-dirty` — Continue even if the working directory has uncommitted changes



## `shipit b2b apply`

Open a merge/pull request using a plan file from `.shipit/plans/`

**Usage:** `shipit b2b apply [OPTIONS] <PLAN>`

###### **Arguments:**

* `<PLAN>` — Name of the plan file in `.shipit/plans/` to apply

###### **Options:**

* `--dir <DIR>` — Path to the git repository (default: present working directory)
* `--remote <REMOTE>` — Name of the git remote to use

  Default value: `origin`
* `--allow-dirty` — Continue even if the working directory has uncommitted changes
* `-y`, `--yes` — Automatically approve all shipit command prompts



## `shipit b2t`

Plan or apply an annotated tag on a branch

**Usage:** `shipit b2t <SUBCOMMAND>`

###### **Subcommands:**

* `plan` — Generate a plan file for a tag without creating it
* `apply` — Create and push a tag using a plan file from `.shipit/plans/`



## `shipit b2t plan`

Generate a plan file for a tag without creating it

**Usage:** `shipit b2t plan [OPTIONS] <BRANCH> [TAG]`

###### **Arguments:**

* `<BRANCH>` — Branch to create the tag on
* `[TAG]` — Name of the tag to create (default: next semantic version derived from commits)

###### **Options:**

* `-c`, `--conventional-commits` — Categorize commits by conventional commit type and structure the notes accordingly
* `--dir <DIR>` — Path to the git repository (default: present working directory)
* `--remote <REMOTE>` — Name of the git remote to use

  Default value: `origin`
* `--description <DESCRIPTION>` — Description to use for the tag notes; skips commit discovery when provided
* `--only-merges` — Only include merge commits in the discovered commits
* `--latest-tag <LATEST_TAG>` — The most recent tag to compare against (default: most recent tag on the branch)
* `--no-sign` — Do not append the 'generated by Shipit' line to the tag notes
* `-y`, `--yes` — Automatically approve all shipit command prompts
* `--yaml` — Emit the plan as YAML to stdout (useful for piping to `yq`; adds a `plan_file` field)
* `--allow-dirty` — Continue even if the working directory has uncommitted changes



## `shipit b2t apply`

Create and push a tag using a plan file from `.shipit/plans/`

**Usage:** `shipit b2t apply [OPTIONS] <PLAN>`

###### **Arguments:**

* `<PLAN>` — Name of the plan file in `.shipit/plans/` to apply

###### **Options:**

* `--dir <DIR>` — Path to the git repository (default: present working directory)
* `--remote <REMOTE>` — Name of the git remote to use

  Default value: `origin`
* `--allow-dirty` — Continue even if the working directory has uncommitted changes
* `-y`, `--yes` — Automatically approve all shipit command prompts



## `shipit init`

Write the default config to the platform config directory (overwrites existing config)

**Usage:** `shipit init [OPTIONS]`

###### **Options:**

* `--dir <DIR>` — Directory to write the config file to (default: present working directory)
* `--platform-token <PLATFORM_TOKEN>` — Platform personal access token
* `--platform-domain <PLATFORM_DOMAIN>` — Platform domain (e.g. `github.com`, `gitlab.com`)



<hr/>

<small><i>
    This document was generated automatically by
    <a href="https://crates.io/crates/clap-markdown"><code>clap-markdown</code></a>.
</i></small>