diff --git a/docs/tools/forge-cli.md b/docs/tools/forge-cli.md index b44ba407..c1ab85db 100644 --- a/docs/tools/forge-cli.md +++ b/docs/tools/forge-cli.md @@ -534,7 +534,9 @@ Create a pull request * `--body-file ` — Read body from a file. `-` means stdin * `--draft` — Open as draft. Ignored in `--agit` mode * `--push` — Push the local `--head` branch to `--remote` before creating the PR -* `--remote ` — Remote to push to (default: `origin`) +* `--remote ` — Remote to push to + + Default value: `origin` * `--agit` — Open the PR via Forgejo's `AGit` flow instead of pushing a branch — works for read-only collaborators. Run from inside a cloned repo * `--topic ` — `AGit` topic — groups repeated pushes into one PR (re-run with the same topic to update it). Defaults to the branch name. Only meaningful with `--agit` * `--label ` — Label name to attach, repeatable (for example `--label area/ops --label type/bug`). Same spelling `labels add` accepts — an unresolved name errors out rather than silently attaching fewer labels than asked for. In `--agit` mode `pr create` applies this as a follow-up call once it learns the PR number (the `AGit` push itself has no label field), so it silently skips them (not a label-resolution error) if it couldn't parse the PR URL back out of the push output — same fallback as the deferred multi-line body diff --git a/hive-forge/src/verbs/pr_create.rs b/hive-forge/src/verbs/pr_create.rs index 1eba4db1..8885fca9 100644 --- a/hive-forge/src/verbs/pr_create.rs +++ b/hive-forge/src/verbs/pr_create.rs @@ -56,9 +56,9 @@ pub struct Args { /// Push the local `--head` branch to `--remote` before creating the PR. #[arg(long)] push: bool, - /// Remote to push to (default: `origin`). - #[arg(long)] - remote: Option, + /// Remote to push to. + #[arg(long, default_value = "origin")] + remote: String, /// Open the PR via Forgejo's `AGit` flow instead of pushing a branch — /// works for read-only collaborators. Run from inside a cloned repo. #[arg(long)] @@ -98,7 +98,7 @@ pub fn run(client: &Client, args: Args) -> Result<()> { .head .as_deref() .expect("clap requires --head unless --agit"); - let remote = args.remote.as_deref().unwrap_or("origin"); + let remote = args.remote.as_str(); if args.push { push_branch(remote, head)?; } @@ -149,7 +149,7 @@ pub fn run(client: &Client, args: Args) -> Result<()> { /// PATCH, mirroring the manual `pr create --title …` + `issue edit /// --body-file` two-step. fn agit_create(client: &Client, args: &Args, body: &str) -> Result<()> { - let remote = args.remote.as_deref().unwrap_or("origin"); + let remote = args.remote.as_str(); let topic = match &args.topic { Some(t) => t.clone(), None => current_branch().unwrap_or_else(|| "contribution".to_owned()),