package client import ( "encoding/json" "fmt" "io/ioutil" "log" "net/http" ) type JobClient struct { JenkinsCore } // Search find a set of jobs by name func (q *JobClient) Search(keyword string) (status *SearchResult, err error) { api := fmt.Sprintf("%s/search/suggest?query=%s", q.URL, keyword) var ( req *http.Request response *http.Response ) req, err = http.NewRequest("GET", api, nil) if err == nil { q.AuthHandle(req) } else { return } client := q.GetClient() if response, err = client.Do(req); err == nil { code := response.StatusCode var data []byte data, err = ioutil.ReadAll(response.Body) if code == 200 { if err == nil { status = &SearchResult{} err = json.Unmarshal(data, status) } } else { log.Fatal(string(data)) } } else { log.Fatal(err) } return } type SearchResult struct { Suggestions []SearchResultItem } type SearchResultItem struct { Name string }