summaryrefslogtreecommitdiffstats
path: root/routers/api
diff options
context:
space:
mode:
authorDavid Svantesson <davidsvantesson@gmail.com>2019-08-25 19:06:36 +0200
committerLauris BH <lauris@nix.lv>2019-08-25 20:06:36 +0300
commitc9546d4cdd5f7de8f56b7d4a9806d1aca784cf3f (patch)
treeeebd4affa86ae9d75b41590453a07af42db31fb0 /routers/api
parent8c24bb9e4344791ca2e8c66efcf3d45881365a5d (diff)
downloadgitea-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.go27
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,