已有GitHub R包使用usethis::use_release_issue报错,PAT相关疑问
usethis::use_release_issue报错与GitHub PAT相关问题解答
问题场景
我通过RStudio的包创建功能制作了一个R包,已开启双因素认证,可正常对GitHub仓库进行提交、推送、拉取操作。如今需将该包发布为1.0版本,根据《R packages 2e在线版》22.1节指引,尝试使用usethis包的use_release_issue命令(首次使用usethis),但执行时出现报错:
> usethis::use_release_issue("1.0") ✔ Setting active project to "[local file structure]PopulateR". Error in `github_remotes()`: ✖ Unable to get GitHub info for these remotes: "origin". ℹ Are we offline? Is GitHub down? Has the repo been deleted? ℹ Otherwise, you probably need to configure a personal access token (PAT) for "github.com". ℹ See usethis::gh_token_help() for advice. Run `rlang::last_trace()` to see where the error occurred.
回溯信息:
Backtrace: ▆ 1. └─usethis::use_release_issue("1.0") 2. └─usethis:::target_repo(github_get = TRUE) 3. ├─cfg %||% github_remote_config(github_get = github_get) 4. └─usethis:::github_remote_config(github_get = github_get) 5. └─usethis:::github_remotes(github_get = github_get) Run rlang::last_trace(drop = FALSE) to see 3 hidden frames.
疑问解答
1. 创建GitHub PAT是否会对已有项目的长期仓库访问造成问题?
不会。PAT是更安全的认证方式,尤其开启双因素认证(2FA)后,Git的密码认证已失效,你之前能正常提交推送,大概率是用了SSH密钥或系统凭据管理器存储的认证信息。创建PAT只会新增一种认证途径,不会覆盖或破坏现有SSH/已存储的认证方式,两者可共存。
2. 为何此时需要PAT?
usethis的use_release_issue需要调用GitHub的API来获取仓库信息(比如确认仓库存在、权限等),而Git的普通提交推送用的是Git协议(SSH/HTTPS),和GitHub API的认证机制不同。即使你用SSH能操作仓库,API调用仍需PAT授权——开启2FA后,GitHub要求API调用必须用PAT(密码无法用于API认证)。
3. 有无无需创建PAT的解决配置方案?
有两种可选方案:
- 手动替代自动化流程:按照《R packages 2e》22.1节的内容,手动列出发布前需要完成的所有步骤(检查依赖、更新版本号、生成NEWS、验证README、运行
R CMD check等),跳过usethis的use_release_issue自动化命令。 - 检查现有API认证配置:确认系统凭据管理器中是否已有有效的PAT,或是否设置了
GITHUB_PAT环境变量。如果之前未配置过,还是建议创建PAT,这是长期使用R包开发工具(usethis、devtools等)的标准配置。
内容的提问来源于stack exchange,提问作者Michelle
相关产品推荐
相关产品推荐

