예제 #1
0
파일: github.go 프로젝트: rjz/hubbub
func GithubServiceFactory(facts *hubbub.Facts) (*hubbub.Service, error) {
	if !facts.IsAvailable("github.access_token") {
		return nil, errors.New("no github access token available")
	}

	ts := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: facts.GetString("github.access_token")})
	oc := oauth2.NewClient(oauth2.NoContext, ts)
	gs := GithubService{github.NewClient(oc), nil, nil, facts.GetString("repo.owner"), facts.GetString("repo.name")}

	svc := hubbub.Service(&gs)
	return &svc, nil
}
예제 #2
0
파일: travis.go 프로젝트: rjz/hubbub
// Construct an instance of TravisService configured for the given facts
//
// Attempts to configure for either travis.org, or--failing that--for travis
// pro / travis.com.
func TravisServiceFactory(facts *hubbub.Facts) (*hubbub.Service, error) {

	ts := TravisService{}
	owner := facts.GetString("repo.owner")
	name := facts.GetString("repo.name")

	// try travis.com (travis pro)
	if facts.IsAvailable(PRO) && configureClient(&ts, travis.NewProClient(hubbub.String(facts.GetString(PRO))), owner, name) {
		svc := hubbub.Service(&ts)
		return &svc, nil
	}

	// try travis.org
	if facts.IsAvailable(ORG) && configureClient(&ts, travis.NewClient(hubbub.String(facts.GetString(ORG))), owner, name) {
		svc := hubbub.Service(&ts)
		return &svc, nil
	}

	return nil, errors.New("Failed to configure Travis client")
}