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

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

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

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

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 ...

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.

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

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Posted Jun 06, 2018 in Bitbucket

Do you use Bitbucket Cloud and Jira Cloud? If so, let us know!

Hi Community, I'm Julia and I'm on the Jira Software Cloud marketing team!  We're looking for companies or teams using Bitbucket Cloud and Jira Software Cloud. If your team fits the t...

143 views 6 3
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you