GitとMercurialに対応のリポジトリ管理ツール「Kallithea」

最近はコードやconfigよりも文章を書くことの方が多い前田です。webサイトの記事、パンフレットのテキスト、お客様のサポート、Redmineのチケットなど。

さて、ソースコードなどを管理するためのリポジトリ、どこに置いてますか? ネットのサービスだとBitbucketやGitHubなどが有名ですが、ネット上のサービスではなく自前のサーバで運用したいことも多いと思います。今回のブログでは当社でも使っている「Kallithea」というオープンソースソフトウェアを紹介します。

Kallitheaとは

GitとMercurialに対応したオープンソースのリポジトリ管理ツールで、Git・Mercurialリポジトリのホスティングを行うサーバを簡単に構築できます。リポジトリやユーザーの管理機能のほか、プルリクエスト、コードレビュー支援、全文検索などの機能も備えています。リポジトリを中心とした機能に特化していて、シンプルでわかりやすいのが気に入っています。

ちなみに Kallithea というのはギリシャの都市です。Dictionary.comによるとギリシャ語での発音は "kah-lee-they-ah" ("they"にアクセント) だそうなので、カタカナだと「カリセア」が近そうです。私は「カリセア」と読んでいますが、日本の地図や観光分野では「カリテア」と表記されることが多いようです。

Kallitheaの特徴

GitとMercurialの両方に対応

オープンソースのリポジトリ管理ツールはGitlabやGitBucketなどGitのみに対応したものが多い中、KallitheaはGitとMercurialを併用できます。個人的にはGitよりもMercurialのほうが好きでよくMercurialを使うので大変助かります。

インストールが簡単

Pythonで記述されているKallitheaは、Pythonのパッケージ管理システム「pip」を使って簡単にインストールできます。

例えば最小構成でインストールした直後のCentOSへのKallitheaのインストールは、以下のコマンドで済みます。

yum install python-devel git
yum groupinstall "Development Tools"
easy_install pip
pip install kallithea

その後若干の設定は必要ですが、単に立ち上げて動作確認するまでであればこれだけです。

mkdir -p /var/lib/kallithea/repos
cd /var/lib/kallithea
paster make-config Kallithea kallithea.ini
paster setup-db kallithea.ini
paster serve kallithea.ini start

権限管理

リポジトリやリポジトリグループ(フォルダ)ごとにアクセス権限の制御ができます。

IPホワイトリスト(アクセス元IPアドレスの制限)

IPアドレスによるアクセス元制限機能があります。インターネット上のサーバに設置するときにも比較的安心して使えます。ホワイトリストはアプリケーション全体の設定のほか、ユーザーごとに追加のホワイトリストを設定することもできます。

Redmineなど課題管理システムとの連携

コミットメッセージ内に「#123」などの形式でRedmineなどの課題管理システムのチケット番号を記述すると、番号からそのチケットへリンクされるよう設定できます。

Kallithea自体はチケット管理やWikiなどの機能を持たずリポジトリ管理に特化しているのでRedmineなどと機能がかぶることがなく、併用に適しているのではないかと思います。

プルリクエスト

プルリクエストに対応しているので、プルリクエストベースのワークフローで仕事ができます。

全文検索

定期的にインデックスを作成させるための設定が別途必要ですが、リポジトリのファイルの内容、コミットメッセージ、ファイル名を対象に全文検索が行えます。

Kallitheaを広めたい

以上、Kallitheaの紹介でした。私としてはかなり気に入っているツールですので、今後もぜひ継続的に発展して欲しいと願っています。そのためには多くの人に使ってもらうことが必要ですが、現状では日本語の情報はあまり多くありません。

そこで、Kallitheaの利用に関する日本語情報を発信するためにwebサイトを8月22日(土曜日)にオープンしました。インストール・設定・操作など、Kallitheaを活用するための情報をワンストップで提供できるサイトを目指しています。

リポジトリ管理システム Kallithea 日本語情報
http://www.kallithea-users.jp/

kallithea-users.jp のオープンと同日、オープンソースカンファレンス2015 ShimaneのセミナーでもKallitheaの紹介をしました。

Git・Mercurial両対応 リポジトリ管理ツール「Kallithea」 from Go Maeda

もし関心を持たれましたら一度使ってみていただけるとうれしいです。

ファーエンドテクノロジーからのお知らせ(2018/11/30更新)
Redmineコミッター前田と居酒屋で語る会in東京(12/12開催)
Redmineコミッターである前田剛(ファーエンドテクノロジー株式会社 代表取締役)とRedmineについて楽しく語ったり、質問したりする会を開催します。
Redmineの最新情報をメールでお知らせする「Redmine News」配信中
新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け