我要做的就是阅读我组织的私有存储库中的所有存储库和问题。我可以从Windows 7 cmd.exe
执行
curl -u "user:pass" https://api.github.com/orgs/:org/repos
然后我取回了我所有的存储库。我可以通过管道将其发送到文件:
curl -u "user:pass" https://api.github.com/orgs/:org/repos > "C:\Users\Location\file.txt"
并保存JSON输出。我可以在R中复制它,但是看起来很糟糕。
fullRepos = system('curl -s -u "user:pass" -G https://api.github.com/orgs/:org/repos',
intern=T,show.output.on.console = F)
这将捕获输出(
intern = T
),并且-s
摆脱了进度条,因此我可以折叠行并将其转换为数据框。这将恢复所有公共和私有存储库。我尝试使用
RCurl
做同样的事情,但是下面的代码仅提供公共存储库。 httpheader
是因为否则它会拒绝我的调用。RCurl::getURL(url="https://api.github.com/orgs/:org/repos",userpwd ="user:pass",
httpheader = c('User-Agent' = "A user agent"))
我还尝试了
httr
,它也仅提供公共存储库。httr::GET(url="https://api.github.com/orgs/:org/repos",userpwd="user:pass")
RCurl
和httr
我在做什么错?我宁愿有一个不发出系统命令的工作流,然后将这些行粘贴在一起。 最佳答案
我们可以使用authenticate()
中的httr
帮助器函数来为我们构建身份验证标头,而无需手动创建它。另外,verbose()
可用于调试HTTP问题:
httr::GET(url="https://api.github.com/orgs/:org/repos",
httr::authenticate("user", "pass"),
httr::verbose())