根据 GitHub 文档,您只能通过个人访问令牌或 GITHUB_TOKEN(仅在 GitHub 操作中可用)向 GitHub 容器注册表进行身份验证。 GITHUB_TOKEN 是 GitHub 应用程序的安装访问令牌。
当您启用 GitHub Actions 时,GitHub 会在您的存储库上安装 GitHub 应用程序。 GITHUB_TOKEN 密钥是 GitHub 应用程序安装访问令牌。 [来源]
是否可以使用另一个 GitHub 应用程序的安装访问令牌来对 GitHub 容器注册表进行身份验证?
我成功通过了 github 容器注册表的身份验证。 但是我无法让它拉取或推送任何容器图像。
查看REST API文档: https://docs.github.com/en/rest/packages/packages?apiVersion=2022-11-28#get-a-package-for-an-organization
它并没有说它可以与 github 应用程序一起使用,就像它对该端点所做的那样: https://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#list-organization-repositories
根据我的经验,github 中的一些内容没有很好的记录,所以我确实尝试过,但最终我无法让它工作。
我成功使用
docker login
和 github 应用程序令牌登录,但在尝试推送图像时仍然被包权限阻止。
这就是我至少能够登录的方法:
docker login ghcr.io -u <YOUR_GITHUB_APP_ID>
,当提示输入密码时,输入步骤 2 中响应中的令牌。我的问题可能是该应用程序安装在组织上,但我没有足够的权限。当您在响应中生成访问令牌时,您将看到它具有何种权限。为了让它工作,我想它应该在“权限”中有“包”
这是我在回复中得到的内容:
{
"token": "<redacted>",
"expires_at": "2023-08-11T08:44:17Z",
"permissions": {
"contents": "read",
"metadata": "read",
"packages": "write"
},
"repository_selection": "all"
}
但是在尝试推送图像时仍然失败:
denied: permission_denied: installation not allowed to Create organization package