2012-01-19 6 views
3

Je voudrais supprimer par programme un dépôt github, lors de la configuration d'un environnement de test unitaire pour mon application.API github v3 - supprimer/supprimer un dépôt

Je suis déjà en train d'utiliser l'API v3, qui semble être la plus supportée et le chemin aller de l'avant. J'utilise les lignes de python suivantes pour créer avec succès une prise en pension, très bien:

import urllib2, base64 
createData = '{\"name\": \"UnitTest-SubModules\", \"description\": \"This is a Fake repo used for testing\"}' 
request = urllib2.Request("https://api.github.com/user/repos") 
base64string = base64.encodestring('%s:%s' % ('user', 'pass')).replace('\n', '') 
request.add_header("Authorization", "Basic %s" % base64string) 
result = urllib2.urlopen(request, data=createData) 

Comment puis-je configurer cela pour supprimer un repo? Je ne trouve pas la spécification pour la suppression à http://developer.github.com/v3/repos/

J'ai essayé, basé sur guestimating, le code suivant, car il suit le modèle API, mais cela n'a pas fonctionné. Nous sommes revenus avec urllib2.HTTPError: Erreur HTTP 404: Introuvable

request = urllib2.Request("https://api.github.com/repos/nyeates/UnitTest-SubModules") 
base64string = base64.encodestring('%s:%s' % ('user', 'pass')).replace('\n', '') 
request.add_header("Authorization", "Basic %s" % base64string) 
request.get_method = lambda: 'DELETE' 
result = urllib2.urlopen(request) 

Je suis le python http SUPPRIMER Code de: How to make HTTP DELETE method using urllib2?

+0

Je ne pense pas l'API v3 vous permet de supprimer les repos. Nous avons également rencontré ce problème et attendons une réponse officielle de leur part. – awendt

+0

En outre, cela serait beaucoup plus élégant écrit en utilisant [demandes] (http://docs.python-requests.org/). –

Répondre

4

La méthode SUPPRIMER est maintenant ici: http://developer.github.com/v3/repos/#delete-a-repository

+1

Est-ce également vrai pour les organisations? J'ai des droits d'administrateur (par exemple, je suis un propriétaire) J'ai essayé de le faire en boucle pour les tests. 'curl -H "Autorisation: token blarblar" -X DELETE -i api.github.com/repos/OrgName/Test5'; mais il dit 404 pas trouvé. L'auth fonctionne parce qu'il dit que ma limite est 4980 et non 50odd. Si je le fais sans le -X DELETE il retourne tous les détails sur le repo. J'ai donc une URL correcte. – WORMSS

+0

Vous n'avez probablement pas défini la portée de votre jeton. Par défaut, la portée des jetons ne permet pas de supprimer des référentiels. – ustroetz

Questions connexes