Add golangci-lint workflow (#4999)

* fix lint workflow

* add golang lint

* close http response body
This commit is contained in:
andrew_li
2022-06-29 11:58:36 +08:00
committed by GitHub
parent f1e06466df
commit f289795312
141 changed files with 311 additions and 592 deletions

View File

@@ -192,6 +192,7 @@ func (b *Build) Stop() (bool, error) {
if err != nil {
return false, err
}
defer response.Body.Close()
if response.StatusCode != http.StatusOK {
return false, errors.New(strconv.Itoa(response.StatusCode))
}
@@ -202,7 +203,8 @@ func (b *Build) Stop() (bool, error) {
func (b *Build) GetConsoleOutput() string {
url := b.Base + "/consoleText"
var content string
b.Jenkins.Requester.GetXML(url, &content, nil)
rsp, _ := b.Jenkins.Requester.GetXML(url, &content, nil)
rsp.Body.Close()
return content
}
@@ -224,10 +226,11 @@ func (b *Build) GetInjectedEnvVars() (map[string]string, error) {
EnvMap map[string]string `json:"envMap"`
}
endpoint := b.Base + "/injectedEnvVars"
_, err := b.Jenkins.Requester.GetJSON(endpoint, &envVars, nil)
rsp, err := b.Jenkins.Requester.GetJSON(endpoint, &envVars, nil)
if err != nil {
return envVars.EnvMap, err
}
rsp.Body.Close()
return envVars.EnvMap, nil
}
@@ -308,13 +311,12 @@ func (b *Build) GetResultSet() (*TestResult, error) {
url := b.Base + "/testReport"
var report TestResult
_, err := b.Jenkins.Requester.GetJSON(url, &report, nil)
rsp, err := b.Jenkins.Requester.GetJSON(url, &report, nil)
if err != nil {
return nil, err
}
rsp.Body.Close()
return &report, nil
}
func (b *Build) GetTimestamp() time.Time {
@@ -355,7 +357,10 @@ func (b *Build) IsRunning() bool {
func (b *Build) SetDescription(description string) error {
data := url.Values{}
data.Set("description", description)
_, err := b.Jenkins.Requester.Post(b.Base+"/submitDescription", bytes.NewBufferString(data.Encode()), nil, nil)
resp, err := b.Jenkins.Requester.Post(b.Base+"/submitDescription", bytes.NewBufferString(data.Encode()), nil, nil)
if err != nil {
resp.Body.Close()
}
return err
}
func (b *Build) PauseToggle() error {
@@ -363,6 +368,7 @@ func (b *Build) PauseToggle() error {
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}
@@ -395,6 +401,7 @@ func (b *Build) Poll(options ...interface{}) (int, error) {
if err != nil {
return 0, err
}
response.Body.Close()
return response.StatusCode, nil
}
@@ -403,6 +410,7 @@ func (j *Jenkins) GetProjectPipelineBuildByType(projectId, pipelineId string, st
if err != nil {
return nil, restful.NewError(devops.GetDevOpsStatusCode(err), err.Error())
}
//nolint:staticcheck
build, err := job.getBuildByType(status)
return build.Raw, nil
}
@@ -411,6 +419,7 @@ func (j *Jenkins) GetMultiBranchPipelineBuildByType(projectId, pipelineId, branc
if err != nil {
return nil, restful.NewError(devops.GetDevOpsStatusCode(err), err.Error())
}
//nolint:staticcheck
build, err := job.getBuildByType(status)
return build.Raw, nil
}

View File

@@ -177,6 +177,7 @@ func (j *Jenkins) GetCredentialInProject(projectId, id string) (*devops.Credenti
if err != nil {
return nil, err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return nil, errors.New(strconv.Itoa(response.StatusCode))
}
@@ -197,6 +198,7 @@ func (j *Jenkins) GetCredentialsInProject(projectId string) ([]*devops.Credentia
if err != nil {
return nil, err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return nil, errors.New(strconv.Itoa(response.StatusCode))
}
@@ -236,7 +238,7 @@ func (j *Jenkins) CreateCredentialInProject(projectId string, credential *v1.Sec
if err != nil {
return "", err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return "", errors.New(strconv.Itoa(response.StatusCode))
}
@@ -272,6 +274,7 @@ func (j *Jenkins) UpdateCredentialInProject(projectId string, credential *v1.Sec
if err != nil {
return "", err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return "", errors.New(strconv.Itoa(response.StatusCode))
}
@@ -285,6 +288,7 @@ func (j *Jenkins) DeleteCredentialInProject(projectId, id string) (string, error
if err != nil {
return "", err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return "", errors.New(strconv.Itoa(response.StatusCode))
}

View File

@@ -59,6 +59,7 @@ func (f *Folder) Create(name, description string) (*Folder, error) {
if err != nil {
return nil, err
}
r.Body.Close()
if r.StatusCode == 200 {
f.Poll()
return f, nil
@@ -71,5 +72,6 @@ func (f *Folder) Poll() (int, error) {
if err != nil {
return 0, err
}
response.Body.Close()
return response.StatusCode, nil
}

View File

@@ -72,7 +72,6 @@ func AppendBitbucketServerSourceToEtree(source *etree.Element, gitSource *devops
regexTraits.CreateAttr("plugin", "scm-api")
regexTraits.CreateElement("regex").SetText(gitSource.RegexFilter)
}
return
}
func GetBitbucketServerSourceFromEtree(source *etree.Element) *devopsv1alpha3.BitbucketServerSource {

View File

@@ -53,7 +53,6 @@ func AppendGitSourceToEtree(source *etree.Element, gitSource *devopsv1alpha3.Git
regexTraits.CreateAttr("plugin", "scm-api")
regexTraits.CreateElement("regex").SetText(gitSource.RegexFilter)
}
return
}
func GetGitSourcefromEtree(source *etree.Element) *devopsv1alpha3.GitSource {

View File

@@ -71,7 +71,6 @@ func AppendGithubSourceToEtree(source *etree.Element, githubSource *devopsv1alph
regexTraits.CreateAttr("plugin", "scm-api")
regexTraits.CreateElement("regex").SetText(githubSource.RegexFilter)
}
return
}
func GetGithubSourcefromEtree(source *etree.Element) *devopsv1alpha3.GithubSource {

View File

@@ -70,6 +70,7 @@ func AppendGitlabSourceToEtree(source *etree.Element, gitSource *devopsv1alpha3.
regexTraits.CreateAttr("plugin", "scm-api")
regexTraits.CreateElement("regex").SetText(gitSource.RegexFilter)
}
//nolint:gosimple
return
}

View File

@@ -27,6 +27,7 @@ func AppendSvnSourceToEtree(source *etree.Element, svnSource *devopsv1alpha3.Svn
if svnSource.Excludes != "" {
source.CreateElement("excludes").SetText(svnSource.Excludes)
}
//nolint:gosimple
return
}
@@ -65,7 +66,7 @@ func AppendSingleSvnSourceToEtree(source *etree.Element, svnSource *devopsv1alph
source.CreateElement("ignoreDirPropChanges").SetText("false")
source.CreateElement("filterChangelog").SetText("false")
source.CreateElement("quietOperation").SetText("true")
//nolint:gosimple
return
}

View File

@@ -63,7 +63,7 @@ func (j *Jenkins) Init() (*Jenkins, error) {
if err != nil {
return nil, err
}
rsp.Body.Close()
j.Version = rsp.Header.Get("X-Jenkins")
//if j.Raw == nil {
// return nil, errors.New("Connection Failed, Please verify that the host and credentials are correct.")
@@ -214,6 +214,7 @@ func (j *Jenkins) Poll() (int, error) {
if err != nil {
return 0, err
}
resp.Body.Close()
return resp.StatusCode, nil
}
@@ -233,6 +234,7 @@ func (j *Jenkins) GetGlobalRole(roleName string) (string, error) {
if err != nil {
return "", err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return "", errors.New(strconv.Itoa(response.StatusCode))
}
@@ -279,6 +281,7 @@ func (j *Jenkins) AssignGlobalRole(roleName string, sid string) error {
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}
@@ -301,6 +304,7 @@ func (j *Jenkins) UnAssignGlobalRole(roleName string, sid string) error {
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}
@@ -321,6 +325,7 @@ func (j *Jenkins) GetProjectRole(roleName string) (*ProjectRole, error) {
if err != nil {
return nil, err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return nil, errors.New(strconv.Itoa(response.StatusCode))
}
@@ -353,6 +358,7 @@ func (j *Jenkins) AssignProjectRole(roleName string, sid string) error {
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}
@@ -375,6 +381,7 @@ func (j *Jenkins) UnAssignProjectRole(roleName string, sid string) error {
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}
@@ -402,6 +409,7 @@ func (j *Jenkins) AddGlobalRole(roleName string, ids devops.GlobalPermissionIds,
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}
@@ -419,6 +427,7 @@ func (j *Jenkins) DeleteProjectRoles(roleName ...string) error {
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
fmt.Println(responseString)
return errors.New(strconv.Itoa(response.StatusCode))
@@ -448,6 +457,7 @@ func (j *Jenkins) AddProjectRole(roleName string, pattern string, ids devops.Pro
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}
@@ -464,6 +474,7 @@ func (j *Jenkins) DeleteUserInProject(username string) error {
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}
@@ -837,6 +848,7 @@ func (j *Jenkins) CheckCron(projectName string, httpParameters *devops.HttpParam
var path string
reader = httpParameters.Body
//nolint:ineffassign,staticcheck
cronData, err := ioutil.ReadAll(reader)
err = json.Unmarshal(cronData, cron)
if err != nil {
@@ -889,6 +901,7 @@ func (j *Jenkins) ToJson(httpParameters *devops.HttpParameters) (map[string]inte
// After creating an instance call init method.
func CreateJenkins(client *http.Client, base string, maxConnection int, auth ...interface{}) *Jenkins {
j := &Jenkins{}
//nolint:gosimple
if strings.HasSuffix(base, "/") {
base = base[:len(base)-1]
}

View File

@@ -194,10 +194,11 @@ func (j *Job) GetAllBuildIds() ([]JobBuild, error) {
var buildsResp struct {
Builds []JobBuild `json:"allBuilds"`
}
_, err := j.Jenkins.Requester.GetJSON(j.Base, &buildsResp, map[string]string{"tree": "allBuilds[number,url]"})
rsp, err := j.Jenkins.Requester.GetJSON(j.Base, &buildsResp, map[string]string{"tree": "allBuilds[number,url]"})
if err != nil {
return nil, err
}
rsp.Body.Close()
return buildsResp.Builds, nil
}
@@ -205,10 +206,11 @@ func (j *Job) GetAllBuildStatus() ([]JobBuildStatus, error) {
var buildsResp struct {
Builds []JobBuildStatus `json:"allBuilds"`
}
_, err := j.Jenkins.Requester.GetJSON(j.Base, &buildsResp, map[string]string{"tree": "allBuilds[number,building,result]"})
resp, err := j.Jenkins.Requester.GetJSON(j.Base, &buildsResp, map[string]string{"tree": "allBuilds[number,building,result]"})
if err != nil {
return nil, err
}
resp.Body.Close()
return buildsResp.Builds, nil
}
@@ -277,6 +279,7 @@ func (j *Job) Enable() (bool, error) {
if err != nil {
return false, err
}
resp.Body.Close()
if resp.StatusCode != 200 {
return false, errors.New(strconv.Itoa(resp.StatusCode))
}
@@ -288,6 +291,7 @@ func (j *Job) Disable() (bool, error) {
if err != nil {
return false, err
}
resp.Body.Close()
if resp.StatusCode != 200 {
return false, errors.New(strconv.Itoa(resp.StatusCode))
}
@@ -299,6 +303,7 @@ func (j *Job) Delete() (bool, error) {
if err != nil {
return false, err
}
resp.Body.Close()
if resp.StatusCode != 200 {
return false, errors.New(strconv.Itoa(resp.StatusCode))
}
@@ -308,10 +313,11 @@ func (j *Job) Delete() (bool, error) {
func (j *Job) Rename(name string) (bool, error) {
data := url.Values{}
data.Set("newName", name)
_, err := j.Jenkins.Requester.Post(j.Base+"/doRename", bytes.NewBufferString(data.Encode()), nil, nil)
resp, err := j.Jenkins.Requester.Post(j.Base+"/doRename", bytes.NewBufferString(data.Encode()), nil, nil)
if err != nil {
return false, err
}
resp.Body.Close()
j.Base = "/job/" + name
j.Poll()
return true, nil
@@ -326,6 +332,7 @@ func (j *Job) Create(config string, qr ...interface{}) (*Job, error) {
if err != nil {
return nil, err
}
resp.Body.Close()
if resp.StatusCode == 200 {
j.Poll()
return j, nil
@@ -339,6 +346,7 @@ func (j *Job) Copy(destinationName string) (*Job, error) {
if err != nil {
return nil, err
}
resp.Body.Close()
if resp.StatusCode == 200 {
newJob := &Job{Jenkins: j.Jenkins, Raw: new(JobResponse), Base: "/job/" + destinationName}
_, err := newJob.Poll()
@@ -358,6 +366,7 @@ func (j *Job) UpdateConfig(config string) error {
if err != nil {
return err
}
resp.Body.Close()
if resp.StatusCode == 200 {
j.Poll()
return nil
@@ -368,10 +377,11 @@ func (j *Job) UpdateConfig(config string) error {
func (j *Job) GetConfig() (string, error) {
var data string
_, err := j.Jenkins.Requester.GetXML(j.Base+"/config.xml", &data, nil)
resp, err := j.Jenkins.Requester.GetXML(j.Base+"/config.xml", &data, nil)
if err != nil {
return "", err
}
resp.Body.Close()
return data, nil
}
@@ -433,7 +443,7 @@ func (j *Job) InvokeSimple(params map[string]string) (int64, error) {
if err != nil {
return 0, err
}
resp.Body.Close()
if resp.StatusCode != 200 && resp.StatusCode != 201 {
return 0, errors.New("Could not invoke job " + j.GetName())
}
@@ -490,6 +500,7 @@ func (j *Job) Invoke(files []string, skipIfRunning bool, params map[string]strin
if err != nil {
return false, err
}
resp.Body.Close()
if resp.StatusCode == 200 || resp.StatusCode == 201 {
return true, nil
}
@@ -501,5 +512,6 @@ func (j *Job) Poll() (int, error) {
if err != nil {
return 0, err
}
response.Body.Close()
return response.StatusCode, nil
}

View File

@@ -179,6 +179,7 @@ func (p *Pipeline) ListPipelineRuns() (*devops.PipelineRunList, error) {
// listPipelineRunsByRemotePaging get the pipeline runs with pagination by remote (Jenkins BlueOcean plugin)
// get the pagination information from the server side is better than the local side, but the API has some issues
// see also https://github.com/kubesphere/kubesphere/issues/3507
//nolint:unused
func (p *Pipeline) listPipelineRunsByRemotePaging() (*devops.PipelineRunList, error) {
res, err := p.Jenkins.SendPureRequest(p.Path, p.HttpParameters)
if err != nil {
@@ -258,6 +259,7 @@ func (p *Pipeline) parsePaging() (start, limit int) {
return
}
//nolint:unused
func (p *Pipeline) searchPipelineRunsCount() (int, error) {
u, err := p.resetPaging(0, 1000)
if err != nil {

View File

@@ -269,6 +269,7 @@ func appendMultiBranchJobTriggerToEtree(properties *etree.Element, s *devopsv1al
triggerProperty.CreateAttr("plugin", "multibranch-action-triggers")
triggerProperty.CreateElement("createActionJobsToTrigger").SetText(s.CreateActionJobsToTrigger)
triggerProperty.CreateElement("deleteActionJobsToTrigger").SetText(s.DeleteActionJobsToTrigger)
//nolint:gosimple
return
}

View File

@@ -78,6 +78,7 @@ func (j *Jenkins) ValidateJenkinsfile(jenkinsfile string) (*ValidateJenkinsfileR
if err != nil {
return nil, err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return nil, errors.New(strconv.Itoa(response.StatusCode))
}
@@ -95,6 +96,7 @@ func (j *Jenkins) ValidatePipelineJson(json string) (*ValidatePipelineJsonRespon
if err != nil {
return nil, err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return nil, errors.New(strconv.Itoa(response.StatusCode))
}
@@ -110,6 +112,7 @@ func (j *Jenkins) PipelineJsonToJenkinsfile(json string) (*PipelineJsonToJenkins
if err != nil {
return nil, err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return nil, errors.New(strconv.Itoa(response.StatusCode))
}
@@ -125,6 +128,7 @@ func (j *Jenkins) JenkinsfileToPipelineJson(jenkinsfile string) (*JenkinsfileToP
if err != nil {
return nil, err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return nil, errors.New(strconv.Itoa(response.StatusCode))
}
@@ -140,6 +144,7 @@ func (j *Jenkins) StepsJsonToJenkinsfile(json string) (*StepJsonToJenkinsfileRes
if err != nil {
return nil, err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return nil, errors.New(strconv.Itoa(response.StatusCode))
}
@@ -155,6 +160,7 @@ func (j *Jenkins) StepsJenkinsfileToJson(jenkinsfile string) (*StepsJenkinsfileT
if err != nil {
return nil, err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return nil, errors.New(strconv.Itoa(response.StatusCode))
}

View File

@@ -98,6 +98,7 @@ func (r *Requester) SetCrumb(ar *APIRequest) error {
}
return err
}
response.Body.Close()
if response.StatusCode == 200 && crumbData["crumbRequestField"] != "" {
ar.SetHeader(crumbData["crumbRequestField"], crumbData["crumb"])
}
@@ -185,6 +186,7 @@ func (r *Requester) SetClient(client *http.Client) *Requester {
}
//Add auth on redirect if required.
//nolint:unused
func (r *Requester) redirectPolicyFunc(req *http.Request, via []*http.Request) error {
if r.BasicAuth != nil {
req.SetBasicAuth(r.BasicAuth.Username, r.BasicAuth.Password)
@@ -410,7 +412,7 @@ func (r *Requester) DoPostForm(ar *APIRequest, responseStruct interface{}, form
for k, v := range form {
formValue.Set(k, v)
}
req, err := http.NewRequest("POST", URL.String(), strings.NewReader(formValue.Encode()))
req, _ := http.NewRequest("POST", URL.String(), strings.NewReader(formValue.Encode()))
if r.BasicAuth != nil {
req.SetBasicAuth(r.BasicAuth.Username, r.BasicAuth.Password)
}

View File

@@ -67,6 +67,7 @@ func (j *GlobalRole) Update(ids devops.GlobalPermissionIds) error {
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}
@@ -85,6 +86,7 @@ func (j *GlobalRole) AssignRole(sid string) error {
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}
@@ -102,6 +104,7 @@ func (j *GlobalRole) UnAssignRole(sid string) error {
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}
@@ -131,6 +134,7 @@ func (j *ProjectRole) Update(pattern string, ids devops.ProjectPermissionIds) er
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}
@@ -148,6 +152,7 @@ func (j *ProjectRole) AssignRole(sid string) error {
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}
@@ -165,6 +170,7 @@ func (j *ProjectRole) UnAssignRole(sid string) error {
if err != nil {
return err
}
response.Body.Close()
if response.StatusCode != http.StatusOK {
return errors.New(strconv.Itoa(response.StatusCode))
}