Merge key fetcher #6

Merged
zeridon merged 15 commits from master into master 2019-07-29 14:19:52 +03:00
1 changed files with 67 additions and 62 deletions
Showing only changes of commit 4724952c61 - Show all commits

View File

@ -55,69 +55,8 @@ func main() {
client := github.NewClient(tc)
var targetTeam *github.Team
var teamMembers []*string
for nextPage := 0; ; {
// list all teams for the specified org
opt := &github.ListOptions{nextPage, 50}
teams, rsp, err := client.Teams.ListTeams(ctx, *ghOrganization, opt)
if err != nil {
fmt.Println("client.ListTeams error: ", err)
os.Exit(-1)
}
if rsp == nil {
fmt.Println("client.ListTeams returned empty response: ", err)
}
for _, team := range teams {
if *team.Name == *ghTeam {
targetTeam = team
break
}
}
if rsp.NextPage == 0 || nextPage == rsp.NextPage {
break
}
nextPage = rsp.NextPage
}
if targetTeam == nil {
fmt.Println(*ghTeam , " team not found in ", *ghOrganization)
os.Exit(2)
}
for nextPage := 0; ; {
// list all members for the given organization's team
opt := &github.TeamListTeamMembersOptions{
Role: "all",
ListOptions: github.ListOptions{nextPage, 50},
}
users, rsp, err := client.Teams.ListTeamMembers(context.Background(), *targetTeam.ID, opt)
if err != nil {
fmt.Println("client.Teams.ListTeamMembers ", err)
os.Exit(-1)
}
if rsp == nil {
fmt.Println("client.Teams.ListTeamMembers: ", err)
}
for _, user := range users {
teamMembers = append(teamMembers, user.Login)
}
if rsp.NextPage == 0 || nextPage == rsp.NextPage {
break
}
nextPage = rsp.NextPage
}
teamMembers := fetchUsers(client, ghOrganization, ghTeam)
for _, user := range teamMembers {
if *quiet == false {
fmt.Println("Fetching keys for ", *user)
@ -164,3 +103,69 @@ func main() {
os.Exit(0)
}
func fetchUsers(client *github.Client, org *string, team *string) (teamMembers []*string) {
var targetTeam *github.Team
for nextPage := 0; ; {
// list all teams for the specified org
opt := &github.ListOptions{nextPage, 50}
teams, rsp, err := client.Teams.ListTeams(context.Background(), *org, opt)
if err != nil {
fmt.Println("client.ListTeams error: ", err)
os.Exit(-1)
}
if rsp == nil {
fmt.Println("client.ListTeams returned empty response: ", err)
}
for _, ghTeam := range teams {
if *ghTeam.Name == *team {
targetTeam = ghTeam
break
}
}
if rsp.NextPage == 0 || nextPage == rsp.NextPage {
break
}
nextPage = rsp.NextPage
}
if targetTeam == nil {
fmt.Println(*team , " team not found in ", *org)
os.Exit(2)
}
for nextPage := 0; ; {
// list all members for the given organization's team
opt := &github.TeamListTeamMembersOptions{
Role: "all",
ListOptions: github.ListOptions{nextPage, 50},
}
users, rsp, err := client.Teams.ListTeamMembers(context.Background(), *targetTeam.ID, opt)
if err != nil {
fmt.Println("client.Teams.ListTeamMembers ", err)
os.Exit(-1)
}
if rsp == nil {
fmt.Println("client.Teams.ListTeamMembers: ", err)
}
for _, user := range users {
teamMembers = append(teamMembers, user.Login)
}
if rsp.NextPage == 0 || nextPage == rsp.NextPage {
break
}
nextPage = rsp.NextPage
}
return teamMembers
}