我正在嘗試使用Github v3 API - 我已經實現了所需的OAuth流程,並且運行良好。Github v3 API - 創建REPO
現在我正在嘗試一些Repos API端點(http://developer.github.com/v3/repos/)。
到目前爲止,我能夠得到使用我的回購協議的列表:GET /用戶/回購 然而,當我嘗試使用POST /用戶/回購創建一個回購協議,我得到一個404
有什麼想法我可能做錯了?
Joubert
我正在嘗試使用Github v3 API - 我已經實現了所需的OAuth流程,並且運行良好。Github v3 API - 創建REPO
現在我正在嘗試一些Repos API端點(http://developer.github.com/v3/repos/)。
到目前爲止,我能夠得到使用我的回購協議的列表:GET /用戶/回購 然而,當我嘗試使用POST /用戶/回購創建一個回購協議,我得到一個404
有什麼想法我可能做錯了?
Joubert
請問您能告訴我們您做了多少HTTP請求?聽起來好像你正在使用錯誤的路徑,可能。但爲了給出一個可靠的答案,而不是一個瘋狂的猜測,我們需要看到你的請求,包括你如何發送你的令牌,只是用'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
我有同樣的問題。你使用你的oauth訪問令牌獲得404的原因是,當你授權給github時,你還需要通過你想要的範圍。例如,在標題中,您應該看到「X-OAuth-Scopes:repo,user」,這意味着此用戶具有對其配置文件和存儲庫的讀/寫訪問權限。一旦你設置了正確的範圍,你應該可以做POST/PUT請求。
查看您是否擁有正確的權限。你可以做如下的事情。用您的訪問令牌替換XXXXXXX。
curl -I https://api.github.com/user?access_token=XXXXXXXX
該腳本可以讓你在令牌和項目名稱爲變量讀取,所以你可以在腳本
#!/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
我創建了一個基於此示例的shell腳本,並將幾個Subversion項目遷移到Github https://gist.github.com/4062655 –
用它來創建存儲庫作爲用戶,你可以使用個人訪問令牌和基本身份驗證,當您在命令行上亂作一團並啓用2FA時可能會更簡單。
curl -d '{"name":"test"}' -u githubuser:personaccesstoken https://api.github.com/user/repos
在此處創建個人訪問令牌https://github.com/settings/tokens並確保它具有「回購」範圍。
這幫了我。我試圖用範圍「public_repo」,但沒有奏效。切換到範圍「回購」確實奏效。我不需要詢問「用戶」。 – jrburke