Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
7cef4f19
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,发现更多精彩内容 >>
提交
7cef4f19
编写于
7月 18, 2016
作者:
G
Grzegorz Bizon
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Improve valid keys validation for CI config nodes
上级
24b686eb
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
28 addition
and
29 deletion
+28
-29
lib/ci/gitlab_ci_yaml_processor.rb
lib/ci/gitlab_ci_yaml_processor.rb
+0
-9
lib/gitlab/ci/config/node/artifacts.rb
lib/gitlab/ci/config/node/artifacts.rb
+2
-0
lib/gitlab/ci/config/node/cache.rb
lib/gitlab/ci/config/node/cache.rb
+4
-4
lib/gitlab/ci/config/node/validator.rb
lib/gitlab/ci/config/node/validator.rb
+1
-7
lib/gitlab/ci/config/node/validators.rb
lib/gitlab/ci/config/node/validators.rb
+5
-4
spec/lib/gitlab/ci/config/node/artifacts_spec.rb
spec/lib/gitlab/ci/config/node/artifacts_spec.rb
+16
-5
未找到文件。
lib/ci/gitlab_ci_yaml_processor.rb
浏览文件 @
7cef4f19
...
...
@@ -106,7 +106,6 @@ module Ci
validate_job_types!
(
name
,
job
)
validate_job_stage!
(
name
,
job
)
if
job
[
:stage
]
validate_job_artifacts!
(
name
,
job
)
if
job
[
:artifacts
]
validate_job_dependencies!
(
name
,
job
)
if
job
[
:dependencies
]
end
...
...
@@ -142,14 +141,6 @@ module Ci
end
end
def
validate_job_artifacts!
(
name
,
job
)
job
[
:artifacts
].
keys
.
each
do
|
key
|
unless
ALLOWED_ARTIFACTS_KEYS
.
include?
key
raise
ValidationError
,
"
#{
name
}
job: artifacts unknown parameter
#{
key
}
"
end
end
end
def
validate_job_dependencies!
(
name
,
job
)
unless
validate_array_of_strings
(
job
[
:dependencies
])
raise
ValidationError
,
"
#{
name
}
job: dependencies parameter should be an array of strings"
...
...
lib/gitlab/ci/config/node/artifacts.rb
浏览文件 @
7cef4f19
...
...
@@ -13,6 +13,8 @@ module Gitlab
validations
do
validates
:config
,
type:
Hash
validates
:config
,
allowed_keys:
%i[name untracked paths when expire_in]
with_options
allow_nil:
true
do
validates
:name
,
type:
String
...
...
lib/gitlab/ci/config/node/cache.rb
浏览文件 @
7cef4f19
...
...
@@ -8,6 +8,10 @@ module Gitlab
class
Cache
<
Entry
include
Configurable
validations
do
validates
:config
,
allowed_keys:
%i[key untracked paths]
end
node
:key
,
Node
::
Key
,
description:
'Cache key used to define a cache affinity.'
...
...
@@ -16,10 +20,6 @@ module Gitlab
node
:paths
,
Node
::
Paths
,
description:
'Specify which paths should be cached across builds.'
validations
do
validates
:config
,
allowed_keys:
true
end
end
end
end
...
...
lib/gitlab/ci/config/node/validator.rb
浏览文件 @
7cef4f19
...
...
@@ -21,12 +21,6 @@ module Gitlab
'Validator'
end
def
unknown_keys
return
[]
unless
config
.
is_a?
(
Hash
)
config
.
keys
-
@node
.
class
.
nodes
.
keys
end
private
def
location
...
...
@@ -35,7 +29,7 @@ module Gitlab
end
def
key_name
if
key
.
blank?
||
key
.
nil?
if
key
.
blank?
@node
.
class
.
name
.
demodulize
.
underscore
.
humanize
else
key
...
...
lib/gitlab/ci/config/node/validators.rb
浏览文件 @
7cef4f19
...
...
@@ -5,10 +5,11 @@ module Gitlab
module
Validators
class
AllowedKeysValidator
<
ActiveModel
::
EachValidator
def
validate_each
(
record
,
attribute
,
value
)
if
record
.
unknown_keys
.
any?
unknown_list
=
record
.
unknown_keys
.
join
(
', '
)
record
.
errors
.
add
(
:config
,
"contains unknown keys:
#{
unknown_list
}
"
)
unknown_keys
=
record
.
config
.
try
(
:keys
).
to_a
-
options
[
:in
]
if
unknown_keys
.
any?
record
.
errors
.
add
(
:config
,
'contains unknown keys: '
+
unknown_keys
.
join
(
', '
))
end
end
end
...
...
spec/lib/gitlab/ci/config/node/artifacts_spec.rb
浏览文件 @
7cef4f19
...
...
@@ -21,12 +21,23 @@ describe Gitlab::Ci::Config::Node::Artifacts do
end
context
'when entry value is not correct'
do
let
(
:config
)
{
{
name:
10
}
}
describe
'#errors'
do
it
'saves errors'
do
expect
(
entry
.
errors
)
.
to
include
'artifacts name should be a string'
context
'when value of attribute is invalid'
do
let
(
:config
)
{
{
name:
10
}
}
it
'reports error'
do
expect
(
entry
.
errors
)
.
to
include
'artifacts name should be a string'
end
end
context
'when there is uknown key'
do
let
(
:config
)
{
{
test:
100
}
}
it
'reports error'
do
expect
(
entry
.
errors
)
.
to
include
'artifacts config contains unknown keys: test'
end
end
end
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录