提交 05a5e7c4 编写于 作者: M Mislav Marohnić

Handle case when editing a release just uploads new assets

上级 32ed6e03
......@@ -42,6 +42,10 @@ With '--include-drafs', include draft releases in the listing.
Edit the GitHub release for the specified <TAG> name. Accepts the same
options as _create_ command. Publish a draft with '--draft=false'.
When <MESSAGE> or <FILE> are not specified, a text editor will open
pre-populated with current release title and body. To re-use existing title
and body unchanged, pass '-m ""'.
## Options:
-d, --draft
Create a draft release.
......@@ -309,6 +313,10 @@ func editRelease(cmd *Command, args *Args) {
} else if cmd.FlagPassed("file") {
title, body, err = readMsgFromFile(flagReleaseFile)
utils.Check(err)
if title == "" {
utils.Check(fmt.Errorf("Aborting editing due to empty release title"))
}
} else {
cs := git.CommentChar()
message, err := renderReleaseTpl("Editing", cs, tagName, project.String(), commitish)
......@@ -320,6 +328,10 @@ func editRelease(cmd *Command, args *Args) {
title, body, err = editor.EditTitleAndBody()
utils.Check(err)
if title == "" {
utils.Check(fmt.Errorf("Aborting editing due to empty release title"))
}
}
if title != "" {
......@@ -329,14 +341,16 @@ func editRelease(cmd *Command, args *Args) {
params["body"] = body
}
if args.Noop {
ui.Printf("Would edit release `%s'\n", tagName)
} else {
release, err = gh.EditRelease(release, params)
utils.Check(err)
if len(params) > 0 {
if args.Noop {
ui.Printf("Would edit release `%s'\n", tagName)
} else {
release, err = gh.EditRelease(release, params)
utils.Check(err)
if editor != nil {
editor.DeleteFile()
if editor != nil {
editor.DeleteFile()
}
}
}
......
......@@ -253,3 +253,44 @@ MARKDOWN
"""
When I successfully run `hub release edit --draft=false v1.2.0`
Then there should be no output
Scenario: Edit existing release by uploading assets
Given the GitHub API server:
"""
deleted = false
get('/repos/mislav/will_paginate/releases') {
json [
{ url: 'https://api.github.com/repos/mislav/will_paginate/releases/123',
upload_url: 'https://api.github.com/uploads/assets{?name,label}',
tag_name: 'v1.2.0',
name: 'will_paginate 1.2.0',
draft: true,
prerelease: false,
assets: [
{ url: 'https://api.github.com/repos/mislav/will_paginate/assets/456',
name: 'hello-1.2.0.tar.gz',
},
],
},
]
}
delete('/repos/mislav/will_paginate/assets/456') {
deleted = true
status 204
}
post('/uploads/assets') {
halt 422 unless deleted
assert :name => 'hello-1.2.0.tar.gz',
:label => nil
status 201
}
"""
And a file named "hello-1.2.0.tar.gz" with:
"""
TARBALL
"""
When I successfully run `hub release edit -m "" v1.2.0 -a hello-1.2.0.tar.gz`
Then the output should contain exactly:
"""
Attaching release asset `hello-1.2.0.tar.gz'...\n
"""
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册