summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorMura Li <typeless@users.noreply.github.com>2019-04-12 10:28:44 +0800
committerLunny Xiao <xiaolunwen@gmail.com>2019-04-12 10:28:44 +0800
commit3186ef554cdbf54e1a3328ffcb35ea18105d7cb1 (patch)
treea5291a4503ea8e7c009446098ea88cf885abb0fb /models
parent1b7dffc3a30b2244aa2690abce19dd4c31613016 (diff)
downloadgitea-3186ef554cdbf54e1a3328ffcb35ea18105d7cb1.tar.gz
gitea-3186ef554cdbf54e1a3328ffcb35ea18105d7cb1.zip
Support search operators for commits search (#6479)
* Support searching commits with prefix syntax For now, support auther: committer: When more than one prefix is supplied is presented, the result is the union. When different prefixes are supplied, the result is the intersection. For example, "author:alice author:bob" => the result is all commits authored by Alice OR Bob "hello committer:alice" => the result is all commits committed by Alice AND has the keyword 'hello' in the message. Note that there should NOT have any space after the colon(:) of the prefix. For example, "author:bill" => correct "author: bill" => wrong * Remove unneeded logging * Add missing files of test repository * Add missing repo_unit entries to test fixtures * Update test cases * Add tooltip for commits search button * Update tooltip text I have no idea about how to format it with line breaks. * Make the usage example more real * Add a test case * Add new options struct for SearchCommits * Prefer len(s) > 0 over s != "" * Add NewSearchCommitsOptions
Diffstat (limited to 'models')
-rw-r--r--models/fixtures/repo_unit.yml37
-rw-r--r--models/fixtures/repository.yml11
-rw-r--r--models/fixtures/user.yml2
-rw-r--r--models/repo_list_test.go10
4 files changed, 53 insertions, 7 deletions
diff --git a/models/fixtures/repo_unit.yml b/models/fixtures/repo_unit.yml
index f494cdd1b7..7a594842a8 100644
--- a/models/fixtures/repo_unit.yml
+++ b/models/fixtures/repo_unit.yml
@@ -220,4 +220,39 @@
repo_id: 28
type: 1
config: "{}"
- created_unix: 1524304355 \ No newline at end of file
+ created_unix: 1524304355
+
+-
+ id: 33
+ repo_id: 36
+ type: 4
+ config: "{}"
+ created_unix: 1524304355
+
+-
+ id: 34
+ repo_id: 36
+ type: 5
+ config: "{}"
+ created_unix: 1524304355
+
+-
+ id: 35
+ repo_id: 36
+ type: 1
+ config: "{}"
+ created_unix: 1524304355
+
+-
+ id: 36
+ repo_id: 36
+ type: 2
+ config: "{\"EnableTimetracker\":true,\"AllowOnlyContributorsToTrackTime\":true}"
+ created_unix: 1524304355
+
+-
+ id: 37
+ repo_id: 36
+ type: 3
+ config: "{\"IgnoreWhitespaceConflicts\":false,\"AllowMerge\":true,\"AllowRebase\":true,\"AllowRebaseMerge\":true,\"AllowSquash\":true}"
+ created_unix: 1524304355
diff --git a/models/fixtures/repository.yml b/models/fixtures/repository.yml
index f415761650..0e7f8f90db 100644
--- a/models/fixtures/repository.yml
+++ b/models/fixtures/repository.yml
@@ -430,3 +430,14 @@
num_forks: 0
num_issues: 0
is_mirror: false
+
+-
+ id: 36
+ owner_id: 2
+ lower_name: commits_search_test
+ name: commits_search_test
+ is_private: false
+ num_stars: 0
+ num_forks: 0
+ num_issues: 0
+ is_mirror: false
diff --git a/models/fixtures/user.yml b/models/fixtures/user.yml
index 8d2b698b20..22e408ed25 100644
--- a/models/fixtures/user.yml
+++ b/models/fixtures/user.yml
@@ -28,7 +28,7 @@
is_admin: false
avatar: avatar2
avatar_email: user2@example.com
- num_repos: 6
+ num_repos: 7
num_stars: 2
num_followers: 2
num_following: 1
diff --git a/models/repo_list_test.go b/models/repo_list_test.go
index c032af2b80..120718c210 100644
--- a/models/repo_list_test.go
+++ b/models/repo_list_test.go
@@ -147,19 +147,19 @@ func TestSearchRepositoryByName(t *testing.T) {
count: 14},
{name: "AllPublic/PublicRepositoriesOfUserIncludingCollaborative",
opts: &SearchRepoOptions{Page: 1, PageSize: 10, OwnerID: 15, AllPublic: true},
- count: 19},
+ count: 20},
{name: "AllPublic/PublicAndPrivateRepositoriesOfUserIncludingCollaborative",
opts: &SearchRepoOptions{Page: 1, PageSize: 10, OwnerID: 15, Private: true, AllPublic: true},
- count: 23},
+ count: 24},
{name: "AllPublic/PublicAndPrivateRepositoriesOfUserIncludingCollaborativeByName",
opts: &SearchRepoOptions{Keyword: "test", Page: 1, PageSize: 10, OwnerID: 15, Private: true, AllPublic: true},
- count: 13},
+ count: 14},
{name: "AllPublic/PublicAndPrivateRepositoriesOfUser2IncludingCollaborativeByName",
opts: &SearchRepoOptions{Keyword: "test", Page: 1, PageSize: 10, OwnerID: 18, Private: true, AllPublic: true},
- count: 11},
+ count: 12},
{name: "AllPublic/PublicRepositoriesOfOrganization",
opts: &SearchRepoOptions{Page: 1, PageSize: 10, OwnerID: 17, AllPublic: true, Collaborate: util.OptionalBoolFalse},
- count: 19},
+ count: 20},
}
for _, testCase := range testCases {