diff options
author | Mura Li <typeless@users.noreply.github.com> | 2019-04-12 10:28:44 +0800 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2019-04-12 10:28:44 +0800 |
commit | 3186ef554cdbf54e1a3328ffcb35ea18105d7cb1 (patch) | |
tree | a5291a4503ea8e7c009446098ea88cf885abb0fb /models | |
parent | 1b7dffc3a30b2244aa2690abce19dd4c31613016 (diff) | |
download | gitea-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.yml | 37 | ||||
-rw-r--r-- | models/fixtures/repository.yml | 11 | ||||
-rw-r--r-- | models/fixtures/user.yml | 2 | ||||
-rw-r--r-- | models/repo_list_test.go | 10 |
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 { |