Skip to content

Commit 8ac3b92

Browse files
committed
add disable-mirror-actions-unit command
1 parent 4a469c8 commit 8ac3b92

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

cmd/doctor.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,14 @@ import (
1414
"code.gitea.io/gitea/models/db"
1515
"code.gitea.io/gitea/models/migrations"
1616
migrate_base "code.gitea.io/gitea/models/migrations/base"
17+
repo_model "code.gitea.io/gitea/models/repo"
18+
unit_model "code.gitea.io/gitea/models/unit"
1719
"code.gitea.io/gitea/modules/container"
1820
"code.gitea.io/gitea/modules/log"
21+
"code.gitea.io/gitea/modules/optional"
1922
"code.gitea.io/gitea/modules/setting"
2023
"code.gitea.io/gitea/services/doctor"
24+
repo_service "code.gitea.io/gitea/services/repository"
2125

2226
"github.com/urfave/cli/v2"
2327
"xorm.io/xorm"
@@ -33,6 +37,7 @@ var CmdDoctor = &cli.Command{
3337
cmdDoctorCheck,
3438
cmdRecreateTable,
3539
cmdDoctorConvert,
40+
cmdDisableMirrorActionsUnit,
3641
},
3742
}
3843

@@ -138,6 +143,48 @@ func runRecreateTable(ctx *cli.Context) error {
138143
})
139144
}
140145

146+
var cmdDisableMirrorActionsUnit = &cli.Command{
147+
Name: "disable-mirror-actions-unit",
148+
Usage: "Disable the actions unit for all mirrors",
149+
Action: runDisableMirrorActionsUnit,
150+
}
151+
152+
func runDisableMirrorActionsUnit(_ *cli.Context) error {
153+
stdCtx, cancel := installSignals()
154+
defer cancel()
155+
156+
if err := initDB(stdCtx); err != nil {
157+
return err
158+
}
159+
160+
const pageSize = repo_model.RepositoryListDefaultPageSize
161+
for page := 1; ; page++ {
162+
repos, count, err := repo_model.SearchRepository(stdCtx, &repo_model.SearchRepoOptions{
163+
ListOptions: db.ListOptions{
164+
PageSize: pageSize,
165+
Page: page,
166+
},
167+
Mirror: optional.Some(true),
168+
})
169+
if err != nil {
170+
return fmt.Errorf("SearchRepository: %w", err)
171+
}
172+
if len(repos) == 0 {
173+
break
174+
}
175+
log.Info("Processing %d-%d of %d repos", (page-1)*pageSize+1, (page-1)*pageSize+len(repos), count)
176+
for _, repo := range repos {
177+
if err := repo_service.UpdateRepositoryUnits(stdCtx, repo, nil, []unit_model.Type{unit_model.TypeActions}); err != nil {
178+
return err
179+
}
180+
}
181+
}
182+
183+
log.Info("Finish processing")
184+
185+
return nil
186+
}
187+
141188
func setupDoctorDefaultLogger(ctx *cli.Context, colorize bool) {
142189
// Silence the default loggers
143190
setupConsoleLogger(log.FATAL, log.CanColorStderr, os.Stderr)

0 commit comments

Comments
 (0)