Comment faire une demande curl avec json dans jenkins pipeline script groovy
Je suis en train de faire une Nouvelle Relique de déploiement appel d'API comme Jenkins étape de génération à l'aide de l'Groovy pipeline. Je vais avoir des problèmes en raison de l'utilisation de ces deux guillemets simples et doubles à l'intérieur de la coquille ("sh") de commande dans le script groovy. Chaque fois que j'exécute les opérations suivantes:
node {
//...
def json = '''\
{"deployment": {"revision": "v1","user": "me"}}'
'''
sh "curl -o /dev/null -s -X POST 'https://api.newrelic.com/v2/applications/[redacted]/deployments.json' \
-H 'X-Api-Key:[redacted]' \
-H 'Content-Type: application/json' \
-d '${json}'"
//...
}
J'obtiens une erreur dans Jenkins qui dit:
/var/lib/jenkins/emplois/[rédigé]/workspace@tmp/durable-0f6c52ef/script.sh: ligne 2: des expressions du FOLKLORE alors que la recherche de correspondants `'
- vous pouvez également utiliser les github.com/jwagenleitner/groovy-wslite#rest
- Merci pour la suggestion sur wslite. J'ai essayé, mais il ya beaucoup plus là-bas que je pourrais facilement obtenir une poignée sur.
Vous devez vous connecter pour publier un commentaire.
L' 'json' variable contient une chaîne qui a un extra fin guillemet simple (').
Lorsqu'il est utilisé dans les
-d " ${json}'"
Je pense qu'elle entraînera un supplément de (') dans le bloc de données. Le bloc de données nécessitera le JSON être entourés de guillemets simples donc, assurez-ceux-ci sont inclus.
N'étant pas un Groovy personne (pun intended), vous pourriez avoir à jouer à l'échappement de caractères, elle s'assurer que la bonne chaîne est passée à la commande cURL.