ALMiniumをGitの共有リポジトリとして使う




分散バージョン管理システムとして、Gitが注目を浴びています。しかしながら、コマンドを使えるようになった開発者は増えてきても、Gitのリポジトリをきちんと作成して運用できる人はほとんどいないように思います(もちろんできている人もいますよ!!)。

ところで、皆さんはGitの共有リポジトリとして、何をお使いでしょうか? sshによる共有は手軽ですが、リポジトリ毎に読み書きの制御ができなかったり、若干不便なところがあります。今日はGitの共有リポジトリとしてALMiniumを使うメリットをご紹介します。

開発で本格的なGitリポジトリ運用をしたいと思っている方は、是非一度お読み下さい!!

なぜALMiniumがGitリポジトリツールとして利用されるのか?

ALMiniumの利用プロジェクトは公開半年にして既に100プロジェクトを超えるプロジェクトで利用されています。その1/3のプロジェクトでGitが利用されています。Gitの共有リポジトリの管理としてALMiniumを利用しているプロジェクトも多いです。なぜALMiniumがGitリポジトリ管理ツールとして利用されるのでしょうか? その秘密を探って行きましょう(※あくまで開発者の主観です)。

其ノ壱:手軽さ

ALMiniumの最大の特徴はその手軽さですb。ALMiniumを使えば簡単にGitのリポジトリサーバがセットアップできます。プロジェクト作成画面からリポジトリにGitを選択するだけです。

其ノ弐:簡単なユーザ管理

Redmineのユーザを作成し、プロジェクトに割り当てるだけでリポジトリのアクセス制御を行えます。

管理者・開発者はリポジトリの読み書き権を、閲覧者はリポジトリの読み込み権のみ持っています。また、テスターなど独自に追加したロールにもリポジトリの アクセス権を設定することもできます。

其ノ参:ウェブ対応

ALMiniumはHTTP/HTTPSを利用してGitリポジトリを公開します。オフィス環境によっては、SSHプロトコルが使えないところも沢山あると思います。そんな環境でもHTTP/HTTPSさえ通れば快適にGitを利用できます。プロキシ越えも問題ありません。

其ノ四:セキュア

手軽にHTTPSで通信を暗号化bできます。また、デフォルトでリモートブランチとタグの削除を無効化しています。共有リポジトリ上に一度作成されたブランチやタグを勝手に削除されないようになっています。

其ノ五: 様々オプション

ALMiniumはGitに関連する様々な機能をオプションで提供します。WebからGitリポジトリを閲覧することができるリポジトリビュワー、コードレビューシステムGitのコミットとブランチの高度な統合をサポートします。

オープン性

ALMiniumは、これらの機能を無償かつオープンソースで提供します。ALMiniumはRedmine/Gitによる開発を「汎用化したツール」ですが、カスタマイズ性が高いので、みなさんの個々のプロジェクトに応じた「最適化」を行うことができます。 また、ALMiniumの開発はGitHub上でオープンに行われており誰でも開発に参加することができます。

チケットシステムとの高度な連携

Gitでコミットする際に、

  コミットメッセージ(refs #2349)
のようにチケット番号を書くことにより、コミットとチケットを対応づけることができます。チケット番号を入力するのが面倒な人は、
$ git checkout -b "hotfix/#2349"
(編集・コミット)
$ git push -u origin "hotfix/#2349"
このようにブランチで作業しブランチをプッシュするだけでチケットとコミットを対応づけることができます。

また、

$ git checkout master
$ git merge --no-ff hotfix/#2349
$ git push 
と、ブランチをマージし、ALMinium上のGitリポジトリへプッシュするだけでチケットをクローズします。ブランチでの作業とマージによるブランチでの作業の終了、ブランチとチケットのライフサイクルを高度に統合しています。なお、チケットの自動クローズ機能を利用する場合は、--no-ffオプションによりファーストフォワードのマージを無効にしてください。

インストール・使い方

インストールについては、若干冗長な記述ですが「スクラムやるならRedmineとALMinium!」をご覧ください。 プロジェクト作成時に、リポジトリに「Git」を指定するだけでリポジトリが作成されます。 作成したリポジトリは、次のようにしてアクセスすることができます。

$ git config --global http.sslverify false
(証明書の検証を無効化)
$ git clone https://<ユーザ名>@<alminiumのホスト名>/git/<プロジェクト名>
ALMiniumは自前で作成した証明書をHTTPSの通信に利用します。証明書の検証を無効にしないとエラーになるので注意してください。また、アクセスしたいユーザをプロジェクトに追加しておいてください。 例えば、myprojという名前のプロジェクトにadminユーザでアクセスするには、次のようにします。
$ git clone https://admin@alminiumhost/git/myproj
必要に応じてプロキシの設定を行なってください。
$ export https_proxy=http://proxyuser:passwd@proxyhost:8080/