/
githubmirror
/
grafana
Обзор
Документация
Войти
/
githubmirror
/
grafana
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
apps/provisioning/pkg/connection/github/extra.go
71 строка
2 KB
Roberto Jiménez Sánchez
Provisioning: add Validate to Extra interfaces and move connection runtime validation to controller health checks (#116395)
16 янв 2026, 18:52
Не верифицирован
16 янв 2026, 18:52
8e610d4
Код
Авторство
О чём код?
package github import ( "context" "fmt" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" "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 decrypter connection.Decrypter } func (e *extra) Type() provisioning.ConnectionType { return provisioning.GithubConnectionType } func (e *extra) Build(ctx context.Context, conn *provisioning.Connection) (connection.Connection, error) { logger := logging.FromContext(ctx) if conn == nil || conn.Spec.GitHub == nil { logger.Error("connection is nil or github info is nil") return nil, fmt.Errorf("invalid github connection") } // Decrypt secure values secure := e.decrypter(conn) // Decrypt private key pKey, err := secure.PrivateKey(ctx) if err != nil { logger.Error("Failed to decrypt private key", "error", err) return nil, err } // Decrypt token t, err := secure.Token(ctx) if err != nil { logger.Error("Failed to decrypt token", "error", err) return nil, err } c := NewConnection(conn, e.factory, ConnectionSecrets{ PrivateKey: pKey, Token: t, }) return &c, nil } func (e *extra) Mutate(ctx context.Context, obj runtime.Object) error { return Mutate(ctx, obj) } func (e *extra) Validate(ctx context.Context, obj runtime.Object) field.ErrorList { return Validate(ctx, obj) } func Extra(decrypter connection.Decrypter, factory GithubFactory) connection.Extra { return &extra{ decrypter: decrypter, factory: factory, } }