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

Abierto
#23 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
42/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
go
Área
cli, networking

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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 生效;
  • 两边原有的测试(续传、超时、核对失败)全部通过。
Lenguaje dominante
Go
Estrellas
0
Forks
1
Merge medio
2 h 42 min
PR fusionados (30 d)
13

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de ModAVD/ModAVDManager

Todos los issues de ModAVD/ModAVDManager

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.