Skip to content

Commit

Permalink
Merge pull request #351 from cpanato/add-envvars
Browse files Browse the repository at this point in the history
if GIT_COMMITTER_EMAIL/GIT_COMMITTER_NAME use that and not the git config info
  • Loading branch information
k8s-ci-robot committed May 27, 2024
2 parents 42ddf07 + fd3c099 commit 5c09414
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
14 changes: 14 additions & 0 deletions git/git.go
Original file line number Diff line number Diff line change
Expand Up @@ -1138,24 +1138,38 @@ func (r *Repo) Add(filename string) error {

// GetUserName Reads the local user's name from the git configuration
func GetUserName() (string, error) {
// check first if the env var is set otherwise check the git config
userNameFromEnv := os.Getenv("GIT_COMMITTER_NAME")
if userNameFromEnv != "" {
return userNameFromEnv, nil
}

// Retrieve username from git
userName, err := filterCommand(
"", "config", "--get", "user.name",
).RunSilentSuccessOutput()
if err != nil {
return "", fmt.Errorf("reading the user name from git: %w", err)
}

return userName.OutputTrimNL(), nil
}

// GetUserEmail reads the user's name from git
func GetUserEmail() (string, error) {
// check first if the env var is set otherwise check the git config
userEmailFromEnv := os.Getenv("GIT_COMMITTER_EMAIL")
if userEmailFromEnv != "" {
return userEmailFromEnv, nil
}

userEmail, err := filterCommand(
"", "config", "--get", "user.email",
).RunSilentSuccessOutput()
if err != nil {
return "", fmt.Errorf("reading the user's email from git: %w", err)
}

return userEmail.OutputTrimNL(), nil
}

Expand Down
20 changes: 20 additions & 0 deletions git/git_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ func createTestRepository() (repoPath string, err error) {
}

func TestGetUserName(t *testing.T) {
require.Empty(t, os.Getenv("GIT_COMMITTER_NAME"))

const fakeUserName = "SIG Release Test User"
currentDir, err := os.Getwd()
require.Nil(t, err, "error reading the current directory")
Expand All @@ -123,9 +125,19 @@ func TestGetUserName(t *testing.T) {
require.Nil(t, err)
require.Equal(t, fakeUserName, actual)
require.NotEqual(t, fakeUserName, "")

envVarName := fakeUserName + " env var"
require.Nil(t, os.Setenv("GIT_COMMITTER_NAME", envVarName))
actual, err = git.GetUserName()
require.Nil(t, err)
require.Equal(t, envVarName, actual)
require.NotEqual(t, fakeUserName, "")
require.Nil(t, os.Unsetenv("GIT_COMMITTER_NAME"))
}

func TestGetUserEmail(t *testing.T) {
require.Empty(t, os.Getenv("GIT_COMMITTER_EMAIL"))

const fakeUserEmail = "kubernetes-test@example.com"
currentDir, err := os.Getwd()
require.Nil(t, err, "error reading the current directory")
Expand All @@ -148,6 +160,14 @@ func TestGetUserEmail(t *testing.T) {
require.Nil(t, err)
require.Equal(t, fakeUserEmail, actual)
require.NotEqual(t, fakeUserEmail, "")

envVarEmail := "kubernetes-honk@example.com"
require.Nil(t, os.Setenv("GIT_COMMITTER_EMAIL", envVarEmail))
actual, err = git.GetUserEmail()
require.Nil(t, err)
require.Equal(t, envVarEmail, actual)
require.NotEqual(t, envVarEmail, "")
require.Nil(t, os.Unsetenv("GIT_COMMITTER_EMAIL"))
}

func TestGetKubernetesRepoURLSuccess(t *testing.T) {
Expand Down

0 comments on commit 5c09414

Please sign in to comment.