dra icon indicating copy to clipboard operation
dra copied to clipboard

Feature Request: Support downloading from mirror URLs

Open Maicarons opened this issue 5 months ago • 1 comments

Hello developer 👋

First of all, thank you for creating and maintaining dra, it’s really useful for automatically downloading release assets!

I have seen #307 and it’s great progress.

I’d like to suggest an enhancement: supporting mirror prefixes when downloading release assets. In some regions, direct access to GitHub release assets can be slow or unstable. A common workaround is to prepend a mirror prefix in front of the original GitHub link.

For example, the original asset link:

https://github.com/JGRennison/OpenTTD-patches/releases/download/jgrpp-0.66.1/openttd-jgrpp-0.66.1-windows-win64.zip

might be accessed through mirrors like:

https://gh.***.cc/https://github.com/JGRennison/OpenTTD-patches/releases/download/jgrpp-0.66.1/openttd-jgrpp-0.66.1-windows-win64.zip
https://github.***.xyz/https://github.com/JGRennison/OpenTTD-patches/releases/download/jgrpp-0.66.1/openttd-jgrpp-0.66.1-windows-win64.zip
...

So a possible usage in dra could be:

dra download --repo JGRennison/OpenTTD-patches \
  --mirror-prefix https://github.***.xyz/https://github.com

Here, --mirror-prefix simply prepends the given string to the original GitHub asset URL, making it easy to adapt to different mirrors without changing the repo or tag arguments.

Additionally, it would be great to have a mirror management feature (e.g., saving mirror prefixes in a config file or global settings), so users don’t need to type the parameter every time.

Benefits:

  • Improve reliability and speed in regions with limited GitHub connectivity.
  • Very simple to implement (just prepend prefix).
  • Flexible for different public mirrors or internal caching proxies.

Would you consider adding this feature in a future release? If yes, I’d be happy to help with testing or even contribute a PR.

Thanks again for your great work on dra! 🙏

Maicarons avatar Sep 21 '25 11:09 Maicarons

Hi and welcome to dra!

Before considering new development, have you tried http_proxy/https_proxy environment variables?

If that doesn't work, I will think about this feature request

devmatteini avatar Nov 10 '25 23:11 devmatteini