Skip to content

Commit

Permalink
Include repositories Info associated to the Teams
Browse files Browse the repository at this point in the history
  • Loading branch information
jbenaventem authored May 18, 2021
1 parent c561ff4 commit 247d826
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 1 deletion.
15 changes: 15 additions & 0 deletions github/data_source_github_organization_teams.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ func dataSourceGithubOrganizationTeams() *schema.Resource {
Computed: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"repositories": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
},
},
},
Expand Down Expand Up @@ -127,6 +132,16 @@ func flattenGitHubTeams(tq TeamsQuery) []interface{} {

t["members"] = flatMembers

repositories := team.Repositories.Nodes

flatRepositories := make([]string, len(repositories))

for i, repository := range repositories {
flatRepositories[i] = string(repository.Name)
}

t["repositories"] = flatRepositories

flatTeams[i] = t
}

Expand Down
26 changes: 25 additions & 1 deletion github/data_source_github_team.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@ package github

import (
"context"
"github.com/google/go-github/v35/github"
"log"
"strconv"

"github.com/google/go-github/v35/github"

"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
)

Expand Down Expand Up @@ -39,6 +40,11 @@ func dataSourceGithubTeam() *schema.Resource {
Computed: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"repositories": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"node_id": {
Type: schema.TypeString,
Computed: true,
Expand Down Expand Up @@ -83,9 +89,27 @@ func dataSourceGithubTeamRead(d *schema.ResourceData, meta interface{}) error {
options.Page = resp.NextPage
}

var repositories []string
for {
repository, resp, err := client.Teams.ListTeamReposByID(ctx, orgId, team.GetID(), &options.ListOptions)
if err != nil {
return err
}

for _, v := range repository {
repositories = append(repositories, v.GetName())
}

if resp.NextPage == 0 {
break
}
options.Page = resp.NextPage
}

d.SetId(strconv.FormatInt(team.GetID(), 10))
d.Set("name", team.GetName())
d.Set("members", members)
d.Set("repositories", repositories)
d.Set("description", team.GetDescription())
d.Set("privacy", team.GetPrivacy())
d.Set("permission", team.GetPermission())
Expand Down
5 changes: 5 additions & 0 deletions github/util_v4_teams.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ type TeamsQuery struct {
Login githubv4.String
}
}
Repositories struct {
Nodes []struct {
Name githubv4.String
}
}
}
PageInfo PageInfo
} `graphql:"teams(first:$first, after:$cursor, rootTeamsOnly:$rootTeamsOnly)"`
Expand Down

0 comments on commit 247d826

Please sign in to comment.