Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
f2b3fd88
H
hub
项目概览
github
/
hub
9 个月 前同步成功
通知
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 搜索 >>
提交
f2b3fd88
编写于
2月 07, 2019
作者:
M
Mislav Marohnić
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Avoid crashing on invalid GitHub hostname
Fixes #2022
上级
08004b92
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
37 addition
and
2 deletion
+37
-2
features/create.feature
features/create.feature
+25
-0
github/client.go
github/client.go
+4
-2
github/config.go
github/config.go
+8
-0
未找到文件。
features/create.feature
浏览文件 @
f2b3fd88
...
...
@@ -274,3 +274,28 @@ Feature: hub create
< Location: http://disney.com
{"full_name":"mislav/dotfiles"}\n
"""
Scenario
:
Create Enterprise repo
Given
I am
"nsartor"
on git.my.org with OAuth token
"FITOKEN"
Given the GitHub API server
:
"""
post('/api/v3/user/repos', :host_name => 'git.my.org') {
assert :private => false
status 201
json :full_name => 'nsartor/dotfiles'
}
"""
And
$GITHUB_HOST is
"git.my.org"
When
I successfully run `hub create`
Then the url for "origin" should be "git@git.my.org
:
nsartor/dotfiles.git"
And the output should contain exactly "https
:
//git.my.org/nsartor/dotfiles\n"
Scenario
:
Invalid GITHUB_HOST
Given
I am
"nsartor"
on {} with OAuth token
"FITOKEN"
And
$GITHUB_HOST is
"{}"
When
I run `hub create`
Then
the exit status should be 1
And the stderr should contain exactly
:
"""
invalid hostname: "{}"\n
"""
github/client.go
浏览文件 @
f2b3fd88
...
...
@@ -992,8 +992,10 @@ func (client *Client) apiClient() *simpleClient {
}
func
(
client
*
Client
)
absolute
(
host
string
)
*
url
.
URL
{
u
,
_
:=
url
.
Parse
(
"https://"
+
host
+
"/"
)
if
client
.
Host
!=
nil
&&
client
.
Host
.
Protocol
!=
""
{
u
,
err
:=
url
.
Parse
(
"https://"
+
host
+
"/"
)
if
err
!=
nil
{
panic
(
err
)
}
else
if
client
.
Host
!=
nil
&&
client
.
Host
.
Protocol
!=
""
{
u
.
Scheme
=
client
.
Host
.
Protocol
}
return
u
...
...
github/config.go
浏览文件 @
f2b3fd88
...
...
@@ -4,6 +4,7 @@ import (
"bufio"
"fmt"
"io/ioutil"
"net/url"
"os"
"os/signal"
"path/filepath"
...
...
@@ -40,6 +41,13 @@ func (c *Config) PromptForHost(host string) (h *Host, err error) {
token
:=
c
.
DetectToken
()
tokenFromEnv
:=
token
!=
""
if
host
!=
GitHubHost
{
if
_
,
e
:=
url
.
Parse
(
"https://"
+
host
);
e
!=
nil
{
err
=
fmt
.
Errorf
(
"invalid hostname: %q"
,
host
)
return
}
}
h
=
c
.
Find
(
host
)
if
h
!=
nil
{
if
h
.
User
==
""
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录