feat: initial commit of Git Automation CLI

- Add comprehensive Git workflow automation tools
- Include branch management utilities
- Add commit helpers with conventional commit support
- Implement GitHub integration for PR management
- Add configuration management system
- Include comprehensive test coverage
- Add professional documentation and examples
This commit is contained in:
Dev
2025-09-11 17:02:12 +03:00
commit 15bbfdcda2
27 changed files with 5727 additions and 0 deletions

13
internal/util/env.go Normal file
View File

@@ -0,0 +1,13 @@
package util
import (
"os"
)
func GetenvOrDefault(key, def string) string {
v := os.Getenv(key)
if v == "" {
return def
}
return v
}

44
internal/util/env_test.go Normal file
View File

@@ -0,0 +1,44 @@
package util
import (
"os"
"testing"
)
func TestGetenvOrDefault(t *testing.T) {
// Save original environment variable value
originalValue, exists := os.LookupEnv("TEST_ENV_VAR")
// Clean up after test
defer func() {
if exists {
os.Setenv("TEST_ENV_VAR", originalValue)
} else {
os.Unsetenv("TEST_ENV_VAR")
}
}()
// Test 1: Environment variable is not set
os.Unsetenv("TEST_ENV_VAR")
result := GetenvOrDefault("TEST_ENV_VAR", "default")
expected := "default"
if result != expected {
t.Errorf("Expected '%s', got '%s'", expected, result)
}
// Test 2: Environment variable is set to empty string
os.Setenv("TEST_ENV_VAR", "")
result = GetenvOrDefault("TEST_ENV_VAR", "default")
expected = "default"
if result != expected {
t.Errorf("Expected '%s', got '%s'", expected, result)
}
// Test 3: Environment variable is set to a value
os.Setenv("TEST_ENV_VAR", "test_value")
result = GetenvOrDefault("TEST_ENV_VAR", "default")
expected = "test_value"
if result != expected {
t.Errorf("Expected '%s', got '%s'", expected, result)
}
}