Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions modules/team/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ No modules.
| Name | Type |
|------|------|
| [github_team.team](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team) | resource |
| [github_team_membership.maintainers](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team_membership) | resource |
| [github_team_membership.members](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team_membership) | resource |
| [github_team_membership.memberships](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team_membership) | resource |

## Inputs

Expand Down
21 changes: 10 additions & 11 deletions modules/team/members.tf
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
locals {
team_id = local.create_team ? github_team.team[0].id : var.team_id

# Combine team_maintainers and team_members into a single map with respective roles
memberships = merge(
{ for username in var.team_maintainers : username => "maintainer" },
{ for username in var.team_members : username => "member" }
)
Comment thread
vedantthapa marked this conversation as resolved.
}

resource "github_team_membership" "maintainers" {
for_each = toset(var.team_maintainers)
resource "github_team_membership" "memberships" {
for_each = local.memberships
team_id = local.team_id
username = each.value
role = "maintainer"
}

resource "github_team_membership" "members" {
for_each = toset(var.team_members)
team_id = local.team_id
username = each.value
role = "member"
username = each.key
role = each.value
}
24 changes: 12 additions & 12 deletions modules/team/team.tftest.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -16,31 +16,31 @@ run "team_test" {
command = apply

assert {
condition = github_team_membership.maintainers[var.team_maintainers[0]].team_id == var.team_id
error_message = "The maintainer's team id is incorrect. Expected: ${var.team_id}, Actual: ${github_team_membership.maintainers[var.team_maintainers[0]].team_id}"
condition = github_team_membership.memberships[var.team_maintainers[0]].team_id == var.team_id
error_message = "The maintainer's team id is incorrect. Expected: ${var.team_id}, Actual: ${github_team_membership.memberships[var.team_maintainers[0]].team_id}"
}
assert {
condition = github_team_membership.maintainers[var.team_maintainers[0]].username == var.team_maintainers[0]
error_message = "The maintainer's username is incorrect. Expected: ${var.team_maintainers[0]}, Actual: ${github_team_membership.maintainers[var.team_maintainers[0]].username}"
condition = github_team_membership.memberships[var.team_maintainers[0]].username == var.team_maintainers[0]
error_message = "The maintainer's username is incorrect. Expected: ${var.team_maintainers[0]}, Actual: ${github_team_membership.memberships[var.team_maintainers[0]].username}"
}
assert {
condition = github_team_membership.maintainers[var.team_maintainers[0]].role == "maintainer"
error_message = "The maintainer's role is incorrect. Expected: maintainer, Actual: ${github_team_membership.maintainers[var.team_maintainers[0]].role}"
condition = github_team_membership.memberships[var.team_maintainers[0]].role == "maintainer"
error_message = "The maintainer's role is incorrect. Expected: maintainer, Actual: ${github_team_membership.memberships[var.team_maintainers[0]].role}"
}
}

run "team_member_test" {
assert {
condition = github_team_membership.members[var.team_members[0]].team_id == var.team_id
error_message = "The member's team id is incorrect. Expected: ${var.team_id}, Actual: ${github_team_membership.members[var.team_members[0]].team_id}"
condition = github_team_membership.memberships[var.team_members[0]].team_id == var.team_id
error_message = "The member's team id is incorrect. Expected: ${var.team_id}, Actual: ${github_team_membership.memberships[var.team_members[0]].team_id}"
}
assert {
condition = github_team_membership.members[var.team_members[0]].username == var.team_members[0]
error_message = "The member's username is incorrect. Expected: ${var.team_members[0]}, Actual: ${github_team_membership.members[var.team_members[0]].username}"
condition = github_team_membership.memberships[var.team_members[0]].username == var.team_members[0]
error_message = "The member's username is incorrect. Expected: ${var.team_members[0]}, Actual: ${github_team_membership.memberships[var.team_members[0]].username}"
}
assert {
condition = github_team_membership.members[var.team_members[0]].role == "member"
error_message = "The member's role is incorrect. Expected: member, Actual: ${github_team_membership.members[var.team_members[0]].role}"
condition = github_team_membership.memberships[var.team_members[0]].role == "member"
error_message = "The member's role is incorrect. Expected: member, Actual: ${github_team_membership.memberships[var.team_members[0]].role}"
}

}