Tunelovani GIT konfigurace na server prez SSH aneb konec commitum root root@debian
Urcite se vam nekdy stalo, ze jste neco commitovali na serveru a do historie jste si zavlekly neco jako:
commit 8f160534070012c87c409e5b19028ad0062f0310
Author: root <root@debian>
Date: Wed Jun 26 17:16:31 2013 +0000
blocks.pickle, peers.pickle added to .gitignore
Asi to znate. Ale nastavit uzivatele a email na serveru neni nejlepsi reseni, protoze muze pristupovat vice lidi a kazdy chce vytvaret commity pod svym jmenem.
SSH forward proměnných
Resenim muze byt posilani environment promenych po SSH. Vyzaduje to sice zmenu nastaveni SSH serveru, ale je to jediny zpusob, jak nastavit prostredi Gitu automaticky pro konkretniho uzivatele.
Na lokalnim pocitaci
Na straně klienta musíme mít v bashrc vyexportované proměnné, které nastavují v Gitu jméno a email pro autora i commitera. Jsou to tyto proměnné:
export GIT_AUTHOR_NAME="Ondrej Sika"
export GIT_AUTHOR_EMAIL="ondrej@ondrejsika.com"
export GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME
export GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL
a je jestě nutné tyto proměnné posílat při SSH spojení. To se dá globálně povolit v SSH konfigu (.ssh/config) takto: Host SendEnv GIT_ A to je na straně klienta vše.
Na serveru
Na serverů je nutné povolit přijímání env proměnných Gitu. Do souboru /etc/ssh/sshd_config je nutné přidat následující řádku:
AcceptEnv GIT_*
A pak jen restartovat SSH server (service ssh restart), odpojit a připojit se znovu. Zda vše zafungovalo, zjistíte když si vypíšete proměnné prostředí pomocí:
root@debian:~# env | grep GIT
GIT_COMMITTER_NAME=Ondrej Sika
GIT_COMMITTER_EMAIL=ondrej@ondrejsika.com
GIT_AUTHOR_NAME=Ondrej Sika
GIT_AUTHOR_EMAIL=ondrej@ondrejsika.com
Ted uz vse funguje, dalsi commit na serveru bude uz se spravnym autorem.
Školení Gitu
Zaujal Vás Git? Chcete se dozvědět více? Přijďte na mé Školení Gitu!
Případně si můžete vybrat z nabídky otevřených kurzů.
Ondřej Šika
Jsem freelance DevOps konzultant a lektor. Zlepšuji práci vývojářských týmu zaváděním efektivních procesů ve vývoji. Naučím Vás používat prověřené nástroje a technologie, které povedou k rychlejšímu vývoji a bezpečnějšímu provozu vašeho software.