Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
39d76971
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 搜索 >>
提交
39d76971
编写于
10月 24, 2019
作者:
T
Tom Lazar
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add support for hub download --include flag
上级
03533a16
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
80 addition
and
2 deletion
+80
-2
commands/release.go
commands/release.go
+18
-1
features/release.feature
features/release.feature
+62
-1
未找到文件。
commands/release.go
浏览文件 @
39d76971
...
...
@@ -5,6 +5,7 @@ import (
"io"
"os"
"path/filepath"
"regexp"
"strings"
"time"
...
...
@@ -21,7 +22,7 @@ release [--include-drafts] [--exclude-prereleases] [-L <LIMIT>] [-f <FORMAT>]
release show [-f <FORMAT>] <TAG>
release create [-dpoc] [-a <FILE>] [-m <MESSAGE>|-F <FILE>] [-t <TARGET>] <TAG>
release edit [<options>] <TAG>
release download <TAG>
release download <TAG>
[-i <PATTERN>]
release delete <TAG>
`
,
Long
:
`Manage GitHub Releases for the current repository.
...
...
@@ -100,6 +101,10 @@ With '--exclude-prereleases', exclude non-stable releases from the listing.
-t, --commitish <TARGET>
A commit SHA or branch name to attach the release to, only used if <TAG>
does not already exist (default: main branch).
-i, --include <PATTERN>
Display the files that match the prodived glob when looking at the
release files.
-f, --format <FORMAT>
Pretty print releases using <FORMAT> (default: "%T%n"). See the "PRETTY
...
...
@@ -209,6 +214,9 @@ hub(1), git-tag(1)
cmdDownloadRelease
=
&
Command
{
Key
:
"download"
,
Run
:
downloadRelease
,
KnownFlags
:
`
-i, --include PATTERN
`
,
}
cmdDeleteRelease
=
&
Command
{
...
...
@@ -386,7 +394,16 @@ func downloadRelease(cmd *Command, args *Args) {
release
,
err
:=
gh
.
FetchRelease
(
project
,
tagName
)
utils
.
Check
(
err
)
include
:=
args
.
Flag
.
Value
(
"--include"
)
includeRe
,
err
:=
regexp
.
Compile
(
include
)
utils
.
Check
(
err
)
for
_
,
asset
:=
range
release
.
Assets
{
// if the include glob is not empty and it doesn't match the pattern
if
include
!=
""
&&
!
includeRe
.
MatchString
(
asset
.
Name
)
{
continue
}
ui
.
Printf
(
"Downloading %s ...
\n
"
,
asset
.
Name
)
err
:=
downloadReleaseAsset
(
asset
,
gh
)
utils
.
Check
(
err
)
...
...
features/release.feature
浏览文件 @
39d76971
...
...
@@ -636,7 +636,68 @@ MARKDOWN
"""
ASSET_TARBALL
"""
Scenario
:
Download release assets that match pattern.
Given the GitHub API server
:
"""
get('/repos/mislav/will_paginate/releases') {
json [
{ url: 'https://api.github.com/repos/mislav/will_paginate/releases/123',
upload_url: 'https://uploads.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/9876',
name: 'hello-amd32-1.2.0.tar.gz',
},
{ url: 'https://api.github.com/repos/mislav/will_paginate/assets/9877',
name: 'hello-amd64-1.2.0.tar.gz',
},
{ url: 'https://api.github.com/repos/mislav/will_paginate/assets/9878',
name: 'hello-x86-1.2.0.tar.gz',
},
],
},
]
}
get('/repos/mislav/will_paginate/assets/9876') {
halt 401 unless request.env['HTTP_AUTHORIZATION'] == 'token OTOKEN'
halt 415 unless request.accept?('application/octet-stream')
status 302
headers['Location'] = 'https://github-cloud.s3.amazonaws.com/releases/12204602/22ea221a-cf2f-11e2-222a-b3a3c3b3aa3a.gz'
""
}
get('/repos/mislav/will_paginate/assets/9877') {
halt 401 unless request.env['HTTP_AUTHORIZATION'] == 'token OTOKEN'
halt 415 unless request.accept?('application/octet-stream')
status 302
headers['Location'] = 'https://github-cloud.s3.amazonaws.com/releases/12204602/22ea221a-cf2f-11e2-222a-b3a3c3b3aa3a.gz'
""
}
get('/releases/12204602/22ea221a-cf2f-11e2-222a-b3a3c3b3aa3a.gz', :host_name => 'github-cloud.s3.amazonaws.com') {
halt 400 unless request.env['HTTP_AUTHORIZATION'].nil?
halt 415 unless request.accept?('application/octet-stream')
headers['Content-Type'] = 'application/octet-stream'
"ASSET_TARBALL"
}
"""
When
I successfully run `hub release download v1.2.0 --include amd`
Then the output should contain exactly
:
"""
Downloading hello-amd32-1.2.0.tar.gz ...
Downloading hello-amd64-1.2.0.tar.gz ...\n
"""
And the file "hello-amd64-1.2.0.tar.gz" should contain exactly
:
"""
ASSET_TARBALL
"""
And the file "hello-amd32-1.2.0.tar.gz" should contain exactly
:
"""
ASSET_TARBALL
"""
Scenario
:
Download release no tag
When
I run `hub release download`
Then
the exit status should be 1
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录