Below the *update *ruby script from
*/opt/gitlab/embedded/service/gitlab-shell/hooks/update*
which does the trick. Note that I put a *.pgpass* file into the GitLab home
folder */var/opt/gitlab/*
-----------------
#!/opt/gitlab/embedded/bin/ruby
# Fix the PATH so that gitlab-shell can find git-upload-pack and friends.
ENV['PATH'] = '/opt/gitlab/bin:/opt/gitlab/embedded/bin:' + ENV['PATH']
#!/usr/bin/env ruby
# This file was placed here by GitLab. It makes sure that your pushed
commits
# will be processed properly.
# You can add your own hooks to this file, but be careful when updating
gitlab-shell!
refname = ARGV[0]
key_id = ENV['GL_ID']
repo_path = Dir.pwd
shanew = ARGV[2]
shaold = ARGV[1]
require_relative '../lib/gitlab_update'
## cn = committers name
## ce = committers e-mail
## gln = GitLab usernames
## gle = GitLab user e-mails
cn = `git log #{shanew} --pretty=format:%cn --max-count=1`
ce = `git log #{shanew} --pretty=format:%ce --max-count=1`
gln = `psql -h localhost -At -d gitlab -c "select username from users;"`
gln = gln.split("\n")
gle = `psql -h localhost -At -d gitlab -c "select email from users;"`
gle = gle.split("\n")
## loop all GitLab usernames and compare with committers name
found = 0
for username in gln
if username == cn
found = 1
end
end
## reject push
if found == 0
puts "Rejected push because of unknown committer '#{cn}'"
exit 1
end
## do original GitLab code
GitlabUpdate.new(repo_path, key_id, refname).exec
--
You received this message because you are subscribed to the Google Groups
"GitLab" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/gitlabhq/4e76a552-78e2-45dd-a32d-6fae7468103c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.