dockerhub 自动构建 - 需要广泛的 github 权限?

dockerhub automated builds - broad github permissions required?

我想在 Dockerhub 上测试自动化容器构建,我发现我需要 link 我的 github 帐户到我的 hub.docker.account。
然而,当我点击 'connect' 按钮时,我被带到一个 github 授权页面,上面写着:

Docker Hub Builder by docker wants to access your larryms account

Repositories
Public and private
This application will be able to read and write all public and private repository data. 
This includes the following:

- Code
- Issues
- Pull requests
- Wikis
- Settings
- Webhooks and services
- Deploy keys
- Collaboration invites

这似乎过于宽松和过于宽泛;如果我理解正确,我需要授予 Docker Hub Builder 读取和 写入 访问 all 我的 github 存储库,public 和 private.

有没有什么方法可以使用最小权限原则来做到这一点,例如只授予 Docker Hub Builder 必要的权限(希望只读)仅 specific github 回购?

GitHub 上的 OAuth 范围确实很广(参见 https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes,您不能在不授予写入权限的情况下授予读取权限)。但是,范围与用户对相关回购的实际权限一起应用。也就是说,如果用户只有对 repo X 的读取权限,并且用户向 dockerhub 授予了具有读写范围的 oauth 令牌,则 dockerhub 将只能代表该用户从 repo X 读取。如果用户稍后获得对 repo X 的管理员访问权限,则已授予的访问令牌将不允许管理员访问,因为令牌的范围仅允许读写访问。

考虑到这一点,您可以在 github 组织中为 dockerhub 创建一个专用用户,并授予该用户对相关存储库的读取权限。然后使用此用户将 dockerhub 连接到您的 github 帐户,只授予对所选存储库的读取权限。