Skip to content

Commit 15bf56e

Browse files
committed
add disableMirrorActionsUnit
1 parent 8ac3b92 commit 15bf56e

File tree

2 files changed

+69
-47
lines changed

2 files changed

+69
-47
lines changed

cmd/doctor.go

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,10 @@ 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"
1917
"code.gitea.io/gitea/modules/container"
2018
"code.gitea.io/gitea/modules/log"
21-
"code.gitea.io/gitea/modules/optional"
2219
"code.gitea.io/gitea/modules/setting"
2320
"code.gitea.io/gitea/services/doctor"
24-
repo_service "code.gitea.io/gitea/services/repository"
2521

2622
"github.com/urfave/cli/v2"
2723
"xorm.io/xorm"
@@ -37,7 +33,6 @@ var CmdDoctor = &cli.Command{
3733
cmdDoctorCheck,
3834
cmdRecreateTable,
3935
cmdDoctorConvert,
40-
cmdDisableMirrorActionsUnit,
4136
},
4237
}
4338

@@ -143,48 +138,6 @@ func runRecreateTable(ctx *cli.Context) error {
143138
})
144139
}
145140

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-
188141
func setupDoctorDefaultLogger(ctx *cli.Context, colorize bool) {
189142
// Silence the default loggers
190143
setupConsoleLogger(log.FATAL, log.CanColorStderr, os.Stderr)

services/doctor/actions.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package doctor
2+
3+
import (
4+
"context"
5+
"fmt"
6+
7+
"code.gitea.io/gitea/models/db"
8+
repo_model "code.gitea.io/gitea/models/repo"
9+
unit_model "code.gitea.io/gitea/models/unit"
10+
"code.gitea.io/gitea/modules/log"
11+
"code.gitea.io/gitea/modules/optional"
12+
repo_service "code.gitea.io/gitea/services/repository"
13+
)
14+
15+
func disableMirrorActionsUnit(ctx context.Context, logger log.Logger, autofix bool) error {
16+
var reposToFix []*repo_model.Repository
17+
18+
for page := 1; ; page++ {
19+
repos, _, err := repo_model.SearchRepository(ctx, &repo_model.SearchRepoOptions{
20+
ListOptions: db.ListOptions{
21+
PageSize: repo_model.RepositoryListDefaultPageSize,
22+
Page: page,
23+
},
24+
Mirror: optional.Some(true),
25+
})
26+
if err != nil {
27+
return fmt.Errorf("SearchRepository: %w", err)
28+
}
29+
if len(repos) == 0 {
30+
break
31+
}
32+
33+
for _, repo := range repos {
34+
if repo.UnitEnabled(ctx, unit_model.TypeActions) {
35+
reposToFix = append(reposToFix, repo)
36+
}
37+
}
38+
}
39+
40+
if len(reposToFix) == 0 {
41+
logger.Info("Found no mirror with actions unit enabled")
42+
} else {
43+
logger.Warn("Found %d mirrors with actions unit enabled", len(reposToFix))
44+
}
45+
46+
if !autofix {
47+
return nil
48+
}
49+
50+
for _, repo := range reposToFix {
51+
if err := repo_service.UpdateRepositoryUnits(ctx, repo, nil, []unit_model.Type{unit_model.TypeActions}); err != nil {
52+
return err
53+
}
54+
}
55+
56+
logger.Info("Fixed %d mirrors with actions unit enabled", len(reposToFix))
57+
58+
return nil
59+
}
60+
61+
func init() {
62+
Register(&Check{
63+
Title: "Disable the actions unit for all mirrors",
64+
Name: "disable-mirror-actions-unit",
65+
IsDefault: false,
66+
Run: disableMirrorActionsUnit,
67+
Priority: 9,
68+
})
69+
}

0 commit comments

Comments
 (0)