electronelectron-builderelectron-updater

Electron Autoupdater with Private GitHub Repository?


I have implemented Electron AutoUpdater with PRIVATE GitHub Repository as provider to publish electron application. Now, i can publish it using GitHub repository but Whenever AutoUpdater tries to download the updates from GitHub repository, Everytime it prompts with response code 404 Not found.. I have tried passing token in setFeedURL method and also set it in GH_TOKEN but seems like that does not work either.

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

So, Is there any way to get it working with PRIVATE GitHub Repository ?


Solution

  • Are you using electron auto-updater module? from the API documentation, I can see that they don't support.

    On the other hand, if you are using electron-updater module, make sure that you are following the recommended release workflow, and you should not use setFeedURL check the note here

    Updated:

    If you are using electron-updater and you are publishing to a private repository, you will need to make sure that your token will be available within the app-update.yml file, that's why many say it's not recommended, if the token is not set in your app-update.yml file you will get 404.

    For electron-updater to auto add your token to the app-update.yml file the token should be set within the publish section like the following:

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

    This will produce a app-update.yml file like the following:

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

    Check this small video

    Here is my code https://github.com/linuxjuggler/electron-auto-update-example check the electron-builder.json file.

    Update 2

    Based on the note mentioned in the Quick Setup Guide section, you should never call setFeedURL.