Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
601f50c6
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,发现更多精彩内容 >>
提交
601f50c6
编写于
3月 27, 2017
作者:
P
Pawel Chojnacki
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add endpoint that returns a list of deployments that happened within last 8.hours
add index created_at
上级
19a44034
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
81 addition
and
1 deletion
+81
-1
app/controllers/projects/deployments_controller.rb
app/controllers/projects/deployments_controller.rb
+16
-0
config/routes/project.rb
config/routes/project.rb
+2
-0
db/migrate/20170327091750_add_created_at_index_to_deployments.rb
...ate/20170327091750_add_created_at_index_to_deployments.rb
+11
-0
db/schema.rb
db/schema.rb
+2
-1
spec/controllers/projects/deployments_controller_spec.rb
spec/controllers/projects/deployments_controller_spec.rb
+50
-0
未找到文件。
app/controllers/projects/deployments_controller.rb
0 → 100644
浏览文件 @
601f50c6
class
Projects::DeploymentsController
<
Projects
::
ApplicationController
before_action
:authorize_read_deployment!
def
index
deployments
=
environment
.
deployments
.
where
(
'created_at > ?'
,
8
.
hours
.
ago
)
.
map
{
|
d
|
d
.
slice
(
:id
,
:iid
,
:created_at
,
:sha
,
:ref
,
:tag
)
}
render
json:
{
deployments:
deployments
}
end
private
def
environment
@environment
||=
project
.
environments
.
find
(
params
[
:environment_id
])
end
end
config/routes/project.rb
浏览文件 @
601f50c6
...
...
@@ -168,6 +168,8 @@ constraints(ProjectUrlConstrainer.new) do
collection
do
get
:folder
,
path:
'folders/:id'
end
resources
:deployments
,
only:
[
:index
]
end
resource
:cycle_analytics
,
only:
[
:show
]
...
...
db/migrate/20170327091750_add_created_at_index_to_deployments.rb
0 → 100644
浏览文件 @
601f50c6
class
AddCreatedAtIndexToDeployments
<
ActiveRecord
::
Migration
include
Gitlab
::
Database
::
MigrationHelpers
DOWNTIME
=
false
disable_ddl_transaction!
def
change
add_concurrent_index
:deployments
,
:created_at
end
end
db/schema.rb
浏览文件 @
601f50c6
...
...
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord
::
Schema
.
define
(
version:
201703
17203554
)
do
ActiveRecord
::
Schema
.
define
(
version:
201703
27091750
)
do
# These are extensions that must be enabled in order to support this database
enable_extension
"plpgsql"
...
...
@@ -346,6 +346,7 @@ ActiveRecord::Schema.define(version: 20170317203554) do
t
.
string
"on_stop"
end
add_index
"deployments"
,
[
"created_at"
],
name:
"index_deployments_on_created_at"
,
using: :btree
add_index
"deployments"
,
[
"project_id"
,
"environment_id"
,
"iid"
],
name:
"index_deployments_on_project_id_and_environment_id_and_iid"
,
using: :btree
add_index
"deployments"
,
[
"project_id"
,
"iid"
],
name:
"index_deployments_on_project_id_and_iid"
,
unique:
true
,
using: :btree
...
...
spec/controllers/projects/deployments_controller_spec.rb
0 → 100644
浏览文件 @
601f50c6
require
'spec_helper'
describe
Projects
::
DeploymentsController
do
include
ApiHelpers
let
(
:user
)
{
create
(
:user
)
}
let
(
:project
)
{
create
(
:empty_project
)
}
let
(
:environment
)
{
create
(
:environment
,
name:
'production'
,
project:
project
)
}
let
(
:deployment
)
{
create
(
:deployment
,
project:
project
,
environment:
environment
)
}
before
do
project
.
team
<<
[
user
,
:master
]
sign_in
(
user
)
end
describe
'GET #index'
do
it
'returns list of deployments withing last 8 hours'
do
create
(
:deployment
,
environment:
environment
,
created_at:
9
.
hours
.
ago
)
create
(
:deployment
,
environment:
environment
,
created_at:
7
.
hours
.
ago
)
create
(
:deployment
,
environment:
environment
)
get
:index
,
environment_params
expect
(
response
).
to
be_ok
expect
(
json_response
[
'deployments'
].
count
).
to
eq
(
2
)
end
it
'returns a list with deployments information'
do
deployment
=
create
(
:deployment
,
environment:
environment
)
get
:index
,
environment_params
expect
(
response
).
to
be_ok
deployments
=
json_response
[
'deployments'
]
deployment_info
=
deployments
.
first
.
with_indifferent_access
created_at
=
deployment_info
.
delete
(
:created_at
).
to_time
.
utc
expect
(
deployments
.
count
).
to
eq
(
1
)
expect
(
deployment_info
).
to
include
(
:id
,
:iid
,
:sha
,
:ref
,
:tag
)
expect
(
deployment
).
to
have_attributes
(
deployment_info
)
expect
(
deployment
.
created_at
).
to
be_within
(
1
.
second
).
of
(
created_at
)
end
end
def
environment_params
(
opts
=
{})
opts
.
reverse_merge
(
namespace_id:
project
.
namespace
,
project_id:
project
,
environment_id:
environment
.
id
)
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录