Details
-
New Feature
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
Description
The git client appears to be using the http proxy settings from the "Manage plugins" section of Jenkins. That proxy is for the master to download plugins, not for SCM clients to access repositories. Slave machines shouldn't require the same access to the internet as the master.
Here you can see that localhost:3128 is being used as a proxy when that slave does not have a proxy listening on port 31218
> /usr/bin/git config --local credential.username frank # timeout=10
> /usr/bin/git config --local credential.helper store --file=/tmp/git6157196107535640953.credentials # timeout=10
Setting http proxy: localhost:3128
> /usr/bin/git -c core.askpass=true fetch --tags --progress https://github.com/frank/fright.git +refs/heads/:refs/remotes/origin/
> /usr/bin/git config --local --remove-section credential # timeout=10
Using environmental variables should be the approach for accessing http/https on the web from a git client.
We also have different proxy settings on the master and agents. Fortunately a local .gitconfig on the build node has precedence over the setting from the master. So we distribute a /home/jenkins/.gitconfig file with the following content to the build nodes:
Jenkins still logs Setting http proxy: proxy.masteronly.example.com:3128 during the build - but git selects the proxy from the local .gitconfig.