コード例 #1
0
ファイル: example.go プロジェクト: Ziaun9/go-octokit
func main() {
	client := octokit.NewClient(nil)
	userURL := &octokit.UserURL

	fmt.Println("Printing GitHub users for the first 5 pages")
	for i := 0; i < 5; i++ {
		if userURL == nil {
			return
		}

		url, err := userURL.Expand(nil)
		if err != nil {
			fmt.Printf("error: %s\n", err)
			return
		}

		users, result := client.Users(url).All()
		if result.HasError() {
			fmt.Println(result)
			return
		}

		for _, user := range users {
			fmt.Printf("%v - %s\n", user.ID, user.Login)
		}

		userURL = result.NextPage
	}
}
コード例 #2
0
ファイル: github.go プロジェクト: johnbellone/gh
func (gh *GitHub) octokit() *octokit.Client {
	config := gh.Config
	config.FetchCredentials()
	tokenAuth := octokit.TokenAuth{AccessToken: config.Token}

	return octokit.NewClient(tokenAuth)
}
コード例 #3
0
ファイル: common.go プロジェクト: oujianshen/github-ranking
func requestUsers(path string, a ...interface{}) ([]octokit.User, error) {
	var users []octokit.User
	var result *octokit.Result

	uri := fmt.Sprintf(fmt.Sprintf("https://api.github.com%s", path), a...)
	api, err := url.Parse(uri)
	if err != nil {
		log.Println(err)
		return []octokit.User{}, err
	}

	for i := 0; i < maxRetrial; i++ {
		token := selectToken()
		client := octokit.NewClient(octokit.TokenAuth{token})
		users, result = client.Users(api).All()
		if !result.HasError() {
			return users, nil
		}

		if IsNotFound(result.Err) {
			return []octokit.User{}, result.Err
		}
		if isBadCredentials(result.Err) {
			log.Println(result.Err)
			removeToken(token)
		}
		time.Sleep(5 * time.Second)
	}
	log.Println(uri)
	log.Println(result.Err)
	return users, result.Err
}
コード例 #4
0
ファイル: github.go プロジェクト: pombredanne/octostats
func NewGitHubRepository(c *config.GitHubConfig) (repository.Repository, error) {
	token, err := githubAuthToken(c)
	if err != nil {
		return nil, err
	}
	ghClient := octokit.NewClient(&octokit.TokenAuth{AccessToken: token})

	owner, name, err := parseRepository(c.Repository)
	if err != nil {
		return nil, err
	}
	return &GitHubRepository{Owner: owner, Name: name, client: ghClient}, nil
}
コード例 #5
0
ファイル: updates.go プロジェクト: captainjack2803/mysqlweb
func checkForUpdate(currVer string) *Update {
	githubClient := octokit.NewClient(nil)
	releaseURL, err := octokit.ReleasesURL.Expand(octokit.M{"owner": "smurfpandey", "repo": "mysqlweb"})

	if err != nil {
		return nil
	}

	releases, result := githubClient.Releases(releaseURL).All()
	if result.HasError() {
		return nil
	}

	latestRelease := releases[0]

	isNew := compareVersion(currVer, latestRelease.TagName)

	if isNew == 0 || isNew == -1 {
		return nil
	}

	//We got a new release
	//Better inform the user

	//But let's make sure its not a Draft
	if latestRelease.Draft {
		return nil
	}

	update := Update{
		Version:     latestRelease.TagName,
		ReleaseURL:  latestRelease.HTMLURL,
		Name:        latestRelease.Name,
		PreRelease:  latestRelease.Prerelease,
		PublishedAt: latestRelease.PublishedAt,
		Body:        latestRelease.Body,
	}

	return &update

}
コード例 #6
0
ファイル: github.go プロジェクト: johnbellone/gh
func findOrCreateToken(user, password, twoFactorCode string) (token string, err error) {
	basicAuth := octokit.BasicAuth{Login: user, Password: password, OneTimePassword: twoFactorCode}
	client := octokit.NewClient(basicAuth)
	authsService, err := client.Authorizations(nil, nil)
	if err != nil {
		return
	}

	auths, result := authsService.GetAll()
	if result.HasError() {
		err = result.Err
		return
	}

	for _, auth := range auths {
		if auth.NoteURL == OAuthAppURL {
			token = auth.Token
			break
		}
	}

	if token == "" {
		authParam := octokit.AuthorizationParams{}
		authParam.Scopes = append(authParam.Scopes, "repo")
		authParam.Note = "gh"
		authParam.NoteURL = OAuthAppURL

		auth, result := authsService.Create(authParam)
		if result.HasError() {
			err = result.Err
			return
		}

		token = auth.Token
	}

	return
}
コード例 #7
0
ファイル: github_fetcher.go プロジェクト: efuller/flint
func NewGitHubFetcherWithToken(token string) *GitHubFetcher {
	client := octokit.NewClient(&octokit.TokenAuth{AccessToken: token})

	return &GitHubFetcher{client}
}
コード例 #8
0
ファイル: github_fetcher.go プロジェクト: efuller/flint
func NewGitHubFetcher() *GitHubFetcher {
	client := octokit.NewClient(nil)

	return &GitHubFetcher{client}
}