From 1b5365dc556aa4d064218fbaa93ccefa55703156 Mon Sep 17 00:00:00 2001 From: inhere Date: Sat, 6 Jun 2020 18:40:52 +0800 Subject: [PATCH] update soe --- app/Console/Group/GitLabGroup.php | 22 +++++++++++++++------- app/Helper/AppHelper.php | 2 +- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/app/Console/Group/GitLabGroup.php b/app/Console/Group/GitLabGroup.php index 96b9791..0cb8afc 100644 --- a/app/Console/Group/GitLabGroup.php +++ b/app/Console/Group/GitLabGroup.php @@ -13,10 +13,12 @@ use Inhere\Console\Exception\PromptException; use Inhere\Console\IO\Input; use Inhere\Console\IO\Output; +use Inhere\Kite\Helper\AppHelper; use Inhere\Kite\Helper\GitUtil; use function array_merge; use function explode; use function http_build_query; +use function in_array; use function parse_str; use function parse_url; use function trim; @@ -106,6 +108,7 @@ protected function prLinkConfigure(Input $input): void * @options * -s, --source The source branch * -t, --target The target branch + * -o, --open Open the generated PR link on browser * --sync The target branch will same source branch * * @argument @@ -132,7 +135,7 @@ public function prLinkCommand(Input $input, Output $output): void $pjInfo = $this->projects[$pjName]; $link = $this->config['hostUrl']; - $link .= "/{$pjInfo['group']}/{$pjInfo['group']}/merge_requests/new?"; + $link .= "/{$pjInfo['group']}/{$pjInfo['name']}/merge_requests/new?"; $brPrefix = $this->config['branchPrefix']; $fixedBrs = $this->config['fixedBranch']; @@ -141,12 +144,11 @@ public function prLinkCommand(Input $input, Output $output): void $forkPjId = $pjInfo['forkProjectId']; $curBranch = GitUtil::getCurrentBranchName(); - $srcBranch = $input->getSameStringOpt(['s', 'source']); $tgtBranch = $input->getSameStringOpt(['t', 'target']); if ($srcBranch ) { - if (!\in_array($srcBranch, $fixedBrs, true)) { + if (!in_array($srcBranch, $fixedBrs, true)) { $srcBranch = $brPrefix . $srcBranch; } } else { @@ -154,7 +156,7 @@ public function prLinkCommand(Input $input, Output $output): void } if ($tgtBranch) { - if (!\in_array($tgtBranch, $fixedBrs, true)) { + if (!in_array($tgtBranch, $fixedBrs, true)) { $tgtBranch = $brPrefix . $tgtBranch; } } else { @@ -171,15 +173,21 @@ public function prLinkCommand(Input $input, Output $output): void $tipInfo = array_merge([ 'project' => $pjName, ], $prInfo); - $output->aList($tipInfo, 'PR information', ['ucFirst' => false]); + $output->aList($tipInfo, 'information', ['ucFirst' => false]); $query = [ 'utf8' => '✓', 'merge_request' => $prInfo ]; - $queryString = http_build_query($query, '', '&'); + $link .= http_build_query($query, '', '&'); + + if ($input->getSameBoolOpt(['o', 'open'])) { + // $output->info('will auto open link on browser'); + AppHelper::openBrowser($link); + } else { + $output->colored("PR Link:\n " . $link); + } - $output->info("PR link:\n " . $link . $queryString); $output->success('Complete'); } diff --git a/app/Helper/AppHelper.php b/app/Helper/AppHelper.php index ac368e0..c3bb698 100644 --- a/app/Helper/AppHelper.php +++ b/app/Helper/AppHelper.php @@ -91,6 +91,6 @@ public static function openBrowser(string $pageUrl): void } Show::info("Will open the page on browser: $pageUrl"); - Sys::execute($cmd . ' ' . $pageUrl); + Sys::execute($cmd . " \"{$pageUrl}\""); } }