@@ -335,18 +335,30 @@ func prepareForReplaceOrAdd(ctx *context.APIContext, form api.IssueLabelsOption)
335335 labelIDs = append (labelIDs , int64 (rv .Float ()))
336336 case reflect .String :
337337 labelNames = append (labelNames , rv .String ())
338+ default :
339+ ctx .Error (http .StatusBadRequest , "InvalidLabel" , "a label must be an integer or a string" )
340+ return nil , nil , fmt .Errorf ("invalid label" )
338341 }
339342 }
340343 if len (labelIDs ) > 0 && len (labelNames ) > 0 {
341344 ctx .Error (http .StatusBadRequest , "InvalidLabels" , "labels should be an array of strings or integers" )
342345 return nil , nil , fmt .Errorf ("invalid labels" )
343346 }
344347 if len (labelNames ) > 0 {
345- labelIDs , err = issues_model .GetLabelIDsInRepoByNames (ctx , ctx .Repo .Repository .ID , labelNames )
348+ repoLabelIDs , err : = issues_model .GetLabelIDsInRepoByNames (ctx , ctx .Repo .Repository .ID , labelNames )
346349 if err != nil {
347350 ctx .Error (http .StatusInternalServerError , "GetLabelIDsInRepoByNames" , err )
348351 return nil , nil , err
349352 }
353+ labelIDs = append (labelIDs , repoLabelIDs ... )
354+ if ctx .Repo .Owner .IsOrganization () {
355+ orgLabelIDs , err := issues_model .GetLabelIDsInOrgByNames (ctx , ctx .Repo .Owner .ID , labelNames )
356+ if err != nil {
357+ ctx .Error (http .StatusInternalServerError , "GetLabelIDsInOrgByNames" , err )
358+ return nil , nil , err
359+ }
360+ labelIDs = append (labelIDs , orgLabelIDs ... )
361+ }
350362 }
351363
352364 labels , err := issues_model .GetLabelsByIDs (ctx , labelIDs , "id" , "repo_id" , "org_id" , "name" , "exclusive" )
0 commit comments