diff options
author | David Svantesson <davidsvantesson@gmail.com> | 2019-08-25 19:06:36 +0200 |
---|---|---|
committer | Lauris BH <lauris@nix.lv> | 2019-08-25 20:06:36 +0300 |
commit | c9546d4cdd5f7de8f56b7d4a9806d1aca784cf3f (patch) | |
tree | eebd4affa86ae9d75b41590453a07af42db31fb0 /routers/api | |
parent | 8c24bb9e4344791ca2e8c66efcf3d45881365a5d (diff) | |
download | gitea-c9546d4cdd5f7de8f56b7d4a9806d1aca784cf3f.tar.gz gitea-c9546d4cdd5f7de8f56b7d4a9806d1aca784cf3f.zip |
Include description in repository search. (#7942)
* Add description in repository search.
Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
* Refactor SearchRepositoryByName with a general function SearchRepository
Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
* Allow to specify if description shall be included in API repo search.
Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
* Add new app.ini setting for whether to search within repo description.
Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
* Search keyword in description (if setting enabled) on:
- Explore page
- Organization profile page
- User profile page
- Admin repo page
Do not search keyword in description on:
- Any non-keyword search (not relevant)
- Incremental search (uses API)
Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
* Put parameters related to keyword directly after it
Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
* Add test cases for including (and not including) repository description in search.
Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
* Rename test function from TestSearchRepositoryByName to TestSearchRepository.
Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
* Make setting SEARCH_REPO_DESCRIPTION default to true
Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
Diffstat (limited to 'routers/api')
-rw-r--r-- | routers/api/v1/repo/repo.go | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go index 4afe1661d0..eccff8c387 100644 --- a/routers/api/v1/repo/repo.go +++ b/routers/api/v1/repo/repo.go @@ -55,6 +55,10 @@ func Search(ctx *context.APIContext) { // in: query // description: Limit search to repositories with keyword as topic // type: boolean + // - name: includeDesc + // in: query + // description: include search of keyword within repository description + // type: boolean // - name: uid // in: query // description: search only for repos that the user with the given id owns or contributes to @@ -103,16 +107,17 @@ func Search(ctx *context.APIContext) { // "422": // "$ref": "#/responses/validationError" opts := &models.SearchRepoOptions{ - Keyword: strings.Trim(ctx.Query("q"), " "), - OwnerID: ctx.QueryInt64("uid"), - Page: ctx.QueryInt("page"), - PageSize: convert.ToCorrectPageSize(ctx.QueryInt("limit")), - TopicOnly: ctx.QueryBool("topic"), - Collaborate: util.OptionalBoolNone, - Private: ctx.IsSigned && (ctx.Query("private") == "" || ctx.QueryBool("private")), - UserIsAdmin: ctx.IsUserSiteAdmin(), - UserID: ctx.Data["SignedUserID"].(int64), - StarredByID: ctx.QueryInt64("starredBy"), + Keyword: strings.Trim(ctx.Query("q"), " "), + OwnerID: ctx.QueryInt64("uid"), + Page: ctx.QueryInt("page"), + PageSize: convert.ToCorrectPageSize(ctx.QueryInt("limit")), + TopicOnly: ctx.QueryBool("topic"), + Collaborate: util.OptionalBoolNone, + Private: ctx.IsSigned && (ctx.Query("private") == "" || ctx.QueryBool("private")), + UserIsAdmin: ctx.IsUserSiteAdmin(), + UserID: ctx.Data["SignedUserID"].(int64), + StarredByID: ctx.QueryInt64("starredBy"), + IncludeDescription: ctx.QueryBool("includeDesc"), } if ctx.QueryBool("exclusive") { @@ -157,7 +162,7 @@ func Search(ctx *context.APIContext) { } var err error - repos, count, err := models.SearchRepositoryByName(opts) + repos, count, err := models.SearchRepository(opts) if err != nil { ctx.JSON(500, api.SearchError{ OK: false, |