{"id":19473885,"url":"https://github.com/happypathway/terraform-github-repo-subdir","last_synced_at":"2026-02-17T21:01:17.282Z","repository":{"id":139237490,"uuid":"150207096","full_name":"HappyPathway/terraform-github-repo-subdir","owner":"HappyPathway","description":"Terraform Module","archived":false,"fork":false,"pushed_at":"2025-04-03T21:40:51.000Z","size":83,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-13T21:42:59.173Z","etag":null,"topics":["module","terraform","terraform-managed"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HappyPathway.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-09-25T04:20:52.000Z","updated_at":"2025-04-03T21:40:03.000Z","dependencies_parsed_at":"2024-10-19T05:44:32.330Z","dependency_job_id":"ec224797-7923-4129-89c1-479aeea165a4","html_url":"https://github.com/HappyPathway/terraform-github-repo-subdir","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/HappyPathway/terraform-github-repo-subdir","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HappyPathway%2Fterraform-github-repo-subdir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HappyPathway%2Fterraform-github-repo-subdir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HappyPathway%2Fterraform-github-repo-subdir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HappyPathway%2Fterraform-github-repo-subdir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HappyPathway","download_url":"https://codeload.github.com/HappyPathway/terraform-github-repo-subdir/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HappyPathway%2Fterraform-github-repo-subdir/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29558100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T20:52:40.164Z","status":"ssl_error","status_checked_at":"2026-02-17T20:48:10.325Z","response_time":100,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["module","terraform","terraform-managed"],"created_at":"2024-11-10T19:21:27.751Z","updated_at":"2026-02-17T21:01:17.266Z","avatar_url":"https://github.com/HappyPathway.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-github-repo-subdir\n\nThis Terraform module enables you to extract a subdirectory from an existing GitHub repository and create a new GitHub repository with that content, preserving all its files and optionally creating an initial release.\n\n## Features\n\n- Extract and copy a specific subdirectory from a source GitHub repository\n- Create a new GitHub repository with the extracted content\n- Support for both SSH and HTTPS protocols for source and destination repositories\n- Configure comprehensive GitHub repository settings\n- Create an optional GitHub release for the new repository\n- Fully customizable repository settings (visibility, branch protection, teams, etc.)\n- Support for adding extra files, CODEOWNERS, and repository metadata\n\n## Usage\n\n```hcl\nmodule \"example_repo\" {\n  source = \"github.com/HappyPathway/terraform-github-repo-subdir\"\n\n  # Source repository information\n  repo_src    = \"org/source-repository\"\n  repo_branch = \"main\"\n  sub_dir     = \"path/to/subdirectory\"\n\n  # Destination repository information\n  repo_org  = \"destination-org\"\n  repo_dest = \"new-repository-name\"\n  repo_desc = \"Description for the new repository\"\n\n  # Local filesystem path where repo will be cloned\n  repo_dir = \"/tmp/new-repository-name\"\n\n  # Set to true if this is a Terraform module (creates a v1.0.0 tag)\n  module = \"true\"\n\n  # Configure Git protocol (SSH or HTTPS)\n  use_ssh_source      = true  # Use SSH for source repository\n  use_ssh_destination = false # Use HTTPS for destination repository\n  \n  # GitHub repository settings\n  github_is_private = false\n  enforce_prs       = true\n  github_default_branch = \"main\"\n  \n  # Add appropriate topics\n  github_repo_topics = [\"terraform\", \"infrastructure\", \"example\"]\n}\n```\n\n## Requirements\n\n- Python 3.6+\n- Git\n- GitHub Personal Access Token with appropriate permissions\n- Terraform 0.13+\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| repo_src | Name of source repo, must be in form `\u003cGithubOrg\u003e/\u003cGithubRepo\u003e` | `string` | n/a | yes |\n| repo_dest | Name of newly created GitHub repo | `string` | n/a | yes |\n| repo_desc | Description of newly created GitHub repo | `string` | n/a | yes |\n| repo_dir | Location to save repo on local system | `string` | n/a | yes |\n| repo_org | GitHub organization or user name where the repository will be created | `string` | n/a | yes |\n| repo_branch | Source repository branch to use | `string` | `\"master\"` | no |\n| sub_dir | Subdirectory containing desired repo content | `string` | `false` | no |\n| module | Is this a Terraform module? If so, set to true | `string` | `false` | no |\n| github_is_private | Whether the GitHub repository should be private | `bool` | `false` | no |\n| enforce_prs | Whether to enforce pull request reviews before merging | `bool` | `true` | no |\n| pull_request_bypassers | List of GitHub usernames that can bypass pull request requirements | `list(string)` | `[]` | no |\n| use_ssh_source | Whether to use SSH URLs for source repository Git operations | `bool` | `true` | no |\n| use_ssh_destination | Whether to use SSH URLs for destination repository Git operations | `bool` | `true` | no |\n\nThis module supports many additional GitHub repository configuration options. See `variables.tf` for a complete list of supported variables.\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| ssh_clone_url | SSH clone URL of the created repository |\n| http_clone_url | HTTP clone URL of the created repository |\n| repo_name | Full name of the created repository |\n| repo_setup_result | Result of the repository setup operation |\n\n## Examples\n\nSee the [examples directory](./examples) for complete examples:\n\n1. **[Split All Submodules](./examples/split_monolith.tf)**: Split all submodules from a monolithic repository into separate repositories\n2. **[Split Single Module](./examples/split_single_module.tf)**: Extract just one module into its own repository\n3. **[Custom Module Settings](./examples/module_with_custom_settings.tf)**: Create a module repository with extensive custom GitHub settings\n\n## How It Works\n\n1. Clones the source repository\n2. Extracts the specified subdirectory\n3. Initializes a new Git repository with the extracted content\n4. Creates a new GitHub repository with the specified settings\n5. Pushes the content to the new repository\n6. Optionally creates a v1.0.0 release tag\n\n## License\n\nThis project is licensed under the terms of the MIT license.\n\n[![Terraform Validation](https://github.com/HappyPathway/terraform-github-repo-subdir/actions/workflows/terraform.yaml/badge.svg)](https://github.com/HappyPathway/terraform-github-repo-subdir/actions/workflows/terraform.yaml)\n\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\nNo requirements.\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_external\"\u003e\u003c/a\u003e [external](#provider\\_external) | 2.3.4 |\n| \u003ca name=\"provider_github\"\u003e\u003c/a\u003e [github](#provider\\_github) | 6.6.0 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_repo\"\u003e\u003c/a\u003e [repo](#module\\_repo) | HappyPathway/repo/github | n/a |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [github_release.initial_release](https://registry.terraform.io/providers/hashicorp/github/latest/docs/resources/release) | resource |\n| [external_external.repo_setup](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/external) | data source |\n| [github_repository.repo_src](https://registry.terraform.io/providers/hashicorp/github/latest/docs/data-sources/repository) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_additional_codeowners\"\u003e\u003c/a\u003e [additional\\_codeowners](#input\\_additional\\_codeowners) | Additional entries for CODEOWNERS file | `list(string)` | `[]` | no |\n| \u003ca name=\"input_admin_teams\"\u003e\u003c/a\u003e [admin\\_teams](#input\\_admin\\_teams) | Teams to grant admin access | `list(string)` | `[]` | no |\n| \u003ca name=\"input_allow_unsigned_files\"\u003e\u003c/a\u003e [allow\\_unsigned\\_files](#input\\_allow\\_unsigned\\_files) | Whether to allow file management even when signed commits are required | `bool` | `false` | no |\n| \u003ca name=\"input_archive_on_destroy\"\u003e\u003c/a\u003e [archive\\_on\\_destroy](#input\\_archive\\_on\\_destroy) | Archive repository instead of deleting on destroy | `bool` | `true` | no |\n| \u003ca name=\"input_archived\"\u003e\u003c/a\u003e [archived](#input\\_archived) | Archive this repository | `bool` | `false` | no |\n| \u003ca name=\"input_collaborators\"\u003e\u003c/a\u003e [collaborators](#input\\_collaborators) | Map of collaborators and their permission levels | `map(string)` | `{}` | no |\n| \u003ca name=\"input_commit_author\"\u003e\u003c/a\u003e [commit\\_author](#input\\_commit\\_author) | The author name to use for file commits | `string` | `\"Terraform\"` | no |\n| \u003ca name=\"input_commit_email\"\u003e\u003c/a\u003e [commit\\_email](#input\\_commit\\_email) | The email to use for file commits | `string` | `\"terraform@github.com\"` | no |\n| \u003ca name=\"input_create_codeowners\"\u003e\u003c/a\u003e [create\\_codeowners](#input\\_create\\_codeowners) | Create CODEOWNERS file | `bool` | `true` | no |\n| \u003ca name=\"input_create_repo\"\u003e\u003c/a\u003e [create\\_repo](#input\\_create\\_repo) | Whether to create a new repository or manage an existing one | `bool` | `true` | no |\n| \u003ca name=\"input_deploy_keys\"\u003e\u003c/a\u003e [deploy\\_keys](#input\\_deploy\\_keys) | List of SSH deploy keys to add to the repository | \u003cpre\u003elist(object({\u003cbr\u003e    title     = string\u003cbr\u003e    key       = optional(string, \"\")\u003cbr\u003e    read_only = optional(bool, true)\u003cbr\u003e    create    = optional(bool, false)\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_enforce_prs\"\u003e\u003c/a\u003e [enforce\\_prs](#input\\_enforce\\_prs) | Whether to enforce pull request reviews before merging | `bool` | `true` | no |\n| \u003ca name=\"input_environments\"\u003e\u003c/a\u003e [environments](#input\\_environments) | List of GitHub environments to create for the repository | \u003cpre\u003elist(object({\u003cbr\u003e    name = string\u003cbr\u003e    reviewers = optional(object({\u003cbr\u003e      teams = optional(list(string), [])\u003cbr\u003e      users = optional(list(string), [])\u003cbr\u003e    }), {})\u003cbr\u003e    deployment_branch_policy = optional(object({\u003cbr\u003e      protected_branches     = optional(bool, true)\u003cbr\u003e      custom_branch_policies = optional(bool, false)\u003cbr\u003e    }), {})\u003cbr\u003e    secrets = optional(list(object({\u003cbr\u003e      name  = string\u003cbr\u003e      value = string\u003cbr\u003e    })), [])\u003cbr\u003e    vars = optional(list(object({\u003cbr\u003e      name  = string\u003cbr\u003e      value = string\u003cbr\u003e    })), [])\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_extra_files\"\u003e\u003c/a\u003e [extra\\_files](#input\\_extra\\_files) | Additional files to create in the repository | \u003cpre\u003elist(object({\u003cbr\u003e    path    = string\u003cbr\u003e    content = string\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_force_name\"\u003e\u003c/a\u003e [force\\_name](#input\\_force\\_name) | Keep exact repository name (no date suffix) | `bool` | `false` | no |\n| \u003ca name=\"input_github_allow_auto_merge\"\u003e\u003c/a\u003e [github\\_allow\\_auto\\_merge](#input\\_github\\_allow\\_auto\\_merge) | Allow pull requests to be automatically merged | `bool` | `false` | no |\n| \u003ca name=\"input_github_allow_merge_commit\"\u003e\u003c/a\u003e [github\\_allow\\_merge\\_commit](#input\\_github\\_allow\\_merge\\_commit) | Allow merge commits | `bool` | `false` | no |\n| \u003ca name=\"input_github_allow_rebase_merge\"\u003e\u003c/a\u003e [github\\_allow\\_rebase\\_merge](#input\\_github\\_allow\\_rebase\\_merge) | Allow rebase merging | `bool` | `false` | no |\n| \u003ca name=\"input_github_allow_squash_merge\"\u003e\u003c/a\u003e [github\\_allow\\_squash\\_merge](#input\\_github\\_allow\\_squash\\_merge) | Allow squash merging | `bool` | `true` | no |\n| \u003ca name=\"input_github_allow_update_branch\"\u003e\u003c/a\u003e [github\\_allow\\_update\\_branch](#input\\_github\\_allow\\_update\\_branch) | Allow updating pull request branches | `bool` | `true` | no |\n| \u003ca name=\"input_github_auto_init\"\u003e\u003c/a\u003e [github\\_auto\\_init](#input\\_github\\_auto\\_init) | Initialize repository with README | `bool` | `true` | no |\n| \u003ca name=\"input_github_codeowners_team\"\u003e\u003c/a\u003e [github\\_codeowners\\_team](#input\\_github\\_codeowners\\_team) | GitHub team to use for CODEOWNERS file | `string` | `\"terraform-reviewers\"` | no |\n| \u003ca name=\"input_github_default_branch\"\u003e\u003c/a\u003e [github\\_default\\_branch](#input\\_github\\_default\\_branch) | Default branch name | `string` | `\"main\"` | no |\n| \u003ca name=\"input_github_delete_branch_on_merge\"\u003e\u003c/a\u003e [github\\_delete\\_branch\\_on\\_merge](#input\\_github\\_delete\\_branch\\_on\\_merge) | Delete head branch after merge | `bool` | `true` | no |\n| \u003ca name=\"input_github_dismiss_stale_reviews\"\u003e\u003c/a\u003e [github\\_dismiss\\_stale\\_reviews](#input\\_github\\_dismiss\\_stale\\_reviews) | Dismiss stale pull request approvals | `bool` | `true` | no |\n| \u003ca name=\"input_github_enforce_admins_branch_protection\"\u003e\u003c/a\u003e [github\\_enforce\\_admins\\_branch\\_protection](#input\\_github\\_enforce\\_admins\\_branch\\_protection) | Enforce branch protection rules on administrators | `bool` | `true` | no |\n| \u003ca name=\"input_github_has_discussions\"\u003e\u003c/a\u003e [github\\_has\\_discussions](#input\\_github\\_has\\_discussions) | Enable discussions feature | `bool` | `false` | no |\n| \u003ca name=\"input_github_has_downloads\"\u003e\u003c/a\u003e [github\\_has\\_downloads](#input\\_github\\_has\\_downloads) | Enable downloads feature | `bool` | `false` | no |\n| \u003ca name=\"input_github_has_issues\"\u003e\u003c/a\u003e [github\\_has\\_issues](#input\\_github\\_has\\_issues) | Enable issues feature | `bool` | `false` | no |\n| \u003ca name=\"input_github_has_projects\"\u003e\u003c/a\u003e [github\\_has\\_projects](#input\\_github\\_has\\_projects) | Enable projects feature | `bool` | `true` | no |\n| \u003ca name=\"input_github_has_wiki\"\u003e\u003c/a\u003e [github\\_has\\_wiki](#input\\_github\\_has\\_wiki) | Enable wiki feature | `bool` | `true` | no |\n| \u003ca name=\"input_github_is_private\"\u003e\u003c/a\u003e [github\\_is\\_private](#input\\_github\\_is\\_private) | Whether the GitHub repository should be private | `bool` | `false` | no |\n| \u003ca name=\"input_github_merge_commit_message\"\u003e\u003c/a\u003e [github\\_merge\\_commit\\_message](#input\\_github\\_merge\\_commit\\_message) | Message for merge commits | `string` | `\"PR_TITLE\"` | no |\n| \u003ca name=\"input_github_merge_commit_title\"\u003e\u003c/a\u003e [github\\_merge\\_commit\\_title](#input\\_github\\_merge\\_commit\\_title) | Title for merge commits | `string` | `\"MERGE_MESSAGE\"` | no |\n| \u003ca name=\"input_github_org_teams\"\u003e\u003c/a\u003e [github\\_org\\_teams](#input\\_github\\_org\\_teams) | Organization teams configuration | `list(any)` | `null` | no |\n| \u003ca name=\"input_github_pro_enabled\"\u003e\u003c/a\u003e [github\\_pro\\_enabled](#input\\_github\\_pro\\_enabled) | Is this a Github Pro Account? If not, then it's limited in feature set | `bool` | `false` | no |\n| \u003ca name=\"input_github_push_restrictions\"\u003e\u003c/a\u003e [github\\_push\\_restrictions](#input\\_github\\_push\\_restrictions) | List of team/user IDs with push access | `list(string)` | `[]` | no |\n| \u003ca name=\"input_github_repo_description\"\u003e\u003c/a\u003e [github\\_repo\\_description](#input\\_github\\_repo\\_description) | Repository description | `string` | `null` | no |\n| \u003ca name=\"input_github_repo_topics\"\u003e\u003c/a\u003e [github\\_repo\\_topics](#input\\_github\\_repo\\_topics) | Repository topics | `list(string)` | `[]` | no |\n| \u003ca name=\"input_github_require_code_owner_reviews\"\u003e\u003c/a\u003e [github\\_require\\_code\\_owner\\_reviews](#input\\_github\\_require\\_code\\_owner\\_reviews) | Require code owner review | `bool` | `true` | no |\n| \u003ca name=\"input_github_required_approving_review_count\"\u003e\u003c/a\u003e [github\\_required\\_approving\\_review\\_count](#input\\_github\\_required\\_approving\\_review\\_count) | Number of approvals needed for pull requests | `number` | `1` | no |\n| \u003ca name=\"input_github_squash_merge_commit_message\"\u003e\u003c/a\u003e [github\\_squash\\_merge\\_commit\\_message](#input\\_github\\_squash\\_merge\\_commit\\_message) | Message for squash merge commits | `string` | `\"COMMIT_MESSAGES\"` | no |\n| \u003ca name=\"input_github_squash_merge_commit_title\"\u003e\u003c/a\u003e [github\\_squash\\_merge\\_commit\\_title](#input\\_github\\_squash\\_merge\\_commit\\_title) | Title for squash merge commits | `string` | `\"COMMIT_OR_PR_TITLE\"` | no |\n| \u003ca name=\"input_gitignore_template\"\u003e\u003c/a\u003e [gitignore\\_template](#input\\_gitignore\\_template) | Gitignore template to use | `string` | `null` | no |\n| \u003ca name=\"input_homepage_url\"\u003e\u003c/a\u003e [homepage\\_url](#input\\_homepage\\_url) | Repository homepage URL | `string` | `null` | no |\n| \u003ca name=\"input_is_template\"\u003e\u003c/a\u003e [is\\_template](#input\\_is\\_template) | Make this repository a template | `bool` | `false` | no |\n| \u003ca name=\"input_license_template\"\u003e\u003c/a\u003e [license\\_template](#input\\_license\\_template) | License template to use for the repository | `string` | `null` | no |\n| \u003ca name=\"input_managed_extra_files\"\u003e\u003c/a\u003e [managed\\_extra\\_files](#input\\_managed\\_extra\\_files) | Additional files to manage in the repository | \u003cpre\u003elist(object({\u003cbr\u003e    path    = string\u003cbr\u003e    content = string\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_module\"\u003e\u003c/a\u003e [module](#input\\_module) | Is this a Terraform Module? if so, set to true | `string` | `false` | no |\n| \u003ca name=\"input_pages_config\"\u003e\u003c/a\u003e [pages\\_config](#input\\_pages\\_config) | Configuration for GitHub Pages | \u003cpre\u003eobject({\u003cbr\u003e    branch = optional(string, \"gh-pages\")\u003cbr\u003e    path   = optional(string, \"/\")\u003cbr\u003e    cname  = optional(string)\u003cbr\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_prefix\"\u003e\u003c/a\u003e [prefix](#input\\_prefix) | Prefix to add to repository name | `string` | `null` | no |\n| \u003ca name=\"input_pull_request_bypassers\"\u003e\u003c/a\u003e [pull\\_request\\_bypassers](#input\\_pull\\_request\\_bypassers) | List of GitHub usernames that can bypass pull request requirements | `list(string)` | `[]` | no |\n| \u003ca name=\"input_repo_branch\"\u003e\u003c/a\u003e [repo\\_branch](#input\\_repo\\_branch) | n/a | `string` | `\"master\"` | no |\n| \u003ca name=\"input_repo_desc\"\u003e\u003c/a\u003e [repo\\_desc](#input\\_repo\\_desc) | Description of newly created github repo | `string` | n/a | yes |\n| \u003ca name=\"input_repo_dest\"\u003e\u003c/a\u003e [repo\\_dest](#input\\_repo\\_dest) | Name of newly created github repo | `string` | n/a | yes |\n| \u003ca name=\"input_repo_dir\"\u003e\u003c/a\u003e [repo\\_dir](#input\\_repo\\_dir) | Location to save repo on Local System | `string` | n/a | yes |\n| \u003ca name=\"input_repo_org\"\u003e\u003c/a\u003e [repo\\_org](#input\\_repo\\_org) | GitHub organization or user name where the repository will be created | `string` | n/a | yes |\n| \u003ca name=\"input_repo_src\"\u003e\u003c/a\u003e [repo\\_src](#input\\_repo\\_src) | Name of Source Repo, must be in form \u003cGithubOrg\u003e/\u003cGithubRepo\u003e | `string` | n/a | yes |\n| \u003ca name=\"input_require_last_push_approval\"\u003e\u003c/a\u003e [require\\_last\\_push\\_approval](#input\\_require\\_last\\_push\\_approval) | Require approval from the last pusher | `bool` | `false` | no |\n| \u003ca name=\"input_require_signed_commits\"\u003e\u003c/a\u003e [require\\_signed\\_commits](#input\\_require\\_signed\\_commits) | Whether to require signed commits for the default branch | `bool` | `false` | no |\n| \u003ca name=\"input_required_status_checks\"\u003e\u003c/a\u003e [required\\_status\\_checks](#input\\_required\\_status\\_checks) | Required status checks for protected branches | \u003cpre\u003eobject({\u003cbr\u003e    contexts = list(string)\u003cbr\u003e    strict   = optional(bool, false)\u003cbr\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_secrets\"\u003e\u003c/a\u003e [secrets](#input\\_secrets) | GitHub Actions secrets | \u003cpre\u003elist(object({\u003cbr\u003e    name  = string\u003cbr\u003e    value = string\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_security_and_analysis\"\u003e\u003c/a\u003e [security\\_and\\_analysis](#input\\_security\\_and\\_analysis) | Security and analysis settings for the repository | \u003cpre\u003eobject({\u003cbr\u003e    advanced_security = optional(object({\u003cbr\u003e      status = string\u003cbr\u003e    }), { status = \"disabled\" })\u003cbr\u003e    secret_scanning = optional(object({\u003cbr\u003e      status = string\u003cbr\u003e    }), { status = \"disabled\" })\u003cbr\u003e    secret_scanning_push_protection = optional(object({\u003cbr\u003e      status = string\u003cbr\u003e    }), { status = \"disabled\" })\u003cbr\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_sub_dir\"\u003e\u003c/a\u003e [sub\\_dir](#input\\_sub\\_dir) | Subdirectory containing desired repo content | `string` | `false` | no |\n| \u003ca name=\"input_template_repo\"\u003e\u003c/a\u003e [template\\_repo](#input\\_template\\_repo) | Template repository name | `string` | `null` | no |\n| \u003ca name=\"input_template_repo_org\"\u003e\u003c/a\u003e [template\\_repo\\_org](#input\\_template\\_repo\\_org) | Template repository organization | `string` | `null` | no |\n| \u003ca name=\"input_use_ssh\"\u003e\u003c/a\u003e [use\\_ssh](#input\\_use\\_ssh) | Whether to use SSH URLs for Git operations (true) or HTTPS URLs (false) | `bool` | `true` | no |\n| \u003ca name=\"input_use_ssh_destination\"\u003e\u003c/a\u003e [use\\_ssh\\_destination](#input\\_use\\_ssh\\_destination) | Whether to use SSH URLs for destination repository Git operations (true) or HTTPS URLs (false) | `bool` | `true` | no |\n| \u003ca name=\"input_use_ssh_source\"\u003e\u003c/a\u003e [use\\_ssh\\_source](#input\\_use\\_ssh\\_source) | Whether to use SSH URLs for source repository Git operations (true) or HTTPS URLs (false) | `bool` | `true` | no |\n| \u003ca name=\"input_vars\"\u003e\u003c/a\u003e [vars](#input\\_vars) | GitHub Actions variables | \u003cpre\u003elist(object({\u003cbr\u003e    name  = string\u003cbr\u003e    value = string\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_vulnerability_alerts\"\u003e\u003c/a\u003e [vulnerability\\_alerts](#input\\_vulnerability\\_alerts) | Enable Dependabot alerts | `bool` | `false` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_http_clone_url\"\u003e\u003c/a\u003e [http\\_clone\\_url](#output\\_http\\_clone\\_url) | n/a |\n| \u003ca name=\"output_repo_name\"\u003e\u003c/a\u003e [repo\\_name](#output\\_repo\\_name) | n/a |\n| \u003ca name=\"output_repo_setup_result\"\u003e\u003c/a\u003e [repo\\_setup\\_result](#output\\_repo\\_setup\\_result) | Result of the repository setup operation |\n| \u003ca name=\"output_ssh_clone_url\"\u003e\u003c/a\u003e [ssh\\_clone\\_url](#output\\_ssh\\_clone\\_url) | n/a |\n\u003c!-- END_TF_DOCS --\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhappypathway%2Fterraform-github-repo-subdir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhappypathway%2Fterraform-github-repo-subdir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhappypathway%2Fterraform-github-repo-subdir/lists"}