Selaa lähdekoodia

Use fullname from gecos field, if available.

Jelmer Vernooij 6 vuotta sitten
vanhempi
commit
598045aec5
2 muutettua tiedostoa jossa 17 lisäystä ja 3 poistoa
  1. 3 0
      NEWS
  2. 14 3
      dulwich/repo.py

+ 3 - 0
NEWS

@@ -2,6 +2,9 @@
 
  IMPROVEMENTS
 
+ * Use fullname from gecos field, if available.
+   (Jelmer Vernooij)
+
  * Add support for short ids in parse_commit. (Jelmer Vernooij)
 
  * Add support for ``prune`` and ``prune_tags`` arguments

+ 14 - 3
dulwich/repo.py

@@ -123,10 +123,21 @@ class InvalidUserIdentity(Exception):
 def _get_default_identity():
     import getpass
     import socket
-    user = getpass.getuser().encode(sys.getdefaultencoding())
-    email = ("{}@{}".format(getpass.getuser(), socket.gethostname())
+    username = getpass.getuser()
+    try:
+        import pwd
+    except ImportError:
+        fullname = None
+    else:
+        try:
+            fullname = pwd.getpwnam(username).pw_gecos.split(',')[0]
+        except KeyError:
+            fullname = None
+    if not fullname:
+        fullname = username.encode(sys.getdefaultencoding())
+    email = ("{}@{}".format(username, socket.gethostname())
              .encode(sys.getdefaultencoding()))
-    return (user, email)
+    return (fullname, email)
 
 
 def check_user_identity(identity):