Address some feedback from last code review
This commit is contained in:
parent
8be06f20fc
commit
2577cc9981
|
@ -23,8 +23,13 @@ class GpgSignature < ActiveRecord::Base
|
||||||
|
|
||||||
def gpg_key=(model)
|
def gpg_key=(model)
|
||||||
case model
|
case model
|
||||||
when GpgKey then super
|
when GpgKey
|
||||||
when GpgKeySubkey then self.gpg_key_subkey = model
|
super
|
||||||
|
when GpgKeySubkey
|
||||||
|
self.gpg_key_subkey = model
|
||||||
|
when NilClass
|
||||||
|
super
|
||||||
|
self.gpg_key_subkey = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -3,11 +3,11 @@ class CreateGpgKeySubkeys < ActiveRecord::Migration
|
||||||
|
|
||||||
def up
|
def up
|
||||||
create_table :gpg_key_subkeys do |t|
|
create_table :gpg_key_subkeys do |t|
|
||||||
|
t.references :gpg_key, null: false, index: true, foreign_key: { on_delete: :cascade }
|
||||||
|
|
||||||
t.binary :keyid
|
t.binary :keyid
|
||||||
t.binary :fingerprint
|
t.binary :fingerprint
|
||||||
|
|
||||||
t.references :gpg_key, null: false, index: true, foreign_key: { on_delete: :cascade }
|
|
||||||
|
|
||||||
t.index :keyid, unique: true, length: Gitlab::Database.mysql? ? 20 : nil
|
t.index :keyid, unique: true, length: Gitlab::Database.mysql? ? 20 : nil
|
||||||
t.index :fingerprint, unique: true, length: Gitlab::Database.mysql? ? 20 : nil
|
t.index :fingerprint, unique: true, length: Gitlab::Database.mysql? ? 20 : nil
|
||||||
end
|
end
|
||||||
|
|
|
@ -28,8 +28,10 @@ class CreateGpgKeySubkeysForExistingGpgKeys < ActiveRecord::Migration
|
||||||
end
|
end
|
||||||
|
|
||||||
def up
|
def up
|
||||||
GpgKey.each_batch do |batch|
|
GpgKey.with_subkeys.each_batch do |batch|
|
||||||
batch.each do |gpg_key|
|
batch.each do |gpg_key|
|
||||||
|
return if gpg_key.subkeys.any?
|
||||||
|
|
||||||
create_subkeys(gpg_key) && update_signatures(gpg_key)
|
create_subkeys(gpg_key) && update_signatures(gpg_key)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -580,9 +580,9 @@ ActiveRecord::Schema.define(version: 20171004121444) do
|
||||||
add_index "forked_project_links", ["forked_to_project_id"], name: "index_forked_project_links_on_forked_to_project_id", unique: true, using: :btree
|
add_index "forked_project_links", ["forked_to_project_id"], name: "index_forked_project_links_on_forked_to_project_id", unique: true, using: :btree
|
||||||
|
|
||||||
create_table "gpg_key_subkeys", force: :cascade do |t|
|
create_table "gpg_key_subkeys", force: :cascade do |t|
|
||||||
|
t.integer "gpg_key_id", null: false
|
||||||
t.binary "keyid"
|
t.binary "keyid"
|
||||||
t.binary "fingerprint"
|
t.binary "fingerprint"
|
||||||
t.integer "gpg_key_id", null: false
|
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "gpg_key_subkeys", ["fingerprint"], name: "index_gpg_key_subkeys_on_fingerprint", unique: true, using: :btree
|
add_index "gpg_key_subkeys", ["fingerprint"], name: "index_gpg_key_subkeys_on_fingerprint", unique: true, using: :btree
|
||||||
|
|
|
@ -43,6 +43,8 @@ module Gitlab
|
||||||
# key belonging to the keyid.
|
# key belonging to the keyid.
|
||||||
# This way we can add the key to the temporary keychain and extract
|
# This way we can add the key to the temporary keychain and extract
|
||||||
# the proper signature.
|
# the proper signature.
|
||||||
|
# NOTE: the invoked method is #fingerprint but it's only returning
|
||||||
|
# 16 characters (the format used by keyid) instead of 40.
|
||||||
gpg_key = find_gpg_key(verified_signature.fingerprint)
|
gpg_key = find_gpg_key(verified_signature.fingerprint)
|
||||||
|
|
||||||
if gpg_key
|
if gpg_key
|
||||||
|
|
Loading…
Reference in New Issue