Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions models/repo/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ type Repository struct {
CodeIndexerStatus *RepoIndexerStatus `xorm:"-"`
StatsIndexerStatus *RepoIndexerStatus `xorm:"-"`
IsFsckEnabled bool `xorm:"NOT NULL DEFAULT true"`
IsCodeIndexingEnabled bool `xorm:"NOT NULL DEFAULT true"`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This require a migration, it should be similar to models/migrations/v219.go, copy paste this whole struct(fixup the imports) and run Sync2 on it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will do!

May take a day or two until I have some cycles to spend on updating this PR, but I'll get there eventually.

CloseIssuesViaCommitInAnyBranch bool `xorm:"NOT NULL DEFAULT false"`
Topics []string `xorm:"TEXT JSON"`

Expand Down
4 changes: 4 additions & 0 deletions modules/indexer/code/indexer.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,10 @@ func index(ctx context.Context, indexer Indexer, repoID int64) error {
return err
}

if !repo.IsCodeIndexingEnabled {
return indexer.Delete(repoID)
}

sha, err := getDefaultBranchSha(ctx, repo)
if err != nil {
return err
Expand Down
1 change: 1 addition & 0 deletions modules/repository/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ func CreateRepository(doer, u *user_model.User, opts models.CreateRepoOptions) (
IsEmpty: !opts.AutoInit,
TrustModel: opts.TrustModel,
IsMirror: opts.IsMirror,
IsCodeIndexingEnabled: true,
}

var rollbackRepo *repo_model.Repository
Expand Down
2 changes: 2 additions & 0 deletions options/locale/locale_en-US.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1792,6 +1792,8 @@ settings.site = Website
settings.update_settings = Update Settings
settings.branches.update_default_branch = Update Default Branch
settings.advanced_settings = Advanced Settings
settings.code_search_indexing = Code Search
settings.code_search_indexing_desc = Enable code indexing for this repository
settings.wiki_desc = Enable Repository Wiki
settings.use_internal_wiki = Use Built-In Wiki
settings.use_external_wiki = Use External Wiki
Expand Down
13 changes: 13 additions & 0 deletions routers/web/repo/setting.go
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,7 @@ func SettingsPost(ctx *context.Context) {

case "advanced":
var repoChanged bool
var codeIndexingChanged bool
var units []repo_model.RepoUnit
var deleteUnitTypes []unit_model.Type

Expand All @@ -394,6 +395,11 @@ func SettingsPost(ctx *context.Context) {
repoChanged = true
}

if repo.IsCodeIndexingEnabled != form.EnableCodeIndexing {
repo.IsCodeIndexingEnabled = form.EnableCodeIndexing
codeIndexingChanged = true
}
Comment on lines +398 to +401
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if repo.IsCodeIndexingEnabled != form.EnableCodeIndexing {
repo.IsCodeIndexingEnabled = form.EnableCodeIndexing
codeIndexingChanged = true
}
codeIndexingChanged = repo.IsCodeIndexingEnabled != form.EnableCodeIndexing
if codeIndexingChanged {
repo.IsCodeIndexingEnabled = form.EnableCodeIndexing
}


if form.EnableWiki && form.EnableExternalWiki && !unit_model.TypeExternalWiki.UnitGlobalDisabled() {
if !validation.IsValidExternalURL(form.ExternalWikiURL) {
ctx.Flash.Error(ctx.Tr("repo.settings.external_wiki_url_error"))
Expand Down Expand Up @@ -515,6 +521,13 @@ func SettingsPost(ctx *context.Context) {
ctx.ServerError("UpdateRepository", err)
return
}

if codeIndexingChanged {
// Whether we enabled or disabled indexing, trigger a repo indexer
// update. If we enabled, this will reindex the repo; if we disabled, it
// will delete the repo from the index.
code.UpdateRepoIndexer(ctx.Repo.Repository)
}
}
log.Trace("Repository advanced settings updated: %s/%s", ctx.Repo.Owner.Name, repo.Name)

Expand Down
1 change: 1 addition & 0 deletions services/forms/repo_form.go
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ type RepoSettingForm struct {

// Admin settings
EnableHealthCheck bool
EnableCodeIndexing bool
RequestReindexType string
}

Expand Down
13 changes: 12 additions & 1 deletion templates/repo/settings/options.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,16 @@
</div>
</div>

{{if .CodeIndexerEnabled}}
<div class="inline field">
<label>{{.locale.Tr "repo.settings.code_search_indexing"}}</label>
<div class="ui checkbox">
<input class="enable-system" name="enable_code_indexing" type="checkbox" {{if .Repository.IsCodeIndexingEnabled}}checked{{end}}>
<label>{{.locale.Tr "repo.settings.code_search_indexing_desc"}}</label>
Comment on lines +427 to +428
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<input class="enable-system" name="enable_code_indexing" type="checkbox" {{if .Repository.IsCodeIndexingEnabled}}checked{{end}}>
<label>{{.locale.Tr "repo.settings.code_search_indexing_desc"}}</label>
<input type="checkbox" class="enable-system" id="code-indexing-checkbox" name="enable_code_indexing"{{if .Repository.IsCodeIndexingEnabled}} checked{{end}}>
<label for="code-indexing-checkbox">{{.locale.Tr "repo.settings.code_search_indexing_desc"}}</label>

</div>
</div>
{{end}}

{{if not .IsMirror}}
<div class="ui divider"></div>
{{$pullRequestEnabled := .Repository.UnitEnabled $.UnitTypePullRequests}}
Expand Down Expand Up @@ -600,10 +610,11 @@
</form>

<div class="ui divider"></div>

<form class="ui form" method="post">
{{.CsrfTokenHtml}}
<input type="hidden" name="action" value="admin_index">
{{if .CodeIndexerEnabled}}
{{if and .CodeIndexerEnabled .Repository.IsCodeIndexingEnabled}}
<h4 class="ui header">{{.locale.Tr "repo.settings.admin_code_indexer"}}</h4>
<div class="inline fields">
<label>{{.locale.Tr "repo.settings.admin_indexer_commit_sha"}}</label>
Expand Down