Skip to content

Commit fe29360

Browse files
committed
Merge branch 'main' of https://github.com/Caellion/gitea into main
* 'main' of https://github.com/Caellion/gitea: Add Reindex buttons to repository settings page (go-gitea#17494) Set correct language for Dockerfile variants (go-gitea#17999) Fix TemplateRepo no longer in models.repo (go-gitea#17993)
2 parents c1d1d4a + aec7916 commit fe29360

File tree

6 files changed

+106
-2
lines changed

6 files changed

+106
-2
lines changed

.gitattributes

+1
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@
55
/.eslintrc linguist-language=YAML
66
/.stylelintrc linguist-language=YAML
77
/web_src/fomantic/build/** linguist-generated
8+
Dockerfile.* linguist-language=Dockerfile

models/repo/repo.go

+10
Original file line numberDiff line numberDiff line change
@@ -683,6 +683,16 @@ func getTemplateRepo(e db.Engine, repo *Repository) (*Repository, error) {
683683
return getRepositoryByID(e, repo.TemplateID)
684684
}
685685

686+
// TemplateRepo returns the repository, which is template of this repository
687+
func (repo *Repository) TemplateRepo() *Repository {
688+
repo, err := GetTemplateRepo(repo)
689+
if err != nil {
690+
log.Error("TemplateRepo: %v", err)
691+
return nil
692+
}
693+
return repo
694+
}
695+
686696
func countRepositories(userID int64, private bool) int64 {
687697
sess := db.GetEngine(db.DefaultContext).Where("id > 0")
688698

options/locale/locale_en-US.ini

+6
Original file line numberDiff line numberDiff line change
@@ -1726,6 +1726,12 @@ settings.pulls.default_delete_branch_after_merge = Delete pull request branch af
17261726
settings.projects_desc = Enable Repository Projects
17271727
settings.admin_settings = Administrator Settings
17281728
settings.admin_enable_health_check = Enable Repository Health Checks (git fsck)
1729+
settings.admin_code_indexer = Code Indexer
1730+
settings.admin_stats_indexer = Code Statistics Indexer
1731+
settings.admin_indexer_commit_sha = Last Indexed SHA
1732+
settings.admin_indexer_unindexed = Unindexed
1733+
settings.reindex_button = Add to Reindex Queue
1734+
settings.reindex_requested=Reindex Requested
17291735
settings.admin_enable_close_issues_via_commit_in_any_branch = Close an issue via a commit made in a non default branch
17301736
settings.danger_zone = Danger Zone
17311737
settings.new_owner_has_same_repo = The new owner already has a repository with same name. Please choose another name.

routers/web/repo/setting.go

+47
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import (
2424
"code.gitea.io/gitea/modules/base"
2525
"code.gitea.io/gitea/modules/context"
2626
"code.gitea.io/gitea/modules/git"
27+
"code.gitea.io/gitea/modules/indexer/code"
28+
"code.gitea.io/gitea/modules/indexer/stats"
2729
"code.gitea.io/gitea/modules/lfs"
2830
"code.gitea.io/gitea/modules/log"
2931
"code.gitea.io/gitea/modules/repository"
@@ -67,6 +69,23 @@ func Settings(ctx *context.Context) {
6769
signing, _ := asymkey_service.SigningKey(ctx.Repo.Repository.RepoPath())
6870
ctx.Data["SigningKeyAvailable"] = len(signing) > 0
6971
ctx.Data["SigningSettings"] = setting.Repository.Signing
72+
ctx.Data["CodeIndexerEnabled"] = setting.Indexer.RepoIndexerEnabled
73+
if ctx.User.IsAdmin {
74+
if setting.Indexer.RepoIndexerEnabled {
75+
status, err := repo_model.GetIndexerStatus(ctx.Repo.Repository, repo_model.RepoIndexerTypeCode)
76+
if err != nil {
77+
ctx.ServerError("repo.indexer_status", err)
78+
return
79+
}
80+
ctx.Data["CodeIndexerStatus"] = status
81+
}
82+
status, err := repo_model.GetIndexerStatus(ctx.Repo.Repository, repo_model.RepoIndexerTypeStats)
83+
if err != nil {
84+
ctx.ServerError("repo.indexer_status", err)
85+
return
86+
}
87+
ctx.Data["StatsIndexerStatus"] = status
88+
}
7089
pushMirrors, err := repo_model.GetPushMirrorsByRepoID(ctx.Repo.Repository.ID)
7190
if err != nil {
7291
ctx.ServerError("GetPushMirrorsByRepoID", err)
@@ -515,6 +534,34 @@ func SettingsPost(ctx *context.Context) {
515534
ctx.Flash.Success(ctx.Tr("repo.settings.update_settings_success"))
516535
ctx.Redirect(ctx.Repo.RepoLink + "/settings")
517536

537+
case "admin_index":
538+
if !ctx.User.IsAdmin {
539+
ctx.Error(http.StatusForbidden)
540+
return
541+
}
542+
543+
switch form.RequestReindexType {
544+
case "stats":
545+
if err := stats.UpdateRepoIndexer(ctx.Repo.Repository); err != nil {
546+
ctx.ServerError("UpdateStatsRepondexer", err)
547+
return
548+
}
549+
case "code":
550+
if !setting.Indexer.RepoIndexerEnabled {
551+
ctx.Error(http.StatusForbidden)
552+
return
553+
}
554+
code.UpdateRepoIndexer(ctx.Repo.Repository)
555+
default:
556+
ctx.NotFound("", nil)
557+
return
558+
}
559+
560+
log.Trace("Repository reindex for %s requested: %s/%s", form.RequestReindexType, ctx.Repo.Owner.Name, repo.Name)
561+
562+
ctx.Flash.Success(ctx.Tr("repo.settings.reindex_requested"))
563+
ctx.Redirect(ctx.Repo.RepoLink + "/settings")
564+
518565
case "convert":
519566
if !ctx.Repo.IsOwner() {
520567
ctx.Error(http.StatusNotFound)

services/forms/repo_form.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,8 @@ type RepoSettingForm struct {
161161
TrustModel string
162162

163163
// Admin settings
164-
EnableHealthCheck bool
164+
EnableHealthCheck bool
165+
RequestReindexType string
165166
}
166167

167168
// Validate validates the fields

templates/repo/settings/options.tmpl

+40-1
Original file line numberDiff line numberDiff line change
@@ -558,11 +558,50 @@
558558
</div>
559559
</div>
560560

561-
<div class="ui divider"></div>
562561
<div class="field">
563562
<button class="ui green button">{{$.i18n.Tr "repo.settings.update_settings"}}</button>
564563
</div>
565564
</form>
565+
566+
<div class="ui divider"></div>
567+
<form class="ui form" method="post">
568+
{{.CsrfTokenHtml}}
569+
<input type="hidden" name="action" value="admin_index">
570+
{{if .CodeIndexerEnabled}}
571+
<h4 class="ui header">{{.i18n.Tr "repo.settings.admin_code_indexer"}}</h4>
572+
<div class="inline fields">
573+
<label>{{.i18n.Tr "repo.settings.admin_indexer_commit_sha"}}</label>
574+
<span class="field">
575+
{{if .CodeIndexerStatus}}
576+
<a rel="nofollow" class="ui sha label" href="{{.RepoLink}}/commit/{{.CodeIndexerStatus.CommitSha}}">
577+
<span class="shortsha">{{ShortSha .CodeIndexerStatus.CommitSha}}</span>
578+
</a>
579+
{{else}}
580+
<span>{{.i18n.Tr "repo.settings.admin_indexer_unindexed"}}</span>
581+
{{end}}
582+
</span>
583+
<div class="field">
584+
<button class="ui green button" name="request_reindex_type" value="code">{{$.i18n.Tr "repo.settings.reindex_button"}}</button>
585+
</div>
586+
</div>
587+
{{end}}
588+
<h4 class="ui header">{{.i18n.Tr "repo.settings.admin_stats_indexer"}}</h4>
589+
<div class="inline fields">
590+
<label>{{.i18n.Tr "repo.settings.admin_indexer_commit_sha"}}</label>
591+
<span class="field">
592+
{{if .StatsIndexerStatus}}
593+
<a rel="nofollow" class="ui sha label" href="{{.RepoLink}}/commit/{{.StatsIndexerStatus.CommitSha}}">
594+
<span class="shortsha">{{ShortSha .StatsIndexerStatus.CommitSha}}</span>
595+
</a>
596+
{{else}}
597+
<span>{{.i18n.Tr "repo.settings.admin_indexer_unindexed"}}</span>
598+
{{end}}
599+
</span>
600+
<div class="field">
601+
<button class="ui green button" name="request_reindex_type" value="stats">{{$.i18n.Tr "repo.settings.reindex_button"}}</button>
602+
</div>
603+
</div>
604+
</form>
566605
</div>
567606
{{end}}
568607

0 commit comments

Comments
 (0)