You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已有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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:17:12