Получение аутентифицированного пользователя в Mercurial Hook

У меня есть Apache httpd+mod_wsgi+Mercurial, и я хотел бы подключить аутентифицированного пользователя, в частности, pretxnchangegroup крюк. Я прочитал (скорее всего, неправильно), что os.environ['REMOTE_USER'] должен содержать эту информацию, но не похоже, что это делает.

В настоящее время у меня есть расширение, которое печатает os.environ в stderr,

import sys
import os

def pretxnchangegroup_hook(ui, repo, **kwargs):
    print >> sys.stderr, 'pretxnchangegroup activated'
    print >> sys.stderr, os.environ

def reposetup(ui, repo):
    ui.setconfig('hooks', 'incoming.accesscontrol', pretxnchangegroup_hook)

С hg -v push этот код выводит:

remote: calling hook incoming.accesscontrol: <function pretxnchangegroup_hook at 0x7f8310221230>
remote: pretxnchangegroup activated
remote: {'LANG': 'C', 'TERM': 'xterm', 'SHLVL': '2', 'PWD': '/', 'PATH': '/sbin:/usr/sbin:/bin:/usr/bin', '_': '/usr/sbin/httpd'}

1 ответ

Хорошо, я надеюсь, что это поможет кому-то кроме меня, потому что я не смог найти это упомянутое где-либо еще.

Аутентифицированный пользователь (REMOTE_USER) и много другой информации можно найти на repo.ui.environ карта, где repo это параметр, передаваемый в ловушку

Я думаю, что эта карта такая же, как в os.environ под mod_cgi.

Другие вопросы по тегам