]> source.dussan.org Git - gitea.git/commitdiff
Default values for both user.name and user.email
authoreuank <euank@euank.com>
Sun, 28 Dec 2014 03:07:54 +0000 (19:07 -0800)
committereuank <euank@euank.com>
Sun, 28 Dec 2014 03:07:54 +0000 (19:07 -0800)
The previous behavior was to set default values only if user.name was
not set, but to always set it for both. This only sets a value if there
wasn't one; this fixes cases where someone has a user.name but no
user.email (see included Dockerfile) or someone has a user.email but no
user.name (before the email would have been over-written).

models/repo.go

index 3ea4efc7f07f284b2d7e92ddcddc908fbfe66eed..50b2b3fc25e884abc8cba5f3bfd6d443567f983d 100644 (file)
@@ -105,21 +105,18 @@ func NewRepoContext() {
                log.Fatal(4, "Gogs requires Git version greater or equal to 1.7.1")
        }
 
-       // Check if server has basic git setting and set if not.
-       if stdout, stderr, err := process.Exec("NewRepoContext(get setting)", "git", "config", "--get", "user.name"); err != nil || strings.TrimSpace(stdout) == "" {
-               // ExitError indicates user.name is not set
-               if _, ok := err.(*exec.ExitError); ok || strings.TrimSpace(stdout) == "" {
-                       stndrdUserName := "Gogs"
-                       stndrdUserEmail := "gogitservice@gmail.com"
-                       if _, stderr, gerr := process.Exec("NewRepoContext(set name)", "git", "config", "--global", "user.name", stndrdUserName); gerr != nil {
-                               log.Fatal(4, "Fail to set git user.name(%s): %s", gerr, stderr)
-                       }
-                       if _, stderr, gerr := process.Exec("NewRepoContext(set email)", "git", "config", "--global", "user.email", stndrdUserEmail); gerr != nil {
-                               log.Fatal(4, "Fail to set git user.email(%s): %s", gerr, stderr)
+       // Check if server has user.email and user.name set correctly and set if they're not.
+       for configKey, defaultValue := range map[string]string{"user.name": "Gogs", "user.email": "gogitservice@gmail.com"} {
+               if stdout, stderr, err := process.Exec("NewRepoContext(get setting)", "git", "config", "--get", configKey); err != nil || strings.TrimSpace(stdout) == "" {
+                       // ExitError indicates this config is not set
+                       if _, ok := err.(*exec.ExitError); ok || strings.TrimSpace(stdout) == "" {
+                               if _, stderr, gerr := process.Exec("NewRepoContext(set "+configKey+")", "git", "config", "--global", configKey, defaultValue); gerr != nil {
+                                       log.Fatal(4, "Fail to set git %s(%s): %s", configKey, gerr, stderr)
+                               }
+                               log.Info("Git config %s set to %s", configKey, defaultValue)
+                       } else {
+                               log.Fatal(4, "Fail to get git %s(%s): %s", configKey, err, stderr)
                        }
-                       log.Info("Git user.name and user.email set to %s <%s>", stndrdUserName, stndrdUserEmail)
-               } else {
-                       log.Fatal(4, "Fail to get git user.name(%s): %s", err, stderr)
                }
        }