diff --git a/registry/coder/modules/git-clone/README.md b/registry/coder/modules/git-clone/README.md index 7fa594874..9f64be57c 100644 --- a/registry/coder/modules/git-clone/README.md +++ b/registry/coder/modules/git-clone/README.md @@ -14,7 +14,7 @@ This module allows you to automatically clone a repository by URL and skip if it module "git-clone" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/git-clone/coder" - version = "2.0.5" + version = "2.0.6" agent_id = coder_agent.example.id url = "https://github.com/coder/coder" } @@ -28,13 +28,36 @@ module "git-clone" { module "git-clone" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/git-clone/coder" - version = "2.0.5" + version = "2.0.6" agent_id = coder_agent.example.id url = "https://github.com/coder/coder" base_dir = "~/projects/coder" } ``` +### Clone multiple repositories + +The `url` variable accepts a single repository. To clone several, use `for_each` on the module. Terraform doesn't allow `count` and `for_each` on the same block, so move the `start_count` check into the `for_each` expression: + +```tf +locals { + repos = { + coder = "https://github.com/coder/coder" + registry = "https://github.com/coder/registry" + } +} + +module "git-clone" { + for_each = data.coder_workspace.me.start_count > 0 ? local.repos : {} + source = "registry.coder.com/coder/git-clone/coder" + version = "2.0.6" + agent_id = coder_agent.example.id + url = each.value +} +``` + +Each instance clones into its own folder, named after the repository by default, with separate scripts and logs. If two repositories share a name (for example `org-a/api` and `org-b/api`), set `folder_name = each.key` so they don't collide. Outputs are available per repository, for example `module.git-clone["coder"].folder_name`. + ### Git Authentication To use with [Git Authentication](https://coder.com/docs/v2/latest/admin/git-providers), add the provider by ID to your template: @@ -43,7 +66,7 @@ To use with [Git Authentication](https://coder.com/docs/v2/latest/admin/git-prov module "git-clone" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/git-clone/coder" - version = "2.0.5" + version = "2.0.6" agent_id = coder_agent.example.id url = "https://github.com/coder/coder" } @@ -70,7 +93,7 @@ data "coder_parameter" "git_repo" { module "git_clone" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/git-clone/coder" - version = "2.0.5" + version = "2.0.6" agent_id = coder_agent.example.id url = data.coder_parameter.git_repo.value } @@ -105,7 +128,7 @@ Configuring `git-clone` for a self-hosted GitHub Enterprise Server running at `g module "git-clone" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/git-clone/coder" - version = "2.0.5" + version = "2.0.6" agent_id = coder_agent.example.id url = "https://github.example.com/coder/coder/tree/feat/example" git_providers = { @@ -125,7 +148,7 @@ To GitLab clone with a specific branch like `feat/example` module "git-clone" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/git-clone/coder" - version = "2.0.5" + version = "2.0.6" agent_id = coder_agent.example.id url = "https://gitlab.com/coder/coder/-/tree/feat/example" } @@ -137,7 +160,7 @@ Configuring `git-clone` for a self-hosted GitLab running at `gitlab.example.com` module "git-clone" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/git-clone/coder" - version = "2.0.5" + version = "2.0.6" agent_id = coder_agent.example.id url = "https://gitlab.example.com/coder/coder/-/tree/feat/example" git_providers = { @@ -159,7 +182,7 @@ For example, to clone the `feat/example` branch: module "git-clone" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/git-clone/coder" - version = "2.0.5" + version = "2.0.6" agent_id = coder_agent.example.id url = "https://github.com/coder/coder" branch_name = "feat/example" @@ -177,7 +200,7 @@ For example, this will clone into the `~/projects/coder/coder-dev` folder: module "git-clone" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/git-clone/coder" - version = "2.0.5" + version = "2.0.6" agent_id = coder_agent.example.id url = "https://github.com/coder/coder" folder_name = "coder-dev" @@ -202,7 +225,7 @@ fetches, or partial clones. module "git-clone" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/git-clone/coder" - version = "2.0.5" + version = "2.0.6" agent_id = coder_agent.example.id url = "https://github.com/coder/coder" extra_args = [ @@ -223,7 +246,7 @@ This is useful for preparing the environment or validating prerequisites before module "git-clone" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/git-clone/coder" - version = "2.0.5" + version = "2.0.6" agent_id = coder_agent.example.id url = "https://github.com/coder/coder" pre_clone_script = <<-EOT @@ -246,7 +269,7 @@ This is useful for running initialization tasks like installing dependencies or module "git-clone" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/git-clone/coder" - version = "2.0.5" + version = "2.0.6" agent_id = coder_agent.example.id url = "https://github.com/coder/coder" post_clone_script = <<-EOT