diff options
Diffstat (limited to 'models')
-rw-r--r-- | models/repo_list.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/models/repo_list.go b/models/repo_list.go index 290919bb6d..36f57abcc5 100644 --- a/models/repo_list.go +++ b/models/repo_list.go @@ -136,6 +136,8 @@ type SearchRepoOptions struct { Archived util.OptionalBool // only search topic name TopicOnly bool + // only search repositories with specified primary language + Language string // include description in keyword search IncludeDescription bool // None -> include has milestones AND has no milestone @@ -439,6 +441,13 @@ func SearchRepositoryCondition(opts *SearchRepoOptions) builder.Cond { cond = cond.And(keywordCond) } + if opts.Language != "" { + cond = cond.And(builder.In("id", builder. + Select("repo_id"). + From("language_stat"). + Where(builder.Eq{"language": opts.Language}).And(builder.Eq{"is_primary": true}))) + } + if opts.Fork != util.OptionalBoolNone { cond = cond.And(builder.Eq{"is_fork": opts.Fork == util.OptionalBoolTrue}) } |