pub(crate) fn propose(rest: &[&str], auth: AuthOptions<'_>) -> !Expand description
choir propose [flags] [reviewer]...
The five-step path – provision, commit, push, checkpoint, request review – as one command, run from the contributor’s own checkout. Nothing here is a new endpoint; the command is the inference that supplies each step’s identifiers from what the checkout already knows, plus the ordering between them.
Unlike every other subcommand, the API base is a flag rather than the
first positional. That is the point of the command: the git remote
already names the node, and asking a newcomer to repeat it is the
friction being removed. --api and --repo override the inference
for a checkout whose remote is an ssh:// URL or a proxy.
The sequence stops at the first refusal and says which step stopped. It is safe to re-run: the change, workspace and idempotency key are derived from the branch name, so a second run resumes the same proposal rather than opening a second one.