[sysadmin-bin] Adapt the gnome-post-receive-email script post-receive hook script to the GL_USERNAME environment va
- From: Andrea Veri <av src gnome org>
- To: gnome-sysadmin gnome org,commits-list gnome org
- Subject: [sysadmin-bin] Adapt the gnome-post-receive-email script post-receive hook script to the GL_USERNAME environment va
- Date: Mon, 13 Nov 2017 17:05:20 +0000 (UTC)
commit 46c0f217503e76c4c5c83679612eb7b1bcd373e9
Author: Andrea Veri <averi redhat com>
Date: Mon Nov 13 18:05:12 2017 +0100
Adapt the gnome-post-receive-email script post-receive hook script to the GL_USERNAME environment variable
git/gnome-post-receive | 4 ++++
git/gnome-post-receive-email | 32 +++++++++++++++++++++++++++++---
2 files changed, 33 insertions(+), 3 deletions(-)
---
diff --git a/git/gnome-post-receive b/git/gnome-post-receive
index 8a420dd..30656ad 100755
--- a/git/gnome-post-receive
+++ b/git/gnome-post-receive
@@ -22,6 +22,10 @@ GIT_DIR=$(git rev-parse --git-dir 2>/dev/null)
GIT_CONFIG="${GIT_DIR}/config"
export GIT_CONFIG
+if [ $(hostname) == 'gitlab.gnome.org' ]; then
+ export $GL_USERNAME
+fi
+
tee >($BINDIR/log-push 1>&2) \
>($BINDIR/post-receive-update-description 1>&2) \
>($BINDIR/post-receive-notify-updates 1>&2) \
diff --git a/git/gnome-post-receive-email b/git/gnome-post-receive-email
index 493106e..7735757 100755
--- a/git/gnome-post-receive-email
+++ b/git/gnome-post-receive-email
@@ -36,6 +36,14 @@ import sys
import socket
from email import Header
+
+if socket.gethostname() == 'gitlab.gnome.org':
+ import gitlab
+
+ execfile('/home/admin/secret/gitlab_ro')
+
+ gl = gitlab.Gitlab('https://gitlab.gnome.org', GITLAB_PRIVATE_RO_TOKEN, api_version=4)
+
script_path = os.path.realpath(os.path.abspath(sys.argv[0]))
script_dir = os.path.dirname(script_path)
@@ -113,15 +121,33 @@ class RefChange(object):
raise NotImplementedError()
def generate_header(self, out, subject, include_revs=True, oldrev=None, newrev=None, cc=None):
- if socket.gethostname() in ('gitlab.gnome.org', 'gitlab-test.gnome.org'):
- user = 'gitlab'
+ is_gitlab = False
+
+ if socket.gethostname() == 'gitlab.gnome.org':
+ is_gitlab = True
+
+ user = os.environ['GL_USERNAME']
+ user = gl.users.list(username='%s' % user)
+ user = user[0]
+
+ if len(user.attributes['identities']) > 0:
+ for index, _ in enumerate(user.attributes['identities']):
+ provider = user.attributes['identities'][index]['provider']
+ if provider not in ('google_oauth2', 'github'):
+ username =
user.attributes['identities'][index]['extern_uid'].split(',')[0].replace('uid=', '')
+
+ user = username
+ user_fullname = user.attributes['name']
else:
user = os.environ['USER']
if user_fullname:
from_address = "%s <%s src gnome org>" % (Header.Header(user_fullname.decode('utf-8')), user)
else:
- from_address = "%s src gnome org" % (user)
+ if is_gitlab:
+ from_address = '%s <%s>' % (user.attributes['name'], user.attributes['email'])
+ else:
+ from_address = "%s src gnome org" % (user)
if cc is None:
cc = self.cc
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]