2017-08-03 4 views
0

Befolgen Sie die Anweisungen auf this So Frage konnte ich ein Repo für eine Organisation, die ich mit der GitHub REST API und die R-Pakete httr und RCurl erstellen. Jetzt habe ich Probleme, den Repo mit der API zu löschen.Löschen Github Organisation Repo in R mit der REST-API

Ich erstellte eine OAuth-App auf GitHub und gab der App Zugriff auf meine Organisation. Dann habe ich den folgenden Code ausgeführt, um ein Token mit dem Bereich delete_repo zu erstellen.

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) 

Per API v3 Entwicklerführungs GitHub, die URL zu create eine neue Repo in einer Organisation

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

Mit dieser URL ist ich eine private Repo für meine Organisation mit dem Namen ‚schaffen konnte Zuverlässigkeit 'durch Laufen:

#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)) 

Um delete ein Repo, sagt der Entwickler Leitfaden, dass die URL der Form sein sollte

DELETE repos/:owner/:repo 

für eine Organisations Repo, ich interpretieren, dass diese URL

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

jedoch sein sollte, wenn ich den folgenden Code ausführen ich eine Antwort von 404 bekommen nicht gefunden.

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

Was fehlt mir?

Antwort

1

Der Wortlaut im GitHub-Entwicklerhandbuch ist in Bezug auf die URL irreführend, die zum Löschen von Repos mit der REST-API verwendet werden sollte.

Der Entwickler Leitfaden stellt fest, dass zu delete ein Repo, die URL der Form jedoch

DELETE repos/:owner/:repo 

sein sollte, für eine Organisations Repo, sollte die URL der Form

DELETE repos/:org/:repo 

I war in der Lage, ein Repo aus meiner Organisation mit der Bezeichnung "Zuverlässigkeit" erfolgreich zu löschen, indem ich sicherstellte, dass mein App-Token den entsprechenden delete_repo Geltungsbereich hatte und 2) den folgenden Code

012 ausgeführt hat
# Delete repository from Github organization 
url_d = "https://api.github.com/repos/Reliability/newRepo" 
DELETE(url = url_d, config(token = github_token)) 
Verwandte Themen