Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
978252a3
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,发现更多精彩内容 >>
提交
978252a3
编写于
8月 30, 2017
作者:
A
Alexis Reigel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
use new #verification_status
上级
31ad752e
变更
11
显示空白变更内容
内联
并排
Showing
11 changed file
with
72 addition
and
31 deletion
+72
-31
app/models/gpg_key.rb
app/models/gpg_key.rb
+8
-5
app/models/gpg_signature.rb
app/models/gpg_signature.rb
+8
-0
app/views/projects/commit/_signature.html.haml
app/views/projects/commit/_signature.html.haml
+1
-1
lib/gitlab/gpg/commit.rb
lib/gitlab/gpg/commit.rb
+0
-1
lib/gitlab/gpg/invalid_gpg_signature_updater.rb
lib/gitlab/gpg/invalid_gpg_signature_updater.rb
+7
-1
spec/factories/gpg_signature.rb
spec/factories/gpg_signature.rb
+1
-1
spec/features/profiles/gpg_keys_spec.rb
spec/features/profiles/gpg_keys_spec.rb
+2
-2
spec/lib/gitlab/gpg/commit_spec.rb
spec/lib/gitlab/gpg/commit_spec.rb
+0
-5
spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb
spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb
+11
-11
spec/models/gpg_key_spec.rb
spec/models/gpg_key_spec.rb
+4
-4
spec/models/gpg_signature_spec.rb
spec/models/gpg_signature_spec.rb
+30
-0
未找到文件。
app/models/gpg_key.rb
浏览文件 @
978252a3
...
...
@@ -82,9 +82,12 @@ class GpgKey < ActiveRecord::Base
end
def
revoke
GpgSignature
.
where
(
gpg_key:
self
,
valid_signature:
true
).
update_all
(
GpgSignature
.
where
(
gpg_key:
self
)
.
where
.
not
(
verification_status:
GpgSignature
.
verification_statuses
[
:unknown_key
])
.
update_all
(
gpg_key_id:
nil
,
valid_signature:
false
,
verification_status:
GpgSignature
.
verification_statuses
[
:unknown_key
]
,
updated_at:
Time
.
zone
.
now
)
...
...
app/models/gpg_signature.rb
浏览文件 @
978252a3
...
...
@@ -20,6 +20,14 @@ class GpgSignature < ActiveRecord::Base
validates
:project_id
,
presence:
true
validates
:gpg_key_primary_keyid
,
presence:
true
# backwards compatibility: legacy records that weren't migrated to use the
# new `#verification_status` have `#valid_signature` set instead
def
verified?
return
valid_signature
if
verification_status
.
nil?
super
end
def
gpg_key_primary_keyid
super
&
.
upcase
end
...
...
app/views/projects/commit/_signature.html.haml
浏览文件 @
978252a3
-
if
signature
-
if
signature
.
v
alid_signature
?
-
if
signature
.
v
erified
?
=
render
partial:
'projects/commit/valid_signature_badge'
,
locals:
{
signature:
signature
}
-
else
=
render
partial:
'projects/commit/invalid_signature_badge'
,
locals:
{
signature:
signature
}
lib/gitlab/gpg/commit.rb
浏览文件 @
978252a3
...
...
@@ -77,7 +77,6 @@ module Gitlab
gpg_key_primary_keyid:
gpg_key
&
.
primary_keyid
||
verified_signature
.
fingerprint
,
gpg_key_user_name:
user_infos
[
:name
],
gpg_key_user_email:
user_infos
[
:email
],
valid_signature:
verification_status
==
:verified
,
verification_status:
verification_status
}
end
...
...
lib/gitlab/gpg/invalid_gpg_signature_updater.rb
浏览文件 @
978252a3
...
...
@@ -6,9 +6,15 @@ module Gitlab
end
def
run
# `OR valid_signature` is for backwards compatibility: legacy records
# that weren't migrated to use the new `#verification_status` have
# `#valid_signature` set instead
GpgSignature
.
select
(
:id
,
:commit_sha
,
:project_id
)
.
where
(
'gpg_key_id IS NULL OR valid_signature = ?'
,
false
)
.
where
(
'gpg_key_id IS NULL OR valid_signature = ? OR verification_status <> ?'
,
false
,
GpgSignature
.
verification_statuses
[
:verified
]
)
.
where
(
gpg_key_primary_keyid:
@gpg_key
.
primary_keyid
)
.
find_each
{
|
sig
|
sig
.
gpg_commit
.
update_signature!
(
sig
)
}
end
...
...
spec/factories/gpg_signature.rb
浏览文件 @
978252a3
...
...
@@ -6,6 +6,6 @@ FactoryGirl.define do
project
gpg_key
gpg_key_primary_keyid
{
gpg_key
.
primary_keyid
}
v
alid_signature
true
v
erification_status
:verified
end
end
spec/features/profiles/gpg_keys_spec.rb
浏览文件 @
978252a3
...
...
@@ -42,7 +42,7 @@ feature 'Profile > GPG Keys' do
scenario
'User revokes a key via the key index'
do
gpg_key
=
create
:gpg_key
,
user:
user
,
key:
GpgHelpers
::
User2
.
public_key
gpg_signature
=
create
:gpg_signature
,
gpg_key:
gpg_key
,
v
alid_signature:
true
gpg_signature
=
create
:gpg_signature
,
gpg_key:
gpg_key
,
v
erification_status: :verified
visit
profile_gpg_keys_path
...
...
@@ -51,7 +51,7 @@ feature 'Profile > GPG Keys' do
expect
(
page
).
to
have_content
(
'Your GPG keys (0)'
)
expect
(
gpg_signature
.
reload
).
to
have_attributes
(
v
alid_signature:
false
,
v
erification_status:
'unknown_key'
,
gpg_key:
nil
)
end
...
...
spec/lib/gitlab/gpg/commit_spec.rb
浏览文件 @
978252a3
...
...
@@ -56,7 +56,6 @@ describe Gitlab::Gpg::Commit do
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
gpg_key_user_name:
GpgHelpers
::
User1
.
names
.
first
,
gpg_key_user_email:
GpgHelpers
::
User1
.
emails
.
first
,
valid_signature:
true
,
verification_status:
'verified'
)
end
...
...
@@ -96,7 +95,6 @@ describe Gitlab::Gpg::Commit do
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
gpg_key_user_name:
GpgHelpers
::
User1
.
names
.
first
,
gpg_key_user_email:
GpgHelpers
::
User1
.
emails
.
first
,
valid_signature:
false
,
verification_status:
'same_user_different_email'
)
end
...
...
@@ -132,7 +130,6 @@ describe Gitlab::Gpg::Commit do
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
gpg_key_user_name:
GpgHelpers
::
User1
.
names
.
first
,
gpg_key_user_email:
GpgHelpers
::
User1
.
emails
.
first
,
valid_signature:
false
,
verification_status:
'other_user'
)
end
...
...
@@ -169,7 +166,6 @@ describe Gitlab::Gpg::Commit do
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
gpg_key_user_name:
GpgHelpers
::
User1
.
names
.
first
,
gpg_key_user_email:
GpgHelpers
::
User1
.
emails
.
first
,
valid_signature:
false
,
verification_status:
'unverified_key'
)
end
...
...
@@ -200,7 +196,6 @@ describe Gitlab::Gpg::Commit do
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
gpg_key_user_name:
nil
,
gpg_key_user_email:
nil
,
valid_signature:
false
,
verification_status:
'unknown_key'
)
end
...
...
spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb
浏览文件 @
978252a3
...
...
@@ -46,7 +46,7 @@ RSpec.describe Gitlab::Gpg::InvalidGpgSignatureUpdater do
commit_sha:
commit_sha
,
gpg_key:
nil
,
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
v
alid_signature:
true
v
erification_status:
'verified'
end
it
'assigns the gpg key to the signature when the missing gpg key is added'
do
...
...
@@ -60,7 +60,7 @@ RSpec.describe Gitlab::Gpg::InvalidGpgSignatureUpdater do
commit_sha:
commit_sha
,
gpg_key:
gpg_key
,
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
v
alid_signature:
true
v
erification_status:
'verified'
)
end
...
...
@@ -75,7 +75,7 @@ RSpec.describe Gitlab::Gpg::InvalidGpgSignatureUpdater do
commit_sha:
commit_sha
,
gpg_key:
nil
,
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
v
alid_signature:
true
v
erification_status:
'verified'
)
end
end
...
...
@@ -89,7 +89,7 @@ RSpec.describe Gitlab::Gpg::InvalidGpgSignatureUpdater do
commit_sha:
commit_sha
,
gpg_key:
nil
,
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
v
alid_signature:
false
v
erification_status:
'unknown_key'
end
it
'updates the signature to being valid when the missing gpg key is added'
do
...
...
@@ -103,7 +103,7 @@ RSpec.describe Gitlab::Gpg::InvalidGpgSignatureUpdater do
commit_sha:
commit_sha
,
gpg_key:
gpg_key
,
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
v
alid_signature:
true
v
erification_status:
'verified'
)
end
...
...
@@ -118,7 +118,7 @@ RSpec.describe Gitlab::Gpg::InvalidGpgSignatureUpdater do
commit_sha:
commit_sha
,
gpg_key:
nil
,
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
v
alid_signature:
false
v
erification_status:
'unknown_key'
)
end
end
...
...
@@ -136,7 +136,7 @@ RSpec.describe Gitlab::Gpg::InvalidGpgSignatureUpdater do
commit_sha:
commit_sha
,
gpg_key:
nil
,
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
v
alid_signature:
false
v
erification_status:
'unknown_key'
end
it
'updates the signature to being valid when the user updates the email address'
do
...
...
@@ -144,7 +144,7 @@ RSpec.describe Gitlab::Gpg::InvalidGpgSignatureUpdater do
key:
GpgHelpers
::
User1
.
public_key
,
user:
user
expect
(
invalid_gpg_signature
.
reload
.
v
alid_signature
).
to
be_falsey
expect
(
invalid_gpg_signature
.
reload
.
v
erification_status
).
to
eq
'unverified_key'
# InvalidGpgSignatureUpdater is called by the after_update hook
user
.
update_attributes!
(
email:
GpgHelpers
::
User1
.
emails
.
first
)
...
...
@@ -154,7 +154,7 @@ RSpec.describe Gitlab::Gpg::InvalidGpgSignatureUpdater do
commit_sha:
commit_sha
,
gpg_key:
gpg_key
,
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
v
alid_signature:
true
v
erification_status:
'verified'
)
end
...
...
@@ -168,7 +168,7 @@ RSpec.describe Gitlab::Gpg::InvalidGpgSignatureUpdater do
commit_sha:
commit_sha
,
gpg_key:
gpg_key
,
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
v
alid_signature:
false
v
erification_status:
'unverified_key'
)
# InvalidGpgSignatureUpdater is called by the after_update hook
...
...
@@ -179,7 +179,7 @@ RSpec.describe Gitlab::Gpg::InvalidGpgSignatureUpdater do
commit_sha:
commit_sha
,
gpg_key:
gpg_key
,
gpg_key_primary_keyid:
GpgHelpers
::
User1
.
primary_keyid
,
v
alid_signature:
false
v
erification_status:
'unverified_key'
)
end
end
...
...
spec/models/gpg_key_spec.rb
浏览文件 @
978252a3
...
...
@@ -155,15 +155,15 @@ describe GpgKey do
describe
'#revoke'
do
it
'invalidates all associated gpg signatures and destroys the key'
do
gpg_key
=
create
:gpg_key
gpg_signature
=
create
:gpg_signature
,
v
alid_signature:
true
,
gpg_key:
gpg_key
gpg_signature
=
create
:gpg_signature
,
v
erification_status: :verified
,
gpg_key:
gpg_key
unrelated_gpg_key
=
create
:gpg_key
,
key:
GpgHelpers
::
User2
.
public_key
unrelated_gpg_signature
=
create
:gpg_signature
,
v
alid_signature:
true
,
gpg_key:
unrelated_gpg_key
unrelated_gpg_signature
=
create
:gpg_signature
,
v
erification_status: :verified
,
gpg_key:
unrelated_gpg_key
gpg_key
.
revoke
expect
(
gpg_signature
.
reload
).
to
have_attributes
(
v
alid_signature:
false
,
v
erification_status:
'unknown_key'
,
gpg_key:
nil
)
...
...
@@ -171,7 +171,7 @@ describe GpgKey do
# unrelated signature is left untouched
expect
(
unrelated_gpg_signature
.
reload
).
to
have_attributes
(
v
alid_signature:
true
,
v
erification_status:
'verified'
,
gpg_key:
unrelated_gpg_key
)
...
...
spec/models/gpg_signature_spec.rb
浏览文件 @
978252a3
...
...
@@ -25,4 +25,34 @@ RSpec.describe GpgSignature do
gpg_signature
.
commit
end
end
describe
'#verified?'
do
it
'returns true when `verification_status` is not set, but `valid_signature` is true'
do
signature
=
create
:gpg_signature
,
valid_signature:
true
,
verification_status:
nil
expect
(
signature
.
verified?
).
to
be
true
expect
(
signature
.
reload
.
verified?
).
to
be
true
end
it
'returns true when `verification_status` is set to :verified'
do
signature
=
create
:gpg_signature
,
verification_status: :verified
expect
(
signature
.
verified?
).
to
be
true
expect
(
signature
.
reload
.
verified?
).
to
be
true
end
it
'returns false when `verification_status` is set to :unknown_key'
do
signature
=
create
:gpg_signature
,
verification_status: :unknown_key
expect
(
signature
.
verified?
).
to
be
false
expect
(
signature
.
reload
.
verified?
).
to
be
false
end
it
'returns false when `verification_status` is not set, but `valid_signature` is false'
do
signature
=
create
:gpg_signature
,
valid_signature:
false
,
verification_status:
nil
expect
(
signature
.
verified?
).
to
be
false
expect
(
signature
.
reload
.
verified?
).
to
be
false
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录