Unfortunately, I don't know much about this subject. I suspect that the reason changing the URL to use the http:// scheme is because GitHub is set up to redirect the http:// URL to https://.
The IDE does provide some network configuration options:
- Select File > Preferences... from the Arduino IDE menus.
- Click on the "Network" tab in the "Preferences" dialog.
However, this is only about configuring the proxy, so I don't know whether it is of any use to you.
I see that there are some command line flags, some of which look interesting:
$ ./"Arduino IDE" --help
Starting backend process. PID: 9616
Using browser-only version of superagent in non-browser environment
Arduino IDE.exe [workspace-directory] [options]
Options:
--version Show version number [boolean]
--port, -p The port the backend server listens on.
[number] [default: 0]
--hostname, -h The allowed hostname for connections.
[string] [default: "localhost"]
--ssl Use SSL (HTTPS), cert and certkey must also
be set [boolean] [default: false]
--cert Path to SSL certificate. [string]
--certkey Path to SSL certificate key. [string]
--app-project-path Sets the application project directory
[default: "C:\ide
2\releases\arduino-ide_2.0.0-rc4_Windows_64bit\resources\app"]
--log-level Sets the default log level
[choices: "fatal", "error", "warn", "info", "debug", "trace"]
--log-config Path to the JSON file specifying the
configuration of various loggers [string]
--root-dir DEPRECATED: Sets the workspace directory.
--plugins Provides further refinement for the
plugins. Example:
--plugins=local-dir:path/to/your/plugins
[string]
--plugin-max-session-logs-folders The maximum number of plugin logs sessions
folders to retain. Example:
--plugin-max-session-logs-folders=5
[number] [default: 10]
--extensionTestsPath [string]
--pluginHostTerminateTimeout Timeout in milliseconds to wait for the
plugin host process to terminate before
killing it. Use 0 for no timeout.
[number] [default: 10000]
--pluginHostStopTimeout Timeout in milliseconds to wait for the
plugin host process to stop internal
services. Use 0 for no timeout.
[number] [default: 4000]
--vscode-api-version Overrides the version returned by VSCode
API 'vscode.version'. Example:
--vscode-api-version=<Wanted Version>.
Default [1.53.2] [string]
--help Show help [boolean]
I believe these all come from the "Eclipse Theia" IDE framework the Arduino IDE is built on, rather than being bespoke flags added by the Arduino IDE developers. So you will be more likely to find information about them in searches using the "theia" keyword rather than "arduino".
However, the Arduino IDE is not doing this download directly. It is done by Arduino CLI, which only has the network proxy configuration capabilities that are exposed via the Arduino IDE network preferences I mentioned above.