Watch
0
0
Fork
You've already forked hyperhive
0

Compare commits

...
Author SHA1 Message Date
atlas
15424d3e49 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.
2026-09-19 20:33:48 +02:00
atlas
18f0199566 hive-forge: default pr create --push remote to origin
Fresh clones only have origin, not forge. The --remote override
already covers anyone using a different name.

Closes #4538
2026-09-19 18:16:55 +02:00
2 changed files with 9 additions and 7 deletions

View file

@ -534,7 +534,9 @@ Create a pull request
* `--body-file <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>` — Remote to push to (default: `forge`, or `origin` in `--agit` mode)
* `--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
* `--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

View file

@ -3,7 +3,7 @@
//! the PR URL.
//!
//! With `--push` the local `--head` branch is pushed to `--remote`
//! (default `forge`) before the API call, and forgejo's post-push
//! (default `origin`) before the API call, and forgejo's post-push
//! "Create a new pull request" / "Visit the existing pull request"
//! hint block is filtered out of git's stderr (we print the canonical
//! URL ourselves once the API returns). Other git stderr passes
@ -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: `forge`, or `origin` in `--agit` mode).
#[arg(long)]
remote: Option<String>,
/// 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("forge");
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()),