带有私有 GitHub 存储库的电子自动更新器?

Ste*_*der 5 electron electron-builder electron-updater

我已经使用 PRIVATE GitHub Repository 作为发布电子应用程序的提供者实现了 Electron AutoUpdater。现在,我可以使用 GitHub 存储库发布它,但是每当 AutoUpdater 尝试从 GitHub 存储库下载更新时,每次都会提示响应代码 404 Not found..也不起作用。

autoUpdater.setFeedURL({ provider: 'github'
, owner: 'owner'
, repo: 'repo-name'
, token: 'token'
, private: true });
Run Code Online (Sandbox Code Playgroud)

那么,有没有办法让它与 PRIVATE GitHub Repository 一起工作?

Zah*_*her 8

您使用电子自动更新模块吗?从API文档中,我可以看到他们不支持。

另一方面,如果您使用electro-updater模块,请确保您遵循推荐的发布工作流程,并且不应使用 setFeedURL 检查此处的注释

更新:

如果您使用电子更新程序并且要发布到私有存储库,则需要确保您的令牌在文件中可用app-update.yml,这就是为什么许多人说不推荐这样做,如果令牌未在您的app-update.yml文件中设置将得到404。

为了让电子更新程序自动将令牌添加到文件中,app-update.yml应在发布部分中设置令牌,如下所示:

  "publish": [
    {
      "provider": "github",
      "private": true,
      "owner": "<github_owner>",
      "repo": "<repo_name>",
      "token": "<your github token>"
    }
  ],
Run Code Online (Sandbox Code Playgroud)

这将生成app-update.yml如下文件:

owner: <github_owner>
repo: <repo_name>
provider: github
private: true
token: <your github token>
updaterCacheDirName: electron-updater-private-updater

Run Code Online (Sandbox Code Playgroud)

看看这个小视频

这是我的代码https://github.com/linuxjuggler/electron-auto-update-example检查electron-builder.json文件。

更新2

根据快速设置指南部分中提到的注释,您永远不应该调用setFeedURL


小智 5

自动更新- 您可以看到私有 github 存储库仅适用于非常特殊的情况,并且他们建议使用单独的仅发布存储库来分发版本,以便源被锁定,并且您可以分发到受控机器。这是一个有用的功能,因为不需要服务器,但特殊用例。此外,您可以使用 s3 存储桶或其他一些升级服务器进行此操作。

  • 除此之外,公共 S3 存储桶或仅限发布的存储库是最明智的选择。标记为正确的答案建议将 GitHub 令牌放入存储库中,我不建议考虑任何拥有该令牌的人可以在该帐户上读取/写入**任何** GitHub 存储库(该令​​牌随客户端一起提供!)。Nuts曾经是一个流行的代理服务器,但它没有得到维护,而且我还没有找到一个可以再工作的分支。 (3认同)