Skip to content

多账户上下文切换(个人号 + 工作号) #17

Description

@yangflow

问题

很多开发者同时有个人 GitHub 账号和公司 GitHub 账号,分别对应不同的 SSH key、PAT、组织权限。当前 BrowseRemoteRepoViewModel 只存单一 token(provider-api-<provider>),切换账号必须先登出再登入,无法"并列浏览两个账号各自的仓库"。

建议改动

  • 引入 ProviderAccount 概念:每个 (provider, label) 对应一套 token + 可选的 host(自建 GitLab)
  • Keychain tag 改为 provider-api-<provider>-<accountID>
  • Browse sheet 在 provider 选择之下加"账号"下拉,可新建/切换/删除
  • 现有单账号数据迁移:provider-api-giteaprovider-api-gitea-default

备选方案

  • 教用户用两个 macOS user 账户:可行但非常别扭
  • 只支持单账号:持续流失多账号用户

作用域检查

  • 与 GitRelay 的单向镜像模型兼容
  • 不需要在 Keychain 以外存储凭证(继续用 Keychain,只是命名空间多了 account 维度)
  • 不引入新运行时依赖

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions