我創建了一個 GitHub 應用程式供 GitHub 用戶安裝在他們的個人帳戶上。我希望它使用 GitHub API 在他們的用戶帳戶上創建一個新的存盤庫。
我花了幾天時間嘗試按照官方 GitHub API 檔案中的說明進行操作,特別是如何為經過身份驗證的用戶創建存盤庫。我沒有取得太大的成功。
我可以使用我的 GitHub 應用程式的私鑰生成 JWT,然后使用它來代表 GitHub 應用程式安裝生成訪問令牌(安裝是指已安裝該應用程式的任何用戶或組織帳戶)。
要求:
curl -i -X POST -H "Authorization: Bearer <<<JWT>>>" -H "Accept: application/vnd.github json" https://api.github.com/app/installations/<<<Installation ID>>>/access_tokens
回復:
{
"token": "ghs_zdhWvuGrhoi4UJsd1tX4Ggtae5f84jdu8tH3",
"expires_at": "2022-11-01T12:00:00Z",
"permissions": {
"administration": "write",
"metadata": "read"
},
"repository_selection": "all"
}
根據回應,該訪問令牌的范圍似乎應該能夠創建一個新的存盤庫,因為它administration: write在權限正文回應 JSON 中說,但我可能會誤認為這個假設。
誰能幫我格式化我對 GitHub API 的請求,以創建新的存盤庫以安裝我的 GitHub 應用程式?根據我上面鏈接的檔案,它應該看起來像這樣。我應該添加我生成的新訪問令牌嗎?
curl \
-X POST \
-H "Accept: application/vnd.github json" \
-H "Authorization: Bearer ghs_zdhWvuGrhoi4UJsd1tX4Ggtae5f84jdu8tH3" \
https://api.github.com/user/repos \
-d '{"name":"Repo-Created-From-GitHub-API"}'
uj5u.com熱心網友回復:
默認情況下,此請求的內容型別是'Content-Type' => 'application/x-www-form-urlencoded'
您的帖子資料是 JSON。所以我猜你的請求頭應該包括
-H "Content-Type: application/json".
注意:我沒有查看 API 檔案。
uj5u.com熱心網友回復:
我沒有使用 GitHub 應用程式,而是選擇創建 OAuth 應用程式。回想起來,只要您啟用了 OAuth,兩者都可以作業。重要的是確保您作為用戶進行身份驗證,而不是作為安裝進行身份驗證。code在從 OAuth 授權回呼中接收到查詢引數后,您需要請求訪問令牌以通過對https://github.com/login/oauth/access_token. 這將向您發出一個訪問令牌,您可以使用該令牌與 GitHub REST API 一起代表用戶執行操作,例如創建新存盤庫。隨意看看我的專案代碼,看看我是怎么做到的。干杯!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/529839.html
標籤:apigithub卷曲github-apigithub-应用程序
