nightly.link 用于 GitHub
这项服务允许您获取一个可共享的链接,用于下载某个仓库最新成功的 GitHub Actions 构建中的构建产物。
任何公开仓库默认都可访问,且访问者无需登录。
如果您将发布指向自己仓库产物的链接,请务必安装 GitHub 应用,这样您仓库的下载就不会共享全局 API 速率限制。随着时间推移,限流可能会变得非常严格。
问题所在
GitHub 没有直接方式可以直接链接到给定仓库的 GitHub Actions 的最新构建。
即使您确实有产物的链接,使用它也需要访问者登录 GitHub 网站。
这个讨论源于 actions/upload-artifact "产物下载 URL 仅适用于注册用户"。
因此,本服务是为了解决这个遗漏问题。
授权
由于 GitHub 不提供任何永久和公开的产物链接,本服务会重定向到 GitHub 可以提供给应用程序的时限链接 —— 仅代表有权访问仓库的已认证用户。因此,每当有人从您添加的仓库下载产物时,本服务会使用与您安装的 GitHub 应用关联的令牌。
nightly.link 作为已安装的 GitHub 应用
此 GitHub 应用请求以下权限:
- Actions:工作流、工作流运行和产物。
- 访问:只读
- 元数据[必需]:搜索仓库、列出协作者并访问仓库元数据。
- 访问:只读
nightly.link 作为已授权的 GitHub 应用
有趣的是,GitHub 在您向服务进行身份验证时显示的提示内容相当吓人:
nightly.link(由 Oleh Prypin 开发)请求以下权限:
- 验证您的 GitHub 身份($username)
- 了解您可以访问哪些资源
- 代表您采取行动
实际上,这段文字是完全通用的,无论 GitHub 应用的权限如何,都会显示相同的内容。这里有相关讨论。
此外,即使应用只是"已安装"而未被"授权",它所请求的权限也会被授予。
验证您的身份是必要的,这样只有您可以查看私有仓库和您所在组织的链接。至于其他内容,本服务甚至没有请求。
当您使用完本网站的用户界面后,可以随时撤销这部分授权(但保留安装)。
隐私政策
以下是本服务存储内容的详尽列表:
- 服务器端:
- 您授予访问权限的完整仓库名称。
- 客户端:无。
主实例的服务器还会保留访问日志和应用程序日志,最长保留 3 个月。
如有变更,本页面将会更新。
定价
nightly.link 完全免费提供,包括作者自费运营的主实例。
如果您依赖这项服务,请通过向作者捐赠来支持其持续维护。
目前没有计划推出付费功能。
作者
本服务由 Oleh Prypin 开发和运营。
它与我的雇主无关。也与 GitHub 无关。
联系方式
请在 https://github.com/oprypin/nightly.link/issues 开启一个 issue
源代码
源代码可在 Git 仓库 https://github.com/oprypin/nightly.link 获取
许可证
版权所有 (C) 2020 Oleh Prypin
本程序是自由软件:您可以根据自由软件基金会发布的 GNU Affero 通用公共许可证的条款(许可证的第 3 版或(随您选择)任何后来的版本)重新分发和/或修改它。
本程序的发布是希望它能够有用,但没有任何保证;甚至没有对适销性或特定用途适用性的暗示保证。有关更多详细信息,请参阅 GNU Affero 通用公共许可证。
您应该已经收到了一份 GNU Affero 通用公共许可证的副本。如果没有,请参阅 https://www.gnu.org/licenses/。