Yuya Karubeさん
  • コラボレーター
  • SELECK(How to)
  • Yuya Karube

GitHubライクな機能が備わったOSS「GitLab」とは?【GitHub入門】【第5回】

  • -
  • このエントリーをはてなブックマークに追加
    -
  • tweet

これまで過去5回、GitHubの入門記事を配信してきました。いろいろと便利な機能があるGitHubですが、クラウドサービスの使用に制限がかけられている企業も、少なくないと思います。そのような会社のために(?)、GitHubライクな機能を兼ね揃えた「GitLab(ギットラボ)」というOSSがあります。今回は、その活用方法をご紹介します。

▼目次

  • GitLabとは
  • サーバーにGitLabを構築する
  • セットアップ
  • Issues機能を活用する
  • Merge Request機能を使う
  • Wikiでのドキュメント作成や、CIも充実

▼このシリーズの記事一覧

GitLabとは

GitLabはGitHubと同様に、Gitベースのソースコード管理機能や、マージリクエストによるレビュー機能を備えたサービスです。OSSを自前のサーバーに構築するCommunity Editionという無料プランもあり、コストやセキュリティの観点でGitHubを使えない企業から注目を集めています。

GitLab

サポートが受けられる有料のEnterprise Editionもありますが、今回はCommunity Editionの使い方を見ていきましょう!

サーバーにGitLabを構築する

GitLabはもちろんAWSやGoogle Cloud Platformといったクラウド環境に構築することも可能です。クラウドサービス毎に、インスタンスイメージ(インストールまで完了しているインスタンスのテンプレート)があります。

また、公式ページには詳細なインストール手順が公開されています。英語ですが、手順通りにコマンドを実行するだけで、インスタンスイメージを使わなくても、なんとなく構築できます。

▼詳細なインストール手順も公開

インストール手順 - GitLab

公式ページによると、AWSで構築する場合のEC2インスタンスサイズはc4.largeが推奨のようです。2016年6月現在の価格で$0.105 /1hなので、月$72ほど。地味に高いですね...。もう少し小さいサイズでも動きそうな気はするのですが、まあ最大でもそれくらいのコストということを頭に入れておきましょう。

本来であれば安全なストーレジを使うことを考えたり(ソースコードが消えてしまっては...)と考慮が必要です。ですが、まずは「このサービスが自分たちに合っているか?」を考えるためにも、サクッと構築するのが良いでしょう。

セットアップ

インストールが完了し、最初にアクセスすると、まずはadminのパスワード変更を求められます。

パスワードの変更 - GitLab

adminの新規パスワードを入力すると、次はユーザー登録です。

ユーザー登録 - GitLab

これでセットアップは完了です!登録に成功すると、GitLabのトップ画面が表示されているはずです。ここからは、実際にどういった機能があるのかを、確認してきましょう。

TOP画面 - GitLab

Issues機能を活用する

まずはProjectを作成します。GitLabでは1つのリポジトリを1つのプロジェクトとして扱っていて、そこに「Issues」や「マージリクエスト」が紐づくような構成です。リポジトリの作成画面を見ると分かるように、GitHubやBitbucketといった主要なリポジトリ管理サービスからのインポート機能は備わっています。

リポジトリ作成 - GitLab

GitLabには、Issues(イシュー)機能があります。GitHubのIssues機能について紹介した記事で書いていることが、ほとんどが実現できます。プロジェクトが作成できたら、早速Issuesを使ってみましょう。

サイドバーから[Issues]を選択し、[New Issue]をクリックします。Issuesの画面でタイトル、概要を入力します。これもGitHubと同様に、アサインする人を決めたり、ラベルを付けることができます。

Issueの作成 - GitLab

Issuesにはコメントをつけたり、絵文字でリアクションができます。また、後に説明するマージリクエストのURLをコメントに貼ると、自動的にIDに変換して表示してくれたりもします。

Merge Request機能を使う

GitHubでは、Pull Requestという機能が企業でも、OSSの世界でも広く使われています。Pull Requestはソースコードのレビューを効率化し、CI(継続的インテグレーション)の実現のためにも重要な機能です。それと同等の機能を提供しているのが、GitLabのMerge Request(マージリクエスト)です。 (Pull RequestよりもMerge Requestの方が分かりやすい名前ですよね...)

マージリクエスト - GitLab

Merge Requestを作るには、あるブランチから派生した新しいブランチが必要です。通常gitを開発で使っている場合は、コンソールやクライアントアプリからブランチを作成しますが、GitLabではWebUI上で簡単にブランチを作ることもできます。

ブランチの作成 - GitLab

修正の入ったブランチが準備できたら、[Merge Request]の画面から[New Merge Request]を選択します。ここでもIssuesと同じようにタイトルや概要、担当者といったものを入力します。

あとはレビューの担当者がコードの差分を確認し、コメントをして、レビューが通ればマージをして完了です。

Wikiでのドキュメント作成や、CIも充実

GitLabには他にも、リポジトリに関するドキュメントをまとめるWiki(ウィキ)機能や、締め切りを管理するMilestone(マイルストン)機能など、開発に必要な機能は一通り揃っています。

また、GitLab CIというCIサービスもあり、モダンなCI環境も構築できます。GitHubと比較しても、機能的に遜色のないGItLab。SELECKにある活用事例も参考にしながら、一度活用してみてはいかがでしょうか。

コードレビューをすることで、当たり前なのですがコード規約や正しい文法に沿った書き方だとか、そういったことを全員が意識するようになりましたね。人にコードを見られることで、気が引き締まりました。

同じ機能でも短く書けたり、パフォーマンスが良かったり、そういったひとつ上の視点からのレビューを貰えるようになって、自分自身も成長したと思います。

SVNを捨てGitへ!「GitLab」を社内に浸透させた方法と、移行によるメリットとは?

▼このシリーズの記事一覧

  • -
  • このエントリーをはてなブックマークに追加
    -
  • tweet