diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2018-09-06 21:06:55 +0000 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2018-09-06 21:06:55 +0000 |
commit | 915306ec50c50b3b1b0793150a7cb4f31fbbee75 (patch) | |
tree | c9f6a045ee02003ca9b715783692cb1d623f619d /config | |
parent | c353773787407158b6319b6944dee57a6e3522b9 (diff) | |
parent | 7aa6766cd15036dcfb5391b3fd7bffb9069ffbcf (diff) | |
download | gitlab-ce-915306ec50c50b3b1b0793150a7cb4f31fbbee75.tar.gz |
Merge branch 'master' into 'alerts-for-built-in-metrics'
# Conflicts:
# db/schema.rb
Diffstat (limited to 'config')
-rw-r--r-- | config/dependency_decisions.yml | 28 | ||||
-rw-r--r-- | config/gitlab.yml.example | 2 | ||||
-rw-r--r-- | config/initializers/1_settings.rb | 2 | ||||
-rw-r--r-- | config/initializers/carrierwave_patch.rb | 29 | ||||
-rw-r--r-- | config/initializers/fog_google_https_private_urls.rb | 2 | ||||
-rw-r--r-- | config/initializers/lograge.rb | 3 | ||||
-rw-r--r-- | config/initializers/mysql_set_length_for_binary_indexes.rb | 32 | ||||
-rw-r--r-- | config/initializers/postgresql_opclasses_support.rb | 50 | ||||
-rw-r--r-- | config/sidekiq_queues.yml | 1 |
9 files changed, 115 insertions, 34 deletions
diff --git a/config/dependency_decisions.yml b/config/dependency_decisions.yml index 16f16f77fb9..664035831a5 100644 --- a/config/dependency_decisions.yml +++ b/config/dependency_decisions.yml @@ -235,8 +235,9 @@ :why: https://github.com/component/inherit/blob/master/LICENSE :versions: [] :when: 2017-01-14 20:10:41.804804000 Z -- - :approve +- - :license - fsevents + - MIT - :who: Matt Lee :why: https://github.com/strongloop/fsevents/blob/master/LICENSE :versions: [] @@ -380,8 +381,9 @@ :why: https://github.com/Tjatse/ansi-html/blob/master/LICENSE :versions: [] :when: 2017-04-10 05:42:12.898178000 Z -- - :approve +- - :license - map-stream + - MIT - :who: Mike Greiling :why: https://github.com/dominictarr/map-stream/blob/master/LICENCE :versions: [] @@ -458,8 +460,9 @@ :why: CC0 1.0 - https://github.com/jonathantneal/svg4everybody/blob/master/LICENSE.md :versions: [] :when: 2017-09-13 17:31:16.425819400 Z -- - :approve +- - :license - "@gitlab-org/gitlab-svgs" + - MIT - :who: Tim Zallmann :why: Our own library - GitLab License https://gitlab.com/gitlab-org/gitlab-svgs :versions: [] @@ -528,8 +531,9 @@ :why: https://github.com/mafintosh/cyclist/blob/master/LICENSE :versions: [] :when: 2018-02-20 21:37:43.774978000 Z -- - :approve +- - :license - bitsyntax + - MIT - :who: Mike Greiling :why: https://github.com/squaremo/bitsyntax-js/blob/master/LICENSE-MIT :versions: [] @@ -540,8 +544,9 @@ :why: https://github.com/xtuc/webassemblyjs/blob/master/LICENSE :versions: [] :when: 2018-06-08 05:30:56.764116000 Z -- - :approve +- - :license - "@gitlab-org/gitlab-ui" + - MIT - :who: Clement Ho :why: Our own library :versions: [] @@ -552,20 +557,23 @@ :why: https://github.com/pieroxy/lz-string/blob/master/LICENSE.txt :versions: [] :when: 2018-08-03 08:22:44.973457000 Z -- - :approve +- - :license - smooshpack + - LGPL - :who: Phil Hughes :why: https://github.com/CompuIves/codesandbox-client/blob/master/packages/sandpack/LICENSE.md :versions: [] :when: 2018-08-03 08:24:29.578991000 Z -- - :approve +- - :license - codesandbox-import-util-types + - LGPL - :who: Phil Hughes :why: https://github.com/codesandbox-app/codesandbox-importers/blob/master/packages/types/LICENSE :versions: [] :when: 2018-08-03 12:22:47.574421000 Z -- - :approve +- - :license - codesandbox-import-utils + - LGPL - :who: Phil Hughes :why: https://github.com/codesandbox-app/codesandbox-importers/blob/master/packages/import-utils/LICENSE :versions: [] @@ -573,7 +581,7 @@ - - :ignore_group - devDependencies - :who: Winnie Hellmann - :why: NPM packages used for development are not distributed with the final product and are therefore - exempt. + :why: NPM packages used for development are not distributed with the final product + and are therefore exempt. :versions: [] :when: 2018-08-30 12:06:35.668181000 Z diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example index 4847a82236b..e9129e20a61 100644 --- a/config/gitlab.yml.example +++ b/config/gitlab.yml.example @@ -94,7 +94,7 @@ production: &base # This happens when the commit is pushed or merged into the default branch of a project. # When not specified the default issue_closing_pattern as specified below will be used. # Tip: you can test your closing pattern at http://rubular.com. - # issue_closing_pattern: '((?:[Cc]los(?:e[sd]?|ing)|[Ff]ix(?:e[sd]|ing)?|[Rr]esolv(?:e[sd]?|ing)|[Ii]mplement(?:s|ed|ing)?)(:?) +(?:(?:issues? +)?%{issue_ref}(?:(?:, *| +and +)?)|([A-Z][A-Z0-9_]+-\d+))+)' + # issue_closing_pattern: '\b((?:[Cc]los(?:e[sd]?|ing)|\b[Ff]ix(?:e[sd]|ing)?|\b[Rr]esolv(?:e[sd]?|ing)|\b[Ii]mplement(?:s|ed|ing)?)(:?) +(?:(?:issues? +)?%{issue_ref}(?:(?:, *| +and +)?)|([A-Z][A-Z0-9_]+-\d+))+)' ## Default project features settings default_projects_features: diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb index ab351b86cae..67f0f2b4169 100644 --- a/config/initializers/1_settings.rb +++ b/config/initializers/1_settings.rb @@ -136,7 +136,7 @@ Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled']. Settings.gitlab['signin_enabled'] ||= true if Settings.gitlab['signin_enabled'].nil? Settings.gitlab['restricted_visibility_levels'] = Settings.__send__(:verify_constant_array, Gitlab::VisibilityLevel, Settings.gitlab['restricted_visibility_levels'], []) Settings.gitlab['username_changing_enabled'] = true if Settings.gitlab['username_changing_enabled'].nil? -Settings.gitlab['issue_closing_pattern'] = '((?:[Cc]los(?:e[sd]?|ing)|[Ff]ix(?:e[sd]|ing)?|[Rr]esolv(?:e[sd]?|ing)|[Ii]mplement(?:s|ed|ing)?)(:?) +(?:(?:issues? +)?%{issue_ref}(?:(?: *,? +and +| *,? *)?)|([A-Z][A-Z0-9_]+-\d+))+)' if Settings.gitlab['issue_closing_pattern'].nil? +Settings.gitlab['issue_closing_pattern'] = '\b((?:[Cc]los(?:e[sd]?|ing)|\b[Ff]ix(?:e[sd]|ing)?|\b[Rr]esolv(?:e[sd]?|ing)|\b[Ii]mplement(?:s|ed|ing)?)(:?) +(?:(?:issues? +)?%{issue_ref}(?:(?: *,? +and +| *,? *)?)|([A-Z][A-Z0-9_]+-\d+))+)' if Settings.gitlab['issue_closing_pattern'].nil? Settings.gitlab['default_projects_features'] ||= {} Settings.gitlab['webhook_timeout'] ||= 10 Settings.gitlab['max_attachment_size'] ||= 10 diff --git a/config/initializers/carrierwave_patch.rb b/config/initializers/carrierwave_patch.rb new file mode 100644 index 00000000000..35ffff03abe --- /dev/null +++ b/config/initializers/carrierwave_patch.rb @@ -0,0 +1,29 @@ +# This monkey patches CarrierWave 1.2.3 to make Google Cloud Storage work with +# extra query parameters: +# https://github.com/carrierwaveuploader/carrierwave/pull/2332/files +module CarrierWave + module Storage + class Fog < Abstract + class File + def authenticated_url(options = {}) + if %w(AWS Google Rackspace OpenStack).include?(@uploader.fog_credentials[:provider]) + # avoid a get by using local references + local_directory = connection.directories.new(key: @uploader.fog_directory) + local_file = local_directory.files.new(key: path) + expire_at = ::Fog::Time.now + @uploader.fog_authenticated_url_expiration + case @uploader.fog_credentials[:provider] + when 'AWS', 'Google' + local_file.url(expire_at, options) + when 'Rackspace' + connection.get_object_https_url(@uploader.fog_directory, path, expire_at, options) + when 'OpenStack' + connection.get_object_https_url(@uploader.fog_directory, path, expire_at) + else + local_file.url(expire_at) + end + end + end + end + end + end +end diff --git a/config/initializers/fog_google_https_private_urls.rb b/config/initializers/fog_google_https_private_urls.rb index c65a534b536..682b1050c68 100644 --- a/config/initializers/fog_google_https_private_urls.rb +++ b/config/initializers/fog_google_https_private_urls.rb @@ -9,7 +9,7 @@ module Fog module MonkeyPatch def url(expires, options = {}) requires :key - collection.get_https_url(key, expires) + collection.get_https_url(key, expires, options) end end diff --git a/config/initializers/lograge.rb b/config/initializers/lograge.rb index 1cf8a24e98c..840404e0ec0 100644 --- a/config/initializers/lograge.rb +++ b/config/initializers/lograge.rb @@ -22,7 +22,8 @@ unless Sidekiq.server? params: params, remote_ip: event.payload[:remote_ip], user_id: event.payload[:user_id], - username: event.payload[:username] + username: event.payload[:username], + ua: event.payload[:ua] } gitaly_calls = Gitlab::GitalyClient.get_request_count diff --git a/config/initializers/mysql_set_length_for_binary_indexes.rb b/config/initializers/mysql_set_length_for_binary_indexes.rb index de0bc5322aa..81ed2fb83de 100644 --- a/config/initializers/mysql_set_length_for_binary_indexes.rb +++ b/config/initializers/mysql_set_length_for_binary_indexes.rb @@ -2,13 +2,17 @@ # MySQL adapter apply a length of 20. Otherwise MySQL can't create an index on # binary columns. +# This module can be removed once a Rails 5 schema is used. +# It can't be wrapped in a check that checks Gitlab.rails5? because +# the old Rails 4 schema layout is still used module MysqlSetLengthForBinaryIndex def add_index(table_name, column_names, options = {}) + options[:length] ||= {} Array(column_names).each do |column_name| column = ActiveRecord::Base.connection.columns(table_name).find { |c| c.name == column_name } if column&.type == :binary - options[:length] = 20 + options[:length][column_name] = 20 end end @@ -19,3 +23,29 @@ end if defined?(ActiveRecord::ConnectionAdapters::Mysql2Adapter) ActiveRecord::ConnectionAdapters::Mysql2Adapter.send(:prepend, MysqlSetLengthForBinaryIndex) end + +if Gitlab.rails5? + module MysqlSetLengthForBinaryIndexAndIgnorePostgresOptionsForSchema + # This method is used in Rails 5 schema loading as t.index + def index(column_names, options = {}) + options[:length] ||= {} + Array(column_names).each do |column_name| + column = columns.find { |c| c.name == column_name } + + if column&.type == :binary + options[:length][column_name] = 20 + end + end + + # Ignore indexes that use opclasses, + # also see config/initializers/mysql_ignore_postgresql_options.rb + unless options[:opclasses] + super(column_names, options) + end + end + end + + if defined?(ActiveRecord::ConnectionAdapters::MySQL::TableDefinition) + ActiveRecord::ConnectionAdapters::MySQL::TableDefinition.send(:prepend, MysqlSetLengthForBinaryIndexAndIgnorePostgresOptionsForSchema) + end +end diff --git a/config/initializers/postgresql_opclasses_support.rb b/config/initializers/postgresql_opclasses_support.rb index 7b8afc78817..12a0770a455 100644 --- a/config/initializers/postgresql_opclasses_support.rb +++ b/config/initializers/postgresql_opclasses_support.rb @@ -144,7 +144,10 @@ module ActiveRecord [column, opclass] if opclass end.compact] - IndexDefinition.new(table_name, index_name, unique, column_names, [], orders, where, nil, using, opclasses) + index_attrs = [table_name, index_name, unique, column_names, [], orders, where, nil, using, opclasses] + index_attrs.insert(-2, nil) if Gitlab.rails5? # include index comment for Rails 5 + + IndexDefinition.new(*index_attrs) end end.compact end @@ -172,29 +175,38 @@ module ActiveRecord def indexes(table, stream) if (indexes = @connection.indexes(table)).any? add_index_statements = indexes.map do |index| - statement_parts = [ - "add_index #{remove_prefix_and_suffix(index.table).inspect}", - index.columns.inspect, - "name: #{index.name.inspect}", - ] - statement_parts << 'unique: true' if index.unique - - index_lengths = (index.lengths || []).compact - statement_parts << "length: #{Hash[index.columns.zip(index.lengths)].inspect}" if index_lengths.any? - - index_orders = index.orders || {} - statement_parts << "order: #{index.orders.inspect}" if index_orders.any? - statement_parts << "where: #{index.where.inspect}" if index.where - statement_parts << "using: #{index.using.inspect}" if index.using - statement_parts << "type: #{index.type.inspect}" if index.type - statement_parts << "opclasses: #{index.opclasses}" if index.opclasses.present? - - " #{statement_parts.join(', ')}" + table_name = remove_prefix_and_suffix(index.table).inspect + " add_index #{([table_name]+index_parts(index)).join(', ')}" end stream.puts add_index_statements.sort.join("\n") stream.puts end end + + def indexes_in_create(table, stream) + if (indexes = @connection.indexes(table)).any? + index_statements = indexes.map do |index| + " t.index #{index_parts(index).join(', ')}" + end + stream.puts index_statements.sort.join("\n") + end + end + + def index_parts(index) + index_parts = [ + index.columns.inspect, + "name: #{index.name.inspect}", + ] + index_parts << "unique: true" if index.unique + index_parts << "length: { #{format_options(index.lengths)} }" if index.lengths.present? + index_parts << "order: { #{format_options(index.orders)} }" if index.orders.present? + index_parts << "where: #{index.where.inspect}" if index.where + index_parts << "using: #{index.using.inspect}" if index.using + index_parts << "type: #{index.type.inspect}" if index.type + index_parts << "opclasses: #{index.opclasses.inspect}" if index.opclasses.present? + index_parts << "comment: #{index.comment.inspect}" if Gitlab.rails5? && index.comment + index_parts + end end end diff --git a/config/sidekiq_queues.yml b/config/sidekiq_queues.yml index fb7738a5536..dc49403aca1 100644 --- a/config/sidekiq_queues.yml +++ b/config/sidekiq_queues.yml @@ -78,3 +78,4 @@ - [create_note_diff_file, 1] - [delete_diff_files, 1] - [detect_repository_languages, 1] + - [auto_devops, 2] |