Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
dcf47d6c
H
hub
项目概览
github
/
hub
10 个月 前同步成功
通知
3
Star
22523
Fork
2406
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hub
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
dcf47d6c
编写于
10月 07, 2019
作者:
T
Tom Lazar
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add format option to `git pr show`
上级
51a25659
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
95 addition
and
12 deletion
+95
-12
commands/pr.go
commands/pr.go
+23
-12
features/pr-show.feature
features/pr-show.feature
+72
-0
未找到文件。
commands/pr.go
浏览文件 @
dcf47d6c
...
...
@@ -17,7 +17,7 @@ var (
Usage
:
`
pr list [-s <STATE>] [-h <HEAD>] [-b <BASE>] [-o <SORT_KEY> [-^]] [-f <FORMAT>] [-L <LIMIT>]
pr checkout <PR-NUMBER> [<BRANCH>]
pr show [-uc] [-h <HEAD>]
pr show [-uc] [-h <HEAD>]
[-f <FORMAT>]
pr show [-uc] <PR-NUMBER>
`
,
Long
:
`Manage GitHub Pull Requests for the current repository.
...
...
@@ -160,13 +160,9 @@ hub-issue(1), hub-pull-request(1), hub(1)
}
cmdShowPr
=
&
Command
{
Key
:
"show"
,
Run
:
showPr
,
KnownFlags
:
`
-h, --head HEAD
-u, --url
-c, --copy
`
,
Key
:
"show"
,
Run
:
showPr
,
Long
:
cmdPr
.
Long
,
}
)
...
...
@@ -283,8 +279,9 @@ func showPr(command *Command, args *Args) {
words
:=
args
.
Words
()
openUrl
:=
""
prNumber
:=
0
if
len
(
words
)
>
0
{
if
prNumber
,
err
:
=
strconv
.
Atoi
(
words
[
0
]);
err
==
nil
{
if
prNumber
,
err
=
strconv
.
Atoi
(
words
[
0
]);
err
==
nil
{
openUrl
=
baseProject
.
WebURL
(
""
,
""
,
fmt
.
Sprintf
(
"pull/%d"
,
prNumber
))
}
else
{
utils
.
Check
(
fmt
.
Errorf
(
"invalid pull request number: '%s'"
,
words
[
0
]))
...
...
@@ -293,12 +290,26 @@ func showPr(command *Command, args *Args) {
pr
,
err
:=
findCurrentPullRequest
(
localRepo
,
baseProject
,
args
.
Flag
.
Value
(
"--head"
))
utils
.
Check
(
err
)
openUrl
=
pr
.
HtmlUrl
prNumber
=
pr
.
Number
}
args
.
NoForward
()
printUrl
:=
args
.
Flag
.
Bool
(
"--url"
)
copyUrl
:=
args
.
Flag
.
Bool
(
"--copy"
)
printBrowseOrCopy
(
args
,
openUrl
,
!
printUrl
&&
!
copyUrl
,
copyUrl
)
if
format
:=
args
.
Flag
.
Value
(
"--format"
);
format
!=
""
{
host
,
err
:=
github
.
CurrentConfig
()
.
PromptForHost
(
baseProject
.
Host
)
utils
.
Check
(
err
)
client
:=
github
.
NewClientWithHost
(
host
)
pr
,
err
:=
client
.
PullRequest
(
baseProject
,
strconv
.
Itoa
(
prNumber
))
utils
.
Check
(
err
)
// ui.Println(pr.Number)
colorize
:=
colorizeOutput
(
args
.
Flag
.
HasReceived
(
"--color"
),
args
.
Flag
.
Value
(
"--color"
))
ui
.
Println
(
formatPullRequest
(
*
pr
,
format
,
colorize
))
}
else
{
printUrl
:=
args
.
Flag
.
Bool
(
"--url"
)
copyUrl
:=
args
.
Flag
.
Bool
(
"--copy"
)
printBrowseOrCopy
(
args
,
openUrl
,
!
printUrl
&&
!
copyUrl
,
copyUrl
)
}
}
func
findCurrentPullRequest
(
localRepo
*
github
.
GitHubRepo
,
baseProject
*
github
.
Project
,
headArg
string
)
(
*
github
.
PullRequest
,
error
)
{
...
...
features/pr-show.feature
浏览文件 @
dcf47d6c
...
...
@@ -35,6 +35,48 @@ Feature: hub pr show
And the output should contain exactly
:
"""
https://github.com/ashemesh/hub/pull/102\n
"""
Scenario
:
Format Current branch output URL
Given
I am on the
"topic"
branch
Given the GitHub API server
:
"""
get('/repos/ashemesh/hub/pulls'){
assert :state => "open",
:head => "ashemesh:topic"
json [
{
:html_url => "https://github.com/ashemesh/hub/pull/102",
:number => 102
},
]
}
get('/repos/ashemesh/hub/pulls/102') {
json :number => 999,
:title => "First",
:state => "open",
:base => {
:ref => "master",
:label => "github:master",
:repo => { :owner => { :login => "github" } }
},
:head => { :ref => "patch-1", :label => "octocat:patch-1" },
:user => { :login => "octocat" },
:requested_reviewers => [
{ :login => "rey" },
],
:requested_teams => [
{ :slug => "troopers" },
{ :slug => "cantina-band" },
]
}
"""
When
I successfully run `hub pr show -f
"%sC%>(8)%i %rs%n"
`
Then "open https
:
//github.com/ashemesh/hub/pull/102"
should
not
be
run
And the output should contain exactly
:
"""
#999 rey, github/troopers, github/cantina-band\n
"""
Scenario
:
Current branch in fork
...
...
@@ -146,6 +188,36 @@ Feature: hub pr show
When
I successfully run `hub pr show 102`
Then "open https
:
//github.com/ashemesh/hub/pull/102"
should
be
run
Scenario
:
Format pull request by number
Given the GitHub API server
:
"""
get('/repos/ashemesh/hub/pulls/102') {
json :number => 999,
:title => "First",
:state => "open",
:base => {
:ref => "master",
:label => "github:master",
:repo => { :owner => { :login => "github" } }
},
:head => { :ref => "patch-1", :label => "octocat:patch-1" },
:user => { :login => "octocat" },
:requested_reviewers => [
{ :login => "rey" },
],
:requested_teams => [
{ :slug => "troopers" },
{ :slug => "cantina-band" },
]
}
"""
When
I successfully run `hub pr show 102 -f
"%sC%>(8)%i %rs%n"
`
Then "open https
:
//github.com/ashemesh/hub/pull/102"
should
not
be
run
And the output should contain exactly
:
"""
#999 rey, github/troopers, github/cantina-band\n
"""
Scenario
:
Show pull request by invalid number
When
I run `hub pr show XYZ`
Then
the exit status should be 1
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录