git-http-backend — переопределить имя автора коммита

вот мой тестовый CGI-скрипт:

#!/bin/bash

echo "$(date) - REQUEST_METHOD[$REQUEST_METHOD] \
GIT_COMMITTER_NAME[$GIT_COMMITTER_NAME] \
GIT_COMMITTER_EMAIL[$GIT_COMMITTER_EMAIL] \
REMOTE_USER[$REMOTE_USER] \
GIT_AUTHOR_NAME[$GIT_AUTHOR_NAME] \
GIT_AUTHOR_EMAIL[$GIT_AUTHOR_EMAIL]" >> /tmp/git_cgi_test.log

/usr/lib/git-core/git-http-backend

Вывод «git push» в /tmp/git_cgi_test.log:

Thu Jul  7 11:07:28 CEST 2016 - REQUEST_METHOD[GET] GIT_COMMITTER_NAME[foo] GIT_COMMITTER_EMAIL[[email protected]] REMOTE_USER[auth_basic_user] GIT_AUTHOR_NAME[bar] GIT_AUTHOR_EMAIL[[email protected]]
Thu Jul  7 11:07:28 CEST 2016 - REQUEST_METHOD[POST] GIT_COMMITTER_NAME[foo] GIT_COMMITTER_EMAIL[[email protected]] REMOTE_USER[auth_basic_user] GIT_AUTHOR_NAME[bar] GIT_AUTHOR_EMAIL[[email protected]]

=> кажется, что переменные среды веб-сервера установлены и видны в сценарии CGI.

«git log» в голом репозитории git:

commit 688a98573c5a7559d0fdfb7ff823add3ba0e3a17
Author: remote_os_user <remote_os_user@remote_os_hostname>
Date:   Thu Jul 7 11:07:22 2016 +0200

    the commit comment
...

=> ни "foo", ни "bar", ни "auth_basic_user", а "remote_os_user" :(

==> какие переменные среды должны быть установлены для git-http-backend, чтобы переопределить имя автора в окончательном голом репозитории git?

(Я не контролирую user.name или user.email на ноутбуках удаленных участников. Мне нужно переопределить на стороне сервера)


person user6559818    schedule 07.07.2016    source источник


Ответы (1)


Я бы тоже этого хотел, но невозможно изменить коммиты (не повреждая их) при отправке в ваш центральный репозиторий git. См. это обсуждение. .

person T-Gergely    schedule 28.07.2016
comment
Спасибо ! Вместо этого я сделал хук update для отказать в отправке, если хотя бы один из авторов фиксации не соответствует $REMOTE_USER. - person user6559818; 02.08.2016