曾经复制到变量或脚本中的令牌,可能会在过期后失效。2026 年 10 月 21 日,GitHub 宣布在 GitHub CLI 中公开预览支持自动刷新的过期 OAuth 凭据。此模式为可选功能,适用于由 CLI 管理身份验证的工作流程。

如何启用可刷新的凭据
需要使用 2.103.0 或更高版本的 GitHub CLI。单次登录时,添加 --expiring 标志:
gh auth login --expiring
若希望之后登录时也请求可刷新的凭据,请运行:
gh config set expiring_credentials enabled
CLI 会将可过期的 access token 与 rotating refresh token 一同保存,并在需要时刷新凭据。运行 gh auth status 可查看身份验证状态和当前令牌的有效期。该标志用于请求可刷新的凭据;能否发放取决于主机支持情况以及 OAuth 应用的配置。如果服务器不支持,CLI 会改用普通的非过期令牌。
将 Git 配置为凭据使用方
对于使用 HTTPS 的仓库,请将 GitHub CLI 配置为 Git 凭据助手:
gh auth setup-git
之后,Git 会向 gh 请求凭据,由它在使用前刷新凭据。GitHub 建议使用 Git 2.46 或更高版本:此版本允许 CLI 标记可过期凭据,避免 Git 在凭据过期后继续缓存它们。较旧版本的 Git 仍可使用,但 GitHub CLI 会提示升级一次。
完成配置后,使用 HTTPS 执行常规 Git 操作进行测试,例如读取远程仓库状态。确认 Git 是通过凭据助手获取凭据,这样测试覆盖的是完整的身份验证流程,而不仅仅是 CLI 登录。
检查脚本和外部应用
容易出问题的是这类脚本或扩展:它们运行一次 gh auth token,保存返回的字符串,之后反复使用。这样的 access token 可能会过期。如果外部进程需要令牌,请在每次运行时通过 gh auth token 获取新令牌。使用方本身必须能够使用最新值,并处理令牌过期的情况。
在工作环境中启用此模式前,请检查 CI 任务、本地脚本、编辑器扩展,以及从环境变量或配置文件中读取令牌的工具。确认它们会在启动时获取最新值,还是依赖已保存的副本。对于需要长期有效令牌的进程,请保留原有的身份验证方案。
功能适用范围
GitHub 宣布该功能支持 github.com 和 ghe.com。GitHub Enterprise Server 从 3.23 版本开始发放这类凭据;在更早版本中,请求可刷新凭据会退回到普通的非过期令牌。此模式目前需主动启用;GitHub 计划逐步将其设为新登录的默认方式。
实用步骤:升级 GitHub CLI,启用可刷新凭据请求,通过 gh auth setup-git 配置 Git,并检查外部进程是否保存令牌。这样有助于在切换前发现不兼容的使用场景。
GitHub 在预览公告和 gh auth login 命令文档中发布了详细信息。