連載
» 2012年10月19日 18時00分 公開

GitHubはリアルRPG? そして、ソーシャルコーディングへユカイ、ツーカイ、カイハツ環境!(29)(2/3 ページ)

[岡本隆史,@IT]

特徴【1】ホビーユースから本格的なプロジェクトまで幅広い用途で利用可能

 GitHubは、個人で開発したソフトウェアを「ちょっと公開する」のに便利です。GitHubのアカウントを作成すれば、複数のリポジトリをボタン1つで作成して、管理できます。

図2 個人でのリポジトリの利用

 個人リポジトリは、作成した人しかプッシュ権限を持ちません。プロジェクト/チームで利用する場合、数人のメンバーでリポジトリを共有する必要があります。その場合、「Organization」を利用すると便利です。

 「Organization」は通常の個人ユーザーのアカウントと同じように複数のリポジトリを持てますが、リポジトリの利用者にチームを割り当てることができます。

図3 Organizationによるプロジェクト・チームでのプロジェクトの利用

 チームは、複数作成でき、共通モジュールなど複数のチームからアクセスがあるリポジトリには、複数のチームを割り当てることもできます。

 また、個人リポジトリ、Organization問わず、リポジトリを公開したくない場合は、有償でプライベートリポジトリを作成することもできるので、業務利用も可能です。

特徴【2】チケットとマイルストーン管理ができる

 チケット駆動開発で注目されているチケットとマイルストーンの管理も可能です。イテレーション・スプリントやリリースバージョンにマイルストーンに割り当てれば、スケジュールの管理も可能です。

図4 チケットのマイルストーンの概念図

 また、上記の図のようにチケットには、「ラベル」を付与でき、例えば仕様変更、バグ、新機能、などのラベルでカテゴリで整理したり、「反映済み」「テスト済み」などのラベルで進捗状況を管理することもできます。

 スプリント1のマイルストーンの実際のチケットをGitHubで表示した実際のイメージは、次のようになります。

図5 マイルストーンとラベルが付与されたチケットのイメージ

 Trac/Redmineなどのチケットシステムには、コミット時に「closes」「refs」などのキーワードによって、チケットにコミット内容を反映するチケットとコミットの連携機能がありますが、GitHubも、Gitリポジトリにコミットするときに、「fixed #123」のようにキーワードを付与することによって、チケットをクローズすることもできます。

 なお、GitHubではチケットは、「Issue」と呼ばれています。余談ですが、Redmineのチケットも英語名は「Issue」となっており、海外では「Issue」という呼び名の方が一般的です。

特徴【3】フィードバックを促進するプルリクエスト機能

 リポジトリに修正や変更を送付する機能です。従来のプロジェクトホスティング機能では、チケットにバグや機能変更要望をあげて、パッチをチケットに添付することによりフィードバックを実現していました。

 この方法では、パッチを受け取った人がチケットからパッチをダウンロードし、パッチツールやIDEなどでパッチを当ててからコミットする必要があり、Webブラウザやパッチツール、Gitクライアントとツールを切り替えながらパッチを取り込む必要があり煩雑でした。

 プルリクエスト機能は、フォークしたリポジトリに変更をコミットし、リポジトリ上のコミットをプルリクエストとして開発者へ送付する機能です。

図6 プルリクエストの概要

 プルリクエストとしてコミット(パッチ)を受け取った開発者は、GitHubのWeb画面、もしくはgitコマンドのみを利用して簡単にコミットをマージできるようになりました。

 プルリクエストに不具合があり差し戻しが指摘された場合でも、修正してリポジトリへプッシュするだけで、開発者に修正したことを伝えたり、プルリクエストが取り込まれなかった場合でも、ブランチとしてパッチのメンテナンスを継続することが簡単にできます。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。