2011-10-24 19 views
4

私はGithub v3 APIを使用しようとしています。既に必要なOAuthフローを実装しています。Github v3 API - REPOを作成

私はいくつかのRepos APIエンドポイント(http://developer.github.com/v3/repos/)を試しています。

これまでのところ、私が使用して私のレポの一覧を取得することができるよ:私はPOST /ユーザー/リポジトリを使用してレポを作成しようとすると、私は404

を取得し、しかしGET /ユーザー/レポ を

私が間違っているかもしれない何か考え?

Joubert

答えて

7

どのように正確にHTTPリクエストを行ったか教えてください。おそらく間違った経路を使っていたような404音。しかし、代わりに信頼できる答えを出すためには、トークンをどのように送信しているか、「xxx」などでマスクするなど、リクエストを確認する必要があります。

私はその間に例リクエストをお見せしましょう、それが働いている:

curl -XPOST -H 'Authorization: token S3CR3T' https://api.github.com/user/repos -d '{"name":"my-new-repo","description":"my new repo description"}'

をあなたはもちろんのOAuthのトーク​​ンを交換する必要があります:S3CR3T

5

私は同じ問題を持っていました。 oauthアクセストークンで404を取得する理由は、githubに権限を与えるときに、必要なスコープを追加で渡す必要があるためです。たとえば、ヘッダーには "X-OAuth-Scopes:repo、user"が表示されます。これは、このユーザーがプロファイルとリポジトリに対する読み取り/書き込みアクセス権を持っていることを意味します。正しいスコープを設定したら、POST/PUTリクエストをうまく処理できるはずです。

正しいアクセス許可があるかどうかを確認する。あなたは次のようなことをすることができます。あなたのアクセストークンでXXXXXXXを置き換えてください。

curl -I https://api.github.com/user?access_token=XXXXXXXX 
+0

これは私を助けました。私はスコープ "public_repo"で試していたが、うまくいかなかった。スコープ "repo"に切り替えると機能しました。私は "ユーザー"を求める必要はありませんでした。 – jrburke

1

このスクリプトは、あなたが個人的なアクセス権を使用できるユーザーとしてリポジトリを作成するためのスクリプト

#!/usr/bin/env bash -u 
# 

TOKEN=`cat token_file` 
PROJECT=myproject 

curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' -d '{"name": "'"$PROJECT"'"}' https://api.github.com/user/repos?access_token=$TOKEN 
+0

私はこの例に基づいたシェルスクリプトを作成し、いくつかのSubversionプロジェクトをGithub https://gist.github.com/4062655に移行しました –

2

でそれを使用することができますので、あなたが変数としてトークン、プロジェクト名にで読み込むことができますトークンと基本認証は、コマンドラインでふざけていて、2FAを有効にしているとはるかに簡単です。

curl -d '{"name":"test"}' -u githubuser:personaccesstoken https://api.github.com/user/repos 

トークンここhttps://github.com/settings/tokensを個人的なアクセスを作成し、それが「レポ」スコープを持っていることを確認してください。

関連する問題