Audit and fix uses of YAML.load_file and YAML.safe_load for Ruby 3.1
YAML.load_file
in Ruby 3.1/Psych4 changed to default to YAML.safe_load
. This breaks a number of our tests because of the reasons documented below:
For example, in https://gitlab.com/gitlab-org/gitlab/-/jobs/3918495253 we see this Unknown alias: label_definition
:
1) ProjectsController updates Service Desk attributes
Failure/Error: raise Gitlab::ImportExport::Error, shared.errors.to_sentence
Gitlab::ImportExport::Error:
Unknown alias: label_definition
# ./app/services/projects/import_export/export_service.rb:132:in `notify_error!'
# ./app/services/projects/import_export/export_service.rb:60:in `save_all!'
# ./app/services/projects/import_export/export_service.rb:18:in `execute'
# ./app/workers/project_export_worker.rb:25:in `perform'
# ./spec/factories/projects.rb:211:in `block (4 levels) in <top (required)>'
# ./spec/controllers/projects_controller_spec.rb:10:in `block (2 levels) in <top (required)>'
This fix is this:
diff --git a/lib/gitlab/import_export/config.rb b/lib/gitlab/import_export/config.rb
index 423e0933605e..bcd283a32b3f 100644
--- a/lib/gitlab/import_export/config.rb
+++ b/lib/gitlab/import_export/config.rb
@@ -52,7 +52,7 @@ def merge_ee?
end
def parse_yaml
- YAML.load_file(@config)
+ YAML.load_file(@config, aliases: true)
end
end
end
YAML.safe_load
also needs to be checked:
RSpec::Retry: 2nd try ./spec/lib/gitlab/import_export/project/exported_relations_merger_spec.rb:58
Failures:
1) Gitlab::Ci::YamlProcessor::Result#config_metadata returns expanded yaml config
Failure/Error: expanded_config = YAML.safe_load(config_metadata[:merged_yaml], [Symbol])
ArgumentError:
wrong number of arguments (given 2, expected 1)
Failing tests:
-
https://gitlab.com/gitlab-org/gitlab/-/jobs/3919091809:
./lib/gitlab/bullet/exclusions.rb:30
-
https://gitlab.com/gitlab-org/gitlab/-/jobs/3919091810:
./lib/backup/manager.rb:250
,Tried to load unspecified class: ActiveSupport::TimeWithZone
Designs
- Show closed items
Activity
-
Newest first Oldest first
-
Show all activity Show comments only Show history only
- Stan Hu added to epic &10034 (closed)
added to epic &10034 (closed)
- Maintainer
@stanhu, Please add a group or category label to identify issue ownership.You can refer to the Features by Group handbook page for guidance.
If you are unsure about the correct group, please do not leave the issue without a group label, and refer to GitLab's shared responsibility functionality guidelines for more information on how to triage this kind of issue.
This message was generated automatically. You're welcome to improve it.
- Stan Hu changed title from Audit and fix uses of YAML.load_file for Ruby 3.1 to Audit and fix uses of YAML.load_file and YAML.safe_load for Ruby 3.1
changed title from Audit and fix uses of YAML.load_file for Ruby 3.1 to Audit and fix uses of YAML.load_file and YAML.safe_load for Ruby 3.1
- Stan Hu changed the description
Compare with previous version changed the description
- Stan Hu mentioned in merge request !114389 (merged)
mentioned in merge request !114389 (merged)
Gems that use of
YAML.safe_load
:stanhu@stanhu:/opt/gitlab/embedded/lib/ruby/gems/3.0.0/gems$ sudo grep -r "YAML.safe_load" . ./mime-types-3.4.1/lib/mime/types/loader.rb: YAML.safe_load(read_file(filename), [MIME::Type]) ./mime-types-3.4.1/lib/mime/types/loader.rb: YAML.safe_load(read_file(filename), permitted_classes: [MIME::Type]) ./sidekiq-6.5.7/lib/sidekiq/web/helpers.rb: strs = YAML.safe_load(File.open(file)) ./sidekiq-6.5.7/lib/sidekiq/cli.rb: YAML.safe_load(src, permitted_classes: [Symbol], aliases: true) ./license_finder-7.0.1/lib/license_finder/configuration.rb: saved_config = config_file.exist? ? YAML.safe_load(config_file.read) : {} ./license_finder-7.0.1/lib/license_finder/decisions.rb: YAML.safe_load(persisted, permitted_classes: [Symbol, Time], aliases: true) ./license_finder-7.0.1/lib/license_finder/decisions.rb: YAML.safe_load(persisted, [Symbol, Time], [], true) ./license_finder-7.0.1/lib/license_finder/package_managers/glide.rb: YAML.safe_load(File.read(detected_path), permitted_classes: [Symbol, Time], aliases: true).fetch('imports') ./license_finder-7.0.1/lib/license_finder/package_managers/glide.rb: YAML.safe_load(File.read(detected_path), [Symbol, Time], [], true).fetch('imports') ./http-cookie-1.0.5/lib/http/cookie_jar/yaml_saver.rb: YAML.safe_load(yaml, :permitted_classes => %w[Time HTTP::Cookie Mechanize::Cookie DomainName], :aliases => true) ./fog-openstack-1.0.8/lib/fog/openstack/orchestration/util/recursive_hot_file_loader.rb: template = YAML.safe_load(template_file, [Date]) ./fog-openstack-1.0.8/lib/fog/openstack/orchestration/util/recursive_hot_file_loader.rb: template = YAML.safe_load(raw_template, [Date]) ./fog-openstack-1.0.8/lib/fog/openstack/orchestration/util/recursive_hot_file_loader.rb: YAML.safe_load(YAML.dump(item), [Date]) ./licensee-9.15.2/lib/licensee/license_meta.rb: from_hash YAML.safe_load(yaml) ./licensee-9.15.2/lib/licensee/rule.rb: YAML.safe_load File.read(Rule.file_path) ./licensee-9.15.2/lib/licensee/license_field.rb: fields = YAML.safe_load File.read(path) ./kramdown-2.3.2/bin/kramdown: config_file_options = YAML.safe_load(File.read(config_file), [Symbol]) ./kramdown-2.3.2/lib/kramdown/options.rb: val = YAML.safe_load(val) ./chef-config-17.10.0/lib/chef-config/config.rb: memo[key.to_sym] = YAML.safe_load(value) ./chef-17.10.0/lib/chef/recipe.rb: res = ::YAML.safe_load(string) ./gitlab-license_finder-6.14.2.1/lib/license_finder/configuration.rb: saved_config = config_file.exist? ? YAML.safe_load(config_file.read) : {} ./chef-config-17.10.19/lib/chef-config/config.rb: memo[key.to_sym] = YAML.safe_load(value) ./gitlab-4.19.0/lib/gitlab/cli_helpers.rb: hex_color?(arg) ? arg : YAML.safe_load(arg) ./hashie-4.1.0/lib/hashie/extensions/parsers/yaml_erb_parser.rb: YAML.safe_load( ./hashie-4.1.0/lib/hashie/extensions/parsers/yaml_erb_parser.rb: YAML.safe_load(template.result, permitted_classes, permitted_symbols, aliases) ./activerecord-6.1.7.2/lib/active_record/coders/yaml_column.rb: YAML.safe_load(payload, permitted_classes: ActiveRecord::Base.yaml_column_permitted_classes, aliases: true) ./activerecord-6.1.7.2/lib/active_record/coders/yaml_column.rb: YAML.safe_load(payload, ActiveRecord::Base.yaml_column_permitted_classes, [], true) ./activerecord-6.1.7.2/lib/active_record/coders/yaml_column.rb: YAML.safe_load(payload, permitted_classes: ActiveRecord::Base.yaml_column_permitted_classes, aliases: true) ./activerecord-6.1.7.2/lib/active_record/coders/yaml_column.rb: YAML.safe_load(payload, ActiveRecord::Base.yaml_column_permitted_classes, [], true) ./chef-config-16.10.17/lib/chef-config/config.rb: memo[key.to_sym] = YAML.safe_load(value) ./hashie-5.0.0/lib/hashie/extensions/parsers/yaml_erb_parser.rb: YAML.safe_load( ./hashie-5.0.0/lib/hashie/extensions/parsers/yaml_erb_parser.rb: YAML.safe_load(template.result, permitted_classes, permitted_symbols, aliases)
Of this list, we need to review:
- kramdown
This only affectsbin/kramdown
, which I'm not sure we are using. https://github.com/gettalong/kramdown/pull/779 fixes this. -
fog-openstack(we removed support in #387995 (closed)) - hashie
This is okay per https://github.com/hashie/hashie/pull/507
Edited by Stan Hu- kramdown
Collapse replies Actually,
YAML.load
andYAML.load_file
need to be checked:root@stanhu-gce:/opt/gitlab/embedded/lib/ruby/gems/3.0.0# grep -r YAML.load specifications/safe_yaml-1.0.4.gemspec: s.summary = "SameYAML provides an alternative implementation of YAML.load suitable for accepting user input in Ruby applications.".freeze gems/chef-telemetry-1.1.1/lib/chef/telemeter/sender.rb: YAML.load(content) gems/fog-core-2.1.0/lib/fog/core/cache.rb: @memoized[path] = YAML.load(File.read(path)) gems/fog-core-2.1.0/lib/fog/core/cache.rb: YAML.dump(YAML.load(File.read(mpath)).merge!(h)) gems/fog-core-2.1.0/lib/fog/core/cache.rb: metadata = YAML.load(File.read(mpath)) gems/fog-core-2.1.0/lib/fog/core/credentials.rb: credentials = Fog::Core::Utils.prepare_service_settings(YAML.load_file(credentials_path)) gems/rdoc-6.3.2/lib/rdoc/rdoc.rb: options = YAML.load_file '.rdoc_options' gems/actionpack-6.1.7.2/lib/action_controller/metal/strong_parameters.rb: YAML.load_tags["!ruby/hash-with-ivars:ActionController::Parameters"] = name gems/actionpack-6.1.7.2/lib/action_controller/metal/strong_parameters.rb: YAML.load_tags["!ruby/hash:ActionController::Parameters"] = name gems/faraday_middleware-1.2.0/lib/faraday_middleware/response/parse_yaml.rb: # YAML.load rather than YAMl.safe_load, which exposes serious remote code gems/faraday_middleware-1.2.0/lib/faraday_middleware/response/parse_yaml.rb: # YAML.load body gems/faraday_middleware-1.2.0/lib/faraday_middleware/response/parse_yaml.rb: SafeYAML.load(body, nil, parser_options || {}) gems/thor-1.1.0/lib/thor/runner.rb: yaml = YAML.load_file(yaml_file) if File.exist?(yaml_file) gems/gettext_i18n_rails_js-1.3.0/lib/gettext_i18n_rails_js/config.rb: yaml = YAML.load_file(file) || {} gems/mail-2.8.1/lib/mail/message.rb: hash = Mail::YAML.load(str) gems/settingslogic-2.0.9/lib/settingslogic.rb: hash = file_contents.empty? ? {} : YAML.load(ERB.new(file_contents).result).to_hash gems/yajl-ruby-1.4.3/benchmark/parse.rb: puts "YAML.load (from an IO)" gems/yajl-ruby-1.4.3/benchmark/parse.rb: YAML.load(json) gems/yajl-ruby-1.4.3/benchmark/parse.rb: puts "YAML.load (from a String)" gems/yajl-ruby-1.4.3/benchmark/parse.rb: YAML.load(json.read) gems/yajl-ruby-1.4.3/benchmark/parse_json_and_yaml.rb: puts "YAML.load_stream" gems/yajl-ruby-1.4.3/benchmark/parse_json_and_yaml.rb: YAML.load(yaml) gems/yajl-ruby-1.4.3/benchmark/encode_json_and_yaml.rb:data = YAML.load_stream(yml) gems/gitlab-license_finder-6.14.2.1/lib/license_finder/decisions.rb: actions = YAML.load(persisted) gems/gitlab-license_finder-6.14.2.1/lib/license_finder/package_managers/cocoa_pods.rb: podfile = YAML.load_file(lockfile_path) gems/gitlab-license_finder-6.14.2.1/lib/license_finder/package_managers/conda.rb: @environment_name ||= YAML.load_file(environment_file).fetch('name') gems/gitlab-license_finder-6.14.2.1/lib/license_finder/package_managers/trash.rb: YAML.load_file(dependencies_path).fetch('import').map do |package_hash| gems/gitlab-license_finder-6.14.2.1/lib/license_finder/package_managers/glide.rb: YAML.load_file(detected_path).fetch('imports').map do |package_hash| gems/thor-1.2.1/lib/thor/runner.rb: yaml = YAML.load_file(yaml_file) if File.exist?(yaml_file) gems/browser-5.3.1/lib/browser/testing.rb: @browser_user_agents ||= YAML.load_file(Browser.root.join("test/ua.yml")) gems/browser-5.3.1/lib/browser/testing.rb: @bot_user_agents ||= YAML.load_file(Browser.root.join("test/ua_bots.yml")) gems/browser-5.3.1/lib/browser/testing.rb: YAML.load_file(Browser.root.join("test/ua_search_engines.yml")) gems/browser-5.3.1/lib/browser/device/samsung.rb: @names ||= YAML.load_file(Browser.root.join("samsung.yml").to_s) gems/browser-5.3.1/lib/browser/bot.rb: YAML.load_file(Browser.root.join(path)) gems/browser-5.3.1/lib/browser/accept_language.rb: @languages ||= YAML.load_file(Browser.root.join("languages.yml")) gems/regexp_parser-2.6.0/lib/regexp_parser/expression/classes/escape_sequence.rb: YAML.load(%Q(---\n"#{text}"\n)) gems/kramdown-2.3.2/lib/kramdown/utils/unidecoder.rb: h[k] = YAML.load_file(File.join(path, "stringex", "unidecoder_data", "#{k}.yml")) gems/gitlab-mail_room-0.0.23/lib/mail_room/configuration.rb: config_file = YAML.load(erb.result) gems/mixlib-config-3.0.9/lib/mixlib/config.rb: from_hash(YAML.load(IO.read(filename))) gems/device_detector-1.0.0/lib/device_detector/parser.rb: file_paths.map { |path, full_path| [path, symbolize_keys!(YAML.load_file(full_path))] } gems/elasticsearch-rails-7.2.1/lib/rails/templates/seeds.rb: @documents = YAML.respond_to?(:load_documents) ? YAML.load_documents(gzip.read) : gems/elasticsearch-rails-7.2.1/lib/rails/templates/seeds.rb: YAML.load_stream(gzip.read) gems/crack-0.4.3/lib/crack/json.rb: SafeYAML.load(*args) gems/fast_gettext-2.3.0/lib/fast_gettext/translation_repository/yaml.rb: yaml = YAML.load_file(file) gems/rest-client-2.1.0/bin/restclient:config = YAML.load(File.read(ENV['HOME'] + "/.restclient")) rescue {} gems/remote_syslog-1.6.15/lib/remote_syslog/cli.rb: config = YAML.load_file(file) gems/safe_yaml-1.0.4/bin/safe_yaml: YAML.load("--- !#{'%20' * 100}") gems/safe_yaml-1.0.4/bin/safe_yaml: result = SafeYAML.load(yaml) gems/safe_yaml-1.0.4/lib/safe_yaml.rb: SafeYAML.load(*args) gems/safe_yaml-1.0.4/lib/safe_yaml.rb: SafeYAML.load_file(*args) gems/elasticsearch-model-7.2.0/lib/elasticsearch/model/indexing.rb: settings = YAML.load(settings.read) if settings.respond_to?(:read) gems/elasticsearch-model-7.2.0/lib/elasticsearch/model/indexing.rb: YAML.load(settings.read) gems/ffi-yajl-2.4.0/lib/ffi_yajl/benchmark/parse_json_and_yaml.rb: puts "YAML.load_stream" gems/ffi-yajl-2.4.0/lib/ffi_yajl/benchmark/parse_json_and_yaml.rb: YAML.load(yaml) gems/ffi-yajl-2.4.0/lib/ffi_yajl/benchmark/encode_json_and_yaml.rb:data = YAML.load_stream(yml) gems/ffi-yajl-2.3.4/lib/ffi_yajl/benchmark/parse_json_and_yaml.rb: puts "YAML.load_stream" gems/ffi-yajl-2.3.4/lib/ffi_yajl/benchmark/parse_json_and_yaml.rb: YAML.load(yaml) gems/ffi-yajl-2.3.4/lib/ffi_yajl/benchmark/encode_json_and_yaml.rb:data = YAML.load_stream(yml) gems/bundler-2.3.15/lib/bundler/vendor/thor/lib/thor/runner.rb: yaml = YAML.load_file(yaml_file) if File.exist?(yaml_file) gems/countries-4.0.1/lib/countries/tasks/postal_codes.rake: yaml = YAML.load_file(country_file) gems/countries-4.0.1/lib/countries/tasks/geocoding.rake: YAML.load_file(File.join(ISO3166_ROOT_PATH, 'lib', 'countries', 'data', 'countries', "#{alpha2}.yaml")) gems/countries-4.0.1/lib/countries/sources/local/subdivision.rb: YAML.load_file(file_path) || {} gems/countries-4.0.1/lib/countries/country/class_methods.rb: File.exist?(file) ? YAML.load_file(file) : {} gems/railties-6.1.7.2/lib/rails/secrets.rb: secrets = YAML.respond_to?(:unsafe_load) ? YAML.unsafe_load(source) : YAML.load(source) gems/railties-6.1.7.2/lib/rails/application/configuration.rb: YAML.load(yaml) || {} gems/erubis-2.7.0/benchmark/bench.rb: context = YAML.load_file(contextfile) gems/erubis-2.7.0/lib/erubis/main.rb: #value = value.nil? ? true : YAML.load(value) # error, why? gems/erubis-2.7.0/lib/erubis/main.rb: value = value.nil? ? true : YAML.load("---\n#{value}\n") gems/erubis-2.7.0/lib/erubis/main.rb: ydoc = YAML.load_file(filename) gems/erubis-2.7.0/lib/erubis/main.rb: ydoc = YAML.load(untabify(File.read(filename))) gems/erubis-2.7.0/lib/erubis/main.rb: ydoc = YAML.load(context_str) gems/sidekiq-6.5.7/lib/sidekiq/testing.rb: marshalled.index(klass.to_s) && YAML.load(marshalled)[0] == klass gems/sidekiq-6.5.7/lib/sidekiq/cli.rb: YAML.load(src) gems/sidekiq-6.5.7/lib/sidekiq/extensions/action_mailer.rb: (target, method_name, args) = YAML.load(yml) gems/sidekiq-6.5.7/lib/sidekiq/extensions/class_methods.rb: (target, method_name, args) = YAML.load(yml) gems/sidekiq-6.5.7/lib/sidekiq/extensions/active_record.rb: (target, method_name, args) = YAML.load(yml) gems/sidekiq-6.5.7/lib/sidekiq/api.rb: yield(*YAML.load(content)) gems/nokogiri-1.14.2-x86_64-linux/ext/nokogiri/extconf.rb: dependencies = YAML.load_file(File.join(PACKAGE_ROOT_DIR, "dependencies.yml")) gems/sidekiq-6.4.0/lib/sidekiq/testing.rb: marshalled.index(klass.to_s) && YAML.load(marshalled)[0] == klass gems/sidekiq-6.4.0/lib/sidekiq/cli.rb: opts = YAML.load(erb.result) || {} gems/sidekiq-6.4.0/lib/sidekiq/extensions/action_mailer.rb: (target, method_name, args, kwargs) = YAML.load(yml) gems/sidekiq-6.4.0/lib/sidekiq/extensions/class_methods.rb: (target, method_name, args, kwargs) = YAML.load(yml) gems/sidekiq-6.4.0/lib/sidekiq/extensions/active_record.rb: (target, method_name, args, kwargs) = YAML.load(yml) gems/sidekiq-6.4.0/lib/sidekiq/web/helpers.rb: strs = YAML.load(File.open(file)) gems/sidekiq-6.4.0/lib/sidekiq/api.rb: yield(*YAML.load(content)) gems/activesupport-6.1.7.2/lib/active_support/configuration_file.rb: YAML.load(source, **options) || {} gems/activesupport-6.1.7.2/lib/active_support/xml_mini.rb: "yaml" => Proc.new { |yaml| YAML.load(yaml) rescue yaml }, gems/activesupport-6.1.7.2/lib/active_support/encrypted_configuration.rb: YAML.load(config).presence || {} gems/tilt-2.0.11/bin/tilt: hash = File.open(file, 'r:bom|utf-8') { |f| YAML.load f, file } gems/chef-17.10.0/lib/chef/compliance/input.rb: from_hash(events, YAML.load(string), path, cookbook_name) gems/chef-17.10.0/lib/chef/compliance/profile.rb: from_hash(events, YAML.load(string), path, cookbook_name) gems/chef-17.10.0/lib/chef/compliance/waiver.rb: from_hash(events, YAML.load(string), path, cookbook_name) gems/chef-17.10.0/lib/chef/resource/inspec_waiver_file_entry.rb: hash = ::YAML.load_file(file_name) gems/chef-17.10.0/lib/chef/resource/inspec_waiver_file_entry.rb: ::YAML.load_file(file_name) gems/chef-17.10.0/lib/chef/dsl/reader_helpers.rb: YAML.load(IO.read(filename)) gems/chef-17.10.0/lib/chef/encrypted_data_bag_item/decryptor.rb: YAML.load(decrypted_data) gems/chef-17.10.0/lib/chef/recipe.rb: if ::YAML.load_stream(yaml_contents).length > 1 gems/rbs-1.4.0/stdlib/yaml/0/dbm.rbs:# YAML.load("--- foo") #=> "foo" gems/sidekiq-cron-1.8.0/lib/sidekiq/cron/schedule_loader.rb: schedule = YAML.load_file(schedule_file) gems/ruby-magic-0.6.0/ext/magic/extconf.rb: dependencies = YAML.load_file(File.join(PACKAGE_ROOT_DIR, "dependencies.yml")) gems/ice_cube-0.16.4/lib/ice_cube/null_i18n.rb: @config ||= YAML.load_file(File.join(IceCube::I18n::LOCALES_PATH, 'en.yml'))['en'] gems/i18n-1.12.0/lib/i18n/backend/base.rb: [YAML.load_file(filename), false] gems/multi_xml-0.6.0/lib/multi_xml.rb: 'yaml' => proc { |yaml| YAML.load(yaml) rescue yaml }, # rubocop:disable RescueModifier gems/activerecord-6.1.7.2/lib/active_record/coders/yaml_column.rb: YAML.load(payload) gems/activerecord-6.1.7.2/lib/active_record/tasks/database_tasks.rb: # DatabaseTasks.database_configuration = YAML.load_file('my_database_config.yml') gems/activerecord-6.1.7.2/lib/active_record/legacy_yaml_adapter.rb: YAML loading from legacy format older than Rails 5.0 is deprecated gems/activerecord-6.1.7.2/lib/active_record/connection_adapters/schema_cache.rb: YAML.load(file) gems/activerecord-6.1.7.2/lib/active_record.rb:YAML.load_tags["!ruby/object:ActiveRecord::AttributeSet"] = "ActiveModel::AttributeSet" gems/activerecord-6.1.7.2/lib/active_record.rb:YAML.load_tags["!ruby/object:ActiveRecord::Attribute::FromDatabase"] = "ActiveModel::Attribute::FromDatabase" gems/activerecord-6.1.7.2/lib/active_record.rb:YAML.load_tags["!ruby/object:ActiveRecord::LazyAttributeHash"] = "ActiveModel::LazyAttributeHash" gems/activerecord-6.1.7.2/lib/active_record.rb:YAML.load_tags["!ruby/object:ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::MysqlString"] = "ActiveRecord::Type::String" gems/inspec-core-4.56.20/lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb: yaml = YAML.load_file(p.to_s) gems/inspec-core-4.56.20/lib/inspec/input_registry.rb: value = YAML.load(value) gems/inspec-core-4.56.20/lib/inspec/resources/yaml.rb: YAML.load(content) gems/inspec-core-4.56.20/lib/inspec/resources/opa.rb: @content = YAML.load(content) gems/inspec-core-4.56.20/lib/inspec/resources/cassandradb_conf.rb: YAML.load(content) gems/inspec-core-4.56.20/lib/inspec/resources/mongodb_conf.rb: YAML.load(content) gems/inspec-core-4.56.20/lib/inspec/profile.rb: waiver_content = YAML.load_file(waiver_path) gems/inspec-core-4.56.20/lib/inspec/secrets/yaml.rb: @inputs = ::YAML.load_file(target) gems/inspec-core-4.56.20/lib/inspec/dependencies/lockfile.rb: parsed_content = YAML.load(content) gems/inspec-core-4.56.20/lib/inspec/metadata.rb: res.params = YAML.load(ERB.new(content).result) gems/danger-8.6.1/lib/danger/commands/init.rb: config = YAML.load(File.read(".travis.yml")) gems/danger-8.6.1/lib/danger/commands/init.rb: config = YAML.load(File.read("circle.yml")) gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/yaml.rb: ::YAML.load(data, **(kwargs || {})) gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/yaml.rb: obj = ::YAML.load(contents) gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/yaml.rb: ::YAML.load(data, **(kwargs || {})) gems/mixlib-config-3.0.27/lib/mixlib/config.rb: from_hash(YAML.load(IO.read(filename))) gems/nokogiri-1.14.1-x86_64-linux/ext/nokogiri/extconf.rb: dependencies = YAML.load_file(File.join(PACKAGE_ROOT_DIR, "dependencies.yml")) gems/gitlab-exporter-12.1.1/lib/gitlab_exporter/cli.rb: config = Utils.deep_symbolize_hash_keys(YAML.load_file(@config_file)) gems/org-ruby-0.9.12/lib/org-ruby/output_buffer.rb: @custom_blocktags = YAML.load_file(@options[:markup_file]).select {|k| k.to_s.match(filter) } gems/autoprefixer-rails-10.2.5.1/lib/autoprefixer-rails/railtie.rb: parsed = ::YAML.load_file(file) gems/license_finder-7.0.1/lib/license_finder/package_managers/cocoa_pods.rb: podfile = YAML.load_file(lockfile_path) gems/license_finder-7.0.1/lib/license_finder/package_managers/conda.rb: @environment_name ||= YAML.load_file(environment_file).fetch('name') gems/license_finder-7.0.1/lib/license_finder/package_managers/trash.rb: YAML.load_file(dependencies_path).fetch('import').map do |package_hash| gems/license_finder-7.0.1/lib/license_finder/package_managers/pub.rb: YAML.load(IO.read(package_yaml))['repository'] if Dir.exist?(project_repo) && File.exist?(package_yaml) gems/tilt-2.1.0/bin/tilt: hash = File.open(file, 'r:bom|utf-8') { |f| YAML.load f, file } gems/RedCloth-4.3.2/lib/redcloth/formatters/latex.rb: @entities ||= YAML.load(File.read(File.dirname(__FILE__)+'/latex_entities.yml')) gems/http-cookie-1.0.5/lib/http/cookie_jar/yaml_saver.rb: YAML.load(yaml) gems/test-unit-3.3.7/lib/test/unit/autorunner.rb: config = YAML.load(File.read(file)) gems/valid_email-0.1.3/lib/valid_email.rb:BanDisposableEmailValidator.config= YAML.load_file(config)['disposable_email_services'] rescue []
- Stan Hu changed the description
Compare with previous version changed the description
- Contributor
This issue was automatically tagged with the label Engineering Productivity by TanukiStan, a machine learning classification model, with a probability of 0.66.
If this label is incorrect, please tag this issue with the correct group label as well as automation:ml wrong to help TanukiStan learn from its mistakes.
If you are unsure about the correct group, please do not leave the issue without a group label. Please refer to GitLab's shared responsibility functionality guidelines for more information on how to triage this kind of issues.
Authors who do not have permission to update labels can leave the issue to be triaged by group leaders initially assigned by TanukiStan
This message was generated automatically. You're welcome to improve it.
- A deleted user added Engineering Productivity automation:ml labels
added Engineering Productivity automation:ml labels
- Stan Hu mentioned in epic &10034 (closed)
mentioned in epic &10034 (closed)
- Stan Hu mentioned in merge request !115445 (merged)
mentioned in merge request !115445 (merged)
- Stan Hu mentioned in merge request !116506 (merged)
mentioned in merge request !116506 (merged)
- Stan Hu mentioned in merge request !117004 (merged)
mentioned in merge request !117004 (merged)
- Stan Hu mentioned in merge request !117027 (merged)
mentioned in merge request !117027 (merged)
- Stan Hu mentioned in merge request !121352 (merged)
mentioned in merge request !121352 (merged)
Collapse replies - Developer
Hey @stanhu should we prioritise this audit? I see gitlab-org/ruby/gems/gitlab-triage!295 (merged) fixed one of the remaining cases. Thanks
@pjphillips Yes, I think I completed the audit. I think gitlab-org/ruby/gems/gitlab-triage!295 (merged) is an external tool for GitLab. https://docs.google.com/spreadsheets/d/19-5zAB4M4OKszPtTs2MaKuoOmpHaUOPTD7rHHmin0Wo/edit#gid=1442839363 is a list of my notes.
- Developer
Ah! so it is. Thanks
- Hendrik Meyer (xLabber) mentioned in commit T4cC0re/gitlab-triage@f869ab60
mentioned in commit T4cC0re/gitlab-triage@f869ab60
- Hendrik Meyer (xLabber) mentioned in merge request gitlab-org/ruby/gems/gitlab-triage!295 (merged)
mentioned in merge request gitlab-org/ruby/gems/gitlab-triage!295 (merged)
- Hendrik Meyer (xLabber) mentioned in commit gitlab-org/ruby/gems/gitlab-triage@88a847b8
mentioned in commit gitlab-org/ruby/gems/gitlab-triage@88a847b8
- Paul Phillips added Ruby3_1 label
added Ruby3_1 label
- Paul Phillips added Ruby3_1-blocker label
added Ruby3_1-blocker label
- David Dieulivol added automation:ml wrong label and removed Engineering Productivity label
added automation:ml wrong label and removed Engineering Productivity label
- Paul Phillips changed due date to October 31, 2023
changed due date to October 31, 2023
- Stan Hu closed
closed
- Maintainer
@stanhu - please see the following guidance and update this issue.1 Error Please add typebug typefeature, typemaintenance and a subtype label to this issue. If you do not feel the purpose of this issue matches one of the types, you may apply the typeignore label to exclude it from type tracking metrics and future prompts.
This message was generated automatically. You're welcome to improve it.
- Evan Read added maintenancerefactor typemaintenance labels
added maintenancerefactor typemaintenance labels
- Robert Marshall mentioned in merge request gitlab-org/charts/gitlab!3609 (merged)
mentioned in merge request gitlab-org/charts/gitlab!3609 (merged)