Provisioning: Configurable Repository Types in monolith and operators (#110822)
* Configurable repository types in monolith and operator * Default to Github in operators * Regenerate wire * Fix and implement unit tests * Same types for enterprise tests * Remove unnecessary conversion * Remove the issue with import cycles
This commit is contained in:
committed by
GitHub
parent
3f4c523ef5
commit
acbc2cf01a
@@ -1,7 +1,9 @@
|
||||
package extras
|
||||
|
||||
import (
|
||||
apisprovisioning "github.com/grafana/grafana/apps/provisioning/pkg/apis/provisioning/v0alpha1"
|
||||
"github.com/grafana/grafana/apps/provisioning/pkg/repository"
|
||||
"github.com/grafana/grafana/apps/provisioning/pkg/repository/git"
|
||||
"github.com/grafana/grafana/apps/provisioning/pkg/repository/github"
|
||||
"github.com/grafana/grafana/apps/provisioning/pkg/repository/local"
|
||||
"github.com/grafana/grafana/apps/secret/pkg/decrypt"
|
||||
@@ -25,13 +27,15 @@ func ProvideProvisioningOSSRepositoryExtras(
|
||||
ghFactory *github.Factory,
|
||||
webhooksBuilder *webhooks.WebhookExtraBuilder,
|
||||
) []repository.Extra {
|
||||
decrypter := repository.ProvideDecrypter(decryptSvc)
|
||||
return []repository.Extra{
|
||||
local.Extra(
|
||||
cfg.HomePath,
|
||||
cfg.PermittedProvisioningPaths,
|
||||
),
|
||||
git.Extra(decrypter),
|
||||
github.Extra(
|
||||
repository.ProvideDecrypter(decryptSvc),
|
||||
decrypter,
|
||||
ghFactory,
|
||||
webhooksBuilder,
|
||||
),
|
||||
@@ -41,3 +45,12 @@ func ProvideProvisioningOSSRepositoryExtras(
|
||||
func ProvideExtraWorkers(pullRequestWorker *pullrequest.PullRequestWorker) []jobs.Worker {
|
||||
return []jobs.Worker{pullRequestWorker}
|
||||
}
|
||||
|
||||
func ProvideFactoryFromConfig(cfg *setting.Cfg, extras []repository.Extra) (repository.Factory, error) {
|
||||
enabledTypes := make(map[apisprovisioning.RepositoryType]struct{}, len(cfg.ProvisioningRepositoryTypes))
|
||||
for _, e := range cfg.ProvisioningRepositoryTypes {
|
||||
enabledTypes[apisprovisioning.RepositoryType(e)] = struct{}{}
|
||||
}
|
||||
|
||||
return repository.ProvideFactory(enabledTypes, extras)
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package apiregistry
|
||||
import (
|
||||
"github.com/google/wire"
|
||||
|
||||
"github.com/grafana/grafana/apps/provisioning/pkg/repository"
|
||||
dashboardinternal "github.com/grafana/grafana/pkg/registry/apis/dashboard"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/dashboardsnapshot"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/datasource"
|
||||
@@ -32,9 +31,9 @@ var WireSetExts = wire.NewSet(
|
||||
)
|
||||
|
||||
var provisioningExtras = wire.NewSet(
|
||||
repository.ProvideFactory,
|
||||
pullrequest.ProvidePullRequestWorker,
|
||||
webhooks.ProvideWebhooksWithImages,
|
||||
extras.ProvideFactoryFromConfig,
|
||||
extras.ProvideProvisioningExtraAPIs,
|
||||
extras.ProvideExtraWorkers,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user