Comment supprimer un dépôt GitHub en utilisant l'API
Je suis de se familiariser avec l'API GitHub http://developer.github.com/v3/ je suis en essayant des choses à la fois avec RESTClient plugin pour Firefox et avec curl outil de ligne de commande.
J'ai trouvé comment créer un repo avec l'API, mais je n'arrive pas à le supprimer avec l'API.
En fonction de l'aide ici: http://developer.github.com/v3/repos/#delete-a-repository je dois envoyer une demande de SUPPRESSION comme ceci:
curl -X DELETE -H 'Authorization: token xxx' https://api.github.com/repos/:owner/:repo
L'aide ne précise pas et je ne suis pas sûr de ce qu'ils veulent dire par :propriétaire et :repo - si ce sont les noms ou les id mais j'ai essayé les deux noms et identifiants dans plusieurs combinaisons sans succès. Ce que je reçois comme réponse:
404 Not Found
Ce qui me manque?
source d'informationauteur Pavel Tankov
Vous devez vous connecter pour publier un commentaire.
Si vous avez créé le jeton que vous utilisez par le biais de la Les Applications de la pagepuis ce jeton aura ces les étendues:
user
public_repo
repo
gist
. Vous pouvez le vérifier en faisant une demande d'API avec le jeton et la recherche au-têtes HTTP de réponse:curl -v -H 'Authorization: token xxx' https://api.github.com
Recherchez le
X-OAuth-Scopes
en-tête de réponse qui permettra d'avoir la liste des étendues:X-OAuth-Scopes: user, public_repo, repo, gist
Toutefois, pour supprimer un référentiel, le jeton doit avoir le
delete_repo
portée.Donc, vous avez besoin d'un jeton qui a des champs d'application différents de celui que vous avez. Vous pouvez créer un tel jeton à l'aide de la Les autorisations d'API:
curl -v -u username -X POST https://api.github.com/authorizations -d '{"scopes":["delete_repo"], "note":"token with delete repo scope"}'
Cela renvoie un document JSON avec le nouveau jeton de laquelle vous devriez être en mesure d'utiliser pour supprimer un référentiel:
Bien sûr, lors de la création d'un jeton de cette façon, vous pouvez demander à plusieurs étendues, non seulement la
delete_repo
portée.Aussi, comme une note, la raison pour laquelle l'API retourne une erreur 404 lorsque vous n'avez pas le droit d'autorisation est à empêcher les fuites d'informations.
Supprimer Référentiel
curl -X DELETE -H 'Authorization: token {access token goes here}' https://api.github.com/repos/{yourUsername}/{name of repo}
Remplacer les accolades et le texte à l'intérieur.
Affichage De L'En-Tête
curl -I https://api.github.com
La-I
moyen de récupérer le HTTP en-tête uniquement.Créer Un Référentiel
curl -u yourUsername -X POST https://api.github.com/user/repos -d '{"name":"nameOfRepo"}'
Et voici un exemple de travail à l'aide d'Apache Http Composants (Java):