diff --git a/.gitlab/ci/gitlab-gems.gitlab-ci.yml b/.gitlab/ci/gitlab-gems.gitlab-ci.yml index eb0c8b8536e8de7ff5e736dd6b6241e7e03565bd..aa3fff804ba626b2b211a5d250272d34a962ffc8 100644 --- a/.gitlab/ci/gitlab-gems.gitlab-ci.yml +++ b/.gitlab/ci/gitlab-gems.gitlab-ci.yml @@ -5,6 +5,9 @@ include: - local: .gitlab/ci/templates/gem.gitlab-ci.yml inputs: gem_name: "click_house-client" + - local: .gitlab/ci/templates/gem.gitlab-ci.yml + inputs: + gem_name: "error_tracking_open_api" - local: .gitlab/ci/templates/gem.gitlab-ci.yml inputs: gem_name: "gitlab-rspec" diff --git a/.gitlab/ci/templates/gem.gitlab-ci.yml b/.gitlab/ci/templates/gem.gitlab-ci.yml index 46c5e1342c6f5643aa3322d0ee206e00c14d5600..3e19019a4640dcc7ea750bc266bf11e9de2a7641 100644 --- a/.gitlab/ci/templates/gem.gitlab-ci.yml +++ b/.gitlab/ci/templates/gem.gitlab-ci.yml @@ -15,12 +15,15 @@ spec: changes: - "$[[inputs.gem_path_prefix]]$[[inputs.gem_name]]/**/*" - ".gitlab/ci/gitlab-gems.gitlab-ci.yml" + - ".gitlab/ci/vendored-gems.gitlab-ci.yml" - ".gitlab/ci/templates/gem.gitlab-ci.yml" - "gems/gem.gitlab-ci.yml" gems $[[inputs.gem_name]]: extends: ".gems:rules:$[[inputs.gem_name]]" needs: [] + rules: + - exists: ["$[[inputs.gem_path_prefix]]$[[inputs.gem_name]]/.gitlab-ci.yml"] trigger: include: "$[[inputs.gem_path_prefix]]$[[inputs.gem_name]]/.gitlab-ci.yml" strategy: depend diff --git a/Gemfile b/Gemfile index 360a5616473eae56fc719c91c22375bb7b61f29b..f9111ae835653968b5e601dd701ce7739a6e04c9 100644 --- a/Gemfile +++ b/Gemfile @@ -599,7 +599,7 @@ gem 'ed25519', '~> 1.3.0' # Error Tracking OpenAPI client # See https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/rake_tasks.md#update-openapi-client-for-error-tracking-feature -gem 'error_tracking_open_api', path: 'vendor/gems/error_tracking_open_api' +gem 'error_tracking_open_api', path: 'gems/error_tracking_open_api' # Vulnerability advisories gem 'cvss-suite', '~> 3.0.1', require: 'cvss_suite' diff --git a/Gemfile.lock b/Gemfile.lock index 2039418605b58a4826f8c19ca0b2136d389e2269..d6c6f8c8a7c8d01d126edb7f1560cd6d94f41d84 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -12,6 +12,12 @@ PATH addressable (~> 2.8) json (~> 2.6.3) +PATH + remote: gems/error_tracking_open_api + specs: + error_tracking_open_api (1.0.0) + typhoeus (~> 1.0, >= 1.0.1) + PATH remote: gems/gitlab-rspec specs: @@ -78,12 +84,6 @@ PATH devise (~> 4.0) devise-two-factor (~> 4.0) -PATH - remote: vendor/gems/error_tracking_open_api - specs: - error_tracking_open_api (1.0.0) - typhoeus (~> 1.0, >= 1.0.1) - PATH remote: vendor/gems/mail-smtp_pool specs: diff --git a/doc/development/rake_tasks.md b/doc/development/rake_tasks.md index 0305cbf25b484f17c0c9a39740afd6691aa81130..e8ac8e58dd832843ddcf4c21da9a14ebfc2cb56a 100644 --- a/doc/development/rake_tasks.md +++ b/doc/development/rake_tasks.md @@ -526,7 +526,7 @@ NOTE: This Rake task needs `docker` to be installed. To update generated code for OpenAPI client located in -`vendor/gems/error_tracking_open_api` run the following commands: +`gems/error_tracking_open_api` run the following commands: ```shell # Run rake task @@ -535,7 +535,7 @@ bundle exec rake gems:error_tracking_open_api:generate # Review and test the changes # Commit the changes -git commit -m 'Update ErrorTrackingOpenAPI from OpenAPI definition' vendor/gems/error_tracking_open_api +git commit -m 'Update ErrorTrackingOpenAPI from OpenAPI definition' gems/error_tracking_open_api ``` ## Update banned SSH keys diff --git a/vendor/gems/error_tracking_open_api/.gitignore b/gems/error_tracking_open_api/.gitignore similarity index 100% rename from vendor/gems/error_tracking_open_api/.gitignore rename to gems/error_tracking_open_api/.gitignore diff --git a/vendor/gems/error_tracking_open_api/.openapi-generator-ignore b/gems/error_tracking_open_api/.openapi-generator-ignore similarity index 100% rename from vendor/gems/error_tracking_open_api/.openapi-generator-ignore rename to gems/error_tracking_open_api/.openapi-generator-ignore diff --git a/vendor/gems/error_tracking_open_api/.openapi-generator/FILES b/gems/error_tracking_open_api/.openapi-generator/FILES similarity index 100% rename from vendor/gems/error_tracking_open_api/.openapi-generator/FILES rename to gems/error_tracking_open_api/.openapi-generator/FILES diff --git a/vendor/gems/error_tracking_open_api/.openapi-generator/VERSION b/gems/error_tracking_open_api/.openapi-generator/VERSION similarity index 100% rename from vendor/gems/error_tracking_open_api/.openapi-generator/VERSION rename to gems/error_tracking_open_api/.openapi-generator/VERSION diff --git a/vendor/gems/error_tracking_open_api/LICENSE b/gems/error_tracking_open_api/LICENSE similarity index 100% rename from vendor/gems/error_tracking_open_api/LICENSE rename to gems/error_tracking_open_api/LICENSE diff --git a/vendor/gems/error_tracking_open_api/README.md b/gems/error_tracking_open_api/README.md similarity index 99% rename from vendor/gems/error_tracking_open_api/README.md rename to gems/error_tracking_open_api/README.md index 7591f0eb38a0cdcfb782fe120361a574c121fa12..2b5d66e59c1825a4ebd1d97671bf557d5613b91a 100644 --- a/vendor/gems/error_tracking_open_api/README.md +++ b/gems/error_tracking_open_api/README.md @@ -1,4 +1,4 @@ -# Generated by `rake gems:error_tracking_open_api:generate` on 2023-06-08 +# Generated by `rake gems:error_tracking_open_api:generate` on 2023-07-13 See https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/rake_tasks.md#update-openapi-client-for-error-tracking-feature diff --git a/vendor/gems/error_tracking_open_api/Rakefile b/gems/error_tracking_open_api/Rakefile similarity index 100% rename from vendor/gems/error_tracking_open_api/Rakefile rename to gems/error_tracking_open_api/Rakefile diff --git a/vendor/gems/error_tracking_open_api/docs/Error.md b/gems/error_tracking_open_api/docs/Error.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/Error.md rename to gems/error_tracking_open_api/docs/Error.md diff --git a/vendor/gems/error_tracking_open_api/docs/ErrorEvent.md b/gems/error_tracking_open_api/docs/ErrorEvent.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/ErrorEvent.md rename to gems/error_tracking_open_api/docs/ErrorEvent.md diff --git a/vendor/gems/error_tracking_open_api/docs/ErrorStats.md b/gems/error_tracking_open_api/docs/ErrorStats.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/ErrorStats.md rename to gems/error_tracking_open_api/docs/ErrorStats.md diff --git a/vendor/gems/error_tracking_open_api/docs/ErrorUpdatePayload.md b/gems/error_tracking_open_api/docs/ErrorUpdatePayload.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/ErrorUpdatePayload.md rename to gems/error_tracking_open_api/docs/ErrorUpdatePayload.md diff --git a/vendor/gems/error_tracking_open_api/docs/ErrorV2.md b/gems/error_tracking_open_api/docs/ErrorV2.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/ErrorV2.md rename to gems/error_tracking_open_api/docs/ErrorV2.md diff --git a/vendor/gems/error_tracking_open_api/docs/ErrorsApi.md b/gems/error_tracking_open_api/docs/ErrorsApi.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/ErrorsApi.md rename to gems/error_tracking_open_api/docs/ErrorsApi.md diff --git a/vendor/gems/error_tracking_open_api/docs/ErrorsV2Api.md b/gems/error_tracking_open_api/docs/ErrorsV2Api.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/ErrorsV2Api.md rename to gems/error_tracking_open_api/docs/ErrorsV2Api.md diff --git a/vendor/gems/error_tracking_open_api/docs/EventsApi.md b/gems/error_tracking_open_api/docs/EventsApi.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/EventsApi.md rename to gems/error_tracking_open_api/docs/EventsApi.md diff --git a/vendor/gems/error_tracking_open_api/docs/MessageEvent.md b/gems/error_tracking_open_api/docs/MessageEvent.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/MessageEvent.md rename to gems/error_tracking_open_api/docs/MessageEvent.md diff --git a/vendor/gems/error_tracking_open_api/docs/MessagesApi.md b/gems/error_tracking_open_api/docs/MessagesApi.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/MessagesApi.md rename to gems/error_tracking_open_api/docs/MessagesApi.md diff --git a/vendor/gems/error_tracking_open_api/docs/Project.md b/gems/error_tracking_open_api/docs/Project.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/Project.md rename to gems/error_tracking_open_api/docs/Project.md diff --git a/vendor/gems/error_tracking_open_api/docs/ProjectsApi.md b/gems/error_tracking_open_api/docs/ProjectsApi.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/ProjectsApi.md rename to gems/error_tracking_open_api/docs/ProjectsApi.md diff --git a/vendor/gems/error_tracking_open_api/docs/StatsObject.md b/gems/error_tracking_open_api/docs/StatsObject.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/StatsObject.md rename to gems/error_tracking_open_api/docs/StatsObject.md diff --git a/vendor/gems/error_tracking_open_api/docs/StatsObjectGroupInner.md b/gems/error_tracking_open_api/docs/StatsObjectGroupInner.md similarity index 100% rename from vendor/gems/error_tracking_open_api/docs/StatsObjectGroupInner.md rename to gems/error_tracking_open_api/docs/StatsObjectGroupInner.md diff --git a/vendor/gems/error_tracking_open_api/error_tracking_open_api.gemspec b/gems/error_tracking_open_api/error_tracking_open_api.gemspec similarity index 94% rename from vendor/gems/error_tracking_open_api/error_tracking_open_api.gemspec rename to gems/error_tracking_open_api/error_tracking_open_api.gemspec index 1eed64d49adae8da6de18fe74345a90f61e2ec15..405b5ae94c0f5b78b2a5c9bdee3b218154a7d854 100644 --- a/vendor/gems/error_tracking_open_api/error_tracking_open_api.gemspec +++ b/gems/error_tracking_open_api/error_tracking_open_api.gemspec @@ -29,7 +29,7 @@ Gem::Specification.new do |s| s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1' - s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0' + s.files = Dir.glob("lib/**/*") s.test_files = [] diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api/errors_api.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/api/errors_api.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api/errors_api.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/api/errors_api.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api/errors_v2_api.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/api/errors_v2_api.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api/errors_v2_api.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/api/errors_v2_api.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api/events_api.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/api/events_api.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api/events_api.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/api/events_api.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api/messages_api.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/api/messages_api.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api/messages_api.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/api/messages_api.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api/projects_api.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/api/projects_api.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api/projects_api.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/api/projects_api.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api_client.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/api_client.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api_client.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/api_client.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api_error.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/api_error.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/api_error.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/api_error.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/configuration.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/configuration.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/configuration.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/configuration.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/models/error.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_event.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_event.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_event.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_event.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_stats.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_stats.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_stats.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_stats.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_update_payload.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_update_payload.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_update_payload.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_update_payload.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_v2.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_v2.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_v2.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/models/error_v2.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/message_event.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/models/message_event.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/message_event.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/models/message_event.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/project.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/models/project.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/project.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/models/project.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/stats_object.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/models/stats_object.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/stats_object.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/models/stats_object.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/stats_object_group_inner.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/models/stats_object_group_inner.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/models/stats_object_group_inner.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/models/stats_object_group_inner.rb diff --git a/vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/version.rb b/gems/error_tracking_open_api/lib/error_tracking_open_api/version.rb similarity index 100% rename from vendor/gems/error_tracking_open_api/lib/error_tracking_open_api/version.rb rename to gems/error_tracking_open_api/lib/error_tracking_open_api/version.rb diff --git a/lib/tasks/gems.rake b/lib/tasks/gems.rake index fc70048ea6da59b39a38651a20f5c091fe3cc371..0c4cbbfe3f8984892688fa373df271dd74640128 100644 --- a/lib/tasks/gems.rake +++ b/lib/tasks/gems.rake @@ -29,7 +29,7 @@ namespace :gems do end def root_directory - File.expand_path('../../vendor/gems', __dir__) + File.expand_path('../../gems', __dir__) end def generate_gem(vendor_gem_dir:, api_url:, gem_name:, module_name:, docker_image:) @@ -53,14 +53,18 @@ namespace :gems do write_file(gem_dir / 'LICENSE', license) write_file(gem_dir / "#{gem_name}.gemspec") do |content| replace_string(content, 'Unlicense', 'MIT') + replace_string(content, /.*add_development_dependency 'rspec'.*/, '') replace_string(content, /(\.files\s*=).*/, '\1 Dir.glob("lib/**/*")') replace_string(content, /(\.test_files\s*=).*/, '\1 []') end + # This is gem is supposed to be generated. No developer should change code. remove_entry_secure(gem_dir / 'Gemfile') + # The generated code doesn't align well with `gitlab-styles` configuration. remove_entry_secure(gem_dir / '.rubocop.yml') remove_entry_secure(gem_dir / '.travis.yml') remove_entry_secure(gem_dir / 'git_push.sh') + # The RSpec examples are stubs and have no value. remove_entry_secure(gem_dir / 'spec') remove_entry_secure(gem_dir / '.rspec') end @@ -78,14 +82,16 @@ namespace :gems do end def readme_banner(task) - # rubocop:disable Rails/TimeZone <<~BANNER - # Generated by `rake #{task.name}` on #{Time.now.strftime('%Y-%m-%d')} + # #{generated_by(task)} See https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/rake_tasks.md#update-openapi-client-for-error-tracking-feature BANNER - # rubocop:enable Rails/TimeZone + end + + def generated_by(task) + "Generated by `rake #{task.name}` on #{Time.now.strftime('%Y-%m-%d')}" # rubocop:disable Rails/TimeZone end def license