按照this问题的说明,我可以使用GitHub REST API和R软件包httr
和RCurl
为我拥有的组织创建一个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))
我错过了什么?
答案 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))