Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
c0725188
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c0725188
编写于
10月 11, 2013
作者:
M
Marin Jankovski
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' into relative_links_in_documentation
上级
46549992
4123c76e
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
86 addition
and
2 deletion
+86
-2
app/observers/project_observer.rb
app/observers/project_observer.rb
+5
-0
doc/api/repositories.md
doc/api/repositories.md
+13
-0
lib/api/repositories.rb
lib/api/repositories.rb
+29
-1
spec/observers/users_project_observer_spec.rb
spec/observers/users_project_observer_spec.rb
+27
-1
spec/requests/api/repositories_spec.rb
spec/requests/api/repositories_spec.rb
+12
-0
未找到文件。
app/observers/project_observer.rb
浏览文件 @
c0725188
...
...
@@ -14,6 +14,11 @@ class ProjectObserver < BaseObserver
log_info
(
"
#{
project
.
owner
.
name
}
created a new project
\"
#{
project
.
name_with_namespace
}
\"
"
)
end
if
project
.
wiki_enabled?
# force the creation of a wiki,
GollumWiki
.
new
(
project
,
project
.
owner
).
wiki
end
end
def
after_update
(
project
)
...
...
doc/api/repositories.md
浏览文件 @
c0725188
...
...
@@ -356,3 +356,16 @@ Parameters:
+
`id`
(required) - The ID of a project
+
`sha`
(required) - The commit or branch name
+
`filepath`
(required) - The path the file
## Get file archive
Get a an archive of the repository
```
GET /projects/:id/repository/archive
```
Parameters:
+
`id`
(required) - The ID of a project
+
`sha`
(optional) - The commit sha to download defaults to the tip of the default branch
\ No newline at end of file
lib/api/repositories.rb
浏览文件 @
c0725188
...
...
@@ -144,7 +144,7 @@ module API
trees
=
[]
%w(trees blobs submodules)
.
each
do
|
type
|
trees
+=
tree
.
send
(
type
).
map
{
|
t
|
{
name:
t
.
name
,
type:
type
.
singularize
,
mode:
t
.
mode
,
id:
t
.
id
}
}
trees
+=
tree
.
send
(
type
).
map
{
|
t
|
{
name:
t
.
name
,
type:
type
.
singularize
,
mode:
t
.
mode
,
id:
t
.
id
}
}
end
trees
...
...
@@ -176,6 +176,34 @@ module API
content_type
blob
.
mime_type
present
blob
.
data
end
# Get a an archive of the repository
#
# Parameters:
# id (required) - The ID of a project
# sha (optional) - the commit sha to download defaults to the tip of the default branch
# Example Request:
# GET /projects/:id/repository/archive
get
":id/repository/archive"
do
authorize!
:download_code
,
user_project
repo
=
user_project
.
repository
ref
=
params
[
:sha
]
storage_path
=
Rails
.
root
.
join
(
"tmp"
,
"repositories"
)
file_path
=
repo
.
archive_repo
(
ref
,
storage_path
)
if
file_path
&&
File
.
exists?
(
file_path
)
data
=
File
.
open
(
file_path
,
'rb'
).
read
header
"Content-Disposition:"
,
" infile; filename=
\"
#{
File
.
basename
(
file_path
)
}
\"
"
content_type
'application/x-gzip'
env
[
'api.format'
]
=
:binary
present
data
else
not_found!
end
end
end
end
end
...
...
spec/observers/users_project_observer_spec.rb
浏览文件 @
c0725188
...
...
@@ -65,4 +65,30 @@ describe UsersProjectObserver do
@users_project
.
destroy
end
end
end
describe
"#after_create"
do
context
'wiki_enabled creates repository directory'
do
context
'wiki_enabled true creates wiki repository directory'
do
before
do
@project
=
create
(
:project
,
wiki_enabled:
true
)
@path
=
GollumWiki
.
new
(
@project
,
user
).
send
(
:path_to_repo
)
end
after
do
FileUtils
.
rm_rf
(
@path
)
end
it
{
File
.
exists?
(
@path
).
should
be_true
}
end
context
'wiki_enabled false does not create wiki repository directory'
do
before
do
@project
=
create
(
:project
,
wiki_enabled:
false
)
@path
=
GollumWiki
.
new
(
@project
,
user
).
send
(
:path_to_repo
)
end
it
{
File
.
exists?
(
@path
).
should
be_false
}
end
end
end
end
\ No newline at end of file
spec/requests/api/repositories_spec.rb
浏览文件 @
c0725188
...
...
@@ -225,4 +225,16 @@ describe API::API do
end
end
describe
"GET /projects/:id/repository/archive/:sha"
do
it
"should get the archive"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/archive"
,
user
)
response
.
status
.
should
==
200
response
.
content_type
.
should
==
'application/x-gzip'
end
it
"should return 404 for invalid sha"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/archive/?sha=xxx"
,
user
)
response
.
status
.
should
==
404
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录