github.com/vtorhonen/terraform@v0.9.0-beta2.0.20170307220345-5d894e4ffda7/builtin/providers/github/config.go (about)

     1  package github
     2  
     3  import (
     4  	"net/url"
     5  
     6  	"github.com/google/go-github/github"
     7  	"golang.org/x/oauth2"
     8  )
     9  
    10  type Config struct {
    11  	Token        string
    12  	Organization string
    13  	BaseURL      string
    14  }
    15  
    16  type Organization struct {
    17  	name   string
    18  	client *github.Client
    19  }
    20  
    21  // Client configures and returns a fully initialized GithubClient
    22  func (c *Config) Client() (interface{}, error) {
    23  	var org Organization
    24  	org.name = c.Organization
    25  	ts := oauth2.StaticTokenSource(
    26  		&oauth2.Token{AccessToken: c.Token},
    27  	)
    28  	tc := oauth2.NewClient(oauth2.NoContext, ts)
    29  
    30  	org.client = github.NewClient(tc)
    31  	if c.BaseURL != "" {
    32  		u, err := url.Parse(c.BaseURL)
    33  		if err != nil {
    34  			return nil, err
    35  		}
    36  		org.client.BaseURL = u
    37  	}
    38  	return &org, nil
    39  }