Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
c4b343b6
H
hub
项目概览
github
/
hub
大约 1 年 前同步成功
通知
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,发现更多精彩内容 >>
提交
c4b343b6
编写于
4月 28, 2013
作者:
J
Jingwen Owen Ou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Return html url to PR
上级
5a67989a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
34 addition
and
17 deletion
+34
-17
git_hub.go
git_hub.go
+31
-16
pull_request.go
pull_request.go
+3
-1
未找到文件。
git_hub.go
浏览文件 @
c4b343b6
...
...
@@ -38,16 +38,16 @@ type GitHub struct {
Authorization
string
}
func
(
gh
*
GitHub
)
call
(
request
*
http
.
Request
)
(
response
*
http
.
Response
,
err
error
)
{
func
(
gh
*
GitHub
)
call
(
request
*
http
.
Request
)
(
*
http
.
Response
,
error
)
{
request
.
Header
.
Set
(
"Authorization"
,
"token "
+
gh
.
Authorization
)
response
,
err
=
gh
.
httpClient
.
Do
(
request
)
response
,
err
:
=
gh
.
httpClient
.
Do
(
request
)
if
err
!=
nil
{
return
return
response
,
err
}
if
response
.
StatusCode
!=
422
{
return
return
response
,
err
}
body
,
err
:=
ioutil
.
ReadAll
(
response
.
Body
)
...
...
@@ -55,7 +55,7 @@ func (gh *GitHub) call(request *http.Request) (response *http.Response, err erro
var
unprocessable
unprocessableEntity
err
=
json
.
Unmarshal
(
body
,
&
unprocessable
)
if
err
!=
nil
{
return
return
response
,
err
}
errorMessages
:=
make
([]
string
,
len
(
unprocessable
.
Errors
))
...
...
@@ -86,28 +86,25 @@ func (gh *GitHub) call(request *http.Request) (response *http.Response, err erro
err
=
errors
.
New
(
text
)
}
return
return
response
,
err
}
func
(
gh
*
GitHub
)
httpPost
(
uri
string
,
extraHeaders
map
[
string
]
string
,
content
*
bytes
.
Buffer
)
(
response
*
http
.
Response
,
err
error
)
{
func
(
gh
*
GitHub
)
httpPost
(
uri
string
,
extraHeaders
map
[
string
]
string
,
content
*
bytes
.
Buffer
)
(
*
http
.
Response
,
error
)
{
url
:=
fmt
.
Sprintf
(
"%s%s"
,
GitHubUrl
,
uri
)
request
,
err
:=
http
.
NewRequest
(
"POST"
,
url
,
content
)
if
err
!=
nil
{
return
return
nil
,
err
}
// Add (any of) the extra headers to the request
if
extraHeaders
!=
nil
{
for
h
,
v
:=
range
extraHeaders
{
request
.
Header
.
Set
(
h
,
v
)
}
}
// Set the Content-Type header
request
.
Header
.
Set
(
"Content-Type"
,
"application/json; charset=utf-8"
)
response
,
err
=
gh
.
call
(
request
)
return
return
gh
.
call
(
request
)
}
type
PullRequestParams
struct
{
...
...
@@ -117,15 +114,33 @@ type PullRequestParams struct {
Head
string
`json:"head"`
}
func
(
gh
*
GitHub
)
CreatePullRequest
(
owner
,
repo
string
,
params
PullRequestParams
)
(
err
error
)
{
type
PullRequestResponse
struct
{
Url
string
`json:"url"`
HtmlUrl
string
`json:"html_url"`
DiffUrl
string
`json:"diff_url"`
PatchUrl
string
`json:"patch_url"`
IssueUrl
string
`json:"issue_url"`
}
func
(
gh
*
GitHub
)
CreatePullRequest
(
owner
,
repo
string
,
params
PullRequestParams
)
(
*
PullRequestResponse
,
error
)
{
b
,
err
:=
json
.
Marshal
(
params
)
if
err
!=
nil
{
return
return
nil
,
err
}
buffer
:=
bytes
.
NewBuffer
(
b
)
url
:=
"/repos/"
+
owner
+
"/"
+
repo
+
"/pulls"
_
,
err
=
gh
.
httpPost
(
url
,
nil
,
buffer
)
response
,
err
:=
gh
.
httpPost
(
url
,
nil
,
buffer
)
js
,
err
:=
ioutil
.
ReadAll
(
response
.
Body
)
if
err
!=
nil
{
return
nil
,
err
}
var
pullRequestResponse
PullRequestResponse
err
=
json
.
Unmarshal
(
js
,
&
pullRequestResponse
)
if
err
!=
nil
{
return
nil
,
err
}
return
err
return
&
pullRequestResponse
,
nil
}
pull_request.go
浏览文件 @
c4b343b6
...
...
@@ -63,10 +63,12 @@ func pullRequest(cmd *Command, args []string) {
}
params
:=
PullRequestParams
{
title
,
body
,
flagPullRequestBase
,
flagPullRequestHead
}
err
=
gh
.
CreatePullRequest
(
git
.
Owner
(),
git
.
Repo
(),
params
)
pullRequestResponse
,
err
:
=
gh
.
CreatePullRequest
(
git
.
Owner
(),
git
.
Repo
(),
params
)
if
err
!=
nil
{
log
.
Fatal
(
err
)
}
fmt
.
Println
(
pullRequestResponse
.
HtmlUrl
)
}
func
writePullRequestChanges
(
messageFile
,
base
,
head
string
)
error
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录