このような会社・組織にお奨め
- GitHubを使う承認を得られない、稟議が下りない。
- セキュリティ上の問題から社内にリポジトリを構築したい。
- リポジトリサービスに自社独自のカスタマイズを施して利用したい。
GitLabの紹介
GitLabはGitをベースとしたモダンなソフトウェア開発を行うためのライフサイクルを支援するプラットフォームです。GitHubのクローンと言える位置付けにあります。
GitLabは商用版とオープンソース版があります。この記事で取り上げるのはMITライセンスで提供されているオープンソース版のGitLab Community Editionです。
GitLabの主な機能
GitLabの主要な機能を列挙します。GitHubやBitbucketを利用している方にとって馴染みのある機能が多いかと思います。
- Gitリポジトリ
- プロジェクト管理
- ユーザーロール管理
- 静的ページ公開機能
- イシュー管理
- コードレビュー機能
- マージリクエスト(プルリクエスト)
- ウェブUIからのチェリーピック
- ウェブUIからのマージコンフリクト解消
- CIツール(GitLab CI)
- API
- コードスニペットの共有
- 外部サービス連携(Slack、JIRA等)
GitLabのインストール
Ubuntu16.04にGitLabを新しくインストールします。マニュアルインストールではなくオムニバスパッケージを使ったインストールが推奨されていますので、それに従ってインストールを進めます。
hostnameの設定
ウェブページにアクセスする場合、またPostfixを利用してメール送信する場合にホスト名をFQDN形式にする必要があります。
ここではダミーでホスト名を ‘user-virtualbox.com’ にします。/etc/hostファイルにダミーのドメインを追加します。
$ sudo vi /etc/hosts 127.0.0.1 localhost user-virtualbox.com
hostnamectlコマンドを利用してホスト名の変更をOSに反映します。
$ sudo hostnamectl set-hostname user-virtualbox.com
hostnameコマンドで指定した名称にホスト名が変更されていれば問題ありません。
$ hostname user-virtualbox.com
オムニバスパッケージのインストール
以下コマンドでオムニバスパッケージに必要なライブラリを先にインストールします。
$ sudo apt-get install curl openssh-server ca-certificates postfix
Postfixをインストールして利用する場合、メールサーバーの設定方式を尋ねられます。適切に選択するか、後で設定する場合は「設定なし」を選択し次へ進めます。
次にGitLab-CEパッケージを取得してインストールします。
$ sudo apt-get install gitlab-ce
上画像のようにGitLabのアイコンが表示されればインストールに成功です。次にGitLabのセットアップに移ります。
$ sudo gitlab-ctl reconfigure
コマンド終了後、 http://user-virtualbox.com にアクセスしてパスワード変更ページが表示されればGitLabの起動に成功です。
GitLabでマージリクエスト(プルリクエスト)を試して見る
GitLabが使えるようになりましたので、ユーザーを作成して、プロジェクトを登録、ブランチの変更差分をmaterブランチにマージする一連の流れを試して見ます。
rootユーザーのパスワード設定
新しいパスワードと確認パスワードを入力してパスワード更新後にログインしましょう。ここではパスワードを仮でadminadminとします。初期登録されているadminユーザー名はroot (全て小文字) です。
パスワードを変更後、rootユーザーで無事GitLabにログインできました。
新規ユーザーを登録
rootユーザーでログイン中のため、ログアウトして新しくユーザー登録します。ログインフォームからRegisterタブを選択して必要情報を入力して下さい。新規ユーザー登録に成功すると同時にGitLabにログインします。
プロジェクトを登録
次にプロジェクトを作成します。右上の「+」ボタンを押すと新規プロジェクト登録ページに遷移します。
自分のユーザー名がプロジェクトパスになります。その下にプロジェクト名を指定します。GitHubやBitbucketで管理されているプロジェクト向けにインポート機能が備わっています。ここではマージテスト用にtest-projectと命名してプロジェクトを作成します。
プロジェクトの作成に成功すると、空プロジェクトが表示されSSH公開鍵の登録を促されます。
リポジトリにファイルを追加
ウェブUIから直接ファイルを登録してみます。リポジトリURL横の「+」を押してNew Fileを選択します。
ファイル名をmemo.txtと指定してコミットします。
リポジトリに新しくファイルが作られました。
リポジトリにもファイルが増えています。
ブランチとマージリクエストの作成
masterから新しいブランチchange-memoを作り、memo.txtの内容を少し変更します。
次に「Create Merge Request」ボタンを押してリクエストを作ります。
source branchにマージする変更を含んだブランチ、Target branchにマージ先のブランチを指定しSubmit merge requestを押します。
マージリクエストの採用
マージリクエストが作られました。ここではそのままAccept Merge Requestを押してmasterブランチへマージします。
マージリクエストを利用してmasterブランチにマージできました。
リポジトリのグラフを見ると更新がマージされているのが分かります。
まとめ
オンプレミス環境でリポジトリサービスを含めた開発環境を構築する状況で採用して見るのも良さそうです。
豊富な機能と充実したドキュメント(英語)が揃っており、込み入ったカスタマイズや運用ルールにならないよう注意すれば運用上の問題も少なく抑えられそうです。
オンプレミス版のGitHubを導入する程ではないけども同等のサービスが使いたい、GitLabはそんな要求に答えてくれます。
参考情報
https://about.gitlab.com/
https://about.gitlab.com/installation/
https://about.gitlab.com/downloads/#ubuntu1604
本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments