You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: train_connector.rb
    path of file: ./repos/chef/knife/lib/chef/knife/bootstrap
    
    the code of the file until where you have to start completion: # Copyright:: Copyright (c) Chef Software Inc.
#
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in 
    
        def transport_config(host_url, opts_in)
          # These baseline opts are not protocol-specific
          opts = { target: host_url,
                   www_form_encoded_password: true,
                   transport_retries: 2,
                   transport_retry_sleep: 1,
                   backend: opts_in[:backend],
                   logger: opts_in[:logger] }

          # Accepts options provided by caller if they're not already configured,
          # but note that they will be constrained to valid options for the backend protocol
          opts.merge!(opts_from_caller(opts, opts_in))

          # WinRM has some additional computed options
          opts.merge!(opts_inferred_from_winrm(opts, opts_in))

          # Now that everything is populated, fill in anything missing
          # that may be found in user ssh config
          opts.merge!(missing_opts_from_ssh_config(opts))

          Train.target_config(opts)
        end