#290 Pass script in body instead of URL parameter

This commit is contained in:
Tomasz Sęk 2020-03-17 20:20:39 +01:00
parent d49d2e40ca
commit 2cecbba8b2
No known key found for this signature in database
GPG Key ID: DC356D23F6A644D0
1 changed files with 7 additions and 3 deletions

View File

@ -1,8 +1,10 @@
package client
import (
"bytes"
"fmt"
"net/http"
"net/url"
"strings"
"time"
@ -31,16 +33,18 @@ func (jenkins *jenkins) ExecuteScript(script string) (string, error) {
func (jenkins *jenkins) executeScript(script string, verifier string) (string, error) {
output := ""
fullScript := fmt.Sprintf("%s\nprint println('%s')", script, verifier)
parameters := map[string]string{"script": fullScript}
ar := gojenkins.NewAPIRequest("POST", "/scriptText", nil)
data := url.Values{}
data.Set("script", fullScript)
ar := gojenkins.NewAPIRequest("POST", "/scriptText", bytes.NewBufferString(data.Encode()))
if err := jenkins.Requester.SetCrumb(ar); err != nil {
return output, err
}
ar.SetHeader("Content-Type", "application/x-www-form-urlencoded")
ar.Suffix = ""
r, err := jenkins.Requester.Do(ar, &output, parameters)
r, err := jenkins.Requester.Do(ar, &output, nil)
if err != nil {
return "", errors.Wrapf(err, "couldn't execute groovy script, logs '%s'", output)
}