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.
|
// provider request header to call jenkins api.
|
||||||
// transfer bearer token to basic token for inner Oauth and Jeknins
|
// transfer bearer token to basic token for inner Oauth and Jeknins
|
||||||
func (j *Jenkins) SendPureRequestWithHeaderResp(path string, httpParameters *devops.HttpParameters) ([]byte, http.Header, error) {
|
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 {
|
if err != nil {
|
||||||
klog.Error(err)
|
klog.Error(err)
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
apiURL.RawQuery = httpParameters.Url.RawQuery
|
||||||
client := &http.Client{Timeout: 30 * time.Second}
|
client := &http.Client{Timeout: 30 * time.Second}
|
||||||
|
|
||||||
header := httpParameters.Header
|
header := httpParameters.Header
|
||||||
@@ -47,7 +48,7 @@ func (j *Jenkins) SendPureRequestWithHeaderResp(path string, httpParameters *dev
|
|||||||
|
|
||||||
newRequest := &http.Request{
|
newRequest := &http.Request{
|
||||||
Method: httpParameters.Method,
|
Method: httpParameters.Method,
|
||||||
URL: Url,
|
URL: apiURL,
|
||||||
Header: header,
|
Header: header,
|
||||||
Body: httpParameters.Body,
|
Body: httpParameters.Body,
|
||||||
Form: httpParameters.Form,
|
Form: httpParameters.Form,
|
||||||
|
|||||||
@@ -74,10 +74,9 @@ func getRespBody(resp *http.Response) ([]byte, error) {
|
|||||||
|
|
||||||
// ParseJenkinsQuery Parse the special query of jenkins.
|
// ParseJenkinsQuery Parse the special query of jenkins.
|
||||||
// ParseQuery in the standard library makes the query not re-encode
|
// ParseQuery in the standard library makes the query not re-encode
|
||||||
func ParseJenkinsQuery(query string) (url.Values, error) {
|
func ParseJenkinsQuery(query string) (result url.Values, err error) {
|
||||||
m := make(url.Values)
|
result = make(url.Values)
|
||||||
err := error(nil)
|
for query != "" && err == nil {
|
||||||
for query != "" {
|
|
||||||
key := query
|
key := query
|
||||||
if i := strings.IndexAny(key, "&"); i >= 0 {
|
if i := strings.IndexAny(key, "&"); i >= 0 {
|
||||||
key, query = key[:i], key[i+1:]
|
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 {
|
if i := strings.Index(key, "="); i >= 0 {
|
||||||
key, value = key[:i], key[i+1:]
|
key, value = key[:i], key[i+1:]
|
||||||
}
|
}
|
||||||
key, err1 := url.QueryUnescape(key)
|
if key, err = url.QueryUnescape(key); err == nil {
|
||||||
if err1 != nil {
|
if value, err = url.QueryUnescape(value); err == nil {
|
||||||
if err == nil {
|
result[key] = append(result[key], value)
|
||||||
err = err1
|
|
||||||
}
|
}
|
||||||
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
|
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