settings.projects_desc = Enable Repository Projects
settings.admin_settings = Administrator Settings
settings.admin_enable_health_check = Enable Repository Health Checks (git fsck)
+settings.admin_code_indexer = Code Indexer
+settings.admin_stats_indexer = Code Statistics Indexer
+settings.admin_indexer_commit_sha = Last Indexed SHA
+settings.admin_indexer_unindexed = Unindexed
+settings.reindex_button = Add to Reindex Queue
+settings.reindex_requested=Reindex Requested
settings.admin_enable_close_issues_via_commit_in_any_branch = Close an issue via a commit made in a non default branch
settings.danger_zone = Danger Zone
settings.new_owner_has_same_repo = The new owner already has a repository with same name. Please choose another name.
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/git"
+ "code.gitea.io/gitea/modules/indexer/code"
+ "code.gitea.io/gitea/modules/indexer/stats"
"code.gitea.io/gitea/modules/lfs"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/repository"
signing, _ := asymkey_service.SigningKey(ctx.Repo.Repository.RepoPath())
ctx.Data["SigningKeyAvailable"] = len(signing) > 0
ctx.Data["SigningSettings"] = setting.Repository.Signing
+ ctx.Data["CodeIndexerEnabled"] = setting.Indexer.RepoIndexerEnabled
+ if ctx.User.IsAdmin {
+ if setting.Indexer.RepoIndexerEnabled {
+ status, err := repo_model.GetIndexerStatus(ctx.Repo.Repository, repo_model.RepoIndexerTypeCode)
+ if err != nil {
+ ctx.ServerError("repo.indexer_status", err)
+ return
+ }
+ ctx.Data["CodeIndexerStatus"] = status
+ }
+ status, err := repo_model.GetIndexerStatus(ctx.Repo.Repository, repo_model.RepoIndexerTypeStats)
+ if err != nil {
+ ctx.ServerError("repo.indexer_status", err)
+ return
+ }
+ ctx.Data["StatsIndexerStatus"] = status
+ }
pushMirrors, err := repo_model.GetPushMirrorsByRepoID(ctx.Repo.Repository.ID)
if err != nil {
ctx.ServerError("GetPushMirrorsByRepoID", err)
ctx.Flash.Success(ctx.Tr("repo.settings.update_settings_success"))
ctx.Redirect(ctx.Repo.RepoLink + "/settings")
+ case "admin_index":
+ if !ctx.User.IsAdmin {
+ ctx.Error(http.StatusForbidden)
+ return
+ }
+
+ switch form.RequestReindexType {
+ case "stats":
+ if err := stats.UpdateRepoIndexer(ctx.Repo.Repository); err != nil {
+ ctx.ServerError("UpdateStatsRepondexer", err)
+ return
+ }
+ case "code":
+ if !setting.Indexer.RepoIndexerEnabled {
+ ctx.Error(http.StatusForbidden)
+ return
+ }
+ code.UpdateRepoIndexer(ctx.Repo.Repository)
+ default:
+ ctx.NotFound("", nil)
+ return
+ }
+
+ log.Trace("Repository reindex for %s requested: %s/%s", form.RequestReindexType, ctx.Repo.Owner.Name, repo.Name)
+
+ ctx.Flash.Success(ctx.Tr("repo.settings.reindex_requested"))
+ ctx.Redirect(ctx.Repo.RepoLink + "/settings")
+
case "convert":
if !ctx.Repo.IsOwner() {
ctx.Error(http.StatusNotFound)
</div>
</div>
- <div class="ui divider"></div>
<div class="field">
<button class="ui green button">{{$.i18n.Tr "repo.settings.update_settings"}}</button>
</div>
</form>
+
+ <div class="ui divider"></div>
+ <form class="ui form" method="post">
+ {{.CsrfTokenHtml}}
+ <input type="hidden" name="action" value="admin_index">
+ {{if .CodeIndexerEnabled}}
+ <h4 class="ui header">{{.i18n.Tr "repo.settings.admin_code_indexer"}}</h4>
+ <div class="inline fields">
+ <label>{{.i18n.Tr "repo.settings.admin_indexer_commit_sha"}}</label>
+ <span class="field">
+ {{if .CodeIndexerStatus}}
+ <a rel="nofollow" class="ui sha label" href="{{.RepoLink}}/commit/{{.CodeIndexerStatus.CommitSha}}">
+ <span class="shortsha">{{ShortSha .CodeIndexerStatus.CommitSha}}</span>
+ </a>
+ {{else}}
+ <span>{{.i18n.Tr "repo.settings.admin_indexer_unindexed"}}</span>
+ {{end}}
+ </span>
+ <div class="field">
+ <button class="ui green button" name="request_reindex_type" value="code">{{$.i18n.Tr "repo.settings.reindex_button"}}</button>
+ </div>
+ </div>
+ {{end}}
+ <h4 class="ui header">{{.i18n.Tr "repo.settings.admin_stats_indexer"}}</h4>
+ <div class="inline fields">
+ <label>{{.i18n.Tr "repo.settings.admin_indexer_commit_sha"}}</label>
+ <span class="field">
+ {{if .StatsIndexerStatus}}
+ <a rel="nofollow" class="ui sha label" href="{{.RepoLink}}/commit/{{.StatsIndexerStatus.CommitSha}}">
+ <span class="shortsha">{{ShortSha .StatsIndexerStatus.CommitSha}}</span>
+ </a>
+ {{else}}
+ <span>{{.i18n.Tr "repo.settings.admin_indexer_unindexed"}}</span>
+ {{end}}
+ </span>
+ <div class="field">
+ <button class="ui green button" name="request_reindex_type" value="stats">{{$.i18n.Tr "repo.settings.reindex_button"}}</button>
+ </div>
+ </div>
+ </form>
</div>
{{end}}