docs: def get_config(config_file=None, config_values=None, load_project_conf=True):
      """Loads config file and returns its content."""
      config_values = config_values or {}
      config_settings = {}
  
      default_conf = _get_default_conf()
      user_conf = _get_user_conf(config_file) if config_file else {}
      # load project configuration only when user configuration was not specified
      project_conf = {} if user_conf or not load_project_conf else _get_project_conf()
  
      if not (user_conf or project_conf or config_values):
          if load_project_conf:
              raise Dump2PolarionException(
                  "Failed to find configuration file for the project "
                  "and no configuration file or values passed."
              )
          raise Dump2PolarionException("No configuration file or values passed.")
  
      # merge configuration
      config_settings.update(default_conf)
      config_settings.update(user_conf)
      config_settings.update(project_conf)
      config_settings.update(config_values)
  
      _populate_urls(config_settings)
      _set_legacy_project_id(config_settings)
      _set_legacy_custom_fields(config_settings)
      _check_config(config_settings)
  
      return config_settings