修复认证凭据 fallback 配置目录不一致 #133
Loading…
Reference in New Issue
No description provided.
Delete Branch "Mengz/gitlink-cli:mengz/auth-config-dir-fallback"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
本次 PR 修复认证凭据 fallback 存储与主配置目录不一致的问题。gitlink-cli 的配置文件已经支持
GITLINK_CONFIG_DIR,但系统 Keychain 不可用时,认证模块仍固定把凭据写到用户 home 下的~/.config/gitlink-cli/credentials,这会让 CI、Windows 测试、Agent 沙箱和多账号隔离场景出现“配置目录已隔离但凭据仍读写真实用户目录”的问题,也是此前本地全量测试中cmd/auth与internal/auth在 Windows 环境反复失败的直接原因之一。实现上将文件凭据路径统一改为复用
internal/config.ConfigDir():设置GITLINK_CONFIG_DIR时 fallback 凭据保存到$GITLINK_CONFIG_DIR/credentials,未设置时保持原有默认路径不变。同时让 fallback 文件不存在时的auth logout幂等成功,避免用户已经没有本地凭据时退出登录反而报错。测试同步改成使用GITLINK_CONFIG_DIR隔离临时凭据目录,并覆盖默认路径、文件创建、保存/读取/删除、Keychain 不可用 fallback、无凭据登出等场景。文档同步更新 README、README.zh-CN、gitlink-shared Skill 和
doc/changes/auth-config-dir-fallback.md,明确 fallback 凭据目录与GITLINK_CONFIG_DIR的关系。已完成本地验证:go test ./internal/auth ./cmd/auth通过,go build ./...通过,git diff --check通过,乱码扫描通过,go test ./...全量通过。