feat: [CDE-142]: extract gitspace find to its own svc (#2251)

* feat: [CDE-142]: extract gitspace find to its own svc
* feat: [CDE-142]: extract gitspace find to its own svc
* feat: [CDE-142]: extract gitspace find to its own svc
* feat: [CDE-142]: extract gitspace find to its own svc
* feat: [CDE-142]: extract gitspace find to its own svc
unified-ui
Ansuman Satapathy 2024-07-19 11:43:43 +00:00 committed by Harness
parent b3d9a58c5c
commit 0bbcc98b61
14 changed files with 241 additions and 141 deletions

View File

@ -27,7 +27,7 @@ import (
type Controller struct {
authorizer authz.Authorizer
infraProviderSvc infraprovider.ProviderService
infraProviderSvc *infraprovider.Service
gitspaceConfigStore store.GitspaceConfigStore
gitspaceInstanceStore store.GitspaceInstanceStore
spaceStore store.SpaceStore
@ -42,7 +42,7 @@ type Controller struct {
func NewController(
tx dbtx.Transactor,
authorizer authz.Authorizer,
infraProviderSvc infraprovider.ProviderService,
infraProviderSvc *infraprovider.Service,
gitspaceConfigStore store.GitspaceConfigStore,
gitspaceInstanceStore store.GitspaceInstanceStore,
spaceStore store.SpaceStore,

View File

@ -35,7 +35,7 @@ var WireSet = wire.NewSet(
func ProvideController(
tx dbtx.Transactor,
authorizer authz.Authorizer,
infraProviderSvc infraprovider.ProviderService,
infraProviderSvc *infraprovider.Service,
configStore store.GitspaceConfigStore,
instanceStore store.GitspaceInstanceStore,
spaceStore store.SpaceStore,

View File

@ -23,13 +23,13 @@ import (
type Controller struct {
authorizer authz.Authorizer
spaceStore store.SpaceStore
infraproviderSvc infraprovider.ProviderService
infraproviderSvc *infraprovider.Service
}
func NewController(
authorizer authz.Authorizer,
spaceStore store.SpaceStore,
infraproviderSvc infraprovider.ProviderService,
infraproviderSvc *infraprovider.Service,
) *Controller {
return &Controller{
authorizer: authorizer,

View File

@ -30,7 +30,7 @@ var WireSet = wire.NewSet(
func ProvideController(
authorizer authz.Authorizer,
spaceStore store.SpaceStore,
infraproviderSvc infraprovider.ProviderService,
infraproviderSvc *infraprovider.Service,
) *Controller {
return NewController(authorizer, spaceStore, infraproviderSvc)
}

View File

@ -22,6 +22,7 @@ import (
"github.com/harness/gitness/app/api/usererror"
"github.com/harness/gitness/app/auth/authz"
"github.com/harness/gitness/app/services/exporter"
"github.com/harness/gitness/app/services/gitspace"
"github.com/harness/gitness/app/services/importer"
"github.com/harness/gitness/app/services/publicaccess"
"github.com/harness/gitness/app/sse"
@ -61,28 +62,27 @@ func (s SpaceOutput) MarshalJSON() ([]byte, error) {
type Controller struct {
nestedSpacesEnabled bool
tx dbtx.Transactor
urlProvider url.Provider
sseStreamer sse.Streamer
identifierCheck check.SpaceIdentifier
authorizer authz.Authorizer
spacePathStore store.SpacePathStore
pipelineStore store.PipelineStore
secretStore store.SecretStore
connectorStore store.ConnectorStore
templateStore store.TemplateStore
spaceStore store.SpaceStore
repoStore store.RepoStore
principalStore store.PrincipalStore
repoCtrl *repo.Controller
membershipStore store.MembershipStore
importer *importer.Repository
exporter *exporter.Repository
resourceLimiter limiter.ResourceLimiter
publicAccess publicaccess.Service
auditService audit.Service
gitspaceConfigStore store.GitspaceConfigStore
gitspaceInstanceStore store.GitspaceInstanceStore
tx dbtx.Transactor
urlProvider url.Provider
sseStreamer sse.Streamer
identifierCheck check.SpaceIdentifier
authorizer authz.Authorizer
spacePathStore store.SpacePathStore
pipelineStore store.PipelineStore
secretStore store.SecretStore
connectorStore store.ConnectorStore
templateStore store.TemplateStore
spaceStore store.SpaceStore
repoStore store.RepoStore
principalStore store.PrincipalStore
repoCtrl *repo.Controller
membershipStore store.MembershipStore
importer *importer.Repository
exporter *exporter.Repository
resourceLimiter limiter.ResourceLimiter
publicAccess publicaccess.Service
auditService audit.Service
gitspaceSvc *gitspace.Service
}
func NewController(config *types.Config, tx dbtx.Transactor, urlProvider url.Provider,
@ -92,32 +92,30 @@ func NewController(config *types.Config, tx dbtx.Transactor, urlProvider url.Pro
repoStore store.RepoStore, principalStore store.PrincipalStore, repoCtrl *repo.Controller,
membershipStore store.MembershipStore, importer *importer.Repository, exporter *exporter.Repository,
limiter limiter.ResourceLimiter, publicAccess publicaccess.Service, auditService audit.Service,
gitspaceStore store.GitspaceConfigStore,
gitspaceInstanceStore store.GitspaceInstanceStore,
gitspaceSvc *gitspace.Service,
) *Controller {
return &Controller{
nestedSpacesEnabled: config.NestedSpacesEnabled,
tx: tx,
urlProvider: urlProvider,
sseStreamer: sseStreamer,
identifierCheck: identifierCheck,
authorizer: authorizer,
spacePathStore: spacePathStore,
pipelineStore: pipelineStore,
secretStore: secretStore,
connectorStore: connectorStore,
templateStore: templateStore,
spaceStore: spaceStore,
repoStore: repoStore,
principalStore: principalStore,
repoCtrl: repoCtrl,
membershipStore: membershipStore,
importer: importer,
exporter: exporter,
resourceLimiter: limiter,
publicAccess: publicAccess,
auditService: auditService,
gitspaceConfigStore: gitspaceStore,
gitspaceInstanceStore: gitspaceInstanceStore,
nestedSpacesEnabled: config.NestedSpacesEnabled,
tx: tx,
urlProvider: urlProvider,
sseStreamer: sseStreamer,
identifierCheck: identifierCheck,
authorizer: authorizer,
spacePathStore: spacePathStore,
pipelineStore: pipelineStore,
secretStore: secretStore,
connectorStore: connectorStore,
templateStore: templateStore,
spaceStore: spaceStore,
repoStore: repoStore,
principalStore: principalStore,
repoCtrl: repoCtrl,
membershipStore: membershipStore,
importer: importer,
exporter: exporter,
resourceLimiter: limiter,
publicAccess: publicAccess,
auditService: auditService,
gitspaceSvc: gitspaceSvc,
}
}

View File

@ -20,7 +20,6 @@ import (
apiauth "github.com/harness/gitness/app/api/auth"
"github.com/harness/gitness/app/auth"
"github.com/harness/gitness/store/database/dbtx"
"github.com/harness/gitness/types"
"github.com/harness/gitness/types/enum"
)
@ -39,68 +38,5 @@ func (c *Controller) ListGitspaces(
if err != nil {
return nil, 0, fmt.Errorf("failed to authorize gitspace: %w", err)
}
gitspaceFilter := &types.GitspaceFilter{
QueryFilter: filter,
UserID: session.Principal.UID,
SpaceIDs: []int64{space.ID},
}
var gitspaceConfigs []*types.GitspaceConfig
var count int64
err = c.tx.WithTx(ctx, func(ctx context.Context) (err error) {
gitspaceConfigs, err = c.gitspaceConfigStore.List(ctx, gitspaceFilter)
if err != nil {
return fmt.Errorf("failed to list gitspace configs: %w", err)
}
if len(gitspaceConfigs) >= filter.Size {
count, err = c.gitspaceConfigStore.Count(ctx, gitspaceFilter)
if err != nil {
return fmt.Errorf("failed to count gitspaces in space: %w", err)
}
} else {
count = int64(len(gitspaceConfigs))
}
gitspaceInstancesMap, err := c.getLatestInstanceMap(ctx, gitspaceConfigs)
if err != nil {
return err
}
for _, gitspaceConfig := range gitspaceConfigs {
instance := gitspaceInstancesMap[gitspaceConfig.ID]
gitspaceConfig.GitspaceInstance = instance
gitspaceConfig.SpacePath = space.Path
if instance != nil {
gitspaceStateType, err := enum.GetGitspaceStateFromInstance(instance.State)
if err != nil {
return err
}
gitspaceConfig.State = gitspaceStateType
instance.SpacePath = gitspaceConfig.SpacePath
} else {
gitspaceConfig.State = enum.GitspaceStateUninitialized
}
}
return nil
}, dbtx.TxDefaultReadOnly)
if err != nil {
return nil, 0, err
}
return gitspaceConfigs, count, nil
}
func (c *Controller) getLatestInstanceMap(
ctx context.Context,
gitspaceConfigs []*types.GitspaceConfig,
) (map[int64]*types.GitspaceInstance, error) {
var gitspaceConfigIDs = make([]int64, 0)
for idx := 0; idx < len(gitspaceConfigs); idx++ {
gitspaceConfigIDs = append(gitspaceConfigIDs, gitspaceConfigs[idx].ID)
}
var gitspaceInstances, err = c.gitspaceInstanceStore.FindAllLatestByGitspaceConfigID(ctx, gitspaceConfigIDs)
if err != nil {
return nil, err
}
var gitspaceInstancesMap = make(map[int64]*types.GitspaceInstance)
for _, gitspaceEntry := range gitspaceInstances {
gitspaceInstancesMap[gitspaceEntry.GitSpaceConfigID] = gitspaceEntry
}
return gitspaceInstancesMap, nil
return c.gitspaceSvc.ListGitspacesForSpace(ctx, space, session.Principal.UID, filter)
}

View File

@ -19,6 +19,7 @@ import (
"github.com/harness/gitness/app/api/controller/repo"
"github.com/harness/gitness/app/auth/authz"
"github.com/harness/gitness/app/services/exporter"
"github.com/harness/gitness/app/services/gitspace"
"github.com/harness/gitness/app/services/importer"
"github.com/harness/gitness/app/services/publicaccess"
"github.com/harness/gitness/app/sse"
@ -44,7 +45,7 @@ func ProvideController(config *types.Config, tx dbtx.Transactor, urlProvider url
spaceStore store.SpaceStore, repoStore store.RepoStore, principalStore store.PrincipalStore,
repoCtrl *repo.Controller, membershipStore store.MembershipStore, importer *importer.Repository,
exporter *exporter.Repository, limiter limiter.ResourceLimiter, publicAccess publicaccess.Service,
auditService audit.Service, gitspaceConfigStore store.GitspaceConfigStore, instanceStore store.GitspaceInstanceStore,
auditService audit.Service, gitspaceService *gitspace.Service,
) *Controller {
return NewController(config, tx, urlProvider, sseStreamer, identifierCheck, authorizer,
spacePathStore, pipelineStore, secretStore,
@ -52,5 +53,5 @@ func ProvideController(config *types.Config, tx dbtx.Transactor, urlProvider url
spaceStore, repoStore, principalStore,
repoCtrl, membershipStore, importer,
exporter, limiter, publicAccess,
auditService, gitspaceConfigStore, instanceStore)
auditService, gitspaceService)
}

View File

@ -0,0 +1,118 @@
// Copyright 2023 Harness, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package gitspace
import (
"context"
"fmt"
"github.com/harness/gitness/app/store"
"github.com/harness/gitness/store/database/dbtx"
"github.com/harness/gitness/types"
"github.com/harness/gitness/types/enum"
)
func NewService(
tx dbtx.Transactor,
gitspaceStore store.GitspaceConfigStore,
gitspaceInstanceStore store.GitspaceInstanceStore,
spaceStore store.SpaceStore,
) *Service {
return &Service{
tx: tx,
gitspaceConfigStore: gitspaceStore,
gitspaceInstanceStore: gitspaceInstanceStore,
spaceStore: spaceStore,
}
}
type Service struct {
gitspaceConfigStore store.GitspaceConfigStore
gitspaceInstanceStore store.GitspaceInstanceStore
spaceStore store.SpaceStore
tx dbtx.Transactor
}
func (c *Service) ListGitspacesForSpace(
ctx context.Context,
space *types.Space,
userIdentifier string,
filter types.ListQueryFilter,
) ([]*types.GitspaceConfig, int64, error) {
gitspaceFilter := &types.GitspaceFilter{
QueryFilter: filter,
UserID: userIdentifier,
SpaceIDs: []int64{space.ID},
}
var gitspaceConfigs []*types.GitspaceConfig
var count int64
err := c.tx.WithTx(ctx, func(ctx context.Context) (err error) {
gitspaceConfigs, err = c.gitspaceConfigStore.List(ctx, gitspaceFilter)
if err != nil {
return fmt.Errorf("failed to list gitspace configs: %w", err)
}
if len(gitspaceConfigs) >= gitspaceFilter.QueryFilter.Size {
count, err = c.gitspaceConfigStore.Count(ctx, gitspaceFilter)
if err != nil {
return fmt.Errorf("failed to count gitspaces in space: %w", err)
}
} else {
count = int64(len(gitspaceConfigs))
}
gitspaceInstancesMap, err := c.getLatestInstanceMap(ctx, gitspaceConfigs)
if err != nil {
return err
}
for _, gitspaceConfig := range gitspaceConfigs {
instance := gitspaceInstancesMap[gitspaceConfig.ID]
gitspaceConfig.GitspaceInstance = instance
gitspaceConfig.SpacePath = space.Path
if instance != nil {
gitspaceStateType, err := enum.GetGitspaceStateFromInstance(instance.State)
if err != nil {
return err
}
gitspaceConfig.State = gitspaceStateType
instance.SpacePath = gitspaceConfig.SpacePath
} else {
gitspaceConfig.State = enum.GitspaceStateUninitialized
}
}
return nil
}, dbtx.TxDefaultReadOnly)
if err != nil {
return nil, 0, err
}
return gitspaceConfigs, count, nil
}
func (c *Service) getLatestInstanceMap(
ctx context.Context,
gitspaceConfigs []*types.GitspaceConfig,
) (map[int64]*types.GitspaceInstance, error) {
var gitspaceConfigIDs = make([]int64, 0)
for idx := 0; idx < len(gitspaceConfigs); idx++ {
gitspaceConfigIDs = append(gitspaceConfigIDs, gitspaceConfigs[idx].ID)
}
var gitspaceInstances, err = c.gitspaceInstanceStore.FindAllLatestByGitspaceConfigID(ctx, gitspaceConfigIDs)
if err != nil {
return nil, err
}
var gitspaceInstancesMap = make(map[int64]*types.GitspaceInstance)
for _, gitspaceEntry := range gitspaceInstances {
gitspaceInstancesMap[gitspaceEntry.GitSpaceConfigID] = gitspaceEntry
}
return gitspaceInstancesMap, nil
}

View File

@ -0,0 +1,35 @@
// Copyright 2023 Harness, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package gitspace
import (
"github.com/harness/gitness/app/store"
"github.com/harness/gitness/store/database/dbtx"
"github.com/google/wire"
)
var WireSet = wire.NewSet(
ProvideGitspace,
)
func ProvideGitspace(
tx dbtx.Transactor,
gitspaceStore store.GitspaceConfigStore,
gitspaceInstanceStore store.GitspaceInstanceStore,
spaceStore store.SpaceStore,
) *Service {
return NewService(tx, gitspaceStore, gitspaceInstanceStore, spaceStore)
}

View File

@ -30,8 +30,8 @@ func NewService(
infraProviderConfigStore store.InfraProviderConfigStore,
factory infraprovider.Factory,
spaceStore store.SpaceStore,
) ProviderService {
return ProviderService{
) *Service {
return &Service{
tx: tx,
infraProviderResourceStore: infraProviderResourceStore,
infraProviderConfigStore: infraProviderConfigStore,
@ -40,7 +40,7 @@ func NewService(
}
}
type ProviderService struct {
type Service struct {
infraProviderResourceStore store.InfraProviderResourceStore
infraProviderConfigStore store.InfraProviderConfigStore
infraProviderFactory infraprovider.Factory
@ -48,7 +48,7 @@ type ProviderService struct {
tx dbtx.Transactor
}
func (c ProviderService) Find(
func (c *Service) Find(
ctx context.Context,
space *types.Space,
identifier string,
@ -66,18 +66,18 @@ func (c ProviderService) Find(
return infraProviderConfig, nil
}
func (c ProviderService) FindResourceByIdentifier(
func (c *Service) FindResourceByIdentifier(
ctx context.Context,
spaceID int64,
identifier string) (*types.InfraProviderResource, error) {
return c.infraProviderResourceStore.FindByIdentifier(ctx, spaceID, identifier)
}
func (c ProviderService) FindResource(ctx context.Context, id int64) (*types.InfraProviderResource, error) {
func (c *Service) FindResource(ctx context.Context, id int64) (*types.InfraProviderResource, error) {
return c.infraProviderResourceStore.Find(ctx, id)
}
func (c ProviderService) CreateInfraProvider(
func (c *Service) CreateInfraProvider(
ctx context.Context,
infraProviderConfig *types.InfraProviderConfig,
) error {

View File

@ -27,11 +27,11 @@ var WireSet = wire.NewSet(
)
func ProvideInfraProvider(
tx dbtx.Transactor,
infraProviderResourceStore store.InfraProviderResourceStore,
infraProviderConfigStore store.InfraProviderConfigStore,
infraProviderFactory infraprovider.Factory,
spaceStore store.SpaceStore,
tx dbtx.Transactor,
) ProviderService {
) *Service {
return NewService(tx, infraProviderResourceStore, infraProviderConfigStore, infraProviderFactory, spaceStore)
}

View File

@ -16,7 +16,9 @@ package services
import (
"github.com/harness/gitness/app/services/cleanup"
"github.com/harness/gitness/app/services/gitspace"
"github.com/harness/gitness/app/services/gitspaceevent"
"github.com/harness/gitness/app/services/infraprovider"
"github.com/harness/gitness/app/services/keywordsearch"
"github.com/harness/gitness/app/services/metric"
"github.com/harness/gitness/app/services/notification"
@ -45,6 +47,8 @@ type Services struct {
Notification *notification.Service
Keywordsearch *keywordsearch.Service
GitspaceEvent *gitspaceevent.Service
infraProvider *infraprovider.Service
gitspace *gitspace.Service
}
func ProvideServices(
@ -59,6 +63,8 @@ func ProvideServices(
notificationSvc *notification.Service,
keywordsearchSvc *keywordsearch.Service,
gitspaceEventSvc *gitspaceevent.Service,
infraProviderSvc *infraprovider.Service,
gitspaceSvc *gitspace.Service,
) Services {
return Services{
Webhook: webhooksSvc,
@ -72,5 +78,7 @@ func ProvideServices(
Notification: notificationSvc,
Keywordsearch: keywordsearchSvc,
GitspaceEvent: gitspaceEventSvc,
infraProvider: infraProviderSvc,
gitspace: gitspaceSvc,
}
}

View File

@ -65,9 +65,10 @@ import (
"github.com/harness/gitness/app/services/codecomments"
"github.com/harness/gitness/app/services/codeowners"
"github.com/harness/gitness/app/services/exporter"
gitspaceSvc "github.com/harness/gitness/app/services/gitspace"
"github.com/harness/gitness/app/services/gitspaceevent"
"github.com/harness/gitness/app/services/importer"
"github.com/harness/gitness/app/services/infraprovider"
infraproviderSvc "github.com/harness/gitness/app/services/infraprovider"
"github.com/harness/gitness/app/services/keywordsearch"
locker "github.com/harness/gitness/app/services/locker"
"github.com/harness/gitness/app/services/metric"
@ -142,7 +143,13 @@ func initSystem(ctx context.Context, config *types.Config) (*cliserver.System, e
system.WireSet,
authn.WireSet,
authz.WireSet,
infrastructure.WireSet,
infraproviderpkg.WireSet,
gitspaceevents.WireSet,
infraproviderCtrl.WireSet,
gitspaceCtrl.WireSet,
infraproviderSvc.WireSet,
gitspaceSvc.WireSet,
gitevents.WireSet,
pullreqevents.WireSet,
repoevents.WireSet,
@ -211,15 +218,10 @@ func initSystem(ctx context.Context, config *types.Config) (*cliserver.System, e
audit.WireSet,
ssh.WireSet,
publickey.WireSet,
infraprovider.WireSet,
migrate.WireSet,
gitspaceCtrl.WireSet,
infraproviderCtrl.WireSet,
infraproviderpkg.WireSet,
scm.WireSet,
orchestrator.WireSet,
containerorchestrator.WireSet,
infrastructure.WireSet,
cliserver.ProvideIDEVSCodeWebConfig,
cliserver.ProvideDockerConfig,
cliserver.ProvideGitspaceContainerOrchestratorConfig,

View File

@ -13,7 +13,7 @@ import (
"github.com/harness/gitness/app/api/controller/connector"
"github.com/harness/gitness/app/api/controller/execution"
"github.com/harness/gitness/app/api/controller/githook"
"github.com/harness/gitness/app/api/controller/gitspace"
gitspace2 "github.com/harness/gitness/app/api/controller/gitspace"
infraprovider3 "github.com/harness/gitness/app/api/controller/infraprovider"
keywordsearch2 "github.com/harness/gitness/app/api/controller/keywordsearch"
"github.com/harness/gitness/app/api/controller/limiter"
@ -64,6 +64,7 @@ import (
"github.com/harness/gitness/app/services/codecomments"
"github.com/harness/gitness/app/services/codeowners"
"github.com/harness/gitness/app/services/exporter"
"github.com/harness/gitness/app/services/gitspace"
"github.com/harness/gitness/app/services/gitspaceevent"
"github.com/harness/gitness/app/services/importer"
infraprovider2 "github.com/harness/gitness/app/services/infraprovider"
@ -245,7 +246,8 @@ func initSystem(ctx context.Context, config *types.Config) (*server.System, erro
}
gitspaceConfigStore := database.ProvideGitspaceConfigStore(db)
gitspaceInstanceStore := database.ProvideGitspaceInstanceStore(db)
spaceController := space.ProvideController(config, transactor, provider, streamer, spaceIdentifier, authorizer, spacePathStore, pipelineStore, secretStore, connectorStore, templateStore, spaceStore, repoStore, principalStore, repoController, membershipStore, repository, exporterRepository, resourceLimiter, publicaccessService, auditService, gitspaceConfigStore, gitspaceInstanceStore)
gitspaceService := gitspace.ProvideGitspace(transactor, gitspaceConfigStore, gitspaceInstanceStore, spaceStore)
spaceController := space.ProvideController(config, transactor, provider, streamer, spaceIdentifier, authorizer, spacePathStore, pipelineStore, secretStore, connectorStore, templateStore, spaceStore, repoStore, principalStore, repoController, membershipStore, repository, exporterRepository, resourceLimiter, publicaccessService, auditService, gitspaceService)
pipelineController := pipeline.ProvideController(repoStore, triggerStore, authorizer, pipelineStore)
secretController := secret.ProvideController(encrypter, secretStore, authorizer, spaceStore)
triggerController := trigger.ProvideController(authorizer, triggerStore, pipelineStore, repoStore)
@ -329,8 +331,8 @@ func initSystem(ctx context.Context, config *types.Config) (*server.System, erro
dockerClientFactory := infraprovider.ProvideDockerClientFactory(dockerConfig)
dockerProvider := infraprovider.ProvideDockerProvider(dockerConfig, dockerClientFactory)
factory := infraprovider.ProvideFactory(dockerProvider)
providerService := infraprovider2.ProvideInfraProvider(infraProviderResourceStore, infraProviderConfigStore, factory, spaceStore, transactor)
infraproviderController := infraprovider3.ProvideController(authorizer, spaceStore, providerService)
infraproviderService := infraprovider2.ProvideInfraProvider(transactor, infraProviderResourceStore, infraProviderConfigStore, factory, spaceStore)
infraproviderController := infraprovider3.ProvideController(authorizer, spaceStore, infraproviderService)
reporter3, err := events5.ProvideReporter(eventsSystem)
if err != nil {
return nil, err
@ -345,7 +347,7 @@ func initSystem(ctx context.Context, config *types.Config) (*server.System, erro
containerOrchestrator := container.ProvideEmbeddedDockerOrchestrator(dockerClientFactory, vsCode, vsCodeWeb, containerConfig, statefulLogger)
orchestratorOrchestrator := orchestrator.ProvideOrchestrator(scmSCM, infraProviderResourceStore, infraProvisioner, containerOrchestrator, reporter3)
gitspaceEventStore := database.ProvideGitspaceEventStore(db)
gitspaceController := gitspace.ProvideController(transactor, authorizer, providerService, gitspaceConfigStore, gitspaceInstanceStore, spaceStore, reporter3, orchestratorOrchestrator, gitspaceEventStore, statefulLogger, scmSCM)
gitspaceController := gitspace2.ProvideController(transactor, authorizer, infraproviderService, gitspaceConfigStore, gitspaceInstanceStore, spaceStore, reporter3, orchestratorOrchestrator, gitspaceEventStore, statefulLogger, scmSCM)
migrateController := migrate.ProvideController(authorizer, principalStore)
apiHandler := router.ProvideAPIHandler(ctx, config, authenticator, repoController, reposettingsController, executionController, logsController, spaceController, pipelineController, secretController, triggerController, connectorController, templateController, pluginController, pullreqController, webhookController, githookController, gitInterface, serviceaccountController, controller, principalController, checkController, systemController, uploadController, keywordsearchController, infraproviderController, gitspaceController, migrateController)
gitHandler := router.ProvideGitHandler(provider, authenticator, repoController)
@ -410,7 +412,7 @@ func initSystem(ctx context.Context, config *types.Config) (*server.System, erro
if err != nil {
return nil, err
}
servicesServices := services.ProvideServices(webhookService, pullreqService, triggerService, jobScheduler, collector, sizeCalculator, repoService, cleanupService, notificationService, keywordsearchService, gitspaceeventService)
servicesServices := services.ProvideServices(webhookService, pullreqService, triggerService, jobScheduler, collector, sizeCalculator, repoService, cleanupService, notificationService, keywordsearchService, gitspaceeventService, infraproviderService, gitspaceService)
serverSystem := server.NewSystem(bootstrapBootstrap, serverServer, sshServer, poller, resolverManager, servicesServices)
return serverSystem, nil
}