Interface cgit para os repositórios do CEFALA

Faz tempo que eu desejava instalar uma interface web para os repositórios Git do CEFALA, que se encontram na VM git.cefala.org. Dentre as inúmeras interfaces disponíveis, acabei optando pelo cgit, que reúne as vantagens de ser leve (escrito em C), eficaz (sem PHP nem JavaScript) e de fácil configuração, além de fornecer (quase) tudo que se espera de uma interface web para o Git.

No caso do CEFALA, apenas a VM www.cefala.org é accessível via HTTP e HTTPS. Neste caso, é necessário utilizar o mecanismo de proxy do Apache2 para poder acessar o servidor cgit na VM git.cefala.org. O servidor HTTP/HTTPS virtual está definido na configuração do Apache da VM www.cefala.org e é acessível pela URL https://cgit.cefala.org.

Por hora, os seguintes repositórios são visíveis na interface cgit:

  • cefala-cgit: Configuração do servidor cgit (vide abaixo)
  • apt-debian-pinning: configuração do APT pinning para as diversas distribuições da Debian, descrita num artigo deste blog
  • git-scripts: Scripts de ajuda para uso do Git na VM git.cefala.org, descritos num artigo deste Blog
  • notmyidea-pt: Tradução do tema notmyidea do Pelican em português. Este tema é usado neste Blog.

O servidor cgit está configurado para aceitar um arquivo de descrição README.md na raiz de cada repositório (exemplo) e também para colorir sintaticamente os arquivos mostrados (exemplo).

É possível também clonar os repositórios via HTTP:

$ git clone http://cgit.cefala.org/cgit/cefala-cgit

A configuração deve ser feita tanto na VM www.cefala.org (servidor Apache) quanto na VM git.cefala.org (servidor cgit). Ambas configurações são feitas através do projeto cefala-cgit.

Na VM www.cefala.org:

$ git clone cefala-admin@git.cefala.org:cefala-cgit.git
$ cd cefala-cgit
$ sudo make apache-install

Na VM git.cefala.org:

$ git clone /var/git/cefala-cgit
$ cd cefala-cgit
$ sudo make cgit-install

Modificações permanentes nos arquivos de configuração devem ser registradas (commit) e subidas (push) no repositório centralizado:

$ git add apache cgitrc cgitrepos
$ git commit -m 'Modificação na configuração para [isto] ou [aquilo]'
$ git push

P.S.: Eu nunca sei como traduzir commit e push em português. Algumas pessoas já tentaram fazer isto, ali e acolá.

social