Skip to content

feat: support auth for gitlab private repository #9044

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

misk0225
Copy link

implementation for #9043.

I added a PRIVATE-TOKEN field in the implementation of the addAuthHeader(token) method in the electron-updater package to make it work with GitLab.

Reference

https://github.com/Thibaut-Mouton/react-electron-autoupdate-with-gitlab

Copy link

changeset-bot bot commented Apr 22, 2025

⚠️ No Changeset found

Latest commit: b9bb8ad

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@@ -163,6 +163,9 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter
addAuthHeader(token: string) {
this.requestHeaders = Object.assign({}, this.requestHeaders, {
authorization: token,

// for gitlab private token
"PRIVATE-TOKEN": token,
Copy link
Collaborator

@mmaietta mmaietta Apr 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would apply to all updater configs and could maybe cause a request rejection due to unknown header?

I'd be more comfortable if this were applied elsewhere by detecting if the url contains gitlab.com/api OR atleast make it conditionally applied within addAuthHeader

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First, thank you for your review!

Actually, I am not an expert in this area, but I tried to send such a header to gitlab and it worked. I also think that different headers should be sent for different types of URLs, but I don’t know the history of this code, so for safety, I added it in this way.

Copy link
Author

@misk0225 misk0225 Apr 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If send headers for different types of URL sources, may encounter a challenge. That is, the developer may have his own gitlab server, match by the URL may not support?

(sorry, this is google translate..., my english is not good)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Out of curiosity, why do we need to open up a helper method when this approach already works?

autoUpdater.requestHeaders = {"PRIVATE-TOKEN": "your-gitlab-token"};

Wondering if it's easier to just add documentation to the docs site on Gitlab integration.

How are you currently uploading the releases? If we were to take it one step further, we could add an official GitlabProvider by extending GenericProvider since it seems only a few changes are needed to support it?
Just would need links to the docs for also creating an GitlabPublisher for uploading and deleting a release

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When I first integrated electron-updater with a private GitLab repository, I was also confused by the helper method addAuthHeader(token) because it didn’t work as expected. Eventually, after checking the source code, I found that it was sending the wrong header. For GitLab developers, I think this helper method is actually misleading.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, this is the way I publish the release: #9043 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

electron-updater 套件的 addAuthHeader(token) 無法用於 gitlab private repository
2 participants