gitkraken / vscode-gitlens

Supercharge Git inside VS Code and unlock untapped knowledge within each repository — Visualize code authorship at a glance via Git blame annotations and CodeLens, seamlessly navigate and explore Git repositories, gain valuable insights via rich visualizations and powerful comparison commands, and so much more
http://gitkraken.com/gitlens
Other
8.94k stars 1.27k forks source link

Unable to sign in to plus account behind corporate proxy #2285

Open Abreuvoir opened 1 year ago

Abreuvoir commented 1 year ago

Description

I am unable to sign in to my account when working behind my corporate proxy. I can successfully authenticate in the browser but when coming back to VS Code, I have this error message : Unable to sign in to GitLens+: FetchError: request to https://api.gitkraken.com/user failed, reason: unable to get local issuer certificate

"http.proxyStrictSSL" is set to false in VS Code Settings. I am able to install and update extensions without issues.

GitLens Version

13

VS Code Version

Version: 1.72.2 (user setup) Commit: d045a5eda657f4d7b676dedbfa7aab8207f8a075 Date: 2022-10-12T22:15:18.074Z Electron: 19.0.17 Chromium: 102.0.5005.167 Node.js: 16.14.2 V8: 10.2.154.15-electron.0 OS: Windows_NT x64 10.0.19042 Sandboxed: No

Git Version

git version 2.31.1.windows.1

Logs, Screenshots, Screen Captures, etc

image

eamodio commented 1 year ago

Do you have any gitlens.proxy.* values set? If not that is fine as we then look to the http.proxy* VS Code settings. Do you have http.proxySupport set? If it is set to off, it needs to be set to any of the other values.

If none of that helps, can you please enable debug logging by running the GitLens: Enable Debug Logging command from the Command Palette (F1 or ctrl/cmd+shift+p). This will enable logging to the GitLens & GitLens (Git) channels in the Output pane.

Once enabled, please reproduce the issue, and attach the logs from the GitLens channel.

Thank you!

Abreuvoir commented 1 year ago

I don't have anything set for gitlens.proxy.*. http.proxySupport is still to its default value override, but I tried the other options and it doesn't change anything sadly.

Here is the log :

[2022-10-24 07:24:05.215] [   3a] SubscriptionService.loginOrSignUp
[2022-10-24 07:24:05.216] [   3b] SubscriptionService.showHomeView
[2022-10-24 07:24:05.217] [   3c] SubscriptionService.ensureSession(i=true)
[2022-10-24 07:24:05.217] [   3d] SubscriptionService.getOrCreateSession(i=true)
[2022-10-24 07:24:05.217] [   3e] HomeWebviewView(gitlens.views.home).show(i=undefined)
[2022-10-24 07:24:05.220] [   3e] HomeWebviewView(gitlens.views.home).show(i=undefined) completed • 3 ms
[2022-10-24 07:24:05.220] [   3b] SubscriptionService.showHomeView completed • 4 ms
[2022-10-24 07:24:05.222] [   3f] SubscriptionAuthenticationProvider.getSessions(e=["gitlens"])
[2022-10-24 07:24:05.223] [   3f] SubscriptionAuthenticationProvider.getSessions(e=["gitlens"]) completed • Found 0 sessions • 0 ms
[2022-10-24 07:24:05.302] [   40] GitProviderService.onWindowStateChanged(e=focused=false)
[2022-10-24 07:24:05.302] [   40] GitProviderService.onWindowStateChanged(e=focused=false) completed • 0 ms
[2022-10-24 07:24:07.135] [   41] GitProviderService.onWindowStateChanged(e=focused=true)
[2022-10-24 07:24:07.135] [   41] GitProviderService.onWindowStateChanged(e=focused=true) completed • 0 ms
[2022-10-24 07:24:07.149] [   42] SubscriptionAuthenticationProvider.createSession(e=["gitlens"])
[2022-10-24 07:24:07.149] [   43] ServerConnection.login(e=["gitlens"], t=gitlens)
[2022-10-24 07:24:07.447] [   44] GitProviderService.onWindowStateChanged(e=focused=false)
[2022-10-24 07:24:07.447] [   44] GitProviderService.onWindowStateChanged(e=focused=false) completed • 0 ms
[2022-10-24 07:24:15.063] [   45] UriEventHandler.handleUri(e=vscode://eamodio.gitlens/did-authenticate)
[2022-10-24 07:24:15.063] [   45] UriEventHandler.handleUri(e=vscode://eamodio.gitlens/did-authenticate) completed • 0 ms
[2022-10-24 07:24:15.064] [   43] ServerConnection.login(e=["gitlens"], t=gitlens) completed • 7914 ms (slow)
[2022-10-24 07:24:15.064] [   46] ServerConnection.getAccountInfo
[2022-10-24 07:24:15.302] [   47] GitProviderService.onWindowStateChanged(e=focused=true)
[2022-10-24 07:24:15.302] [   47] GitProviderService.onWindowStateChanged(e=focused=true) completed • 0 ms
[2022-10-24 07:24:15.683] ShowMessage(warn, 'GitLens debug logging is currently enabled. Unless you are reporting an issue, it is recommended to be disabled. Would you like to disable it?', suppressDebugLoggingWarning, {"title":"Don't Show Again"})
[2022-10-24 07:24:15.690] [   46] ServerConnection.getAccountInfo 
FetchError: request to https://api.gitkraken.com/user failed, reason: unable to get local issuer certificate
[2022-10-24 07:24:15.690] [   46] ServerConnection.getAccountInfo — failed • 625 ms
FetchError: request to https://api.gitkraken.com/user failed, reason: unable to get local issuer certificate
[2022-10-24 07:24:15.690] [   42] SubscriptionAuthenticationProvider.createSession 
FetchError: request to https://api.gitkraken.com/user failed, reason: unable to get local issuer certificate
[2022-10-24 07:24:15.691] [   42] SubscriptionAuthenticationProvider.createSession — failed • 8542 ms
FetchError: request to https://api.gitkraken.com/user failed, reason: unable to get local issuer certificate
[2022-10-24 07:24:15.774] [   3d] SubscriptionService.getOrCreateSession 
FetchError: request to https://api.gitkraken.com/user failed, reason: unable to get local issuer certificate
[2022-10-24 07:24:15.774] [   3d] SubscriptionService.getOrCreateSession No valid session was found
[2022-10-24 07:24:15.775] [   48] SubscriptionAuthenticationProvider.removeSessionsByScopes(e=["gitlens"])
[2022-10-24 07:24:15.775] [   49] SubscriptionService.changeSubscription(i={"plan":{"actual":{"id":"free","name":"GitLens","startedOn":"2022-10-18T08:07:50.311Z"},"effective":{"id":"free","name":"GitLens","startedOn":"2022-10-18T08:07:50.311Z"}},"state":2,"previewTrial":{"startedOn":"2022-10-18T15:02:12.060Z","expiresOn":"2022-10-21T21:59:59.999Z"}})
[2022-10-24 07:24:15.775] [   49] SubscriptionService.changeSubscription(i={"plan":{"actual":{"id":"free","name":"GitLens","startedOn":"2022-10-18T08:07:50.311Z"},"effective":{"id":"free","name":"GitLens","startedOn":"2022-10-18T08:07:50.311Z"}},"state":2,"previewTrial":{"startedOn":"2022-10-18T15:02:12.060Z","expiresOn":"2022-10-21T21:59:59.999Z"}}) completed • 0 ms
[2022-10-24 07:24:15.775] [   48] SubscriptionAuthenticationProvider.removeSessionsByScopes(e=["gitlens"]) completed • 0 ms
[2022-10-24 07:24:15.775] [   3d] SubscriptionService.getOrCreateSession(i=true) completed • 10558 ms (slow)
[2022-10-24 07:24:15.776] [   3c] SubscriptionService.ensureSession(i=true) completed • 10558 ms (slow)
[2022-10-24 07:24:15.776] [   3a] SubscriptionService.loginOrSignUp completed • 10560 ms (slow)
ThierryBrunet commented 1 year ago

For several weeks I have been experiencing the same problem as described by Abreuvoir.... My dev machine is located behind a large government org managed proxy and I always get the error message "unable to get local issuer certificate"... tried many things to no avail.... I have a personal Gitlens+ license which is not detected. The extend Pro trial by 7 days is locked-out too.... same errror message... Same thing happens with Insiders or Supercharged.... always have latest VSCode version... still trying with both normal and Insiders VSC as soon as released....

My Gitkraken PRO license works fine while at work behind the org proxy and always update to latest (is 8.10.3 now). Obviously the licensing engines are diferent for GitKrakenPro and GitLens+ and the later does not seam to like corp proxies...

All works fine as expected on my personal PC at home.... and I now know that I am not alone with this problem...

In office behing org proxy, I would really like to take advantage of the Gitlens+ Worktrees feature to work on different branches at same time.... any chance to have a solution to our problem any time soon ? may be a special insider version with feature flags so different license lock scenarios may be tested/validated ? I am happy to help if you want to Thanks.

ThierryBrunet commented 1 year ago

Still no go on my side despite countless hours trying to figure out a way forward when getting this error message:

Unable to sign in to GitLens+: FetchError: request to https://api.gitkraken.com/user failed, reason: unable to get local issuer certificate

Glutnix commented 1 year ago

I successfully got around this by using px-proxy as a local no-auth proxy, which then is able to proxy things through the corporate proxy using single-sign-on. I then configuring vscode to use it by setting http.proxy to http://127.0.0.1:3128 or whatever ip and port you configure px to and leaving other proxy settings as default.

https://github.com/genotrance/px

fnafnio commented 4 months ago

I still cannot login behind the corporate firewall, is this even a priority?

jkelroy commented 3 months ago

Hello @fnafnio, are you able to temporarily disable the firewall to log in and reenable after?

If not, are you able to share the information requested here?

Abreuvoir commented 3 months ago

This is still an issue. Is it being looked at? Is it on vscode side?

More recent log:

2024-05-24 14:25:39.951 [error] FetchError: request to https://api.gitkraken.com/user failed, reason: unable to get local issuer certificate
    at ClientRequest.<anonymous> (c:\Users\BBB01KK\.vscode\extensions\eamodio.gitlens-15.0.4\dist\gitlens.js:1510:22380)
    at ClientRequest.emit (node:events:517:28)
    at TLSSocket.socketErrorListener (node:_http_client:501:9)
    at TLSSocket.emit (node:events:517:28)
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
fnafnio commented 3 months ago

I'm seeing this in the log

[2024-05-27 12:00:46.957] ServerConnection.getAccessToken
Error: Authentication required
[2024-05-27 12:00:47.011] c:\Users\accountname\.vscode\extensions\eamodio.gitlens-15.0.4\dist\integrations.js:3:27536
HttpError: request to https://api.github.com/graphql failed, reason: self signed certificate in certificate chain
[2024-05-27 12:00:47.011] c:\Users\accountname\.vscode\extensions\eamodio.gitlens-15.0.4\dist\integrations.js:3:27536
HttpError: request to https://api.github.com/graphql failed, reason: self signed certificate in certificate chain
[2024-05-27 12:00:47.011] c:\Users\accountname\.vscode\extensions\eamodio.gitlens-15.0.4\dist\integrations.js:3:27536
HttpError: request to https://api.github.com/graphql failed, reason: self signed certificate in certificate chain[2024-05-27 12:00:56.135] ClientRequest.<anonymous>
FetchError: request to https://api.gitkraken.dev/oauth/access_token failed, reason: self signed certificate in certificate chain
[2024-05-27 12:00:56.136] ClientRequest.<anonymous>
FetchError: request to https://api.gitkraken.dev/oauth/access_token failed, reason: self signed certificate in certificate chain
[2024-05-27 12:00:56.168] ClientRequest.<anonymous>
FetchError: request to https://api.gitkraken.dev/oauth/access_token failed, reason: self signed certificate in certificate chain[2024-05-27 12:01:09.577] ServerConnection.getAccessToken
Error: Authentication required

and no, I cannot disable the corporations firewall, it is not controlled by me or anyone in my team. It does work on devices controlled solely by me, but I cannot use these devices at work