Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
f2807ba2
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 搜索 >>
提交
f2807ba2
编写于
12月 19, 2013
作者:
D
David Calavera
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Create a new release based on the local branch.
上级
b3103e44
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
48 addition
and
5 deletion
+48
-5
commands/release.go
commands/release.go
+33
-5
github/client.go
github/client.go
+15
-0
未找到文件。
commands/release.go
浏览文件 @
f2807ba2
...
...
@@ -17,7 +17,7 @@ var (
cmdRelease
=
&
Command
{
Run
:
release
,
Usage
:
"release TAG [-d] [-p] [-a <ASSETS_DIR>]"
,
Usage
:
"release TAG [-d] [-p] [-a <ASSETS_DIR>]
[-m <MESSAGE>|-f <FILE>]
"
,
Short
:
"Create a new release in GitHub"
,
Long
:
`Create a new release in GitHub for the project that the "origin" remote points to.
- It requires the name of the tag to release as a first argument.
...
...
@@ -28,17 +28,22 @@ var (
flagReleaseDraft
,
flagReleasePrerelease
bool
flagReleaseAssetsDir
string
//flagReleaseAssetsDir,
flagReleaseMessage
,
flagReleaseFile
string
)
func
init
()
{
cmdRelease
.
Flag
.
BoolVar
(
&
flagReleaseDraft
,
"d"
,
false
,
"DRAFT"
)
cmdRelease
.
Flag
.
BoolVar
(
&
flagReleasePrerelease
,
"p"
,
false
,
"PRERELEASE"
)
cmdRelease
.
Flag
.
StringVar
(
&
flagReleaseAssetsDir
,
"a"
,
""
,
"ASSETS_DIR"
)
cmrRelease
.
Flag
.
StringVar
(
&
flagReleaseMessage
,
"m"
,
""
,
"MESSAGE"
)
cmrRelease
.
Flag
.
StringVar
(
&
flagReleaseFile
,
"f"
,
""
,
"FILE"
)
}
func
releases
(
cmd
*
Command
,
args
*
Args
)
{
runInLocalRepo
(
func
(
project
*
github
.
Project
,
gh
*
github
.
Client
)
{
runInLocalRepo
(
func
(
localRepo
*
github
.
LocalRepo
,
project
*
github
.
Project
,
gh
*
github
.
Client
)
{
if
args
.
Noop
{
fmt
.
Printf
(
"Would request list of releases for %s
\n
"
,
project
)
}
else
{
...
...
@@ -57,15 +62,38 @@ func releases(cmd *Command, args *Args) {
func
release
(
cmd
*
Command
,
args
*
Args
)
{
tag
:=
args
.
LastParam
()
runInLocalRepo
(
func
(
localRepo
*
github
.
GitHubRepo
,
project
*
github
.
Project
,
gh
*
github
.
Client
)
{
currentBranch
,
err
:=
localRepo
.
CurrentBranch
()
utils
.
Check
(
err
)
title
,
body
,
err
:=
utils
.
GetTitleAndBodyFromFlags
(
flagReleaseMessage
,
flagReleaseFile
)
utils
.
Check
(
err
)
if
title
==
""
{
title
,
body
,
err
:=
utils
.
GetTitleAndBodyFromEditor
(
nil
)
utils
.
Check
(
err
)
}
params
:=
octokit
.
ReleaseParams
{
TagName
:
tag
,
TargetCommitish
:
currentBranch
,
Name
:
title
,
Body
:
body
,
Draft
:
flagReleaseDraft
,
Prerelease
:
flagReleasePrerelease
}
gh
.
CreateRelease
(
project
,
params
)
})
}
func
runInLocalRepo
(
fn
func
(
project
*
github
.
Project
,
client
*
github
.
Client
))
{
func
runInLocalRepo
(
fn
func
(
localRepo
*
github
.
GitHubRepo
,
project
*
github
.
Project
,
client
*
github
.
Client
))
{
localRepo
:=
github
.
LocalRepo
()
project
,
err
:=
localRepo
.
CurrentProject
()
utils
.
Check
(
err
)
client
:=
github
.
NewClient
(
project
.
Host
)
fn
(
project
,
client
)
fn
(
localRepo
,
project
,
client
)
os
.
Exit
(
0
)
}
github/client.go
浏览文件 @
f2807ba2
...
...
@@ -123,6 +123,21 @@ func (client *Client) Releases(project *Project) (releases []octokit.Release, er
return
}
func
(
client
*
Client
)
CreateRelease
(
project
*
github
.
Project
,
params
octokit
.
ReleaseParams
)
(
release
octokit
.
Release
,
err
error
)
{
url
,
err
:=
octokit
.
ReleasesURL
.
Expand
(
octokit
.
M
{
"owner"
:
project
.
Owner
,
"repo"
:
project
.
Name
})
if
err
!=
nil
{
return
}
release
,
result
:=
client
.
octokit
()
.
Releases
(
client
.
requestURL
(
url
))
.
Create
(
params
)
if
result
.
HasError
()
{
err
=
result
.
Err
return
}
return
}
func
(
client
*
Client
)
CIStatus
(
project
*
Project
,
sha
string
)
(
status
*
octokit
.
Status
,
err
error
)
{
url
,
err
:=
octokit
.
StatusesURL
.
Expand
(
octokit
.
M
{
"owner"
:
project
.
Owner
,
"repo"
:
project
.
Name
,
"ref"
:
sha
})
if
err
!=
nil
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录