Sorry, Björn, but I think I didn’t get it:

  *   Is your suggestion to use?
     *   
withEnv([“http_proxy=https://${PROXY_CREDENTIALS}@proxy-endpoint.com:3128”]) {
  *   But isn’t that what kelvSYC also tried and “gets flagged as unsafe by 
Jenkins”
     *   
withCredentials([usernameColonPassword(credentialsId:’proxy-credentials’, 
variable: ‘PROXY_CREDENTIALS')]) {
def url = 
“https://${env.PROXY_CREDENTIALS}@proxy-endpoint.com:3128<https://$%[email protected]:3128>”
withEnv([“http_proxy=${url}”]) {

I think the (ugly) workaround would be (1) to not use “withEnv” step and (2) 
assemble the “http_proxy” env variable (=> shell variable) only later in the 
shell? Something like:

http_proxy=https://${env.PROXY_CREDENTIALS}@proxy-endpoint.com:3128<https://$%[email protected]:3128>
 <some cmd that needs this ‘http_proxy’ variable>

☹

Cu Reinhold


From: 'Björn Pedersen' via Jenkins Users <[email protected]>
Sent: Dienstag, 9. März 2021 08:10
To: Jenkins Users <[email protected]>
Subject: Re: Using withEnv with withCredentials

Used : 
withEnv([‘http_proxy=https://${PROXY_CREDENTIALS}@proxy-endpoint.com:3128']) {

Note the single quotes, this needs to be double-quoted for the replacement to 
happen.

Björn


kelvSYC schrieb am Montag, 8. März 2021 um 22:29:00 UTC+1:
Suppose I have a username and password credential that I use with a 
withCredentials step, and I wish to use it to construct a URL for use with the 
http_proxy environment variable. Currently I have this:

withCredentials([usernameColonPassword(credentialsId:’proxy-credentials’, 
variable: ‘PROXY_CREDENTIALS')]) {
def url = 
“https://${env.PROXY_CREDENTIALS}@proxy-endpoint.com:3128<https://$%[email protected]:3128>”
withEnv([“http_proxy=${url}”]) {
// Do something
}
}

This gets flagged as unsafe by Jenkins (likely rightly), so I’m wondering what 
safe way there is to do the same thing.

Something like the following doesn’t work for me:

withCredentials([usernameColonPassword(credentialsId:’proxy-credentials’, 
variable: ‘PROXY_CREDENTIALS')]) {
withEnv([‘http_proxy=https://${PROXY_CREDENTIALS}@proxy-endpoint.com:3128']) {
// Do something
}
}

All it does is that the http_proxy variable is populated with the literal 
${PROXY_CREDENTIALS} string instead of the value therein.

Any assistance in this would be appreciated.
--
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[email protected]>.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/2e09f1ff-d7d7-4ba3-a84d-2455dfe1d5acn%40googlegroups.com<https://groups.google.com/d/msgid/jenkinsci-users/2e09f1ff-d7d7-4ba3-a84d-2455dfe1d5acn%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/VI1PR01MB66388D2B93134A56C68D6331F7929%40VI1PR01MB6638.eurprd01.prod.exchangelabs.com.

Reply via email to