2013-10-11 13 views
14

GitHub APIに慣れていますhttp://developer.github.com/v3/ Firefox用のRESTClientプラグインとcurlコマンドラインツールの両方を試しています。APIを使用してGitHubリポジトリを削除する方法

APIを使用してレポを作成する方法を見つけましたが、APIで削除することはできません。

ここで助けによると:http://developer.github.com/v3/repos/#delete-a-repository私はこのようなDELETEリクエストを送信する必要があります:

curl -X DELETE -H 'Authorization: token xxx' https://api.github.com/repos/:owner/:repo 

ヘルプが指定されていないと私は、彼らが何を意味わからない:所有者と:レポ - これらがあるかどうか名前やidをいくつか組み合わせて名前とIDの両方を試してみました。私が応答として受け取るのは:

404 Not Found 

私は何が欠けていますか? userpublic_reporepogist:あなたはApplications pageて使用しているトークンを作成した場合

+0

を作成します。owner'は 'foo'と'です:repo'は 'bar'です。 – Stijn

+0

おかげで、それでも 'カール-X -H削除 '認証をトークンXXX' https://でapi.github.com /レポ/ fooの/ bar' 動作しません。あなたが偽の資格情報を使用して入手できますか何 –

+0

そして未知のレポは?私はこれを得ます: '$ curl -X DELETE -H '承認:token xxx' https://api.github.com/repos/foo/bar { " message ":" Bad credentials "、 " documentation_url ": "http://developer.github.com/v3" } – Stijn

答えて

18

は、このトークンは、これらのscopesを持つことになります。

X-OAuth-Scopes: user, public_repo, repo, gist

:スコープのリストを持っています X-OAuth-Scopesレスポンスヘッダの

curl -v -H 'Authorization: token xxx' https://api.github.com

ルックを:あなたは、そのトークンとAPIリクエストを行うと応答HTTPヘッダを見ることでこれを確認することができます

ただし、リポジトリを削除するには、token needs to have the delete_repo scope

だから、あなたとは異なるスコープを持つトークンが必要です。あなたは使用してこのようなトークンを作成することができAuthorizations API:もちろん

{ 
    "id": XXXXX, 
    "url": "https://api.github.com/authorizations/XXXXX", 
    "app": { 
    "name": "GitHub API", 
    "url": "http://developer.github.com/v3/oauth/#oauth-authorizations-api", 
    "client_id": "00000000000000000000" 
    }, 
    "token": "XXXXXX", 
    "note": "token with delete repo scope", 
    "note_url": null, 
    "created_at": "2013-10-11T20:34:49Z", 
    "updated_at": "2013-10-11T20:34:49Z", 
    "scopes": [ 
    "delete_repo" 
    ] 
} 

curl -v -u username -X POST https://api.github.com/authorizations -d '{"scopes":["delete_repo"], "note":"token with delete repo scope"}'

これは、リポジトリを削除するために使用することができるはず新しいトークンを持つJSONドキュメントを返します。このようにトークンを作成するときは、delete_repoのスコープだけでなく、複数のスコープを要求できます。

また、適切な権限がないときにAPIが404エラーを返す理由は、prevent information leakageです。

+1

私はあなたがここにいることも大好きです。 =) –

+0

アカウントの二要素認証を有効にした場合は、認証コードを "X-GitHub-OTP"のヘッダー値として追加してください。 [2要素認証の使用](http://developer.github.com/ v3/auth /#two-factor認証付き) –

+2

Github Webサイトのユーザーインターフェイスは、複数のスコープを持つトークンを作成する手段を提供するようになりました。 @Ivan Zuzakがコマンドラインから複数のスコープtokkenを作成する方法の現時点の例を含むように彼の答えを更新してくれれば幸いです。 'curl -v -u username -X POST https://api.github.com/authorizations -d '{" scopes ":[" delete_repo "]}'を使った私の試みはうまくいきませんでした。おそらくAPI元の投稿から変更されています。 – lawlist

6

削除リポジトリ

curl -X DELETE -H 'Authorization: token {access token goes here}' https://api.github.com/repos/{yourUsername}/{name of repo} 中括弧やテキストの内部を交換してください。 -I手段のみHTTPヘッダをフェッチ

ディスプレイヘッダ

curl -I https://api.github.com

あなたは `github.com/fooの/ bar`を持っている場合は、`、その後、リポジトリ

curl -u yourUsername -X POST https://api.github.com/user/repos -d '{"name":"nameOfRepo"}'

+1

curl -u yourusername -X DELETE https:// api .github.com/repos/{yourUsername}/{repoの名前} は削除作業を簡単に行う方法でした。資格情報を追加するためにそこから改善することができました。 –

+0

作成cmd istが動作していない、私は何かが恋しい? – Timo

関連する問題