La commande curl fonctionnant parfaitement échoue lorsqu'elle est exécutée dans un script groovy
J'ai un post commit hook (un script groovy) dans gitblit d'invoquer un point de terminaison REST. Dans ce script, je suis de l'exécution d'une commande curl. Mais il semble échouer. La commande curl fonctionne très bien lorsqu'il est exécuté depuis la ligne de commande.
Voici mon script groovy.
#!/usr/bin/env groovy
def repoUrl= "https://gitblit.myhost.com/git/" + repository + ".git"
json='{"repository":{"url":"'+repoUrl+'"}}'
def response = "curl -v -k -X POST -H \"Content-Type: application/json\" -d '${json}' https://username:[email protected]:9443/restendpoint".execute().text
println response
référentiel est transmis par gitblit pour ce script et j'ai vérifié.
Quelqu'un peut-il m'aider avec cela.
source d'informationauteur Amila Maharachchi
Vous devez vous connecter pour publier un commentaire.
Je n'arrivais pas à reproduire votre problème avec votre exemple, mais je vais essayer un sauvage deviner:
Tout d'abord, utilisez la liste
execute()
version, de sorte que vous n'avez pas de problèmes avec des jetons:Deuxième, lire à la fois d'erreur et de sortie du processus:
La
err
peut donner à ce qui se passe surJ'ai été en mesure de le faire fonctionner en passant par tous les string de ma commande curl dans un tableau. Voici comment je l'ai fait.
Pour éviter de " running-forever’ (dans ce qui se passe sur certains Windows env lorsque la production dépasse 4096 octets) ajouter de la taille initiale de ByteArrayOutputStream