Any tricks to get the authenticated user in git hook script?

Deleted user May 28, 2012

As stash is on the way of adding more strong permissions controls, we are thinking of implementing a branch level ACL based on Git Hook scripts when people doing push.

But we stuck at how to get the actual user who is issuing the push, the $USER always returns the Stash instance user, which makes sense, as it is the user who eventually run the "git" commands.

But is there anyone we could get the actual authenticated user (name or email) in hooks?

Thanks!

3 answers

1 vote
Michael Heemskerk
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
May 29, 2012

Hi Chris,

It's currently not possible to get the authenticated user from Stash in a git hook script, but it should be a small change to make the information available. I can see how this would be useful for almost any hook script, so I hope we can make the fix available soon.

I've opened a Jira issue for this (https://jira.atlassian.com/browse/STASH-2555); please watch the issue to follow our progress.

Cheers,

Michael

0 votes
Deleted user June 7, 2012

Thanks for your answer.

But I was referring to a different problem...

We could get the comitter's info from the git log, however, we can't get the pusher's info ... namely, the person who performed the push ...

THe pusher could be different from the commiter ...

Justin Shapiro
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 8, 2012

So your committer and pusher could be the same person with different usernames? Otherwise author is the person that makes the change and committer is the integrator that pushes to the central repository.

Deleted user June 14, 2012

yeah, in my case, the person who makes the change, and the integrator who do the push are different.

0 votes
nathan June 7, 2012
I got post hook emails to work by adding variables to the hook. This

<stash_home>/data/repositories/<repo num>/hooks/post-receive

#!/bin/sh
#
# An example hook script for the "post-receive" event.
#
# The "post-receive" script is run after receive-pack has accepted a pack
# and the repository has been updated.  It is passed arguments in through
# stdin in the form
#  <oldrev> <newrev> <refname>
# For example:
#  aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master
#
# see contrib/hooks/ for a sample, or uncomment the next line and
# rename the file to "post-receive".
USER_EMAIL=$(git log -1 --format=format:%ae HEAD)
USER_NAME=$(git log -1 --format=format:%an HEAD)
. /usr/share/git/contrib/hooks/post-receive-email

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events