tangled
alpha
login
or
join now
davidpdrsn.tngl.sh
/
jj-sync-prs
1
fork
atom
this repo has no description
1
fork
atom
overview
issues
pulls
2
pipelines
include log in output and template
davidpdrsn.tngl.sh
2 months ago
e104d51e
656213ce
+43
-29
1 changed file
expand all
collapse all
unified
split
src
main.rs
+43
-29
src/main.rs
···
374
374
})?;
375
375
pulls[idx] = updated;
376
376
}
377
377
-
} else if Confirm::new()
378
378
-
.with_prompt(format!(
379
379
-
"PR from {target} <- {branch} doesn't exist. Do you want to create it?"
380
380
-
))
381
381
-
.default(true)
382
382
-
.interact()?
383
383
-
{
384
384
-
let repo_pulls = octocrab.pulls(&repo_info.owner, &repo_info.name);
377
377
+
} else {
378
378
+
let mut command = std::process::Command::new("jj");
379
379
+
command.args(["log", "-r", &format!("{target}::{branch}")]);
380
380
+
command.spawn()?.wait()?;
381
381
+
if Confirm::new()
382
382
+
.with_prompt(format!(
383
383
+
"PR from {target} <- {branch} doesn't exist. Do you want to create it?"
384
384
+
))
385
385
+
.default(true)
386
386
+
.interact()?
387
387
+
{
388
388
+
let repo_pulls = octocrab.pulls(&repo_info.owner, &repo_info.name);
385
389
386
386
-
let pull = if let Some((title, body)) = get_pr_title_and_body(branch, target)? {
387
387
-
repo_pulls.create(title, branch, target).body(body)
388
388
-
} else {
389
389
-
repo_pulls.create(branch, branch, target)
390
390
-
}
391
391
-
.draft(true)
392
392
-
.send()
393
393
-
.await
394
394
-
.with_context(|| format!("failed to create PR from {target} <- {branch}"))?;
390
390
+
let pull = if let Some((title, body)) = get_pr_title_and_body(branch, target)? {
391
391
+
repo_pulls.create(title, branch, target).body(body)
392
392
+
} else {
393
393
+
repo_pulls.create(branch, branch, target)
394
394
+
}
395
395
+
.draft(true)
396
396
+
.send()
397
397
+
.await
398
398
+
.with_context(|| format!("failed to create PR from {target} <- {branch}"))?;
395
399
396
396
-
if let Some(url) = &pull.html_url {
397
397
-
eprintln!("Created PR from {target} <- {branch}: {url}");
400
400
+
if let Some(url) = &pull.html_url {
401
401
+
eprintln!("Created PR from {target} <- {branch}: {url}");
402
402
+
} else {
403
403
+
eprintln!("Created PR from {target} <- {branch}");
404
404
+
}
405
405
+
pulls.push(pull);
398
406
} else {
399
399
-
eprintln!("Created PR from {target} <- {branch}");
407
407
+
eprintln!("skipping creating PR from {target} <- {branch}");
400
408
}
401
401
-
pulls.push(pull);
402
402
-
} else {
403
403
-
eprintln!("skipping creating PR from {target} <- {branch}");
404
409
}
405
410
406
411
Ok(())
···
494
499
let body = std::fs::read_to_string(".github/pull_request_template.md")
495
500
.unwrap_or_else(|_| "...and description here".to_owned());
496
501
502
502
+
let log = command(
503
503
+
"jj",
504
504
+
[
505
505
+
"log",
506
506
+
"--color",
507
507
+
"never",
508
508
+
"-r",
509
509
+
&format!("{target}..{branch}"),
510
510
+
"-T",
511
511
+
"builtin_log_detailed",
512
512
+
],
513
513
+
)?;
514
514
+
497
515
let diff = command(
498
516
"jj",
499
517
["diff", "--git", "-r", &format!("{target}..{branch}")],
···
529
547
writeln!(&mut template)?;
530
548
writeln!(&mut template)?;
531
549
writeln!(&mut template, "JJ: {ignored_marker}")?;
532
532
-
if count != 1 {
533
533
-
writeln!(&mut template)?;
534
534
-
write!(&mut template, "{commit_descriptions}")?;
535
535
-
}
550
550
+
writeln!(&mut template)?;
551
551
+
writeln!(&mut template, "{log}")?;
536
552
if !diff.trim().is_empty() {
537
537
-
writeln!(&mut template)?;
538
538
-
writeln!(&mut template)?;
539
553
writeln!(&mut template, "{diff}")?;
540
554
}
541
555