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

View File

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

View File

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

View File

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

View File

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

View File

@ -20,7 +20,6 @@ import (
apiauth "github.com/harness/gitness/app/api/auth" apiauth "github.com/harness/gitness/app/api/auth"
"github.com/harness/gitness/app/auth" "github.com/harness/gitness/app/auth"
"github.com/harness/gitness/store/database/dbtx"
"github.com/harness/gitness/types" "github.com/harness/gitness/types"
"github.com/harness/gitness/types/enum" "github.com/harness/gitness/types/enum"
) )
@ -39,68 +38,5 @@ func (c *Controller) ListGitspaces(
if err != nil { if err != nil {
return nil, 0, fmt.Errorf("failed to authorize gitspace: %w", err) return nil, 0, fmt.Errorf("failed to authorize gitspace: %w", err)
} }
gitspaceFilter := &types.GitspaceFilter{ return c.gitspaceSvc.ListGitspacesForSpace(ctx, space, session.Principal.UID, filter)
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
} }

View File

@ -19,6 +19,7 @@ import (
"github.com/harness/gitness/app/api/controller/repo" "github.com/harness/gitness/app/api/controller/repo"
"github.com/harness/gitness/app/auth/authz" "github.com/harness/gitness/app/auth/authz"
"github.com/harness/gitness/app/services/exporter" "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/importer"
"github.com/harness/gitness/app/services/publicaccess" "github.com/harness/gitness/app/services/publicaccess"
"github.com/harness/gitness/app/sse" "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, spaceStore store.SpaceStore, repoStore store.RepoStore, principalStore store.PrincipalStore,
repoCtrl *repo.Controller, membershipStore store.MembershipStore, importer *importer.Repository, repoCtrl *repo.Controller, membershipStore store.MembershipStore, importer *importer.Repository,
exporter *exporter.Repository, limiter limiter.ResourceLimiter, publicAccess publicaccess.Service, 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 { ) *Controller {
return NewController(config, tx, urlProvider, sseStreamer, identifierCheck, authorizer, return NewController(config, tx, urlProvider, sseStreamer, identifierCheck, authorizer,
spacePathStore, pipelineStore, secretStore, spacePathStore, pipelineStore, secretStore,
@ -52,5 +53,5 @@ func ProvideController(config *types.Config, tx dbtx.Transactor, urlProvider url
spaceStore, repoStore, principalStore, spaceStore, repoStore, principalStore,
repoCtrl, membershipStore, importer, repoCtrl, membershipStore, importer,
exporter, limiter, publicAccess, 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, infraProviderConfigStore store.InfraProviderConfigStore,
factory infraprovider.Factory, factory infraprovider.Factory,
spaceStore store.SpaceStore, spaceStore store.SpaceStore,
) ProviderService { ) *Service {
return ProviderService{ return &Service{
tx: tx, tx: tx,
infraProviderResourceStore: infraProviderResourceStore, infraProviderResourceStore: infraProviderResourceStore,
infraProviderConfigStore: infraProviderConfigStore, infraProviderConfigStore: infraProviderConfigStore,
@ -40,7 +40,7 @@ func NewService(
} }
} }
type ProviderService struct { type Service struct {
infraProviderResourceStore store.InfraProviderResourceStore infraProviderResourceStore store.InfraProviderResourceStore
infraProviderConfigStore store.InfraProviderConfigStore infraProviderConfigStore store.InfraProviderConfigStore
infraProviderFactory infraprovider.Factory infraProviderFactory infraprovider.Factory
@ -48,7 +48,7 @@ type ProviderService struct {
tx dbtx.Transactor tx dbtx.Transactor
} }
func (c ProviderService) Find( func (c *Service) Find(
ctx context.Context, ctx context.Context,
space *types.Space, space *types.Space,
identifier string, identifier string,
@ -66,18 +66,18 @@ func (c ProviderService) Find(
return infraProviderConfig, nil return infraProviderConfig, nil
} }
func (c ProviderService) FindResourceByIdentifier( func (c *Service) FindResourceByIdentifier(
ctx context.Context, ctx context.Context,
spaceID int64, spaceID int64,
identifier string) (*types.InfraProviderResource, error) { identifier string) (*types.InfraProviderResource, error) {
return c.infraProviderResourceStore.FindByIdentifier(ctx, spaceID, identifier) 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) return c.infraProviderResourceStore.Find(ctx, id)
} }
func (c ProviderService) CreateInfraProvider( func (c *Service) CreateInfraProvider(
ctx context.Context, ctx context.Context,
infraProviderConfig *types.InfraProviderConfig, infraProviderConfig *types.InfraProviderConfig,
) error { ) error {

View File

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

View File

@ -16,7 +16,9 @@ package services
import ( import (
"github.com/harness/gitness/app/services/cleanup" "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/gitspaceevent"
"github.com/harness/gitness/app/services/infraprovider"
"github.com/harness/gitness/app/services/keywordsearch" "github.com/harness/gitness/app/services/keywordsearch"
"github.com/harness/gitness/app/services/metric" "github.com/harness/gitness/app/services/metric"
"github.com/harness/gitness/app/services/notification" "github.com/harness/gitness/app/services/notification"
@ -45,6 +47,8 @@ type Services struct {
Notification *notification.Service Notification *notification.Service
Keywordsearch *keywordsearch.Service Keywordsearch *keywordsearch.Service
GitspaceEvent *gitspaceevent.Service GitspaceEvent *gitspaceevent.Service
infraProvider *infraprovider.Service
gitspace *gitspace.Service
} }
func ProvideServices( func ProvideServices(
@ -59,6 +63,8 @@ func ProvideServices(
notificationSvc *notification.Service, notificationSvc *notification.Service,
keywordsearchSvc *keywordsearch.Service, keywordsearchSvc *keywordsearch.Service,
gitspaceEventSvc *gitspaceevent.Service, gitspaceEventSvc *gitspaceevent.Service,
infraProviderSvc *infraprovider.Service,
gitspaceSvc *gitspace.Service,
) Services { ) Services {
return Services{ return Services{
Webhook: webhooksSvc, Webhook: webhooksSvc,
@ -72,5 +78,7 @@ func ProvideServices(
Notification: notificationSvc, Notification: notificationSvc,
Keywordsearch: keywordsearchSvc, Keywordsearch: keywordsearchSvc,
GitspaceEvent: gitspaceEventSvc, 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/codecomments"
"github.com/harness/gitness/app/services/codeowners" "github.com/harness/gitness/app/services/codeowners"
"github.com/harness/gitness/app/services/exporter" "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/gitspaceevent"
"github.com/harness/gitness/app/services/importer" "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" "github.com/harness/gitness/app/services/keywordsearch"
locker "github.com/harness/gitness/app/services/locker" locker "github.com/harness/gitness/app/services/locker"
"github.com/harness/gitness/app/services/metric" "github.com/harness/gitness/app/services/metric"
@ -142,7 +143,13 @@ func initSystem(ctx context.Context, config *types.Config) (*cliserver.System, e
system.WireSet, system.WireSet,
authn.WireSet, authn.WireSet,
authz.WireSet, authz.WireSet,
infrastructure.WireSet,
infraproviderpkg.WireSet,
gitspaceevents.WireSet, gitspaceevents.WireSet,
infraproviderCtrl.WireSet,
gitspaceCtrl.WireSet,
infraproviderSvc.WireSet,
gitspaceSvc.WireSet,
gitevents.WireSet, gitevents.WireSet,
pullreqevents.WireSet, pullreqevents.WireSet,
repoevents.WireSet, repoevents.WireSet,
@ -211,15 +218,10 @@ func initSystem(ctx context.Context, config *types.Config) (*cliserver.System, e
audit.WireSet, audit.WireSet,
ssh.WireSet, ssh.WireSet,
publickey.WireSet, publickey.WireSet,
infraprovider.WireSet,
migrate.WireSet, migrate.WireSet,
gitspaceCtrl.WireSet,
infraproviderCtrl.WireSet,
infraproviderpkg.WireSet,
scm.WireSet, scm.WireSet,
orchestrator.WireSet, orchestrator.WireSet,
containerorchestrator.WireSet, containerorchestrator.WireSet,
infrastructure.WireSet,
cliserver.ProvideIDEVSCodeWebConfig, cliserver.ProvideIDEVSCodeWebConfig,
cliserver.ProvideDockerConfig, cliserver.ProvideDockerConfig,
cliserver.ProvideGitspaceContainerOrchestratorConfig, cliserver.ProvideGitspaceContainerOrchestratorConfig,

View File

@ -13,7 +13,7 @@ import (
"github.com/harness/gitness/app/api/controller/connector" "github.com/harness/gitness/app/api/controller/connector"
"github.com/harness/gitness/app/api/controller/execution" "github.com/harness/gitness/app/api/controller/execution"
"github.com/harness/gitness/app/api/controller/githook" "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" infraprovider3 "github.com/harness/gitness/app/api/controller/infraprovider"
keywordsearch2 "github.com/harness/gitness/app/api/controller/keywordsearch" keywordsearch2 "github.com/harness/gitness/app/api/controller/keywordsearch"
"github.com/harness/gitness/app/api/controller/limiter" "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/codecomments"
"github.com/harness/gitness/app/services/codeowners" "github.com/harness/gitness/app/services/codeowners"
"github.com/harness/gitness/app/services/exporter" "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/gitspaceevent"
"github.com/harness/gitness/app/services/importer" "github.com/harness/gitness/app/services/importer"
infraprovider2 "github.com/harness/gitness/app/services/infraprovider" 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) gitspaceConfigStore := database.ProvideGitspaceConfigStore(db)
gitspaceInstanceStore := database.ProvideGitspaceInstanceStore(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) pipelineController := pipeline.ProvideController(repoStore, triggerStore, authorizer, pipelineStore)
secretController := secret.ProvideController(encrypter, secretStore, authorizer, spaceStore) secretController := secret.ProvideController(encrypter, secretStore, authorizer, spaceStore)
triggerController := trigger.ProvideController(authorizer, triggerStore, pipelineStore, repoStore) 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) dockerClientFactory := infraprovider.ProvideDockerClientFactory(dockerConfig)
dockerProvider := infraprovider.ProvideDockerProvider(dockerConfig, dockerClientFactory) dockerProvider := infraprovider.ProvideDockerProvider(dockerConfig, dockerClientFactory)
factory := infraprovider.ProvideFactory(dockerProvider) factory := infraprovider.ProvideFactory(dockerProvider)
providerService := infraprovider2.ProvideInfraProvider(infraProviderResourceStore, infraProviderConfigStore, factory, spaceStore, transactor) infraproviderService := infraprovider2.ProvideInfraProvider(transactor, infraProviderResourceStore, infraProviderConfigStore, factory, spaceStore)
infraproviderController := infraprovider3.ProvideController(authorizer, spaceStore, providerService) infraproviderController := infraprovider3.ProvideController(authorizer, spaceStore, infraproviderService)
reporter3, err := events5.ProvideReporter(eventsSystem) reporter3, err := events5.ProvideReporter(eventsSystem)
if err != nil { if err != nil {
return nil, err 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) containerOrchestrator := container.ProvideEmbeddedDockerOrchestrator(dockerClientFactory, vsCode, vsCodeWeb, containerConfig, statefulLogger)
orchestratorOrchestrator := orchestrator.ProvideOrchestrator(scmSCM, infraProviderResourceStore, infraProvisioner, containerOrchestrator, reporter3) orchestratorOrchestrator := orchestrator.ProvideOrchestrator(scmSCM, infraProviderResourceStore, infraProvisioner, containerOrchestrator, reporter3)
gitspaceEventStore := database.ProvideGitspaceEventStore(db) 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) 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) 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) gitHandler := router.ProvideGitHandler(provider, authenticator, repoController)
@ -410,7 +412,7 @@ func initSystem(ctx context.Context, config *types.Config) (*server.System, erro
if err != nil { if err != nil {
return nil, err 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) serverSystem := server.NewSystem(bootstrapBootstrap, serverServer, sshServer, poller, resolverManager, servicesServices)
return serverSystem, nil return serverSystem, nil
} }