{"id":20656318,"url":"https://github.com/flaconi/terraform-github-team","last_synced_at":"2026-04-22T02:31:16.928Z","repository":{"id":38245946,"uuid":"447267199","full_name":"Flaconi/terraform-github-team","owner":"Flaconi","description":"Terraform module to create an arbitrary number of GitHub teams (including child teams)","archived":false,"fork":false,"pushed_at":"2024-12-17T11:47:15.000Z","size":69,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-09T22:47:59.597Z","etag":null,"topics":["github","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Flaconi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-12T15:20:08.000Z","updated_at":"2024-12-17T11:46:59.000Z","dependencies_parsed_at":"2024-12-17T12:37:04.979Z","dependency_job_id":null,"html_url":"https://github.com/Flaconi/terraform-github-team","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/Flaconi/terraform-github-team","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flaconi%2Fterraform-github-team","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flaconi%2Fterraform-github-team/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flaconi%2Fterraform-github-team/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flaconi%2Fterraform-github-team/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Flaconi","download_url":"https://codeload.github.com/Flaconi/terraform-github-team/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flaconi%2Fterraform-github-team/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32118063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T00:31:26.853Z","status":"online","status_checked_at":"2026-04-22T02:00:05.693Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github","terraform","terraform-module"],"created_at":"2024-11-16T18:14:47.851Z","updated_at":"2026-04-22T02:31:16.914Z","avatar_url":"https://github.com/Flaconi.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terraform GitHub Teams module\n\nTerraform module to create GitHub teams and team memberships.\n\n[![lint](https://github.com/flaconi/terraform-github-team/workflows/lint/badge.svg)](https://github.com/flaconi/terraform-github-team/actions?query=workflow%3Alint)\n[![test](https://github.com/flaconi/terraform-github-team/workflows/test/badge.svg)](https://github.com/flaconi/terraform-github-team/actions?query=workflow%3Atest)\n[![Tag](https://img.shields.io/github/tag/flaconi/terraform-github-team.svg)](https://github.com/flaconi/terraform-github-team/releases)\n[![Terraform](https://img.shields.io/badge/Terraform--registry-github--team-brightgreen.svg)](https://registry.terraform.io/modules/Flaconi/team/github/)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\nThis module ships with a root module that allows you to create a list of teams (including child teams) and their corresponding association.\nYou can however also just use the bundled sub-modules and wrap your own root module around.\n\n\n## Important notice\n\nThe following must be taken into consideration for initial creation or on re-creation (update operations are not affected):\n\n1. This module will not work when using `terraform apply -parallelism=1`. It must be run in parallel (as is by default).\n2. When you have a lot of teams (\u003e50) including multiple nesting levels (\u003e2), it is strongly advised to bump parallelism to a higher value: `terraform apply -parallelism=50` to avoid child teams not being able to find parents.\n3. If an increase in parallelism still does not help, you should first define and apply parent teams and then continue with each level. Alternatively you can apply multiple times until it will eventually succeed.\n\n:warning: This module uses a [fork](https://github.com/Flaconi/terraform-provider-github) of official Terraform GitHub provider.\n\n\n## Features\n\nThis module provides the following features without having to re-create teams in a single run as it is able to handle parent/child dependencies automatically:\n\n* Create stand-alone teams\n* Create nested teams\n* Add member association\n* Allows for moving teams up/down a level teams\n* Allow for changing team names\n\n\n## Safe usage\n\nThe following has been extensively tested with this module\n\n1. terraform apply from scratch\n2. terraform destroy\n3. terraform apply with a stand-alone team renamed\n4. terraform apply with a parent team renamed team renamed\n5. terraform apply with moving a stand-alone team one level up\n6. terraform apply with moving a team (which contains childs) one level up\n\n\n## Example `terraform.tfvars`\n\n```hcl\nteams = [\n  {\n    ident       = \"devops\"   # The 'ident' is a unique ident to allow restructuring without team re-creation\n    name        = \"DevOps\"\n    description = \"The DevOps Team\"\n    privacy     = \"secret\"\n    members     = [\"cytopia\"]\n  },\n  {\n    ident       = \"engineering\"\n    name        = \"Engineering\"\n    description = \"The Engineering Team\"\n    members     = [\"cytopia\"]\n  },\n  {\n    ident       = \"frontend\"\n    name        = \"Frontend\"\n    description = \"Team Frontend\"\n    parent_name = \"Engineering\"\n  },\n  {\n    ident       = \"backend\"\n    name        = \"Backend\"\n    description = \"Team Backend\"\n    parent_name = \"Engineering\"\n  },\n]\n```\n\n\u003c!-- TFDOCS_HEADER_START --\u003e\n\n\n\u003c!-- TFDOCS_HEADER_END --\u003e\n\n\u003c!-- TFDOCS_PROVIDER_START --\u003e\n## Providers\n\nNo providers.\n\n\u003c!-- TFDOCS_PROVIDER_END --\u003e\n\n\u003c!-- TFDOCS_REQUIREMENTS_START --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.3 |\n| \u003ca name=\"requirement_github\"\u003e\u003c/a\u003e [github](#requirement\\_github) | 6.4.0-fl.1 |\n\n\u003c!-- TFDOCS_REQUIREMENTS_END --\u003e\n\n\u003c!-- TFDOCS_INPUTS_START --\u003e\n## Required Inputs\n\nThe following input variables are required:\n\n### \u003ca name=\"input_teams\"\u003e\u003c/a\u003e [teams](#input\\_teams)\n\nDescription: GitHub teams to manage.\n\nType:\n\n```hcl\nlist(object({\n    ident       = string                     # Unique identifier for each item to guarantee no re-create during list change\n    name        = string                     # Name of the team as displayed on GitHub\n    description = optional(string)           # Description of the team\n    privacy     = optional(string, \"closed\") # Privacy (closed or secret), default is closed\n    parent_name = optional(string)           # Name of the Parent team\n    members     = optional(list(string), []) # List of GitHub usernames to assign to a team\n  }))\n```\n\n## Optional Inputs\n\nNo optional inputs.\n\n\u003c!-- TFDOCS_INPUTS_END --\u003e\n\n\u003c!-- TFDOCS_OUTPUTS_START --\u003e\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_teams\"\u003e\u003c/a\u003e [teams](#output\\_teams) | GitHub teams. |\n\n\u003c!-- TFDOCS_OUTPUTS_END --\u003e\n\n## License\n\n**[MIT License](LICENSE)**\n\nCopyright (c) 2022 **[Flaconi GmbH](https://github.com/flaconi)**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflaconi%2Fterraform-github-team","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflaconi%2Fterraform-github-team","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflaconi%2Fterraform-github-team/lists"}