Есть ли способ сделать git-push интерактивным? - PullRequest
3 голосов
/ 13 февраля 2011

На моем удаленном git-сервере у меня есть ловушка предварительного получения, которая будет регистрироваться (фиксироваться) в репозиторий clearcase, используя неинтерактивную команду rcleartool. То, над чем я работаю, по сути, это git to clearcase bridge. К сожалению, эта команда commit требует ввода имени пользователя и пароля в качестве аргументов. В идеале я хотел бы, чтобы у клиента запрашивались имя пользователя и пароль при вызове команды git-push, которая затем будет передана в команду clearcase commit. Однако документы для git-push сообщают, что я могу только отправлять сообщения обратно клиенту, таким образом, похоже, что я не могу запросить у пользователя ввод данных.

Кто-нибудь знает способ обойти это?
Кто-нибудь пробовал что-то, чтобы git-push казался интерактивным и успешным?

Любая помощь будет благодарна.

1 Ответ

1 голос
/ 13 февраля 2011

Без интерактивного git-push простого решения для этого не существует.
Одним из возможных способов было бы иметь промежуточное звено между нажатием пользователя и rcleartool checkout.

Если у вас есть gitolite, например, на основе принципа принудительной команды ssh , вы можете использовать этот промежуточный скрипт для:

  • определить, кто делает push (более убедительно, чем просто взглянув на user.name свойство git)
  • искать связанный пароль, хранящийся (зашифрованный) где-то на Git-сервере (что может быть проблематично, если этот пароль регулярно меняется)

С этими двумя дополнительными сведениями сервер Git может затем выполнить часть rcleartool checkout.

...