Fix the wrong count of total Pipeline Run number
Signed-off-by: rick <rick@jenkins-zh.cn>
This commit is contained in:
@@ -34,12 +34,13 @@ func (j *Jenkins) SendPureRequest(path string, httpParameters *devops.HttpParame
|
||||
// provider request header to call jenkins api.
|
||||
// transfer bearer token to basic token for inner Oauth and Jeknins
|
||||
func (j *Jenkins) SendPureRequestWithHeaderResp(path string, httpParameters *devops.HttpParameters) ([]byte, http.Header, error) {
|
||||
Url, err := url.Parse(j.Server + path)
|
||||
apiURL, err := url.Parse(j.Server + path)
|
||||
if err != nil {
|
||||
klog.Error(err)
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
apiURL.RawQuery = httpParameters.Url.RawQuery
|
||||
client := &http.Client{Timeout: 30 * time.Second}
|
||||
|
||||
header := httpParameters.Header
|
||||
@@ -47,7 +48,7 @@ func (j *Jenkins) SendPureRequestWithHeaderResp(path string, httpParameters *dev
|
||||
|
||||
newRequest := &http.Request{
|
||||
Method: httpParameters.Method,
|
||||
URL: Url,
|
||||
URL: apiURL,
|
||||
Header: header,
|
||||
Body: httpParameters.Body,
|
||||
Form: httpParameters.Form,
|
||||
|
||||
@@ -74,10 +74,9 @@ func getRespBody(resp *http.Response) ([]byte, error) {
|
||||
|
||||
// ParseJenkinsQuery Parse the special query of jenkins.
|
||||
// ParseQuery in the standard library makes the query not re-encode
|
||||
func ParseJenkinsQuery(query string) (url.Values, error) {
|
||||
m := make(url.Values)
|
||||
err := error(nil)
|
||||
for query != "" {
|
||||
func ParseJenkinsQuery(query string) (result url.Values, err error) {
|
||||
result = make(url.Values)
|
||||
for query != "" && err == nil {
|
||||
key := query
|
||||
if i := strings.IndexAny(key, "&"); i >= 0 {
|
||||
key, query = key[:i], key[i+1:]
|
||||
@@ -91,23 +90,13 @@ func ParseJenkinsQuery(query string) (url.Values, error) {
|
||||
if i := strings.Index(key, "="); i >= 0 {
|
||||
key, value = key[:i], key[i+1:]
|
||||
}
|
||||
key, err1 := url.QueryUnescape(key)
|
||||
if err1 != nil {
|
||||
if err == nil {
|
||||
err = err1
|
||||
if key, err = url.QueryUnescape(key); err == nil {
|
||||
if value, err = url.QueryUnescape(value); err == nil {
|
||||
result[key] = append(result[key], value)
|
||||
}
|
||||
continue
|
||||
}
|
||||
value, err1 = url.QueryUnescape(value)
|
||||
if err1 != nil {
|
||||
if err == nil {
|
||||
err = err1
|
||||
}
|
||||
continue
|
||||
}
|
||||
m[key] = append(m[key], value)
|
||||
}
|
||||
return m, err
|
||||
return
|
||||
}
|
||||
|
||||
type JenkinsBlueTime time.Time
|
||||
|
||||
57
pkg/simple/client/devops/jenkins/utils_test.go
Normal file
57
pkg/simple/client/devops/jenkins/utils_test.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package jenkins
|
||||
|
||||
import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
"net/url"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestParseJenkinsQuery(t *testing.T) {
|
||||
table := []testData{
|
||||
{
|
||||
param: "start=0&limit=10&branch=master",
|
||||
expected: url.Values{
|
||||
"start": []string{"0"},
|
||||
"limit": []string{"10"},
|
||||
"branch": []string{"master"},
|
||||
}, err: false,
|
||||
},
|
||||
{
|
||||
param: "branch=master", expected: url.Values{
|
||||
"branch": []string{"master"},
|
||||
}, err: false,
|
||||
},
|
||||
{
|
||||
param: "&branch=master", expected: url.Values{
|
||||
"branch": []string{"master"},
|
||||
}, err: false,
|
||||
},
|
||||
{
|
||||
param: "branch=master&", expected: url.Values{
|
||||
"branch": []string{"master"},
|
||||
}, err: false,
|
||||
},
|
||||
{
|
||||
param: "branch=%gg", expected: url.Values{}, err: true,
|
||||
},
|
||||
{
|
||||
param: "%gg=fake", expected: url.Values{}, err: true,
|
||||
},
|
||||
}
|
||||
|
||||
for index, item := range table {
|
||||
result, err := parseJenkinsQuery(item.param)
|
||||
if item.err {
|
||||
assert.NotNil(t, err, "index: [%d], unexpected error happen %v", index, err)
|
||||
} else {
|
||||
assert.Nil(t, err, "index: [%d], unexpected error happen %v", index, err)
|
||||
}
|
||||
assert.Equal(t, item.expected, result, "index: [%d], result do not match with the expect value", index)
|
||||
}
|
||||
}
|
||||
|
||||
type testData struct {
|
||||
param string
|
||||
expected interface{}
|
||||
err bool
|
||||
}
|
||||
Reference in New Issue
Block a user