jenkinsci / pipeline-github-plugin

Pipeline: GitHub
https://plugins.jenkins.io/pipeline-github/
MIT License
159 stars 73 forks source link

use proxy env PROXY_HOST and PROXY_PORT automatically if defined #92

Open luka5 opened 3 years ago

luka5 commented 3 years ago

With this change, we will automatically use the PROXY_HOST and PROXY_PORT environment variables, if defined. This is useful, in any environment, which requires a HTTP Proxy to communicate to the other endpoints. I built it locally, and it works for me.

Resolves https://github.com/jenkinsci/pipeline-github-plugin/issues/66

What do you think about it?

jacob-keller commented 3 years ago

Would this enable pipeline scripts to set the PROXY_HOST and PROXY_PORT environment variables and then perform access requests via the objects?

luka5 commented 3 years ago

We tested the PR with the PROXY_HOST and PROXY_PORT environment variable being defined on machine/container level. If you can manipulate the system environment variables via pipeline scripts, you might also be able to use them.

aaronjwhiteside commented 3 years ago

How does this play with Jenkins' own support for configuring http proxies?

https://wiki.jenkins.io/display/JENKINS/JenkinsBehindProxy#:~:text=You%20can%20configure%20the%20proxy,preferred%20over%20setting%20JVM%20properties.&text=If%20the%20proxy%20server%20requires,name%20of%20the%20user%20here.&text=If%20the%20proxy%20server%20requires%20authentication%2C%20enter%20the%20password%20here.

It seems this information should be exposed to Plugin somehow

mvigenin commented 6 months ago

This improvement is very handy because it will allow us to choose how to configure the proxy settings. Currently, the problem is that most of the plugins can use either the HTTP_PROXY or the Jenkin's proxy configuration. There are use-cases where we don't wan't to use the Jenkin's proxy as it is taking precedence over the JAVA proxy settings. That can be an issue when using external build nodes (i.e. combination of fixed and on-demand nodes that may require different proxy settings). Are there plans to merge this fix?

jacob-keller commented 6 months ago

This would be extremely helpful in systems with complex proxy settings and build nodes which each need different settings.

bkholtzm commented 5 months ago

I would also like to see this merged, I've tried the JVM workaround suggested in the original issue but, to no avail.

Mentioning the original author + some of the contributors from recent releases to see if we can get an update on this: @luka5 @gounthar @xocasdashdash @LeoQuote @aaronjwhiteside

Any help here would be greatly appreciated, thanks!

savus3 commented 3 months ago

Hi all, I have an error that this merge might fix: May 23, 2024 2:45:54 PM SEVERE com.syhuang.hudson.plugins.listgitbranchesparameter.ListGitBranchesParameterDefinition generateContents org.eclipse.jgit.api.errors.TransportException: https://github.com/my_organization/myrepo.git: connection failed java.net.ConnectException: Connection timed out github.com

Does anyone have a hint how I can override/workaround this issue? I have the proxy configured in the global config of Jenkins.

Thanks in advance!

savus3 commented 3 months ago

I managed to solve my issue by adding as option the proxy address to the command line that starts the Jenkis and works:

root@Master:~# grep OPTS /etc/systemd/system/jenkins.service.d/override.conf Environment="JAVA_OPTS=-Djava.awt.headless=true -Dhttps.proxyHost=my_proxy_ip -Dhttps.proxyPort=3128 -Dhttp.proxyHost=my_proxy_ip -Dhttp.proxyPort=3128" root@Master:~#