6

我已经使用 PRIVATE GitHub Repository 作为提供者实现了 Electron AutoUpdater 来发布电子应用程序。现在,我可以使用 GitHub 存储库发布它,但是每当 AutoUpdater 尝试从 GitHub 存储库下载更新时,每次它都会提示响应代码 404 Not found .. 我尝试在 setFeedURL 方法中传递令牌并将其设置在 GH_TOKEN 但看起来像那样也不起作用。

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

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

4

4 回答 4

6

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

于 2019-07-17T12:09:58.590 回答
5

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

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

更新:

如果您使用electron-updater并且要发布到私有存储库,则需要确保您的令牌在app-update.yml文件中可用,这就是为什么许多人说不建议这样做,如果您的app-update.yml文件中没有设置令牌,您将得到 404。

为了使electron-updater自动将您的令牌添加到app-update.yml文件中,令牌应在发布部分中设置,如下所示:

  "publish": [
    {
      "provider": "github",
      "private": true,
      "owner": "<github_owner>",
      "repo": "<repo_name>",
      "token": "<your github token>"
    }
  ],

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

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

看看这个小视频

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

更新 2

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

于 2019-07-17T08:31:21.083 回答
0

我发现这个AutoUpdater Git Repo非常有用,我的代码现在可以运行了。我需要做的唯一更改是在 github yml 设置中,token=<PersonalAccessToken>从 github 添加一个。

您可以从以下位置获取 Github 个人令牌Github > Settings > Developer Settings > Personal access tokens > Generate New Token

于 2021-07-01T06:38:08.050 回答
0

如果有人仍然遇到这个问题(我被困了几个星期),我创建了一个包来帮助解决这个问题。电子github自动更新器

它几乎是 Electron 的 autoUpdate API 的精确克隆,它接受一个配置对象,用于您的私有/企业 github 存储库配置和访问令牌。它应该可以正常工作

于 2022-01-15T02:58:18.263 回答