GitLab.comによるチーム開発

この記事は GitLab Advent Calendar 2018 の 13 日目です。

GitLab.com

このカレンダーを読んでいる人は既にご存知だと思いますが、GitLabはセルフホスティング以外にもgitlab.com というクラウドサービスがあります。自前でホストせずともあらゆるプロジェクトに関することやソースコードの管理にGitLabを利用することが可能です。

GitLabというと「無料・無制限にプライベートリポジトリが使えるGitHub」というイメージを持たれている方がいるかもしれませんが、実際にはGitHubとは異なる思想に基づいて作られておりかなり異なります。

チケット管理#

チケット管理はGitLabでのリポジトリは高機能です。GitHubのIssueにはアサインとマイルストーンとラベル機能くらいしかないですが、GitLabはそれ単体でアサイン、締切の設定、経過の記録、チケットごとの関連づけ(後述の有料プランの機能)、ラベルによる種類の管理など十分な機能が揃っています。

CI およびデプロイなどのフロー#

CIもGitLab CIで実現していますので、GitLabが動いていれば自動テストもいつでも実行できますし、一部プロジェクトにおいてはDockerコンテナのpushもCIに組み込まれています。

また、運用しだいではありますが、デプロイのレビューなどのフローもGitLabで完結させることができます(やっています)。単一のツールで設定の更新、レビュー、承認までがGitLabさえあれば実行できます。有料プランにおいては「承認者」を指定することさえも可能です。

有料プラン

無料プランでも十分すぎるほど高機能ではあるのですが、よりチームや複数リポジトリの管理を推し進めようとすると有料プランにより開放される機能があり、一部紹介をします。

各種プランでどのような機能が開放されるのかは一覧ページ があるので詳細はそちらへ。この記事ではわたしが特によく使っている機能を紹介します。

関連しているIssueを登録することができます。親チケット・子チケットという概念はないですが、これにより複数の課題をグルーピングできます。リポジトリをまたいで関連づけることもできます。

Multiple assignees for issues#

ひとつのIssueに複数人アサインできる機能です。特に説明は不要だと思いますが地味に便利でと当初は活用していました。しかし最近は Assignee を設定するよりも @user_id でメンションを飛ばすことのほうが多いです。このあたりは運用や文化で変わっていくものと思います。

Merge approvals・Multiple approvals in code review#

コードレビューで特定の人物から承認をもらうこと、及び複数人から承認をもらうことを可能にする機能です。たとえば「AさんまたはBさんの承認がないとこのMRはマージできない」、「AさんとBさんとCさんのうち2人の承認がないとマージできない」というような設定ができます。

プロジェクトやプロダクト次第ではあるでしょうが、てきとうな承認フローが必要な場合はこの機能を使って実施することができます。

まとめ

使用したことがないので詳細は書きませんでしたが、シルバープランになると更にチーム開発・運用で役に立ちそうな機能が増えます。つかっていろいろやりたい〜〜