项目初始化会执行未固定版本的远程 Go 模块
原文依据:1 处安装示例直接运行 `github.com/99designs/gqlgen init`,随后又使用 `@latest` 获取工具。这不是可复现的版本固定,并会执行或引入下载时最新的上游代码。
如果上游最新版本被破坏、发生不兼容变更或解析结果随时间变化,远程代码会在开发环境中执行,并可能生成文件或修改模块依赖。
项目设置指令会通过 `go run` 获取并执行 gqlgen,且命令没有指定版本;紧接着的工具安装又明确使用 `@latest`。当用户采用这些命令时,实际执行或加入项目的代码会随上游最新版本变化,影响构建可复现性并扩大供应链风险。用户可要求作者提供经过审核的固定版本和校验方式。
```bash# Bootstrap a new projectgo run github.com/99designs/gqlgen init# Pin the tool in go.mod for reproducible generation (Go 1.24+)go get -tool github.com/99designs/gqlgen@latest```