【发布时间】:2022-11-11 23:11:34
【问题描述】:
我创建了一个 GitHub 应用程序供 GitHub 用户安装在他们的个人帐户上。我希望它使用 GitHub API 在他们的用户帐户上创建一个新的存储库。
我花了几天时间尝试遵循官方 GitHub API 文档中的说明,特别是如何create a repository for the authenticated user。我没有取得太大的成功。
我可以使用我的 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"
}
根据响应,该访问令牌的范围似乎应该能够创建一个新的存储库,因为它在权限正文响应 JSON 中显示administration: write,但我可能会误认为这个假设。
谁能帮我格式化我对 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"}'
【问题讨论】:
标签: api github curl github-api github-app