如何使用R语言获取GitHub仓库的最新发布版本?
R获取GitHub仓库最新发布版本的方法
你可以通过调用GitHub公共API的方式实现需求,无需额外认证即可查询公共仓库的正式发布版本,以下是两种可直接运行的实现方案:
方案1:基于httr + jsonlite 自定义函数
首先安装依赖包:
install.packages(c("httr", "jsonlite"))
复制以下函数即可使用:
get_latest_github_release <- function(repo) { # repo参数格式为:用户名/仓库名,示例值:acornamr/acorn-dashboard api_req_url <- paste0("https://api.github.com/repos/", repo, "/releases/latest") resp <- httr::GET(api_req_url) if (httr::http_error(resp)) { stop("查询失败,请确认仓库名正确、网络可正常访问GitHub服务") } release_data <- jsonlite::parse_json(httr::content(resp, "text")) return(release_data$tag_name) }
调用示例:
get_latest_github_release("acornamr/acorn-dashboard")
运行后即可返回目标仓库的最新发布版本标签,示例中会返回字符串"v2.0.5"(对应2021年9月16日的正式发布版本,若仓库后续有新版本发布会自动返回最新值)。
方案2:基于gh包的简洁实现
gh是GitHub官方维护的R语言API客户端,封装了所有GitHub接口的请求逻辑,代码更简洁:
首先安装依赖包:
install.packages("gh")
使用示例:
library(gh) # 直接查询指定仓库的最新发布版本 latest_release <- gh("GET /repos/{repo}/releases/latest", repo = "acornamr/acorn-dashboard") latest_release$tag_name
补充说明
如果目标仓库没有发布过正式Release,上述查询会返回错误,此时如果需要获取仓库的最新标签(不限制是否为正式Release),可以将API端点替换为/repos/{repo}/tags,取返回结果的第一个条目的name字段即可。
内容的提问来源于stack exchange,提问作者tic-toc-choc
相关产品推荐
相关产品推荐

