From d7f60d3000509654dce674a6de79819f4c86a004 Mon Sep 17 00:00:00 2001 From: Stephen Kirby <58410745+stirby@users.noreply.github.com> Date: Thu, 28 Sep 2023 05:01:52 -0500 Subject: [PATCH] add git-config module (#47) Co-authored-by: Muhammad Atif Ali --- .images/git-config-params.png | Bin 0 -> 83748 bytes git-config/README.md | 48 ++++++++++++++++++++++++++ git-config/main.test.ts | 43 ++++++++++++++++++++++++ git-config/main.tf | 61 ++++++++++++++++++++++++++++++++++ git-config/run.sh | 24 +++++++++++++ 5 files changed, 176 insertions(+) create mode 100644 .images/git-config-params.png create mode 100644 git-config/README.md create mode 100644 git-config/main.test.ts create mode 100644 git-config/main.tf create mode 100644 git-config/run.sh diff --git a/.images/git-config-params.png b/.images/git-config-params.png new file mode 100644 index 0000000000000000000000000000000000000000..55f24a775b384b5970452717c92a07d752078a36 GIT binary patch literal 83748 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 { + await runTerraformInit(import.meta.dir); + + testRequiredVariables(import.meta.dir, { + agent_id: "foo", + }); + + it("fails without git", async () => { + const state = await runTerraformApply(import.meta.dir, { + agent_id: "foo", + }); + const output = await executeScriptInContainer(state, "alpine"); + expect(output.exitCode).toBe(1); + expect(output.stdout).toEqual([ + "\u001B[0;1mChecking git-config!", + "Git is not installed!", + ]); + }); + + it("runs with git", async () => { + const state = await runTerraformApply(import.meta.dir, { + agent_id: "foo", + }); + const output = await executeScriptInContainer(state, "alpine/git"); + expect(output.exitCode).toBe(0); + expect(output.stdout).toEqual([ + "\u001B[0;1mChecking git-config!", + "git-config: No user.email found, setting to ", + "git-config: No user.name found, setting to default", + "", + "\u001B[0;1mgit-config: using email: ", + "\u001B[0;1mgit-config: using username: default", + ]); + }); +}); diff --git a/git-config/main.tf b/git-config/main.tf new file mode 100644 index 0000000..55d9cca --- /dev/null +++ b/git-config/main.tf @@ -0,0 +1,61 @@ +terraform { + required_version = ">= 1.0" + + required_providers { + coder = { + source = "coder/coder" + version = ">= 0.12" + } + } +} + +variable "agent_id" { + type = string + description = "The ID of a Coder agent." +} + +variable "allow_username_change" { + type = bool + description = "Allow developers to change their git username." + default = true +} + +variable "allow_email_change" { + type = bool + description = "Allow developers to change their git email." + default = false +} + + +data "coder_workspace" "me" {} + +data "coder_parameter" "user_email" { + count = var.allow_email_change ? 1 : 0 + name = "user_email" + type = "string" + default = "" + description = "Git user.email to be used for commits. Leave empty to default to Coder username." + display_name = "Git config user.email" + mutable = true +} + +data "coder_parameter" "username" { + count = var.allow_username_change ? 1 : 0 + name = "username" + type = "string" + default = "" + description = "Git user.name to be used for commits. Leave empty to default to Coder username." + display_name = "Git config user.name" + mutable = true +} + +resource "coder_script" "git_config" { + agent_id = var.agent_id + script = templatefile("${path.module}/run.sh", { + GIT_USERNAME = try(data.coder_parameter.username[0].value, "") == "" ? data.coder_workspace.me.owner : try(data.coder_parameter.username[0].value, "") + GIT_EMAIL = try(data.coder_parameter.user_email[0].value, "") == "" ? data.coder_workspace.me.owner_email : try(data.coder_parameter.user_email[0].value, "") + }) + display_name = "Git Config" + icon = "/icon/git.svg" + run_on_start = true +} diff --git a/git-config/run.sh b/git-config/run.sh new file mode 100644 index 0000000..586be4d --- /dev/null +++ b/git-config/run.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env sh + +BOLD='\033[0;1m' +printf "$${BOLD}Checking git-config!\n" + +# Check if git is installed +command -v git >/dev/null 2>&1 || { + echo "Git is not installed!" + exit 1 +} + +# Set git username and email if missing +if [ -z $(git config --get user.email) ]; then + printf "git-config: No user.email found, setting to ${GIT_EMAIL}\n" + git config --global user.email "${GIT_EMAIL}" +fi + +if [ -z $(git config --get user.name) ]; then + printf "git-config: No user.name found, setting to ${GIT_USERNAME}\n" + git config --global user.name "${GIT_USERNAME}" +fi + +printf "\n$${BOLD}git-config: using email: $(git config --get user.email)\n" +printf "$${BOLD}git-config: using username: $(git config --get user.name)\n\n"