github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/application/applications/reconciling/config/auth/gitlab.go (about) 1 package auth 2 3 import ( 4 "github.com/caos/orbos/internal/operator/boom/api/latest/reconciling/auth/gitlab" 5 "github.com/caos/orbos/pkg/secret/read" 6 ) 7 8 type gitlabConnector struct { 9 ClientID string `yaml:"clientID,omitempty"` 10 ClientSecret string `yaml:"clientSecret,omitempty"` 11 RedirectURI string `yaml:"redirectURI,omitempty"` 12 BaseURL string `yaml:"baseURL,omitempty"` 13 Groups []string `yaml:"groups,omitempty"` 14 UseLoginAsID bool `yaml:"useLoginAsID,omitempty"` 15 } 16 17 func getGitlab(spec *gitlab.Connector, redirect string) (interface{}, error) { 18 clientID, err := read.GetSecretValueOnlyIncluster(spec.Config.ClientID, spec.Config.ExistingClientIDSecret) 19 if err != nil { 20 return nil, err 21 } 22 23 clientSecret, err := read.GetSecretValueOnlyIncluster(spec.Config.ClientSecret, spec.Config.ExistingClientSecretSecret) 24 if err != nil { 25 return nil, err 26 } 27 28 if clientID == "" || clientSecret == "" { 29 return nil, nil 30 } 31 32 var groups []string 33 if len(spec.Config.Groups) > 0 { 34 groups = make([]string, len(spec.Config.Groups)) 35 for k, v := range spec.Config.Groups { 36 groups[k] = v 37 } 38 } 39 40 gitlab := &gitlabConnector{ 41 ClientID: clientID, 42 ClientSecret: clientSecret, 43 RedirectURI: redirect, 44 Groups: groups, 45 UseLoginAsID: spec.Config.UseLoginAsID, 46 } 47 48 return gitlab, nil 49 }