使用REST API删除R中的Github组织存储库

时间:2017-08-03 15:36:13

标签: r git api github httr

按照this问题的说明,我可以使用GitHub REST API和R软件包httrRCurl为我拥有的组织创建一个repo。现在,我在使用API​​删除存储库时遇到问题。

我在GitHub上创建了一个OAuth应用程序,并让应用程序访问了我的组织。然后我运行下面的代码来创建一个delete_repo范围的令牌。

library(httr)
library(RCurl)

# 1. Find OAuth settings for github:
#    http://developer.github.com/v3/oauth/
oauth_endpoints("github")

# 2. Register an application at https://github.com/settings/applications
#    Insert your values below - if secret is omitted, it will look it up in
#    the GITHUB_CONSUMER_SECRET environmental variable.
#
#    Use http://localhost:1410 as the callback url
myapp <- oauth_app("TestApp", "app-number","secret-number")
scope <- 'delete_repo'
# 3. Get OAuth credentials
github_token <- oauth2.0_token(oauth_endpoints("github"),scope=scope, myapp)

根据GitHub API v3开发人员指南,create组织中新回购的URL是

https://api.github.com/orgs/:org/repos

使用此URL,我可以通过运行:

为我的组织创建名为“可靠性”的私人仓库
#Push repository to Github
url_c = "https://api.github.com/orgs/Reliability/repos"
data = list("name"= "newRepo", "private" = "true")
POST(url = url_c, body = data, config(token = github_token))

要{@ 3}}回购,开发者指南指出该网址应为

格式
DELETE repos/:owner/:repo

对于组织回购,我解释此网址应为

https://api.github.com/orgs/:org/repos/:owner/:repo

但是,当我运行以下代码时,我得到的回复为404未找到。

# Delete repository from Github organization
url_d = "https://api.github.com/orgs/Reliability/repos/Auburngrads/newRepo"
DELETE(url = url_d, config(token = github_token))

我错过了什么?

1 个答案:

答案 0 :(得分:2)

GitHub开发人员指南中的措辞误导了应该用于使用REST API删除组织存储库的URL。

开发者指南指出,对于delete个回购,网址应为

形式
DELETE repos/:owner/:repo

但是,对于组织回购,URL应为

形式
DELETE repos/:org/:repo

我能够成功删除组织中名为“可靠性”的回购1)确保我的应用令牌具有适当的delete_repo范围,并且2)运行以下代码

# Delete repository from Github organization
url_d = "https://api.github.com/repos/Reliability/newRepo"
DELETE(url = url_d, config(token = github_token))