使用gh包查询仓库Issue的问题:转义字符与获取全部状态Issue
关于gh包查询GitHub Issue的两个问题解答
我来帮你解决这两个使用gh包时遇到的Issue查询问题:
1. 查询仓库Issue时,如何转义'?'?
其实用gh包的话,根本不需要手动转义问号。这个包的设计初衷就是让你通过命名参数传递查询条件,而不是自己拼接带?的URL字符串。包内部会自动处理URL的拼接、参数编码和转义,完全不用你操心。
举个实际例子,如果你想筛选带bug标签的Issue,别费劲写"/repos/hadley/dplyr/issues?labels=bug",直接这么写就行:
gh::gh("/repos/hadley/dplyr/issues", labels = "bug")
要是你在非gh包的场景下(比如手动发HTTP请求)确实需要转义?,它的URL编码是%3F,但用gh包的话完全没必要搞这套。
2. 添加\?state\=all报错的解决办法
你碰到的错误,本质是R字符串里的反斜杠\是转义字符,"\?"属于不合法的转义序列,R根本认不出来。而且更重要的是,这不是gh包的正确用法。
gh包的gh()函数支持直接把查询参数作为命名参数传入,不需要手动拼到URL里。要获取所有状态(开放+关闭)的Issue,只需要给state参数传"all"就行,代码如下:
gh::gh("/repos/hadley/dplyr/issues", state = "all")
这样写既简洁又不会出问题,gh包会自动帮你生成正确的URL,所有编码、转义的活儿它都帮你干了。
内容的提问来源于stack exchange,提问作者Dambo
相关产品推荐
相关产品推荐

