1. ホーム
  2. コラム
  3. より良いGitHubEnterprise運用を行うための3つの方法

より良いGitHubEnterprise運用を行うための3つの方法

みなさん。
GitHubは利用していますか?
ソースコードを中心にコミュニケーションを取ることができるGitHubは、プログラマにとって非常に便利なツールです。
いまやweb制作には欠かせないGitHubですが、今回はその機能の一部を紹介します。
チームや部署で導入する際のルールなども提案しながら便利な機能を紹介したいと思います。

githubグッズ

1 コミットテンプレートを作る

コミットテンプレートを作成するのは、gitの機能になりますが、GitHubと合わせて利用することでより効果的な役割を果たします。
まずはコミットテンプレートを使用するメリットについて説明します。

コミットテンプレートを定義することで得られる一番大きなメリットは、質の高いコードレビューに繋がることだと思います。コミットメッセージを定義し、フォーマットを定めることで他者に対してわかりやすい作業ログを残すことができます。
結果、よりコードレビューが行いやすくなります。
質の高いコードレビューは高い品質につながることは、みなさんよくご存知のことだと思います。

それでは、実際に使ってみます。
使用するコミットメッセージは以下です。

コミットメッセージ

このメッセージではいくつかの機能を使っています。
まず1行目ですが、実は一行目はgitやGitHubでコミットタイトルとして使用することができます。
GitHubでは下記のように表示されます。

GitHub上でのコミットタイトル

このようにタイトルを利用することで、自分の作業履歴を簡潔に説明することができます。

3行目以降に書いた内容もGitHubで確認してみます。
3行目以降に記載した内容はページを開いた時点では省略されていますが、右の点のアイコンを押せば開くことができます。

GitHub上でのコミットメッセージ

上記ではバグ修正には虫の絵文字を使い、リファクタリング作業にはリサイクル絵文字を使っています。
このように、チームで利用する絵文字を決めておけば、作業ごとにどんな種類の作業をしたのかを明確に区別できるようになります。

便利なことに、gitやsource treeはコミットメッセージのテンプレートを作成することができます。コミットテンプレートを利用すれば、メッセージのルールに慣れていない人でも忘れずにメッセージを書くことができます。

ぜひ利用してみてください。


2 markdownを利用しよう

markdownは情報共有の手段として非常に便利な機能です。(markdownについてはここでは説明しません)
markdownを利用すると、誰でも簡単にテキストに装飾を加えることができます。
そして、GitHubでは.mdという拡張子のファイルに対してデフォルトで装飾を適用してくれる機能がついています。

以下が実際に作成したmarkdownファイルです。

markdownテキスト

そして、以下がGitHubEnterprise上でスタイルが適用された見た目になります。

GitHub上でのmarddownの見た目

いかがでしょうか、このようにmarkdownを利用することで、簡単・簡潔に他の作業者へ情報を共有することができます。

実はこの機能、プルリクエスト上ではさらに便利な機能付きで提供されています。
プルリクエストのレビューにコメントを記入することがあると思います。
その時にもこのmarkdownを利用することができます。
そして、プルリクエストの時は、markdownでチェックリストを作成することができます!
実際にみてみましょう。
以下のように記入したとします。

プルリクエスト上でのmarkdown

そしてスタイルが適用された見た目が下記になります。

プルリクエスト上でのmarkdownチェックリスト


3 ISSUEを利用しよう

GitHubのISSUEという機能をご存知でしょうか。
ISSUE機能は、プロジェクトを管理するための機能です。
GitHubを使っていて、もっとも利用される機能はプルリクエストだと思います。プログラマが作ったソースコードを管理し、お互いにレビューする機能です。しかし、プルリクエストはどちらかと言えば、ソースコード管理を支援する機能です。そのためプログラミング以外のタスクは別のツールで管理していることも多いかと思います。しかし、開発作業とその他の作業を別のツールで管理すると、情報が一元化できずに更新漏れや反映漏れが起きたりしてしまうことも珍しくありません。

そこで、このISSUE機能の出番です。
それでは、どのようにISSUEを利用していくのかを説明します。

まず、ISSUEはタスク管理ツールでいう所の、1つのタスクと考えて大丈夫だと思います。
ISSUEには複数のプルリクエストを結びつけることができます。

例えば、「ユーザー管理機能の実装」というISSUEを作ったとしましょう。
下記のように、マークダウンでISSUEの詳細をマークダウンで記入することができます。

ISSUE作成

ISSUEを作成すると、一覧としてISSUEが表示されます。

ISSUE一覧ページ

ISSUEを作成したところで、ISSUEに結びつけるプルリクエストを作成します。
プルリクエストのマークダウンの中で、#を入力すると過去に作られたISSUEとプルリクエストの候補が出て来ます。今回はISSUEと結びつけるので#1を選択します。

ISSUEとプルリクエストの結びつけ

プルリクエスト側で、結びつけるISSUEを選択すると、ISSUEの下部のほうで先ほど作成したプルリクエストが結びついていることがわかると思います。

プルリクエストが結びつけられたISSUE

このようにすることでISSUEとプルリクエストを結びつけることができました。
まだ今の段階ではISSUE機能の便利さはわかりにくいかもしれません。

しかし、ユーザー管理機能を作成するためのプルリクエストが増えていくことを考えてみてください。おそらく作成途中に新たな仕様が見つかったり、参考資料を作成することになったり、コードの実装方針をまとめる必要が出てくると思います。
コードの実装方針を決めることを例にして説明します。
実際の業務では、実装方法について複数のプログラマが議論し、方針を決めることがあると思います。そのとき、プルリクエスト上だけで方針の決定をしたとしましょう。
その議論に参加していない人が後から開発作業を引き継ぐとき、議論が行われたプルリクエストを探す必要があります。
しかし、ISSUEを使って議論を行ったとしましょう。ISSUEがチームに根付いていれば、新しいユーザー管理機能を開発するときに必ずISSUEを見ることになると思います。そうすれば、これまで行われたやりとりなどを把握した上で、開発作業を行うことができます。

ISSUEを中心にコミュニケーションやプルリクエストを行うことで、あるISSUEに対しての情報を一元化することに繋がります。これは認識のズレや、情報を探す時間を省くことに繋がります。

以上、より良いGitHub運用を行うための3つの方法でした。

【著者紹介】

秋野 郁実
2015年新卒入社。社内でプログラマとして大手電気メーカーの案件などを担当。

カテゴリ: Webサイト構築, Webサイト運用運営
2017年04月11日

RSS