Skip to content

Commit 104a558

Browse files
committed
needed pull gitpython-developers#43 from gitpython-developers/GitPython @f362d10fa24395c21b1629923ccd705ba73ae996
1 parent 0e9eef4 commit 104a558

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

git/util.py

+15-6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
import tempfile
1414
import platform
1515

16+
# Import the user database on unix based systems
17+
if os.name == "posix":
18+
import pwd
19+
1620
from gitdb.util import (
1721
make_sha,
1822
LockedFD,
@@ -113,12 +117,17 @@ def assure_directory_exists(path, is_file=False):
113117

114118
def get_user_id():
115119
""":return: string identifying the currently active system user as name@node
116-
:note: user can be set with the 'USER' environment variable, usually set on windows"""
117-
ukn = 'UNKNOWN'
118-
username = os.environ.get('USER', os.environ.get('USERNAME', ukn))
119-
if username == ukn and hasattr(os, 'getlogin'):
120-
username = os.getlogin()
121-
# END get username from login
120+
:note: user can be set with the 'USER' environment variable, usually set on windows
121+
:note: on unix based systems you can use the password database
122+
to get the login name of the effective process user"""
123+
if os.name == "posix":
124+
username = pwd.getpwuid(os.geteuid()).pw_name
125+
else:
126+
ukn = 'UNKNOWN'
127+
username = os.environ.get('USER', os.environ.get('USERNAME', ukn))
128+
if username == ukn and hasattr(os, 'getlogin'):
129+
username = os.getlogin()
130+
# END get username from login
122131
return "%s@%s" % (username, platform.node())
123132

124133
#} END utilities

0 commit comments

Comments
 (0)