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  }