Skip to content

Instantly share code, notes, and snippets.

@thomaspoignant
Created August 1, 2024 09:53
Show Gist options
  • Save thomaspoignant/910a8cab876f92649d234c6a5659dab3 to your computer and use it in GitHub Desktop.
Save thomaspoignant/910a8cab876f92649d234c6a5659dab3 to your computer and use it in GitHub Desktop.
package main
import (
"context"
"fmt"
"github.com/google/go-github/v63/github"
"os"
"strings"
)
func main() {
token := os.Getenv("GITHUB_TOKEN")
client := github.NewClient(nil)
client = client.WithAuthToken(token)
opt := &github.ListOptions{PerPage: 100}
var allStargazers []*github.Stargazer
progress := 0
for {
stargazers, resp, err := client.Activity.ListStargazers(context.TODO(), "thomaspoignant", "go-feature-flag", opt)
if err != nil {
fmt.Println(err)
return
}
allStargazers = append(allStargazers, stargazers...)
progress += len(stargazers)
fmt.Println("star retrieved:", progress)
if resp.NextPage == 0 {
break
}
opt.Page = resp.NextPage
}
output := ""
for _, stargazer := range allStargazers {
user, _, err := client.Users.Get(context.TODO(), stargazer.User.GetLogin())
if err != nil {
fmt.Println(err)
continue
}
output += fmt.Sprintf("%s%s", strings.Join([]string{user.GetLogin(), user.GetCompany(), user.GetName(), user.GetEmail(), user.GetLocation(), user.GetType()}, ",")+"\n")
}
_ = os.WriteFile("stargazers.csv", []byte(output), 0644)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment