Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
d6430af4
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,发现更多精彩内容 >>
提交
d6430af4
编写于
3月 27, 2014
作者:
J
Jingwen Owen Ou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Extract out logic of building api host
上级
e84a6d6f
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
57 addition
and
35 deletion
+57
-35
github/apihost.go
github/apihost.go
+32
-0
github/apihost_test.go
github/apihost_test.go
+18
-0
github/client.go
github/client.go
+6
-23
github/client_test.go
github/client_test.go
+1
-12
未找到文件。
github/apihost.go
0 → 100644
浏览文件 @
d6430af4
package
github
import
(
"net/url"
"os"
)
type
apiHost
struct
{
Host
string
}
func
(
ah
*
apiHost
)
String
()
string
{
host
:=
os
.
Getenv
(
"GH_API_HOST"
)
if
host
==
""
&&
ah
.
Host
!=
""
{
host
=
ah
.
Host
}
if
host
==
GitHubHost
{
host
=
GitHubApiHost
}
return
absolute
(
host
)
}
func
absolute
(
endpoint
string
)
string
{
u
,
_
:=
url
.
Parse
(
endpoint
)
if
u
.
Scheme
==
""
{
u
.
Scheme
=
"https"
}
return
u
.
String
()
}
github/apihost_test.go
0 → 100644
浏览文件 @
d6430af4
package
github
import
(
"testing"
"github.com/bmizerany/assert"
)
func
TestApiHost_String
(
t
*
testing
.
T
)
{
ah
:=
&
apiHost
{
"github.com"
}
assert
.
Equal
(
t
,
"https://api.github.com"
,
ah
.
String
())
ah
=
&
apiHost
{
"github.corporate.com"
}
assert
.
Equal
(
t
,
"https://github.corporate.com"
,
ah
.
String
())
ah
=
&
apiHost
{
"http://github.corporate.com"
}
assert
.
Equal
(
t
,
"http://github.corporate.com"
,
ah
.
String
())
}
github/client.go
浏览文件 @
d6430af4
...
...
@@ -339,7 +339,7 @@ func (client *Client) GhLatestTagName() (tagName string, err error) {
return
}
c
:=
octokit
.
NewClientWith
(
client
.
api
Endpoin
t
(),
UserAgent
,
nil
,
nil
)
c
:=
octokit
.
NewClientWith
(
client
.
api
Hos
t
(),
UserAgent
,
nil
,
nil
)
releases
,
result
:=
c
.
Releases
(
client
.
requestURL
(
url
))
.
All
()
if
result
.
HasError
()
{
err
=
fmt
.
Errorf
(
"Error getting gh release: %s"
,
result
.
Err
)
...
...
@@ -385,7 +385,7 @@ func (client *Client) FindOrCreateToken(user, password, twoFactorCode string) (t
}
basicAuth
:=
octokit
.
BasicAuth
{
Login
:
user
,
Password
:
password
,
OneTimePassword
:
twoFactorCode
}
c
:=
octokit
.
NewClientWith
(
client
.
api
Endpoin
t
(),
UserAgent
,
basicAuth
,
nil
)
c
:=
octokit
.
NewClientWith
(
client
.
api
Hos
t
(),
UserAgent
,
basicAuth
,
nil
)
authsService
:=
c
.
Authorizations
(
client
.
requestURL
(
url
))
auths
,
result
:=
authsService
.
All
()
...
...
@@ -453,7 +453,7 @@ func (client *Client) api() (c *octokit.Client, err error) {
tokenAuth
:=
octokit
.
TokenAuth
{
AccessToken
:
client
.
Host
.
AccessToken
}
tr
:=
&
http
.
Transport
{
Proxy
:
proxyFromEnvironment
}
httpClient
:=
&
http
.
Client
{
Transport
:
tr
}
c
=
octokit
.
NewClientWith
(
client
.
api
Endpoin
t
(),
UserAgent
,
tokenAuth
,
httpClient
)
c
=
octokit
.
NewClientWith
(
client
.
api
Hos
t
(),
UserAgent
,
tokenAuth
,
httpClient
)
return
}
...
...
@@ -467,26 +467,9 @@ func (client *Client) requestURL(u *url.URL) (uu *url.URL) {
return
}
func
(
client
*
Client
)
apiEndpoint
()
string
{
host
:=
os
.
Getenv
(
"GH_API_HOST"
)
if
host
==
""
&&
client
.
Host
!=
nil
{
host
=
client
.
Host
.
Host
}
if
host
==
GitHubHost
{
host
=
GitHubApiHost
}
return
absolute
(
host
)
}
func
absolute
(
endpoint
string
)
string
{
u
,
_
:=
url
.
Parse
(
endpoint
)
if
u
.
Scheme
==
""
{
u
.
Scheme
=
"https"
}
return
u
.
String
()
func
(
client
*
Client
)
apiHost
()
string
{
ah
:=
&
apiHost
{
client
.
Host
.
Host
}
return
ah
.
String
()
}
func
FormatError
(
action
string
,
err
error
)
(
ee
error
)
{
...
...
github/client_test.go
浏览文件 @
d6430af4
...
...
@@ -9,18 +9,7 @@ import (
"github.com/octokit/go-octokit/octokit"
)
func
TestClient_ApiEndpoint
(
t
*
testing
.
T
)
{
gh
:=
&
Client
{
Host
:
&
Host
{
Host
:
"github.com"
}}
assert
.
Equal
(
t
,
"https://api.github.com"
,
gh
.
apiEndpoint
())
gh
=
&
Client
{
Host
:
&
Host
{
Host
:
"github.corporate.com"
}}
assert
.
Equal
(
t
,
"https://github.corporate.com"
,
gh
.
apiEndpoint
())
gh
=
&
Client
{
Host
:
&
Host
{
Host
:
"http://github.corporate.com"
}}
assert
.
Equal
(
t
,
"http://github.corporate.com"
,
gh
.
apiEndpoint
())
}
func
TestClient_formatError
(
t
*
testing
.
T
)
{
func
TestClient_FormatError
(
t
*
testing
.
T
)
{
e
:=
&
octokit
.
ResponseError
{
Response
:
&
http
.
Response
{
StatusCode
:
401
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录