github.com/chenbh/concourse/v6@v6.4.2/skymarshal/skycmd/bitbucketcloud_flags.go (about) 1 package skycmd 2 3 import ( 4 "encoding/json" 5 "errors" 6 7 "github.com/concourse/dex/connector/bitbucketcloud" 8 "github.com/hashicorp/go-multierror" 9 ) 10 11 func init() { 12 RegisterConnector(&Connector{ 13 id: "bitbucket-cloud", 14 config: &BitbucketCloudFlags{}, 15 teamConfig: &BitbucketCloudTeamFlags{}, 16 }) 17 } 18 19 type BitbucketCloudFlags struct { 20 ClientID string `long:"client-id" description:"(Required) Client id"` 21 ClientSecret string `long:"client-secret" description:"(Required) Client secret"` 22 } 23 24 func (flag *BitbucketCloudFlags) Name() string { 25 return "Bitbucket Cloud" 26 } 27 28 func (flag *BitbucketCloudFlags) Validate() error { 29 var errs *multierror.Error 30 31 if flag.ClientID == "" { 32 errs = multierror.Append(errs, errors.New("Missing client-id")) 33 } 34 35 if flag.ClientSecret == "" { 36 errs = multierror.Append(errs, errors.New("Missing client-secret")) 37 } 38 39 return errs.ErrorOrNil() 40 } 41 42 func (flag *BitbucketCloudFlags) Serialize(redirectURI string) ([]byte, error) { 43 if err := flag.Validate(); err != nil { 44 return nil, err 45 } 46 47 return json.Marshal(bitbucketcloud.Config{ 48 ClientID: flag.ClientID, 49 ClientSecret: flag.ClientSecret, 50 RedirectURI: redirectURI, 51 }) 52 } 53 54 type BitbucketCloudTeamFlags struct { 55 Users []string `long:"user" description:"A whitelisted Bitbucket Cloud user" value-name:"USERNAME"` 56 Teams []string `long:"team" description:"A whitelisted Bitbucket Cloud team" value-name:"TEAM_NAME"` 57 } 58 59 func (flag *BitbucketCloudTeamFlags) GetUsers() []string { 60 return flag.Users 61 } 62 63 func (flag *BitbucketCloudTeamFlags) GetGroups() []string { 64 return flag.Teams 65 }