diff --git a/coder-base/main.tf b/coder-base/main.tf index c20ac69..c03ef30 100644 --- a/coder-base/main.tf +++ b/coder-base/main.tf @@ -21,6 +21,17 @@ data "coder_provisioner" "me" {} data "coder_workspace" "me" {} data "coder_workspace_owner" "me" {} +data "coder_parameter" "repo_url" { + name = "Repository URL" + description = "Git repository to clone when workspace is created (public repo only)" + type = "string" + default = "" +} + +locals { + effective_repo_url = var.repo_url != "" ? var.repo_url : data.coder_parameter.repo_url.value +} + resource "coder_agent" "main" { arch = data.coder_provisioner.me.arch os = "linux" @@ -34,12 +45,12 @@ resource "coder_agent" "main" { fi # Clone repo if URL is set - if [ -n "${var.repo_url}" ]; then + if [ -n "${local.effective_repo_url}" ]; then if [ -d ~/repo ] && [ "$(ls -A ~/repo)" ]; then echo "⚠️ Skipping clone: ~/repo already exists and is not empty." else - echo "==> Cloning repository from: ${var.repo_url}" - git clone --verbose "${var.repo_url}" ~/repo \ + echo "==> Cloning repository from: ${local.effective_repo_url}" + git clone --verbose "${local.effective_repo_url}" ~/repo \ && echo "✅ Clone successful." \ || echo "❌ Failed to clone repo. Please check the URL or access permissions." fi