hive-forge: move pr create --remote's origin default onto the clap arg
Puts the default on #[arg(long, default_value = "origin")] instead of
duplicating unwrap_or("origin") at both call sites (REST/--push path
and agit_create). clap now renders the default in --help itself, so
the hand-written doc-comment default is dropped in favor of it.
Regenerated docs/tools/forge-cli.md to match.
This commit is contained in:
parent
18f0199566
commit
15424d3e49
2 changed files with 8 additions and 6 deletions
|
|
@ -534,7 +534,9 @@ Create a pull request
|
||||||
* `--body-file <BODY_FILE>` — Read body from a file. `-` means stdin
|
* `--body-file <BODY_FILE>` — Read body from a file. `-` means stdin
|
||||||
* `--draft` — Open as draft. Ignored in `--agit` mode
|
* `--draft` — Open as draft. Ignored in `--agit` mode
|
||||||
* `--push` — Push the local `--head` branch to `--remote` before creating the PR
|
* `--push` — Push the local `--head` branch to `--remote` before creating the PR
|
||||||
* `--remote <REMOTE>` — Remote to push to (default: `origin`)
|
* `--remote <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
|
* `--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 <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`
|
* `--topic <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 <LABELS>` — 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
|
* `--label <LABELS>` — 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
|
||||||
|
|
|
||||||
|
|
@ -56,9 +56,9 @@ pub struct Args {
|
||||||
/// Push the local `--head` branch to `--remote` before creating the PR.
|
/// Push the local `--head` branch to `--remote` before creating the PR.
|
||||||
#[arg(long)]
|
#[arg(long)]
|
||||||
push: bool,
|
push: bool,
|
||||||
/// Remote to push to (default: `origin`).
|
/// Remote to push to.
|
||||||
#[arg(long)]
|
#[arg(long, default_value = "origin")]
|
||||||
remote: Option<String>,
|
remote: String,
|
||||||
/// Open the PR via Forgejo's `AGit` flow instead of pushing a branch —
|
/// Open the PR via Forgejo's `AGit` flow instead of pushing a branch —
|
||||||
/// works for read-only collaborators. Run from inside a cloned repo.
|
/// works for read-only collaborators. Run from inside a cloned repo.
|
||||||
#[arg(long)]
|
#[arg(long)]
|
||||||
|
|
@ -98,7 +98,7 @@ pub fn run(client: &Client, args: Args) -> Result<()> {
|
||||||
.head
|
.head
|
||||||
.as_deref()
|
.as_deref()
|
||||||
.expect("clap requires --head unless --agit");
|
.expect("clap requires --head unless --agit");
|
||||||
let remote = args.remote.as_deref().unwrap_or("origin");
|
let remote = args.remote.as_str();
|
||||||
if args.push {
|
if args.push {
|
||||||
push_branch(remote, head)?;
|
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
|
/// PATCH, mirroring the manual `pr create --title …` + `issue edit
|
||||||
/// --body-file` two-step.
|
/// --body-file` two-step.
|
||||||
fn agit_create(client: &Client, args: &Args, body: &str) -> Result<()> {
|
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 {
|
let topic = match &args.topic {
|
||||||
Some(t) => t.clone(),
|
Some(t) => t.clone(),
|
||||||
None => current_branch().unwrap_or_else(|| "contribution".to_owned()),
|
None => current_branch().unwrap_or_else(|| "contribution".to_owned()),
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue