jantari / rewinged

rewinged is a self-hosted winget package source
MIT License
43 stars 6 forks source link

Proxy Winget Repo #4

Closed jolegape closed 6 months ago

jolegape commented 8 months ago

Hiya

Not an issue, more a request. Would it be possible to add a proxying feature, similar to what Nexus can do with Chocolatey/Nuget repos? Eg, rather than using the default Winget repository, I could set my clients to use the rewinged repo, and when installing software, if it doesn't exist in Rewinged, download it from the default MS repos, and cache everything. With the auto internalize feature (which rocks btw!), it would make Winget a way better option than Chocolatey in my opinion.

That would make using Rewinged a hands off experience. At the moment, I have to keep adding in manifests for the software we use as updates are released.

Cheers

Gavin

jantari commented 8 months ago

I think this would be possible, but I don't think I want to commit to adding this to rewinged right now because it looks like it'd be quite a lot of work initially, and then also in upkeep.

When a client requests a package from rewinged, I wouldn't just have to cache and relay the installer file but first the package manifest information. Microsofts main "winget" repo where all this info is is not a REST API source though, from what I can tell it's a SQLite DB file with some pre-cached info and then the full manifests are downloaded from elsewhere when really needed (such as when installing a package). What this means is that I need to add querying and filtering functions to lookup things in Microsofts special upstream repo, talking to SQLite and whatnot. This gets even more complicated when a package isn't just requested directly by ID but rather searched for by name, tag, moniker etc. I think currently this is not realistic.

A different approach, regularly scanning for new available software versions and then automatically downloading their new manifests and installers into your private repo, might be easier though and can even be handled outside of rewinged by a separate program or script. I'm playing around with that.

jantari commented 6 months ago

Hey, like I said I am working on something else to supplement rewinged but it's not going to be exactly this - so closing.