使用部署密钥从 Github 存储库的发布部分下载文件
Posted
技术标签:
【中文标题】使用部署密钥从 Github 存储库的发布部分下载文件【英文标题】:Download a file from the release section of Github repo using deployment key 【发布时间】:2019-03-30 13:54:04 【问题描述】:我使用只读部署密钥将私有 Github 存储库克隆到 Docker 容器中。但是,似乎不可能使用相同的部署密钥从版本下载文件。特别是,似乎只能通过使用个人访问密钥才能从发行版下载文件。例如,这里有一个这样的工具:
https://github.com/gruntwork-io/fetch
似乎所有这些响应都集中在使用个人访问令牌而不是部署密钥:
How do I download binary files of a GitHub release?
How to download GitHub Release from private repo using command line
但是,我还没有看到有人表示这是不可能的。所以我只是错过了什么吗?是否可以使用部署密钥(不是个人访问密钥)从版本(或地狱......整个版本)下载文件?
我需要一个不与维护者的用户帐户绑定的密钥,并且我讨厌创建一些仅用于自动下载的一次性幻像用户的想法。毕竟,虚拟帐户将与某人的帐户绑定,我不喜欢这样的想法。
【问题讨论】:
【参考方案1】:无法使用部署密钥下载版本。部署密钥是 SSH 密钥,在 GitHub 上,SSH 功能仅限于获取和拉取。
当您想要下载档案、获取原始文件或执行任何其他使用 HTTPS 的操作时,您需要 HTTPS 凭据。这可以是个人访问令牌,也可以是您帐户上启用的 OAuth 应用程序中的 OAuth 令牌。 SSH 密钥不能用于此目的,因为它们用于不同的协议。
听起来可能最适合您的方式是使用可以访问组织帐户的 OAuth 应用程序。这将有助于避免特定用户离开组织的问题。
您也可以下载存储库并使用git archive
自行生成存档(或通过将其与tar
组合来仅提取您想要的文件)。当然,这不会那么有效。
【讨论】:
以上是关于使用部署密钥从 Github 存储库的发布部分下载文件的主要内容,如果未能解决你的问题,请参考以下文章
作为 Azure DevOps 中发布管道的一部分,将更改推送到 GitHub 存储库