我要做的就是阅读我组织的私有存储库中的所有存储库和问题。我可以从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")
RCurlhttr我在做什么错?我宁愿有一个不发出系统命令的工作流,然后将这些行粘贴在一起。

最佳答案

我们可以使用authenticate()中的httr帮助器函数来为我们构建身份验证标头,而无需手动创建它。另外,verbose()可用于调试HTTP问题:

httr::GET(url="https://api.github.com/orgs/:‌​org/repos",
          httr::authenticate("user", "pass"),
          httr::verbose())

08-25 06:37