{"id":22529773,"url":"https://github.com/lasuillard/terraform-github-organization","last_synced_at":"2025-10-17T00:31:31.888Z","repository":{"id":265876162,"uuid":"777231540","full_name":"lasuillard/terraform-github-organization","owner":"lasuillard","description":"Terraform module to create GitHub organization relevant resources.","archived":false,"fork":false,"pushed_at":"2024-12-01T09:41:33.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-01T10:38:22.235Z","etag":null,"topics":["github-organization","terraform","terraform-github-provider","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/lasuillard/organization/github/latest","language":"HCL","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/lasuillard.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-25T13:12:35.000Z","updated_at":"2024-12-01T09:41:35.000Z","dependencies_parsed_at":"2024-12-01T10:38:29.208Z","dependency_job_id":"00d046f7-2f58-4191-8115-3433c547a162","html_url":"https://github.com/lasuillard/terraform-github-organization","commit_stats":null,"previous_names":["lasuillard/terraform-github-organization"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasuillard%2Fterraform-github-organization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasuillard%2Fterraform-github-organization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasuillard%2Fterraform-github-organization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasuillard%2Fterraform-github-organization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lasuillard","download_url":"https://codeload.github.com/lasuillard/terraform-github-organization/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236756697,"owners_count":19199894,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-organization","terraform","terraform-github-provider","terraform-module"],"created_at":"2024-12-07T07:16:21.229Z","updated_at":"2025-10-17T00:31:26.597Z","avatar_url":"https://github.com/lasuillard.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-github-organization\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![CI](https://github.com/lasuillard/terraform-github-organization/actions/workflows/ci.yaml/badge.svg)](https://github.com/lasuillard/terraform-github-organization/actions/workflows/ci.yaml)\n![GitHub Release](https://img.shields.io/github/v/release/lasuillard/terraform-github-organization)\n\nTerraform module to create GitHub organization relevant resources.\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | ~\u003e 1.0 |\n| \u003ca name=\"requirement_github\"\u003e\u003c/a\u003e [github](#requirement\\_github) | ~\u003e 6.2 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_github\"\u003e\u003c/a\u003e [github](#provider\\_github) | ~\u003e 6.2 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_actions\"\u003e\u003c/a\u003e [actions](#module\\_actions) | ./modules/actions | n/a |\n| \u003ca name=\"module_rulesets\"\u003e\u003c/a\u003e [rulesets](#module\\_rulesets) | ./modules/rulesets | n/a |\n| \u003ca name=\"module_secrets_and_variables\"\u003e\u003c/a\u003e [secrets\\_and\\_variables](#module\\_secrets\\_and\\_variables) | ./modules/secrets-and-variables | n/a |\n| \u003ca name=\"module_teams\"\u003e\u003c/a\u003e [teams](#module\\_teams) | ./modules/team | n/a |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [github_app_installation_repositories.this](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/app_installation_repositories) | resource |\n| [github_organization_block.this](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/organization_block) | resource |\n| [github_organization_custom_role.this](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/organization_custom_role) | resource |\n| [github_organization_settings.this](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/organization_settings) | resource |\n| [github_organization_webhook.this](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/organization_webhook) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_actions_oidc_subject_claim_customization_template\"\u003e\u003c/a\u003e [actions\\_oidc\\_subject\\_claim\\_customization\\_template](#input\\_actions\\_oidc\\_subject\\_claim\\_customization\\_template) | A list of OpenID Connect claims. | \u003cpre\u003eobject({\u003cbr/\u003e    include_claim_keys = set(string)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_actions_organization_permissions\"\u003e\u003c/a\u003e [actions\\_organization\\_permissions](#input\\_actions\\_organization\\_permissions) | GitHub Actions permissions for current organization. | \u003cpre\u003eobject({\u003cbr/\u003e    allowed_actions      = optional(string)\u003cbr/\u003e    enabled_repositories = optional(string)\u003cbr/\u003e    allowed_actions_config = optional(object({\u003cbr/\u003e      github_owned_allowed = bool\u003cbr/\u003e      patterns_allowed     = optional(set(string))\u003cbr/\u003e      verified_allowed     = optional(bool)\u003cbr/\u003e    }))\u003cbr/\u003e    enabled_repositories_config = optional(object({\u003cbr/\u003e      repository_ids = set(number)\u003cbr/\u003e    }))\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_actions_runner_groups\"\u003e\u003c/a\u003e [actions\\_runner\\_groups](#input\\_actions\\_runner\\_groups) | GitHub Actions runner groups for this organization. | \u003cpre\u003elist(object({\u003cbr/\u003e    name                       = string\u003cbr/\u003e    restricted_to_workflows    = optional(bool)\u003cbr/\u003e    selected_repository_ids    = optional(set(number))\u003cbr/\u003e    selected_workflows         = optional(set(string))\u003cbr/\u003e    visibility                 = optional(string)\u003cbr/\u003e    allows_public_repositories = optional(bool)\u003cbr/\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_app_installations\"\u003e\u003c/a\u003e [app\\_installations](#input\\_app\\_installations) | List of relationships between app installations and repositories. | \u003cpre\u003elist(object({\u003cbr/\u003e    installation_id       = string\u003cbr/\u003e    selected_repositories = set(string)\u003cbr/\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_blocks\"\u003e\u003c/a\u003e [blocks](#input\\_blocks) | List of users to block. | `set(string)` | `[]` | no |\n| \u003ca name=\"input_create\"\u003e\u003c/a\u003e [create](#input\\_create) | Whether to create this module or not. | `bool` | `true` | no |\n| \u003ca name=\"input_custom_roles\"\u003e\u003c/a\u003e [custom\\_roles](#input\\_custom\\_roles) | Custom roles. | \u003cpre\u003elist(object({\u003cbr/\u003e    name        = string\u003cbr/\u003e    description = optional(string)\u003cbr/\u003e    base_role   = string\u003cbr/\u003e    permissions = set(string)\u003cbr/\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_rulesets\"\u003e\u003c/a\u003e [rulesets](#input\\_rulesets) | Repository rulesets. | \u003cpre\u003elist(object({\u003cbr/\u003e    enforcement = string\u003cbr/\u003e    name        = string\u003cbr/\u003e    rules = object({\u003cbr/\u003e      branch_name_pattern = optional(object({\u003cbr/\u003e        operator = string\u003cbr/\u003e        pattern  = string\u003cbr/\u003e        name     = optional(string)\u003cbr/\u003e        negate   = optional(bool)\u003cbr/\u003e      }))\u003cbr/\u003e      commit_author_email_pattern = optional(object({\u003cbr/\u003e        operator = string\u003cbr/\u003e        pattern  = string\u003cbr/\u003e        name     = optional(string)\u003cbr/\u003e        negate   = optional(bool)\u003cbr/\u003e      }))\u003cbr/\u003e      commit_message_pattern = optional(object({\u003cbr/\u003e        operator = string\u003cbr/\u003e        pattern  = string\u003cbr/\u003e        name     = optional(string)\u003cbr/\u003e        negate   = optional(bool)\u003cbr/\u003e      }))\u003cbr/\u003e      committer_email_pattern = optional(object({\u003cbr/\u003e        operator = string\u003cbr/\u003e        pattern  = string\u003cbr/\u003e        name     = optional(string)\u003cbr/\u003e        negate   = optional(bool)\u003cbr/\u003e      }))\u003cbr/\u003e      creation         = optional(bool)\u003cbr/\u003e      deletion         = optional(bool)\u003cbr/\u003e      non_fast_forward = optional(bool)\u003cbr/\u003e      pull_request = optional(object({\u003cbr/\u003e        dismiss_stale_reviews_on_push     = optional(bool)\u003cbr/\u003e        require_code_owner_review         = optional(bool)\u003cbr/\u003e        require_last_push_approval        = optional(bool)\u003cbr/\u003e        required_approving_review_count   = optional(number)\u003cbr/\u003e        required_review_thread_resolution = optional(bool)\u003cbr/\u003e      }))\u003cbr/\u003e      required_linear_history = optional(bool)\u003cbr/\u003e      required_signatures     = optional(bool)\u003cbr/\u003e      required_status_checks = optional(object({\u003cbr/\u003e        required_check = list(object({\u003cbr/\u003e          context        = string\u003cbr/\u003e          integration_id = optional(number)\u003cbr/\u003e        }))\u003cbr/\u003e        strict_required_status_checks_policy = optional(bool)\u003cbr/\u003e      }))\u003cbr/\u003e      required_workflows = optional(object({\u003cbr/\u003e        required_workflow = object({\u003cbr/\u003e          repository_id = number\u003cbr/\u003e          path          = string\u003cbr/\u003e          ref           = optional(string)\u003cbr/\u003e        })\u003cbr/\u003e      }))\u003cbr/\u003e      tag_name_pattern = optional(object({\u003cbr/\u003e        operator = string\u003cbr/\u003e        pattern  = string\u003cbr/\u003e        name     = optional(string)\u003cbr/\u003e        negate   = optional(bool)\u003cbr/\u003e      }))\u003cbr/\u003e      update                        = optional(bool)\u003cbr/\u003e      update_allows_fetch_and_merge = optional(bool)\u003cbr/\u003e    })\u003cbr/\u003e    target = string\u003cbr/\u003e    bypass_actors = optional(list(object({\u003cbr/\u003e      actor_id    = number\u003cbr/\u003e      actor_type  = string\u003cbr/\u003e      bypass_mode = optional(string)\u003cbr/\u003e    })))\u003cbr/\u003e    conditions = optional(object({\u003cbr/\u003e      ref_name = object({\u003cbr/\u003e        exclude = set(string)\u003cbr/\u003e        include = set(string)\u003cbr/\u003e      })\u003cbr/\u003e    }))\u003cbr/\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_secrets\"\u003e\u003c/a\u003e [secrets](#input\\_secrets) | GitHub Actions secrets for this organization.\u003cbr/\u003e\u003cbr/\u003e- Available values for `subject` are `\"actions\"`, `\"codespaces\"`, `\"dependabot\"`. | \u003cpre\u003elist(object({\u003cbr/\u003e    subjects                = set(string)\u003cbr/\u003e    secret_name             = string\u003cbr/\u003e    encrypted_value         = optional(string)\u003cbr/\u003e    plaintext_value         = optional(string)\u003cbr/\u003e    visibility              = string\u003cbr/\u003e    selected_repository_ids = optional(set(number))\u003cbr/\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_settings\"\u003e\u003c/a\u003e [settings](#input\\_settings) | Organization settings. | \u003cpre\u003eobject({\u003cbr/\u003e    billing_email                                                = string\u003cbr/\u003e    company                                                      = string\u003cbr/\u003e    blog                                                         = string\u003cbr/\u003e    email                                                        = string\u003cbr/\u003e    twitter_username                                             = string\u003cbr/\u003e    location                                                     = string\u003cbr/\u003e    name                                                         = string\u003cbr/\u003e    description                                                  = string\u003cbr/\u003e    has_organization_projects                                    = optional(bool)\u003cbr/\u003e    has_repository_projects                                      = optional(bool)\u003cbr/\u003e    default_repository_permission                                = optional(string)\u003cbr/\u003e    members_can_create_repositories                              = optional(bool)\u003cbr/\u003e    members_can_create_public_repositories                       = optional(bool)\u003cbr/\u003e    members_can_create_private_repositories                      = optional(bool)\u003cbr/\u003e    members_can_create_internal_repositories                     = optional(bool)\u003cbr/\u003e    members_can_create_pages                                     = optional(bool)\u003cbr/\u003e    members_can_create_public_pages                              = optional(bool)\u003cbr/\u003e    members_can_create_private_pages                             = optional(bool)\u003cbr/\u003e    members_can_fork_private_repositories                        = optional(bool)\u003cbr/\u003e    web_commit_signoff_required                                  = optional(bool)\u003cbr/\u003e    advanced_security_enabled_for_new_repositories               = optional(bool)\u003cbr/\u003e    dependabot_alerts_enabled_for_new_repositories               = optional(bool)\u003cbr/\u003e    dependabot_security_updates_enabled_for_new_repositories     = optional(bool)\u003cbr/\u003e    dependency_graph_enabled_for_new_repositories                = optional(bool)\u003cbr/\u003e    secret_scanning_enabled_for_new_repositories                 = optional(bool)\u003cbr/\u003e    secret_scanning_push_protection_enabled_for_new_repositories = optional(bool)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_teams\"\u003e\u003c/a\u003e [teams](#input\\_teams) | NOTE: Forwarded variable | \u003cpre\u003elist(object({\u003cbr/\u003e    name                      = string\u003cbr/\u003e    description               = optional(string)\u003cbr/\u003e    privacy                   = optional(string)\u003cbr/\u003e    parent_team_id            = optional(string)\u003cbr/\u003e    ldap_dn                   = optional(string)\u003cbr/\u003e    create_default_maintainer = optional(bool)\u003cbr/\u003e    settings = optional(object({\u003cbr/\u003e      review_request_delegation = optional(object({\u003cbr/\u003e        algorithm    = optional(string)\u003cbr/\u003e        member_count = optional(number)\u003cbr/\u003e        notify       = optional(bool)\u003cbr/\u003e      }))\u003cbr/\u003e    }))\u003cbr/\u003e    is_security_manager = optional(bool)\u003cbr/\u003e    members = optional(list(object({\u003cbr/\u003e      username = string\u003cbr/\u003e      role     = optional(string)\u003cbr/\u003e    })))\u003cbr/\u003e    members_authoritative = optional(bool)\u003cbr/\u003e    repositories = optional(list(object({\u003cbr/\u003e      repository = string\u003cbr/\u003e      permission = optional(string)\u003cbr/\u003e    })))\u003cbr/\u003e    sync_group_mapping = optional(object({\u003cbr/\u003e      groups = optional(list(object({\u003cbr/\u003e        group_id          = string\u003cbr/\u003e        group_name        = string\u003cbr/\u003e        group_description = string\u003cbr/\u003e      })))\u003cbr/\u003e    }))\u003cbr/\u003e  }))\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_variables\"\u003e\u003c/a\u003e [variables](#input\\_variables) | GitHub Actions variables for this organization. | \u003cpre\u003elist(object({\u003cbr/\u003e    variable_name           = string\u003cbr/\u003e    value                   = optional(string)\u003cbr/\u003e    visibility              = string\u003cbr/\u003e    selected_repository_ids = optional(set(number))\u003cbr/\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_webhooks\"\u003e\u003c/a\u003e [webhooks](#input\\_webhooks) | List of webhooks. | \u003cpre\u003elist(object({\u003cbr/\u003e    events = set(string)\u003cbr/\u003e    configuration = object({\u003cbr/\u003e      url          = string\u003cbr/\u003e      content_type = string\u003cbr/\u003e      secret       = optional(string)\u003cbr/\u003e      insecure_ssl = optional(bool)\u003cbr/\u003e    })\u003cbr/\u003e    active = optional(bool)\u003cbr/\u003e    name   = optional(string)\u003cbr/\u003e  }))\u003c/pre\u003e | `[]` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_actions\"\u003e\u003c/a\u003e [actions](#output\\_actions) | GitHub Actions module outputs. |\n| \u003ca name=\"output_app_installations\"\u003e\u003c/a\u003e [app\\_installations](#output\\_app\\_installations) | GitHub App installations. |\n| \u003ca name=\"output_blocks\"\u003e\u003c/a\u003e [blocks](#output\\_blocks) | Organization blocks. |\n| \u003ca name=\"output_custom_roles\"\u003e\u003c/a\u003e [custom\\_roles](#output\\_custom\\_roles) | Custom roles. |\n| \u003ca name=\"output_rulesets\"\u003e\u003c/a\u003e [rulesets](#output\\_rulesets) | Repository rulesets. |\n| \u003ca name=\"output_secrets_and_variables\"\u003e\u003c/a\u003e [secrets\\_and\\_variables](#output\\_secrets\\_and\\_variables) | Repository Actions, Codespaces and Dependabot secrets and variables. |\n| \u003ca name=\"output_settings\"\u003e\u003c/a\u003e [settings](#output\\_settings) | Organization settings. |\n| \u003ca name=\"output_teams\"\u003e\u003c/a\u003e [teams](#output\\_teams) | Organization teams. |\n| \u003ca name=\"output_webhooks\"\u003e\u003c/a\u003e [webhooks](#output\\_webhooks) | Repository webhooks. |\n\u003c!-- END_TF_DOCS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flasuillard%2Fterraform-github-organization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flasuillard%2Fterraform-github-organization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flasuillard%2Fterraform-github-organization/lists"}