Skip to content

Commit 4365274

Browse files
authored
Move modules/mirror to services (#26737)
To solve the cyclic imports in a better way Closes #20261
1 parent 37b3ba2 commit 4365274

File tree

8 files changed

+32
-39
lines changed

8 files changed

+32
-39
lines changed

models/repo/pushmirror.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ func GetPushMirrorsByRepoID(ctx context.Context, repoID int64, listOptions db.Li
128128
func GetPushMirrorsSyncedOnCommit(ctx context.Context, repoID int64) ([]*PushMirror, error) {
129129
mirrors := make([]*PushMirror, 0, 10)
130130
return mirrors, db.GetEngine(ctx).
131-
Where("repo_id=? AND sync_on_commit=?", repoID, true).
131+
Where("repo_id = ? AND sync_on_commit = ?", repoID, true).
132132
Find(&mirrors)
133133
}
134134

modules/notification/notification.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import (
1616
"code.gitea.io/gitea/modules/notification/base"
1717
"code.gitea.io/gitea/modules/notification/indexer"
1818
"code.gitea.io/gitea/modules/notification/mail"
19-
"code.gitea.io/gitea/modules/notification/mirror"
2019
"code.gitea.io/gitea/modules/notification/ui"
2120
"code.gitea.io/gitea/modules/repository"
2221
"code.gitea.io/gitea/modules/setting"
@@ -38,7 +37,6 @@ func NewContext() {
3837
}
3938
RegisterNotifier(indexer.NewNotifier())
4039
RegisterNotifier(action.NewNotifier())
41-
RegisterNotifier(mirror.NewNotifier())
4240
}
4341

4442
// NotifyNewWikiPage notifies creating new wiki pages to notifiers

routers/api/v1/repo/mirror.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
repo_model "code.gitea.io/gitea/models/repo"
1515
"code.gitea.io/gitea/models/unit"
1616
"code.gitea.io/gitea/modules/context"
17-
mirror_module "code.gitea.io/gitea/modules/mirror"
1817
"code.gitea.io/gitea/modules/setting"
1918
api "code.gitea.io/gitea/modules/structs"
2019
"code.gitea.io/gitea/modules/util"
@@ -70,7 +69,7 @@ func MirrorSync(ctx *context.APIContext) {
7069
return
7170
}
7271

73-
mirror_module.AddPullMirrorToQueue(repo.ID)
72+
mirror_service.AddPullMirrorToQueue(repo.ID)
7473

7574
ctx.Status(http.StatusOK)
7675
}

routers/web/repo/setting/setting.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"code.gitea.io/gitea/modules/indexer/stats"
2525
"code.gitea.io/gitea/modules/lfs"
2626
"code.gitea.io/gitea/modules/log"
27-
mirror_module "code.gitea.io/gitea/modules/mirror"
2827
repo_module "code.gitea.io/gitea/modules/repository"
2928
"code.gitea.io/gitea/modules/setting"
3029
"code.gitea.io/gitea/modules/structs"
@@ -277,7 +276,7 @@ func SettingsPost(ctx *context.Context) {
277276
return
278277
}
279278

280-
mirror_module.AddPullMirrorToQueue(repo.ID)
279+
mirror_service.AddPullMirrorToQueue(repo.ID)
281280

282281
ctx.Flash.Info(ctx.Tr("repo.settings.mirror_sync_in_progress"))
283282
ctx.Redirect(repo.Link() + "/settings")
@@ -294,7 +293,7 @@ func SettingsPost(ctx *context.Context) {
294293
return
295294
}
296295

297-
mirror_module.AddPushMirrorToQueue(m.ID)
296+
mirror_service.AddPushMirrorToQueue(m.ID)
298297

299298
ctx.Flash.Info(ctx.Tr("repo.settings.mirror_sync_in_progress"))
300299
ctx.Redirect(repo.Link() + "/settings")
@@ -332,7 +331,7 @@ func SettingsPost(ctx *context.Context) {
332331
// If we observed its implementation in the context of `push-mirror-sync` where it
333332
// is evident that pushing to the queue is necessary for updates.
334333
// So, there are updates within the given interval, it is necessary to update the queue accordingly.
335-
mirror_module.AddPushMirrorToQueue(m.ID)
334+
mirror_service.AddPushMirrorToQueue(m.ID)
336335
ctx.Flash.Success(ctx.Tr("repo.settings.update_settings_success"))
337336
ctx.Redirect(repo.Link() + "/settings")
338337

services/mirror/mirror.go

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,20 @@ import (
1010
repo_model "code.gitea.io/gitea/models/repo"
1111
"code.gitea.io/gitea/modules/graceful"
1212
"code.gitea.io/gitea/modules/log"
13-
mirror_module "code.gitea.io/gitea/modules/mirror"
1413
"code.gitea.io/gitea/modules/queue"
1514
"code.gitea.io/gitea/modules/setting"
1615
)
1716

1817
// doMirrorSync causes this request to mirror itself
19-
func doMirrorSync(ctx context.Context, req *mirror_module.SyncRequest) {
18+
func doMirrorSync(ctx context.Context, req *SyncRequest) {
2019
if req.ReferenceID == 0 {
2120
log.Warn("Skipping mirror sync request, no mirror ID was specified")
2221
return
2322
}
2423
switch req.Type {
25-
case mirror_module.PushMirrorType:
24+
case PushMirrorType:
2625
_ = SyncPushMirror(ctx, req.ReferenceID)
27-
case mirror_module.PullMirrorType:
26+
case PullMirrorType:
2827
_ = SyncPullMirror(ctx, req.ReferenceID)
2928
default:
3029
log.Error("Unknown Request type in queue: %v for MirrorID[%d]", req.Type, req.ReferenceID)
@@ -43,7 +42,7 @@ func Update(ctx context.Context, pullLimit, pushLimit int) error {
4342

4443
handler := func(idx int, bean any) error {
4544
var repo *repo_model.Repository
46-
var mirrorType mirror_module.SyncType
45+
var mirrorType SyncType
4746
var referenceID int64
4847

4948
if m, ok := bean.(*repo_model.Mirror); ok {
@@ -52,15 +51,15 @@ func Update(ctx context.Context, pullLimit, pushLimit int) error {
5251
return nil
5352
}
5453
repo = m.Repo
55-
mirrorType = mirror_module.PullMirrorType
54+
mirrorType = PullMirrorType
5655
referenceID = m.RepoID
5756
} else if m, ok := bean.(*repo_model.PushMirror); ok {
5857
if m.GetRepository() == nil {
5958
log.Error("Disconnected push-mirror found: %d", m.ID)
6059
return nil
6160
}
6261
repo = m.Repo
63-
mirrorType = mirror_module.PushMirrorType
62+
mirrorType = PushMirrorType
6463
referenceID = m.ID
6564
} else {
6665
log.Error("Unknown bean: %v", bean)
@@ -75,9 +74,9 @@ func Update(ctx context.Context, pullLimit, pushLimit int) error {
7574
}
7675

7776
// Push to the Queue
78-
if err := mirror_module.PushToQueue(mirrorType, referenceID); err != nil {
77+
if err := PushToQueue(mirrorType, referenceID); err != nil {
7978
if err == queue.ErrAlreadyInQueue {
80-
if mirrorType == mirror_module.PushMirrorType {
79+
if mirrorType == PushMirrorType {
8180
log.Trace("PushMirrors for %-v already queued for sync", repo)
8281
} else {
8382
log.Trace("PullMirrors for %-v already queued for sync", repo)
@@ -120,7 +119,7 @@ func Update(ctx context.Context, pullLimit, pushLimit int) error {
120119
return nil
121120
}
122121

123-
func queueHandler(items ...*mirror_module.SyncRequest) []*mirror_module.SyncRequest {
122+
func queueHandler(items ...*SyncRequest) []*SyncRequest {
124123
for _, req := range items {
125124
doMirrorSync(graceful.GetManager().ShutdownContext(), req)
126125
}
@@ -129,5 +128,5 @@ func queueHandler(items ...*mirror_module.SyncRequest) []*mirror_module.SyncRequ
129128

130129
// InitSyncMirrors initializes a go routine to sync the mirrors
131130
func InitSyncMirrors() {
132-
mirror_module.StartSyncMirrors(queueHandler)
131+
StartSyncMirrors(queueHandler)
133132
}

services/mirror/mirror_push.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,3 +253,15 @@ func pushAllLFSObjects(ctx context.Context, gitRepo *git.Repository, lfsClient l
253253

254254
return nil
255255
}
256+
257+
func syncPushMirrorWithSyncOnCommit(ctx context.Context, repoID int64) {
258+
pushMirrors, err := repo_model.GetPushMirrorsSyncedOnCommit(ctx, repoID)
259+
if err != nil {
260+
log.Error("repo_model.GetPushMirrorsSyncedOnCommit failed: %v", err)
261+
return
262+
}
263+
264+
for _, mirror := range pushMirrors {
265+
AddPushMirrorToQueue(mirror.ID)
266+
}
267+
}

modules/notification/mirror/mirror.go renamed to services/mirror/notifier.go

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,39 +8,25 @@ import (
88

99
repo_model "code.gitea.io/gitea/models/repo"
1010
user_model "code.gitea.io/gitea/models/user"
11-
"code.gitea.io/gitea/modules/log"
12-
mirror_module "code.gitea.io/gitea/modules/mirror"
11+
"code.gitea.io/gitea/modules/notification"
1312
"code.gitea.io/gitea/modules/notification/base"
1413
"code.gitea.io/gitea/modules/repository"
1514
)
1615

16+
func init() {
17+
notification.RegisterNotifier(&mirrorNotifier{})
18+
}
19+
1720
type mirrorNotifier struct {
1821
base.NullNotifier
1922
}
2023

2124
var _ base.Notifier = &mirrorNotifier{}
2225

23-
// NewNotifier create a new mirrorNotifier notifier
24-
func NewNotifier() base.Notifier {
25-
return &mirrorNotifier{}
26-
}
27-
2826
func (m *mirrorNotifier) NotifyPushCommits(ctx context.Context, _ *user_model.User, repo *repo_model.Repository, _ *repository.PushUpdateOptions, _ *repository.PushCommits) {
2927
syncPushMirrorWithSyncOnCommit(ctx, repo.ID)
3028
}
3129

3230
func (m *mirrorNotifier) NotifySyncPushCommits(ctx context.Context, _ *user_model.User, repo *repo_model.Repository, _ *repository.PushUpdateOptions, _ *repository.PushCommits) {
3331
syncPushMirrorWithSyncOnCommit(ctx, repo.ID)
3432
}
35-
36-
func syncPushMirrorWithSyncOnCommit(ctx context.Context, repoID int64) {
37-
pushMirrors, err := repo_model.GetPushMirrorsSyncedOnCommit(ctx, repoID)
38-
if err != nil {
39-
log.Error("repo_model.GetPushMirrorsSyncedOnCommit failed: %v", err)
40-
return
41-
}
42-
43-
for _, mirror := range pushMirrors {
44-
mirror_module.AddPushMirrorToQueue(mirror.ID)
45-
}
46-
}
File renamed without changes.

0 commit comments

Comments
 (0)