* WIP: mutator added, start working on validator * first validator iteration * second validator iteration * wip: working on integration tests * re-working mutation and validation, using Connection interface * fixing some rebase things * fixing integration tests * formatting * fixing unit tests * k8s codegen * linting * moving tests which are available only for enterprise * addressing comments: using repo config for connections, updating tests * addressing comments: adding some more info in the app and installation * fixing app data * addressing comments: updating connection implementation * addressing comments * formatting * fixing tests
37 lines
871 B
Go
37 lines
871 B
Go
package github
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/grafana/grafana-app-sdk/logging"
|
|
provisioning "github.com/grafana/grafana/apps/provisioning/pkg/apis/provisioning/v0alpha1"
|
|
"github.com/grafana/grafana/apps/provisioning/pkg/connection"
|
|
)
|
|
|
|
type extra struct {
|
|
factory GithubFactory
|
|
}
|
|
|
|
func (e *extra) Type() provisioning.ConnectionType {
|
|
return provisioning.GithubConnectionType
|
|
}
|
|
|
|
func (e *extra) Build(ctx context.Context, connection *provisioning.Connection) (connection.Connection, error) {
|
|
logger := logging.FromContext(ctx)
|
|
if connection == nil || connection.Spec.GitHub == nil {
|
|
logger.Error("connection is nil or github info is nil")
|
|
|
|
return nil, fmt.Errorf("invalid github connection")
|
|
}
|
|
|
|
c := NewConnection(connection, e.factory)
|
|
return &c, nil
|
|
}
|
|
|
|
func Extra(factory GithubFactory) connection.Extra {
|
|
return &extra{
|
|
factory: factory,
|
|
}
|
|
}
|