イマドキのIDE事情 第6回簡単デプロイ!「Gitblit」で共有Gitサーバを手軽に構築
skill

イマドキのIDE事情 第6回
簡単デプロイ!「Gitblit」で共有Gitサーバを手軽に構築

2014.06.03

ent37_img01.jpg

GithubやBitBucketといったサービスの登場もあり、GitやMercurialなどの分散型バージョン管理システムも一般的に利用されるようになってきた。しかし、自分でGitやMercurialを利用可能なサーバを構築しようとすると、さまざまな依存ソフトウェアのインストールや設定が必要で、意外と面倒だ。そのような場合におすすめしたいのが、今回紹介するGitblitだ。(竹添直樹

■意外と面倒なGitサーバの構築

ent37_img02.jpg
GitblitのWebサイト


GitblitはJavaで実装されたGitサーバで、Tomcatなどのサーブレットコンテナ上で動作する。内部的にはEclipse Foundationで開発されている「JGit」というGitのJava実装を使用しているため、warファイルをデプロイするだけで利用でき、プラットフォームも問わない。Javaさえインストールされていれば利用可能で、非常に手軽に導入することができるのだ。

■Gitblitのインストール

GitblitのWebサイトからwarファイル(本稿執筆時点の最新版はgitblit-1.5.1.war)をダウンロードし、Tomcatなどのサーブレットコンテナにデプロイ(Tomcatであればwarファイルをwebappsディレクトリにコピー)するだけでインストールは完了だ。GitblitのWebサイトからは「Gitblit GO」という予めTomcatが同梱されたものも用意されているので、こちらを利用してもいいだろう。

Tomcatを起動し、以下のURLにアクセスすると下のような画面が表示されるはずだ。

http://localhost:8080/gitblit-1.5.1/

ent37_img03.jpg
起動直後のGitblit

デフォルトではユーザID「admin」、パスワード「admin」でログインできるので、リポジトリやユーザを追加しよう。

■Gitblitの主な機能

Gitblitで作成したリポジトリはHTTPもしくはSSH経由でクローンすることが可能なので、Gitクライアントさえ用意すればすぐに利用できる。

リポジトリの概要ページには最新のコミット一覧が表示される。また、docsページではリポジトリ内のMarkdownファイルなどを表示することができる。GitblitはWikiなどドキュメンテーション向けの機能は備えていないが、リポジトリ内にドキュメントを含めておくことでGitblit上で参照することができるので便利だ。

ent37_img04.jpg
リポジトリの概要ページ

ent37_img05.jpg
リポジトリ内のドキュメントを表示

このほか、リポジトリビューアやフックスクリプトの設定、Luceneを使用したリポジトリの検索、メトリクス、アクセス権限の管理などGitリポジトリを運用する上で必要となる機能は一通り揃っている。フックスクリプトをGroovyで記述できるのはJavaベースのGitblitならではのメリットといえるだろう。

ent37_img06.jpg
ファイルの内容を表示

ent37_img07.jpg
差分の表示

また、追加で設定が必要となるものの課題管理のためのチケットシステムも利用可能だ。Tomcat上で実行している場合は
webapps/gitblit-1.5.1/WEB-INF/dataディレクトリにGitblitのデータが格納されているが、ここにあるgitblit.propertiesの以下の行を編集したうえでTomcatを再起動する。

変更前:

tickets.service =

変更後:

tickets.service = com.gitblit.tickets.FileTicketService

すると各リポジトリにチケットページが追加され、チケットの登録が可能となる。Gitblitのチケットシステムはチケットに対する修正を「ticket/チケット番号」という名前のブランチで行うというワークフローに基づいて設計されており、Githubのプルリクエストに近い運用が可能だ。

ent37_img08.jpg
チケットの登録

■まとめ

Webブラウザベースの管理インタフェースを備えたGitサーバを構築するためのプロダクトは他にもGitLabなどが存在するし、TracやRedMineなどと組み合わせて利用する方法もあるが、Gitblitのメリットはなんといってもちょっとした手間でプラットフォームを問わず導入できる手軽さだ。また、機能面ではOSSのような開かれた開発スタイルよりも、業務でのチーム開発に適しているといえるだろう。

チーム内でGitの導入を考えている場合はGitblitも候補に加えてみてはどうだろうか。

原稿:竹添直樹
株式会社ビズリーチ所属。Scalaを愛するJVM系プログラマ。業務の傍らOSS開発や執筆活動を行っている。
https://twitter.com/takezoen

※本記事は2013年5月2日にマイナビニュースに掲載された記事を基に、一部加筆修正しています。

この記事はどうでしたか?

おすすめの記事

キャリアを考える

BACK TO TOP ∧

FOLLOW