Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
ecc4df44
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 搜索 >>
未验证
提交
ecc4df44
编写于
8月 28, 2018
作者:
M
Mislav Marohnić
提交者:
GitHub
8月 28, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1855 from nrmitchi/publicprivateoopsies
Prevent setting a public upstream when creating a private repo.
上级
4f0f0cf2
81c4f073
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
33 addition
and
8 deletion
+33
-8
commands/create.go
commands/create.go
+9
-2
features/create.feature
features/create.feature
+24
-0
github/client.go
github/client.go
+0
-6
未找到文件。
commands/create.go
浏览文件 @
ecc4df44
...
...
@@ -109,8 +109,15 @@ func create(command *Command, args *Args) {
project
:=
github
.
NewProject
(
owner
,
newRepoName
,
host
.
Host
)
gh
:=
github
.
NewClient
(
project
.
Host
)
if
gh
.
IsRepositoryExist
(
project
)
{
ui
.
Errorln
(
"Existing repository detected. Updating git remote"
)
repo
,
err
:=
gh
.
Repository
(
project
)
if
err
==
nil
{
if
!
repo
.
Private
&&
flagCreatePrivate
{
err
=
fmt
.
Errorf
(
"Repository '%s' already exists and is public"
,
repo
.
FullName
)
utils
.
Check
(
err
)
}
else
{
ui
.
Errorln
(
"Existing repository detected. Updating git remote"
)
}
}
else
{
if
!
args
.
Noop
{
repo
,
err
:=
gh
.
CreateRepository
(
project
,
flagCreateDescription
,
flagCreateHomepage
,
flagCreatePrivate
)
...
...
features/create.feature
浏览文件 @
ecc4df44
...
...
@@ -146,6 +146,30 @@ Feature: hub create
Then
the output should contain
"Existing repository detected. Updating git remote\n"
And the url for "origin" should be "git@github.com
:
mislav/dotfiles.git"
Scenario
:
GitHub repo already exists and is not private
Given the GitHub API server
:
"""
get('/repos/mislav/dotfiles') {
json :full_name => 'mislav/dotfiles',
:private => false
}
"""
When
I run `hub create -p`
Then
the output should contain
"Repository 'mislav/dotfiles' already exists and is public\n"
And
the exit status should be 1
And
there should be no
"origin"
remote
Scenario
:
GitHub repo already exists and is private
Given the GitHub API server
:
"""
get('/repos/mislav/dotfiles') {
json :full_name => 'mislav/dotfiles',
:private => true
}
"""
When
I successfully run `hub create -p`
Then the url for "origin" should be "git@github.com
:
mislav/dotfiles.git"
Scenario
:
API response changes the clone URL
Given the GitHub API server
:
"""
...
...
github/client.go
浏览文件 @
ecc4df44
...
...
@@ -213,12 +213,6 @@ func (client *Client) Repository(project *Project) (repo *Repository, err error)
return
}
func
(
client
*
Client
)
IsRepositoryExist
(
project
*
Project
)
bool
{
repo
,
err
:=
client
.
Repository
(
project
)
return
err
==
nil
&&
repo
!=
nil
}
func
(
client
*
Client
)
CreateRepository
(
project
*
Project
,
description
,
homepage
string
,
isPrivate
bool
)
(
repo
*
Repository
,
err
error
)
{
repoURL
:=
"user/repos"
if
project
.
Owner
!=
client
.
Host
.
User
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录