• Hakkımda
  • İletişim
/home/ras0ir there are no girls on the internet

gitolite ve redmine

20 Nisan 2012 11:56 / 1 Comment / ras0ir

Bir önceki yazımda git deposu yansılamaktan bahsetmiştim. Bu yazımda gitolite üzerinden yönetilen bir git deposuna Redmine üzerinden nasıl ulaşılacağını anlatacağım.

Evvela Redmine uzaktaki bir git deposunu okuyamıyor. Bu bir dezavantaj değil tabii ki, git’in yapısıyla ilgili bir mesele. Dolayısıyla Redmine’a doğrudan github’daki (ya da herhangi bir git servisi) clone adresini vermeniz mümkün değil. Redmine’ın çalıştığı makinede bir git yansısı tutarak bunu halledebilirsiniz.

Bu yazım git deposu ile Redmine’ın aynı sunucuda olduğu kurulumlar için geçerli olacak haliyle.

Evvela sorunu bir tanımlayalım. Yerelde gitolite tarafından oluşturulmuş depoyu Redmine’a eklediğinizde depo içeriğini görüntülemek istediğinizde depo içeriği yerine havanızı alıyorsunuz (404). Redmine her ne kadar dosya izinlerine ilişkin bir hata vermese bile (rails’ın production veya development logları dahil) sorunun dosya izinlerinden kaynaklandığı anlaşılıyor.

Nedeni ise gitolite belgelendirmesinde açıkça yazıyor zaten. gitolite öntanımlı umask olarak 0077 kullanıyor. Haliyle gitolite kullanıcısı hariç kimse depo içeriğine ulaşamıyor.

Bu aşamada bu sıkıntıyı gidermek için 2 yöntem bulunuyor:

1. gitolite tarafından sunulan deponun, redmine’ı çalıştıran kullanıcı tarafından yansılanması. Eğer güvenlik konusunda endişeleriniz varsa bu yöntemi kullanabilirsiniz.

2. Diğer yöntem ise benim tercih ettiğim yöntem. Disk üzerinde ikinci bir depo yansısı tutmak yerine gitolite’ın öntanımlı umask’ını 0022 yapmak.

İkinci yöntem üzerinden devam ettiğimizde yapmamız gereken işlemler oldukça basit.
Gitolite’ı kurduğunuzda (ister dağıtımınızın paket deposundan, ister gitolite’ın git deposundan) .gitolite.rc isimli dosyamızı düzeltmemiz gerekiyor. .gitolite.rc gitolite kullanıcısının ev dizininde tutuluyor. (Red Hat türevlerinde EPEL’den gitolite kurmuşsanız eğer /var/lib/gitolite dizini altında bulunuyor bu dosya)

İlgili dosyayı açıp şu değişikliği yapmanız yeni depolar için yeterli olacaktır:


$REPO_UMASK = 0022;

Yaptığımız bu değişiklik tahmin edebileceğiniz üzere daha önce oluşturduğunuz depoların izinlerine etki etmeyecektir. Burada eski depoların izinlerini değiştirmek için bir manuel bir işlem yapmamız gerekecek:


find depo_ismi.git -type d -exec chmod 755 {} \;
find depo_ismi.git -type f -exec chmod 644 {} \;
chmod a+x depo_ismi.git/hooks/*

Bu şekilde vermiş eski depoların da umask’ını 0022′ye çekmiş oluyorsunuz. Artık Redmine üzerinden depoyu ekleyebilir ve içeriğini görüntüleyebilirsiniz.

Son olarak da eğer commitlerinizin otomatik olarak Redmine’ı tetiklemesini istiyorsanız yapmanız gereken işlem basit. post-receive betiğinizin sonuna şunu ekleseniz yeterli.


curl (ya da wget) "http(s)://redmine.adresi/sys/fetch_changesets?key=redmine_depo_api_anahtarı"

Eğer custom bir SSL sertifikası kullanıyorsanız curl sertifika hakkında sızlanacaktır. Bunu aşmak için curl’e parametre olarak -k verebilirsiniz:


curl -k "https://redmine.adresi/sys/fetch_changesets?key=api_anahtarı"

API anahtarınızı Redmine -> Yönetim -> Ayarlar -> Depo kısmından oluşturabilir/öğrenebilirsiniz.

Paylaş:

Posted in: Genel / Tagged: git, gitolite, linux, redmine

One Thought on “gitolite ve redmine”

  1. Pingback: Redmine ve karşıdaki (uzaktaki, remote, whatever) git depoları | /home/ras0ir

Bir Cevap Yazın Cevabı iptal et

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Post Navigation

← Previous Post
Next Post →

Etiket

arch cheatsheet git github gitolite glibc graylog2 iptables java jboss jira ldap leap second linux log4j lvm openkm postfix rake redmine rhel ruby sane scientific ssh ssl sslh wordpress

Son Yazılar

  • sslh: beşi bir yerde!
  • JIRA 5.x’den Redmine proje yönetim sistemine geçiş
  • Redmine, SVN ve SSL Sertifikaları
  • JBoss loglarını graylog’a göndermek
  • tık tık… kim o?

Son Yorumlar

  • JIRA 5.x’den Redmine proje yönetim sistemine geçiş için ras0ir
  • JIRA 5.x’den Redmine proje yönetim sistemine geçiş için necdet yucel
  • tık tık… kim o? için Gökhan
  • Arch Linux (testing) glibc güncellemesi için kalamarr
  • Arch Linux (testing) glibc güncellemesi için Hakiki Archer
(ɔ) Copyleft 2012 - /home/ras0ir
Infinity Theme by DesignCoral / WordPress