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

Aberta
#23 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
42/100
Tipo de issue
Refatoração
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
go
Domínio
cli, networking

Direção de pesquisa

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.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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 生效;
  • 两边原有的测试(续传、超时、核对失败)全部通过。
Linguagem predominante
Go
Estrelas
0
Forks
1
Merge médio
2h 42min
PRs com merge (30d)
13

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de ModAVD/ModAVDManager

Todas as issues de ModAVD/ModAVDManager

Issues semelhantes

Mais issues de Go

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.