modavd update 不认 Windows 系统代理,和 components fetch 不一致

Aperta
#23 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
42/100
Tipo di issue
Refactoring
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
go
Ambito
cli, networking

Direzione di ricerca

Compare the download code in internal/components (download.go, proxy.go) with internal/update/source.go, and read the two proxy sections of the README. The aim is one shared download path that both commands use, with the components proxy rules (environment variables first, then the Windows manual proxy). Done means the acceptance checks pass: modavd update check and modavd components fetch both use the Windows proxy when no environment variable is set, and the existing resume, timeout and verification tests pass for both. Start with the Windows proxy lookup, since it is the piece that needs domain knowledge.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug P3 platform:windows

现状

命令行里有两套下载代码,代理的行为不一样:

命令 代码 代理
modavd components fetch internal/components(download.go、proxy.go) 设了 HTTPS_PROXY / HTTP_PROXY / NO_PROXY 就照环境变量,否则用 Windows「Internet 选项」里手动设的代理
modavd update internal/update(source.go) 只认 HTTPS_PROXY / NO_PROXY,不读 Windows 的系统代理

README 里两处分别写了这两套规则。结果是:只在 Windows 里设了手动代理的用户,补全组件能下,从 GitHub 更新却连不上,要另外设环境变量。

#9 当初要求补全组件「不要另写一份下载代码」,当时为了先把功能做出来,单独写了一份,交回时说明过。

要做的

  1. 把下载(连接和停顿超时、断点续传、重定向上限、User-Agent、代理)收成一份,components 和 update 都用它。两边现有的核对(大小、SHA-256、zip 校验、清单)不变。
  2. 代理统一成 components 现在的规则:先看环境变量,没有再用 Windows 手动代理;PAC 照旧不支持,报错里提示设 HTTPS_PROXY。
  3. README 里两处代理说明合成一处。

验收

  • 只设 Windows 手动代理、不设环境变量时,modavd update check(从 GitHub)和 modavd components fetch 都走这个代理;
  • 设了 HTTPS_PROXY 时两者都照环境变量,NO_PROXY 生效;
  • 两边原有的测试(续传、超时、核对失败)全部通过。
Lingua principale
Go
Stelle
0
Fork
1
Merge medio
2h 42m
PR unite (30g)
13

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ModAVD/ModAVDManager

Tutte le issue di ModAVD/ModAVDManager

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.