From b9e5118b9a2a1f6ffad5acbf1e1cf045bd3b42ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ozan=20Ka=C5=9F=C4=B1k=C3=A7=C4=B1?= Date: Fri, 26 Sep 2025 14:15:33 +0300 Subject: [PATCH 1/3] pr-github command --- README.md | 4 + src/cli/mod.rs | 91 ++++- src/commands/cd/mod.rs | 5 +- src/commands/mod.rs | 1 + src/commands/pr_github/mod.rs | 664 ++++++++++++++++++++++++++++++++++ src/commands/rm/mod.rs | 3 +- tests/commands.rs | 2 + tests/commands/pr_github.rs | 224 ++++++++++++ tests/commands/rm.rs | 3 +- 9 files changed, 993 insertions(+), 4 deletions(-) create mode 100644 src/commands/pr_github/mod.rs create mode 100644 tests/commands/pr_github.rs diff --git a/README.md b/README.md index 618b858..61bd7d1 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,10 @@ - Remove the named worktree. Pass `--force` to mirror `git worktree remove --force` behavior. - Demo: ![Remove demo](tapes/gifs/rm.gif) +- `rsworktree pr-github [] [--no-push] [--draft] [--fill] [--web] [--reviewer ...] [-- ]` + - Push the worktree branch (unless `--no-push`) and invoke `gh pr create` with the provided options. When `` is omitted, the command uses the current `.rsworktree/` directory. Because `rsworktree` calls `gh` non-interactively, pass `--fill` or provide `--title/--body` (or open `--web`) so the PR metadata can be supplied. + - Requires the [GitHub CLI](https://cli.github.com/) (`gh`) to be installed and on your `PATH`. + ## Environment Set `RSWORKTREE_SHELL` to override the shell used by `rsworktree cd` (falls back to `$SHELL` or `/bin/sh`). diff --git a/src/cli/mod.rs b/src/cli/mod.rs index a2a5407..e9f983a 100644 --- a/src/cli/mod.rs +++ b/src/cli/mod.rs @@ -1,8 +1,15 @@ +use std::env; + use clap::{Parser, Subcommand}; +use color_eyre::eyre::{self, WrapErr}; + use crate::{ Repo, - commands::{cd::CdCommand, create::CreateCommand, list::ListCommand, rm::RemoveCommand}, + commands::{ + cd::CdCommand, create::CreateCommand, list::ListCommand, pr_github::PrGithubCommand, + rm::RemoveCommand, + }, }; #[derive(Parser, Debug)] @@ -22,6 +29,8 @@ enum Commands { Cd(CdArgs), /// Remove a worktree tracked in `.rsworktree`. Rm(RmArgs), + /// Create a GitHub pull request for the worktree's branch using the GitHub CLI. + PrGithub(PrGithubArgs), } #[derive(Parser, Debug)] @@ -51,6 +60,33 @@ struct RmArgs { force: bool, } +#[derive(Parser, Debug)] +struct PrGithubArgs { + /// Name of the worktree to prepare a PR from (defaults to the current worktree) + name: Option, + /// Skip pushing the branch before creating the PR + #[arg(long = "no-push")] + no_push: bool, + /// Mark the PR as a draft + #[arg(long)] + draft: bool, + /// Prefill the PR title and body from commits + #[arg(long)] + fill: bool, + /// Open the PR creation flow in the browser + #[arg(long)] + web: bool, + /// Remote to push the branch to before creating the PR + #[arg(long, default_value = "origin")] + remote: String, + /// Request reviews from the given GitHub handles + #[arg(long = "reviewer", value_name = "login")] + reviewers: Vec, + /// Additional arguments passed directly to `gh pr create` + #[arg(last = true, value_name = "ARG")] + extra: Vec, +} + pub fn run() -> color_eyre::Result<()> { let cli = Cli::parse(); let repo = Repo::discover()?; @@ -72,7 +108,60 @@ pub fn run() -> color_eyre::Result<()> { let command = RemoveCommand::new(args.name, args.force); command.execute(&repo)?; } + Commands::PrGithub(args) => { + let worktree_name = resolve_worktree_name(args.name, &repo)?; + let mut command = PrGithubCommand::new( + worktree_name, + !args.no_push, + args.draft, + args.fill, + args.web, + args.remote, + args.reviewers, + args.extra, + ); + command.execute(&repo)?; + } } Ok(()) } + +fn resolve_worktree_name(name: Option, repo: &Repo) -> color_eyre::Result { + if let Some(name) = name { + return Ok(name); + } + + let cwd = env::current_dir().wrap_err("failed to read current directory")?; + let canonical_cwd = cwd.canonicalize().unwrap_or(cwd); + + let worktrees_dir = repo.ensure_worktrees_dir()?; + let canonical_worktrees_dir = worktrees_dir + .canonicalize() + .unwrap_or_else(|_| worktrees_dir.clone()); + + if !canonical_cwd.starts_with(&canonical_worktrees_dir) { + return Err(eyre::eyre!( + "`rsworktree pr-github` without must be run from inside `{}`. Current directory: `{}`.", + worktrees_dir.display(), + canonical_cwd.display() + )); + } + + let relative = canonical_cwd + .strip_prefix(&canonical_worktrees_dir) + .wrap_err("failed to compute path relative to worktrees directory")?; + + let components = relative + .components() + .map(|component| component.as_os_str().to_string_lossy().into_owned()) + .collect::>(); + + if components.is_empty() { + return Err(eyre::eyre!( + "Run `rsworktree pr-github` from inside a specific worktree (e.g. `.rsworktree/`)." + )); + } + + Ok(components.join("/")) +} diff --git a/src/commands/cd/mod.rs b/src/commands/cd/mod.rs index ae56004..32a9014 100644 --- a/src/commands/cd/mod.rs +++ b/src/commands/cd/mod.rs @@ -54,9 +54,12 @@ impl CdCommand { .if_supports_color(Stream::Stdout, |text| { format!("{}", text.blue().bold()) }) ); let (program, args) = shell_command(); - let mut cmd = Command::new(program); + println!("Spawning shell `{}` in `{}`...", program, path); + + let mut cmd = Command::new(&program); cmd.args(args); cmd.current_dir(&canonical); + cmd.env("PWD", &canonical); cmd.status() .wrap_err("failed to spawn subshell")? .success() diff --git a/src/commands/mod.rs b/src/commands/mod.rs index 0dd36af..0ed0efb 100644 --- a/src/commands/mod.rs +++ b/src/commands/mod.rs @@ -2,4 +2,5 @@ pub mod cd; pub mod create; pub mod list; +pub mod pr_github; pub mod rm; diff --git a/src/commands/pr_github/mod.rs b/src/commands/pr_github/mod.rs new file mode 100644 index 0000000..75f80f9 --- /dev/null +++ b/src/commands/pr_github/mod.rs @@ -0,0 +1,664 @@ +use std::{ + fmt, + path::{Path, PathBuf}, + process::Command, +}; + +use color_eyre::eyre::{self, WrapErr}; +use owo_colors::{OwoColorize, Stream}; + +use crate::Repo; + +#[derive(Debug)] +pub struct PrGithubCommand { + name: String, + push: bool, + draft: bool, + fill: bool, + web: bool, + remote: String, + reviewers: Vec, + extra_args: Vec, + runner: R, +} + +impl PrGithubCommand { + pub fn new( + name: String, + push: bool, + draft: bool, + fill: bool, + web: bool, + remote: String, + reviewers: Vec, + extra_args: Vec, + ) -> Self { + Self::with_runner( + name, + push, + draft, + fill, + web, + remote, + reviewers, + extra_args, + SystemCommandRunner, + ) + } +} + +impl PrGithubCommand +where + R: CommandRunner, +{ + pub fn with_runner( + name: String, + push: bool, + draft: bool, + fill: bool, + web: bool, + remote: String, + reviewers: Vec, + extra_args: Vec, + runner: R, + ) -> Self { + Self { + name, + push, + draft, + fill, + web, + remote, + reviewers, + extra_args, + runner, + } + } + + pub fn execute(&mut self, repo: &Repo) -> color_eyre::Result<()> { + let worktree_path = self.ensure_worktree_path(repo)?; + let branch = self.determine_branch(&worktree_path)?; + + let branch_label = format_with_color(&branch, |text| format!("{}", text.magenta().bold())); + let path_label = format_with_color(&worktree_path.display().to_string(), |text| { + format!("{}", text.blue()) + }); + println!( + "Preparing GitHub PR for `{}` from `{}`...", + branch_label, path_label + ); + + self.ensure_pr_metadata_options()?; + + if self.push { + self.push_branch(&worktree_path, &branch)?; + } else { + let message = format!("Skipping push for `{}` (push disabled).", branch_label); + println!( + "{}", + message.if_supports_color(Stream::Stdout, |text| { format!("{}", text.dimmed()) }) + ); + } + + self.create_pull_request(&worktree_path, &branch) + } + + fn ensure_worktree_path(&self, repo: &Repo) -> color_eyre::Result { + let worktrees_dir = repo.ensure_worktrees_dir()?; + let worktree_path = worktrees_dir.join(&self.name); + if !worktree_path.exists() { + return Err(eyre::eyre!( + "worktree `{}` does not exist under `{}`", + self.name, + worktrees_dir.display() + )); + } + Ok(worktree_path) + } + + fn determine_branch(&mut self, worktree_path: &Path) -> color_eyre::Result { + let args = vec![ + "rev-parse".to_owned(), + "--abbrev-ref".to_owned(), + "HEAD".to_owned(), + ]; + let output = self + .runner + .run("git", worktree_path, &args) + .wrap_err("failed to determine current branch with `git rev-parse`")?; + + if !output.success { + return Err(command_failure("git", &args, &output)); + } + + let branch = output.stdout.trim(); + if branch.is_empty() { + return Err(eyre::eyre!("`git rev-parse` produced empty branch name")); + } + + Ok(branch.to_owned()) + } + + fn push_branch(&mut self, worktree_path: &Path, branch: &str) -> color_eyre::Result<()> { + let args = vec![ + "push".to_owned(), + "-u".to_owned(), + self.remote.clone(), + branch.to_owned(), + ]; + let output = self + .runner + .run("git", worktree_path, &args) + .wrap_err("failed to run `git push`")?; + + if !output.success { + return Err(command_failure("git", &args, &output)); + } + + let remote_label = format_with_color(&self.remote, |text| format!("{}", text.green())); + let branch_label = format_with_color(branch, |text| format!("{}", text.magenta().bold())); + println!("Pushed `{}` to remote `{}`.", branch_label, remote_label); + + Ok(()) + } + + fn create_pull_request( + &mut self, + worktree_path: &Path, + branch: &str, + ) -> color_eyre::Result<()> { + let mut args = vec!["pr".to_owned(), "create".to_owned()]; + args.push("--head".to_owned()); + args.push(branch.to_owned()); + + if self.draft { + args.push("--draft".to_owned()); + } + if self.fill { + args.push("--fill".to_owned()); + } + if self.web { + args.push("--web".to_owned()); + } + + for reviewer in &self.reviewers { + args.push("--reviewer".to_owned()); + args.push(reviewer.clone()); + } + + args.extend(self.extra_args.clone()); + + let output = self + .runner + .run("gh", worktree_path, &args) + .wrap_err("failed to run `gh pr create`")?; + + if !output.success { + return Err(command_failure("gh", &args, &output)); + } + + let branch_label = format_with_color(branch, |text| format!("{}", text.magenta().bold())); + println!("GitHub pull request created for `{}`.", branch_label); + Ok(()) + } + + fn ensure_pr_metadata_options(&self) -> color_eyre::Result<()> { + if self.fill || self.web { + return Ok(()); + } + + if self + .extra_args + .iter() + .any(|arg| metadata_flag_allows_noninteractive(arg)) + { + return Ok(()); + } + + Err(eyre::eyre!( + "`rsworktree pr-github` runs `gh pr create` in non-interactive mode. Provide PR metadata with `--fill`, `--title/--body`, or use `--web` to open the browser." + )) + } +} + +fn command_failure(program: &str, args: &[String], output: &CommandOutput) -> color_eyre::Report { + let command_line = format_command(program, args); + let status = match output.status_code { + Some(code) => format!("exit status {code}"), + None => "termination by signal".to_owned(), + }; + + let mut message = format!("`{command_line}` failed with {status}"); + let stderr = output.stderr.trim(); + if !stderr.is_empty() { + message.push('\n'); + message.push_str(stderr); + } + + eyre::eyre!(message) +} + +fn format_with_color(value: &str, paint: impl Fn(&str) -> String) -> String { + value + .if_supports_color(Stream::Stdout, |text| paint(text)) + .to_string() +} + +fn format_command(program: &str, args: &[String]) -> String { + let mut parts = Vec::with_capacity(1 + args.len()); + parts.push(quote_arg(program)); + for arg in args { + parts.push(quote_arg(arg)); + } + parts.join(" ") +} + +fn metadata_flag_allows_noninteractive(arg: &str) -> bool { + let cleaned = arg.trim(); + if cleaned == "--" { + return false; + } + + matches!( + cleaned, + "--fill" + | "-f" + | "--fill-first" + | "--fill-verbose" + | "--web" + | "-w" + | "--title" + | "-t" + | "--body" + | "-b" + | "--body-file" + | "-F" + ) || cleaned.starts_with("--title=") + || cleaned.starts_with("--body=") + || cleaned.starts_with("--body-file=") +} + +fn quote_arg(value: &str) -> String { + if value + .chars() + .all(|c| matches!(c, 'a'..='z' | 'A'..='Z' | '0'..='9' | '-' | '_' | '.' | '/' | '=')) + { + value.to_owned() + } else { + let escaped = value.replace('\'', "'\\''"); + format!("'{escaped}'") + } +} + +#[derive(Debug, Clone)] +pub struct CommandOutput { + pub stdout: String, + pub stderr: String, + pub success: bool, + pub status_code: Option, +} + +pub trait CommandRunner { + fn run( + &mut self, + program: &str, + current_dir: &Path, + args: &[String], + ) -> color_eyre::Result; +} + +#[derive(Debug, Clone, Default)] +pub struct SystemCommandRunner; + +impl CommandRunner for SystemCommandRunner { + fn run( + &mut self, + program: &str, + current_dir: &Path, + args: &[String], + ) -> color_eyre::Result { + let output = Command::new(program) + .current_dir(current_dir) + .args(args) + .output() + .wrap_err_with(|| { + eyre::eyre!("failed to execute `{}`", format_command(program, args)) + })?; + + Ok(CommandOutput { + stdout: String::from_utf8_lossy(&output.stdout).into_owned(), + stderr: String::from_utf8_lossy(&output.stderr).into_owned(), + success: output.status.success(), + status_code: output.status.code(), + }) + } +} + +impl fmt::Display for CommandOutput { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!( + f, + "success: {}, status_code: {:?}, stdout: {:?}, stderr: {:?}", + self.success, self.status_code, self.stdout, self.stderr + ) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::{collections::VecDeque, fs}; + + use tempfile::TempDir; + + #[derive(Debug, Default)] + struct MockCommandRunner { + responses: VecDeque>, + calls: Vec, + } + + #[derive(Debug, PartialEq, Eq)] + struct RecordedCall { + program: String, + dir: PathBuf, + args: Vec, + } + + impl CommandRunner for MockCommandRunner { + fn run( + &mut self, + program: &str, + current_dir: &Path, + args: &[String], + ) -> color_eyre::Result { + self.calls.push(RecordedCall { + program: program.to_owned(), + dir: current_dir.to_path_buf(), + args: args.to_vec(), + }); + self.responses + .pop_front() + .unwrap_or_else(|| Err(eyre::eyre!("unexpected command invocation"))) + } + } + + fn init_git_repo(dir: &TempDir) -> color_eyre::Result<()> { + run(dir, ["git", "init"])?; + fs::write(dir.path().join("README.md"), "test")?; + run(dir, ["git", "add", "README.md"])?; + run( + dir, + [ + "git", + "-c", + "user.name=Test", + "-c", + "user.email=test@example.com", + "commit", + "-m", + "Initial commit", + ], + )?; + Ok(()) + } + + fn run(dir: &TempDir, cmd: impl IntoIterator) -> color_eyre::Result<()> { + let mut iter = cmd.into_iter(); + let program = iter.next().expect("command must not be empty"); + let status = Command::new(program) + .current_dir(dir.path()) + .args(iter) + .status() + .wrap_err_with(|| eyre::eyre!("failed to run `{program}`"))?; + + if !status.success() { + return Err(eyre::eyre!("`{program}` exited with status {status}")); + } + + Ok(()) + } + + #[test] + fn executes_push_and_gh() -> color_eyre::Result<()> { + let repo_dir = TempDir::new()?; + init_git_repo(&repo_dir)?; + let repo = Repo::discover_from(repo_dir.path())?; + let worktree_path = repo.worktrees_dir().join("feature/test"); + fs::create_dir_all(&worktree_path)?; + + let mut runner = MockCommandRunner::default(); + runner.responses.push_back(Ok(CommandOutput { + stdout: "feature/test\n".into(), + stderr: String::new(), + success: true, + status_code: Some(0), + })); + runner.responses.push_back(Ok(CommandOutput { + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + })); + runner.responses.push_back(Ok(CommandOutput { + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + })); + + let mut command = PrGithubCommand::with_runner( + "feature/test".into(), + true, + false, + true, + false, + "origin".into(), + vec!["octocat".into()], + vec!["--label".into(), "ready".into()], + runner, + ); + + command.execute(&repo)?; + + let expected_calls = vec![ + RecordedCall { + program: "git".into(), + dir: worktree_path.clone(), + args: vec!["rev-parse".into(), "--abbrev-ref".into(), "HEAD".into()], + }, + RecordedCall { + program: "git".into(), + dir: worktree_path.clone(), + args: vec![ + "push".into(), + "-u".into(), + "origin".into(), + "feature/test".into(), + ], + }, + RecordedCall { + program: "gh".into(), + dir: worktree_path.clone(), + args: vec![ + "pr".into(), + "create".into(), + "--head".into(), + "feature/test".into(), + "--fill".into(), + "--reviewer".into(), + "octocat".into(), + "--label".into(), + "ready".into(), + ], + }, + ]; + + assert_eq!(command.runner.calls, expected_calls); + + Ok(()) + } + + #[test] + fn skips_push_when_disabled() -> color_eyre::Result<()> { + let repo_dir = TempDir::new()?; + init_git_repo(&repo_dir)?; + let repo = Repo::discover_from(repo_dir.path())?; + let worktree_path = repo.worktrees_dir().join("feature/test"); + fs::create_dir_all(&worktree_path)?; + + let mut runner = MockCommandRunner::default(); + runner.responses.push_back(Ok(CommandOutput { + stdout: "feature/test\n".into(), + stderr: String::new(), + success: true, + status_code: Some(0), + })); + runner.responses.push_back(Ok(CommandOutput { + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + })); + + let mut command = PrGithubCommand::with_runner( + "feature/test".into(), + false, + true, + true, + true, + "origin".into(), + Vec::new(), + Vec::new(), + runner, + ); + + command.execute(&repo)?; + + let expected_calls = vec![ + RecordedCall { + program: "git".into(), + dir: worktree_path.clone(), + args: vec!["rev-parse".into(), "--abbrev-ref".into(), "HEAD".into()], + }, + RecordedCall { + program: "gh".into(), + dir: worktree_path.clone(), + args: vec![ + "pr".into(), + "create".into(), + "--head".into(), + "feature/test".into(), + "--draft".into(), + "--fill".into(), + "--web".into(), + ], + }, + ]; + + assert_eq!(command.runner.calls, expected_calls); + + Ok(()) + } + + #[test] + fn errors_when_worktree_missing() -> color_eyre::Result<()> { + let repo_dir = TempDir::new()?; + init_git_repo(&repo_dir)?; + let repo = Repo::discover_from(repo_dir.path())?; + + let mut command = PrGithubCommand::with_runner( + "missing".into(), + true, + false, + false, + false, + "origin".into(), + Vec::new(), + Vec::new(), + MockCommandRunner::default(), + ); + + let err = command.execute(&repo).unwrap_err(); + assert!(err.to_string().contains("does not exist")); + Ok(()) + } + + #[test] + fn surfaces_command_failure() -> color_eyre::Result<()> { + let repo_dir = TempDir::new()?; + init_git_repo(&repo_dir)?; + let repo = Repo::discover_from(repo_dir.path())?; + let worktree_path = repo.worktrees_dir().join("feature/test"); + fs::create_dir_all(&worktree_path)?; + + let mut runner = MockCommandRunner::default(); + runner.responses.push_back(Ok(CommandOutput { + stdout: String::new(), + stderr: "fatal: detached HEAD".into(), + success: false, + status_code: Some(128), + })); + + let mut command = PrGithubCommand::with_runner( + "feature/test".into(), + true, + false, + false, + false, + "origin".into(), + Vec::new(), + Vec::new(), + runner, + ); + + let err = command.execute(&repo).unwrap_err(); + assert!(err.to_string().contains("git rev-parse")); + Ok(()) + } + + #[test] + fn errors_when_missing_metadata_flags() -> color_eyre::Result<()> { + let repo_dir = TempDir::new()?; + init_git_repo(&repo_dir)?; + let repo = Repo::discover_from(repo_dir.path())?; + let worktree_path = repo.worktrees_dir().join("feature/test"); + fs::create_dir_all(&worktree_path)?; + + let mut runner = MockCommandRunner::default(); + runner.responses.push_back(Ok(CommandOutput { + stdout: "feature/test\n".into(), + stderr: String::new(), + success: true, + status_code: Some(0), + })); + + let mut command = PrGithubCommand::with_runner( + "feature/test".into(), + true, + false, + false, + false, + "origin".into(), + Vec::new(), + Vec::new(), + runner, + ); + + let err = command.execute(&repo).unwrap_err(); + assert!( + err.to_string() + .contains("Provide PR metadata with `--fill`") + ); + + assert_eq!( + command.runner.calls, + vec![RecordedCall { + program: "git".into(), + dir: worktree_path, + args: vec!["rev-parse".into(), "--abbrev-ref".into(), "HEAD".into()], + }] + ); + + Ok(()) + } +} diff --git a/src/commands/rm/mod.rs b/src/commands/rm/mod.rs index f8ddf20..83143d0 100644 --- a/src/commands/rm/mod.rs +++ b/src/commands/rm/mod.rs @@ -109,8 +109,9 @@ impl RemoveCommand { println!("Now in root `{}`.", root_display); let (program, args) = shell_command(); - let status = Command::new(program) + let status = Command::new(&program) .args(args) + .env("PWD", repo.root()) .status() .wrap_err("failed to spawn root shell")?; diff --git a/tests/commands.rs b/tests/commands.rs index 1d7e224..bff4363 100644 --- a/tests/commands.rs +++ b/tests/commands.rs @@ -4,5 +4,7 @@ mod cd; mod create; #[path = "commands/list.rs"] mod list; +#[path = "commands/pr_github.rs"] +mod pr_github; #[path = "commands/rm.rs"] mod rm; diff --git a/tests/commands/pr_github.rs b/tests/commands/pr_github.rs new file mode 100644 index 0000000..9fba423 --- /dev/null +++ b/tests/commands/pr_github.rs @@ -0,0 +1,224 @@ +#![cfg(unix)] + +use std::{ + env, + error::Error, + ffi::OsString, + fs, + path::{Path, PathBuf}, + process::Command as StdCommand, +}; + +#[cfg(unix)] +use std::os::unix::fs::PermissionsExt; + +use assert_cmd::Command; +use predicates::prelude::*; +use tempfile::TempDir; + +struct StubGh { + _dir: TempDir, + path_value: OsString, + log_path: PathBuf, +} + +fn init_git_repo(dir: &Path) -> Result<(), Box> { + run(dir, ["git", "init"])?; + fs::write(dir.join("README.md"), "test")?; + run(dir, ["git", "add", "README.md"])?; + run( + dir, + [ + "git", + "-c", + "user.name=Test", + "-c", + "user.email=test@example.com", + "commit", + "-m", + "Initial commit", + ], + )?; + Ok(()) +} + +fn run(dir: &Path, cmd: impl IntoIterator) -> Result<(), Box> { + let mut iter = cmd.into_iter(); + let program = iter.next().expect("command must not be empty"); + let status = StdCommand::new(program) + .current_dir(dir) + .args(iter) + .status()?; + + if !status.success() { + return Err(format!("`{program}` exited with status {status}").into()); + } + + Ok(()) +} + +#[test] +fn pr_github_reports_missing_worktree() -> Result<(), Box> { + let repo_dir = TempDir::new()?; + init_git_repo(repo_dir.path())?; + + Command::cargo_bin("rsworktree")? + .current_dir(repo_dir.path()) + .args(["pr-github", "missing", "--no-push"]) + .assert() + .failure() + .stderr(predicate::str::contains("does not exist")); + + Ok(()) +} + +#[test] +fn pr_github_invokes_gh_with_expected_arguments() -> Result<(), Box> { + let repo_dir = TempDir::new()?; + init_git_repo(repo_dir.path())?; + + Command::cargo_bin("rsworktree")? + .current_dir(repo_dir.path()) + .env("RSWORKTREE_SHELL", "env") + .args(["create", "feature/test"]) + .assert() + .success(); + + let stub = install_stub_gh()?; + + Command::cargo_bin("rsworktree")? + .current_dir(repo_dir.path()) + .env("PATH", &stub.path_value) + .env("GH_LOG", &stub.log_path) + .args([ + "pr-github", + "feature/test", + "--no-push", + "--draft", + "--fill", + "--reviewer", + "octocat", + "--", + "--label", + "ready", + ]) + .assert() + .success() + .stdout(predicate::str::contains("GitHub pull request created")); + + let log_contents = fs::read_to_string(&stub.log_path)?; + let worktree_path = repo_dir + .path() + .join(".rsworktree") + .join("feature/test") + .canonicalize()?; + assert!(log_contents.contains(worktree_path.to_string_lossy().as_ref())); + assert!(log_contents.contains( + "args:pr create --head feature/test --draft --fill --reviewer octocat --label ready" + )); + + Ok(()) +} + +#[test] +fn pr_github_defaults_to_current_worktree() -> Result<(), Box> { + let repo_dir = TempDir::new()?; + init_git_repo(repo_dir.path())?; + + Command::cargo_bin("rsworktree")? + .current_dir(repo_dir.path()) + .env("RSWORKTREE_SHELL", "env") + .args(["create", "feature/test"]) + .assert() + .success(); + + let worktree_path = repo_dir + .path() + .join(".rsworktree") + .join("feature/test") + .canonicalize()?; + + let stub = install_stub_gh()?; + + Command::cargo_bin("rsworktree")? + .current_dir(&worktree_path) + .env("PATH", &stub.path_value) + .env("GH_LOG", &stub.log_path) + .args(["pr-github", "--no-push", "--fill", "--", "--label", "ready"]) + .assert() + .success(); + + let log_contents = fs::read_to_string(&stub.log_path)?; + let worktree_display = worktree_path.to_string_lossy().into_owned(); + assert!(log_contents.contains(&worktree_display)); + assert!(log_contents.contains("args:pr create --head feature/test --fill --label ready")); + + Ok(()) +} + +#[test] +fn pr_github_without_name_errors_outside_worktree() -> Result<(), Box> { + let repo_dir = TempDir::new()?; + init_git_repo(repo_dir.path())?; + + Command::cargo_bin("rsworktree")? + .current_dir(repo_dir.path()) + .args(["pr-github"]) + .assert() + .failure() + .stderr(predicate::str::contains("must be run from inside")); + + Ok(()) +} + +#[test] +fn pr_github_requires_metadata_when_noninteractive() -> Result<(), Box> { + let repo_dir = TempDir::new()?; + init_git_repo(repo_dir.path())?; + + Command::cargo_bin("rsworktree")? + .current_dir(repo_dir.path()) + .env("RSWORKTREE_SHELL", "env") + .args(["create", "feature/test"]) + .assert() + .success(); + + let worktree_path = repo_dir.path().join(".rsworktree").join("feature/test"); + + Command::cargo_bin("rsworktree")? + .current_dir(&worktree_path) + .args(["pr-github", "--no-push"]) + .assert() + .failure() + .stderr(predicate::str::contains("Provide PR metadata")); + + Ok(()) +} + +fn install_stub_gh() -> Result> { + let stub_dir = TempDir::new()?; + let gh_log = stub_dir.path().join("gh.log"); + let gh_path = stub_dir.path().join("gh"); + fs::write( + &gh_path, + "#! /bin/sh\n\nprintf '%s\n' \"$PWD\" > \"$GH_LOG\"\nprintf 'args:%s\n' \"$*\" >> \"$GH_LOG\"\n", + )?; + #[cfg(unix)] + { + let mut perms = fs::metadata(&gh_path)?.permissions(); + perms.set_mode(0o755); + fs::set_permissions(&gh_path, perms)?; + } + + let mut path_value = OsString::from(stub_dir.path()); + if let Some(existing) = env::var_os("PATH") { + path_value.push(":"); + path_value.push(existing); + } + + Ok(StubGh { + _dir: stub_dir, + path_value, + log_path: gh_log, + }) +} diff --git a/tests/commands/rm.rs b/tests/commands/rm.rs index 51043ba..258b1a9 100644 --- a/tests/commands/rm.rs +++ b/tests/commands/rm.rs @@ -111,6 +111,7 @@ fn rm_command_spawns_root_shell_when_called_inside_worktree() -> Result<(), Box< .path() .join(".rsworktree") .join("feature/move-back"); + let repo_root = repo_dir.path().canonicalize()?; Command::cargo_bin("rsworktree")? .current_dir(&worktree_path) @@ -120,7 +121,7 @@ fn rm_command_spawns_root_shell_when_called_inside_worktree() -> Result<(), Box< .success() .stdout(predicate::str::contains(format!( "PWD={}", - repo_dir.path().display() + repo_root.display() ))); Ok(()) From de5c8d8f0dad7482073b0e855dfe8cb54ef399bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ozan=20Ka=C5=9F=C4=B1k=C3=A7=C4=B1?= Date: Fri, 26 Sep 2025 14:26:40 +0300 Subject: [PATCH 2/3] use --fill by default --- README.md | 2 +- src/commands/pr_github/mod.rs | 155 ++++++++++++++++++++++++++++------ tests/commands/pr_github.rs | 18 +++- 3 files changed, 142 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 61bd7d1..4c37eaa 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ - Demo: ![Remove demo](tapes/gifs/rm.gif) - `rsworktree pr-github [] [--no-push] [--draft] [--fill] [--web] [--reviewer ...] [-- ]` - - Push the worktree branch (unless `--no-push`) and invoke `gh pr create` with the provided options. When `` is omitted, the command uses the current `.rsworktree/` directory. Because `rsworktree` calls `gh` non-interactively, pass `--fill` or provide `--title/--body` (or open `--web`) so the PR metadata can be supplied. + - Push the worktree branch (unless `--no-push`) and invoke `gh pr create` with the provided options. When `` is omitted, the command uses the current `.rsworktree/` directory. If you don’t supply PR metadata flags, `rsworktree` automatically adds `--fill`; alternatively, pass `--title/--body` or `--web` to override that behaviour. - Requires the [GitHub CLI](https://cli.github.com/) (`gh`) to be installed and on your `PATH`. ## Environment diff --git a/src/commands/pr_github/mod.rs b/src/commands/pr_github/mod.rs index 75f80f9..7e033b3 100644 --- a/src/commands/pr_github/mod.rs +++ b/src/commands/pr_github/mod.rs @@ -202,7 +202,7 @@ where Ok(()) } - fn ensure_pr_metadata_options(&self) -> color_eyre::Result<()> { + fn ensure_pr_metadata_options(&mut self) -> color_eyre::Result<()> { if self.fill || self.web { return Ok(()); } @@ -215,9 +215,11 @@ where return Ok(()); } - Err(eyre::eyre!( - "`rsworktree pr-github` runs `gh pr create` in non-interactive mode. Provide PR metadata with `--fill`, `--title/--body`, or use `--web` to open the browser." - )) + let note = "No PR metadata flags provided; defaulting to `--fill`."; + let message = note.if_supports_color(Stream::Stdout, |text| format!("{}", text.yellow())); + println!("{}", message); + self.fill = true; + Ok(()) } } @@ -427,8 +429,58 @@ mod tests { fs::create_dir_all(&worktree_path)?; let mut runner = MockCommandRunner::default(); + runner.responses.extend([ + Ok(CommandOutput { + stdout: "feature/test\n".into(), + stderr: String::new(), + success: true, + status_code: Some(0), + }), + Ok(CommandOutput { + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + }), + Ok(CommandOutput { + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + }), + ]); + runner.responses.push_back(Ok(CommandOutput { + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + })); + runner.responses.push_back(Ok(CommandOutput { + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + })); + runner.responses.push_back(Ok(CommandOutput { + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + })); runner.responses.push_back(Ok(CommandOutput { - stdout: "feature/test\n".into(), + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + })); + runner.responses.push_back(Ok(CommandOutput { + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + })); + runner.responses.push_back(Ok(CommandOutput { + stdout: String::new(), stderr: String::new(), success: true, status_code: Some(0), @@ -507,12 +559,26 @@ mod tests { fs::create_dir_all(&worktree_path)?; let mut runner = MockCommandRunner::default(); - runner.responses.push_back(Ok(CommandOutput { - stdout: "feature/test\n".into(), - stderr: String::new(), - success: true, - status_code: Some(0), - })); + runner.responses.extend([ + Ok(CommandOutput { + stdout: "feature/test\n".into(), + stderr: String::new(), + success: true, + status_code: Some(0), + }), + Ok(CommandOutput { + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + }), + Ok(CommandOutput { + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + }), + ]); runner.responses.push_back(Ok(CommandOutput { stdout: String::new(), stderr: String::new(), @@ -617,7 +683,7 @@ mod tests { } #[test] - fn errors_when_missing_metadata_flags() -> color_eyre::Result<()> { + fn defaults_to_fill_when_metadata_missing() -> color_eyre::Result<()> { let repo_dir = TempDir::new()?; init_git_repo(&repo_dir)?; let repo = Repo::discover_from(repo_dir.path())?; @@ -625,12 +691,26 @@ mod tests { fs::create_dir_all(&worktree_path)?; let mut runner = MockCommandRunner::default(); - runner.responses.push_back(Ok(CommandOutput { - stdout: "feature/test\n".into(), - stderr: String::new(), - success: true, - status_code: Some(0), - })); + runner.responses.extend([ + Ok(CommandOutput { + stdout: "feature/test\n".into(), + stderr: String::new(), + success: true, + status_code: Some(0), + }), + Ok(CommandOutput { + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + }), + Ok(CommandOutput { + stdout: String::new(), + stderr: String::new(), + success: true, + status_code: Some(0), + }), + ]); let mut command = PrGithubCommand::with_runner( "feature/test".into(), @@ -644,19 +724,38 @@ mod tests { runner, ); - let err = command.execute(&repo).unwrap_err(); - assert!( - err.to_string() - .contains("Provide PR metadata with `--fill`") - ); + command.execute(&repo)?; assert_eq!( command.runner.calls, - vec![RecordedCall { - program: "git".into(), - dir: worktree_path, - args: vec!["rev-parse".into(), "--abbrev-ref".into(), "HEAD".into()], - }] + vec![ + RecordedCall { + program: "git".into(), + dir: worktree_path.clone(), + args: vec!["rev-parse".into(), "--abbrev-ref".into(), "HEAD".into()], + }, + RecordedCall { + program: "git".into(), + dir: worktree_path.clone(), + args: vec![ + "push".into(), + "-u".into(), + "origin".into(), + "feature/test".into() + ], + }, + RecordedCall { + program: "gh".into(), + dir: worktree_path, + args: vec![ + "pr".into(), + "create".into(), + "--head".into(), + "feature/test".into(), + "--fill".into(), + ], + }, + ] ); Ok(()) diff --git a/tests/commands/pr_github.rs b/tests/commands/pr_github.rs index 9fba423..8bc39d6 100644 --- a/tests/commands/pr_github.rs +++ b/tests/commands/pr_github.rs @@ -172,7 +172,7 @@ fn pr_github_without_name_errors_outside_worktree() -> Result<(), Box } #[test] -fn pr_github_requires_metadata_when_noninteractive() -> Result<(), Box> { +fn pr_github_defaults_to_fill_when_metadata_missing() -> Result<(), Box> { let repo_dir = TempDir::new()?; init_git_repo(repo_dir.path())?; @@ -183,14 +183,24 @@ fn pr_github_requires_metadata_when_noninteractive() -> Result<(), Box Date: Fri, 26 Sep 2025 14:53:46 +0300 Subject: [PATCH 3/3] readme: add gh pr command --- README.md | 3 ++- tapes/gifs/pr_github.gif | Bin 0 -> 137754 bytes tapes/pr_github.tape | 13 +++++++++++++ tapes/scripts/reset_tapes.sh | 3 ++- tapes/scripts/run_all.sh | 2 +- 5 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 tapes/gifs/pr_github.gif create mode 100644 tapes/pr_github.tape diff --git a/README.md b/README.md index 4c37eaa..7af7899 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,8 @@ - Demo: ![Remove demo](tapes/gifs/rm.gif) - `rsworktree pr-github [] [--no-push] [--draft] [--fill] [--web] [--reviewer ...] [-- ]` - - Push the worktree branch (unless `--no-push`) and invoke `gh pr create` with the provided options. When `` is omitted, the command uses the current `.rsworktree/` directory. If you don’t supply PR metadata flags, `rsworktree` automatically adds `--fill`; alternatively, pass `--title/--body` or `--web` to override that behaviour. + - Push the worktree branch (unless `--no-push`) and invoke `gh pr create` with the provided options. When `` is omitted, the command uses the current `.rsworktree/` directory. If you don’t supply PR metadata flags, `rsworktree` automatically adds `--fill`; you can pass `--title/--body` or `--web` to override that behaviour. + - Demo: ![PR demo](tapes/gifs/pr_github.gif) - Requires the [GitHub CLI](https://cli.github.com/) (`gh`) to be installed and on your `PATH`. ## Environment diff --git a/tapes/gifs/pr_github.gif b/tapes/gifs/pr_github.gif new file mode 100644 index 0000000000000000000000000000000000000000..86885291438b1b1b249b286a1958bf6058083501 GIT binary patch literal 137754 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/dev/null 2>&1; then echo "rsworktree is not on PATH. Install it or run `cargo install --path .` from the repo." >&2 @@ -20,3 +20,4 @@ for name in "${names[@]}"; do done git worktree prune >/dev/null 2>&1 || true +rm -rf "$REPO_ROOT/.bin" diff --git a/tapes/scripts/run_all.sh b/tapes/scripts/run_all.sh index 48f231c..67ce589 100755 --- a/tapes/scripts/run_all.sh +++ b/tapes/scripts/run_all.sh @@ -17,6 +17,6 @@ cd "$REPO_ROOT" mkdir -p "$TAPES_DIR/gifs" -for tape in create cd ls rm; do +for tape in create cd ls rm pr_github; do vhs < "$TAPES_DIR/${tape}.tape" done