Template
1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo synced 2024-11-25 11:16:11 +01:00
forgejo/models
Shiny Nematoda 16c0361764 port(partial): partial port of 'Allow code search by filename (gitea#32210)'
NOTE: This is feature is not available. Only a few select changes, such as the tests and its' required repositories were ported.

Original Commit Message
-----------------------

This is a large and complex PR, so let me explain in detail its changes.

First, I had to create new index mappings for Bleve and ElasticSerach as
the current ones do not support search by filename. This requires Gitea
to recreate the code search indexes (I do not know if this is a breaking
change, but I feel it deserves a heads-up).

I've used [this
approach](https://www.elastic.co/guide/en/elasticsearch/reference/7.17/analysis-pathhierarchy-tokenizer.html)
to model the filename index. It allows us to efficiently search for both
the full path and the name of a file. Bleve, however, does not support
this out-of-box, so I had to code a brand new [token
filter](https://blevesearch.com/docs/Token-Filters/) to generate the
search terms.

I also did an overhaul in the `indexer_test.go` file. It now asserts the
order of the expected results (this is important since matches based on
the name of a file are more relevant than those based on its content).
I've added new test scenarios that deal with searching by filename. They
use a new repo included in the Gitea fixture.

The screenshot below depicts how Gitea shows the search results. It
shows results based on content in the same way as the current version
does. In matches based on the filename, the first seven lines of the
file contents are shown (BTW, this is how GitHub does it).

![image](https://github.com/user-attachments/assets/9d938d86-1a8d-4f89-8644-1921a473e858)

Resolves #32096

---------

Signed-off-by: Bruno Sofiato <bruno.sofiato@gmail.com>
2024-11-14 11:59:18 +00:00
..
actions fix: Actions PR workflows must update the commit status 2024-11-04 11:27:14 +01:00
activities test: fix test linting 2024-11-11 12:44:36 +01:00
admin Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
asymkey Merge pull request '[gitea] week 2024-34 cherry pick (gitea/main -> forgejo)' (#4998) from earl-warren/wcp/2024-34 into forgejo 2024-08-20 06:32:09 +00:00
auth tests: improve actvititypub integration test code 2024-11-01 22:39:49 +01:00
avatars chore(build): use a stable mirror for go-libravatar 2024-09-14 09:58:49 +02:00
db style: reenable switch check 2024-08-18 15:19:01 +02:00
dbfs Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
fixtures port(partial): partial port of 'Allow code search by filename (gitea#32210)' 2024-11-14 11:59:18 +00:00
forgefed enhance test & fix reviews 2024-05-14 08:24:31 +02:00
forgejo/semver tests: improve actvititypub integration test code 2024-11-01 22:39:49 +01:00
forgejo_migrations Add branch auto deletion for scheduled PRs 2024-10-31 03:49:15 +01:00
git refactor: remove redundant err declarations (#32381) 2024-11-05 09:33:15 +01:00
issues chore(refactor): split ReloadLabels out of LoadLabels in issue model 2024-11-07 11:05:38 +01:00
migrations [PORT] Refactor the DB migration system slightly (gitea#32344) 2024-11-03 17:00:48 +01:00
organization tests: improve actvititypub integration test code 2024-11-01 22:39:49 +01:00
packages tests: improve actvititypub integration test code 2024-11-01 22:39:49 +01:00
perm tests: improve actvititypub integration test code 2024-11-01 22:39:49 +01:00
project test: fix test linting 2024-11-11 12:44:36 +01:00
pull Add branch auto deletion for scheduled PRs 2024-10-31 03:49:15 +01:00
quota feat: Trivial default quota configuration 2024-08-26 13:25:34 +02:00
repo port(partial): partial port of 'Allow code search by filename (gitea#32210)' 2024-11-14 11:59:18 +00:00
secret Clarify Actions resources ownership (#31724) 2024-08-04 18:24:10 +02:00
shared/types Refactor locale&string&template related code (#29165) 2024-02-16 15:20:52 +01:00
system tests: improve actvititypub integration test code 2024-11-01 22:39:49 +01:00
unit i18n: UX improvements: Team permissions and issue closing 2024-09-24 19:03:30 +02:00
unittest chore: simplify CopyDir 2024-11-10 17:21:57 +01:00
user port(partial): partial port of 'Allow code search by filename (gitea#32210)' 2024-11-14 11:59:18 +00:00
webhook Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
error.go Add merge style fast-forward-only (#28954) 2024-02-14 17:19:19 +01:00
fixture_generation.go Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
fixture_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
main_test.go tests: improve actvititypub integration test code 2024-11-01 22:39:49 +01:00
org.go Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00
org_team.go Remove GetByBean method because sometimes it's danger when query condition parameter is zero and also introduce new generic methods (#28220) 2023-12-07 15:27:36 +08:00
org_team_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
org_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo.go Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00
repo_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_transfer.go chore: use errors.New to replace fmt.Errorf with no parameters will much better (#30621) 2024-04-28 15:39:00 +02:00
repo_transfer_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00