1. HOME
  2. ブログ
  3. IT技術
  4. GitHub Discussionsを使ってメジャーアップデート管理をしてみた
GitHub Discussionsを使ってメジャーアップデート管理をしてみた

GitHub Discussionsを使ってメジャーアップデート管理をしてみた

GitHub Discussionsの機能を有効化する

昨年遂にGitHub Discussionsがベータ版から正式版になったとのことで、お試しでチームで使ってみました!

しかし、そもそもGitHub Discussionsが何か知らない方も多いのではないでしょうか?

それもそのはず!なぜかデフォルト設定がOFFのため、Settingから機能をONにしないと表示すらされません。

そのためGitHub Discussionsが何かを説明する前に、まずは設定をONにして画面を見てみましょう!

手順

  1.  リポジトリのメインページにアクセスする
  2. リポジトリの Settings をクリックする
  3. Features に Discussions にチェックする

リポジトリのSettings画面

下の方のFeaturesにDiscussions という項目があるのでチェックを入れる

FeaturesにDiscussionsという項目があるのでチェック

するとこのようにタブに[Discussions]と表示されます!これで準備OKです!

タブに[Discussions]と表示されるのでチェック

GitHub Discussionsとは?

GitHub Discussionsと言うだけあって、議論を活発に行うためのツールです。

元々はオープンソースコミュニティのメンバーが、GitHub上でより効率的にコミュニケーションが取れるようにサポートするためのツールとしてリリースされたようです。

議論と言っても色々なシチュエーションを想定しているようで、デフォルトのカテゴリーだけでもこのようなものがあります。

  1. Announcements
  2. General
  3. Ideas
  4. Q&A
  5. Show and tell

Announcements:リリースノートとして使う

例えばお知らせ情報の1つでリリースノートとしても使いやすいようです。

というのもいつのまにかGitHub ReleaseにGitHub Discussionsのスレッドを紐付ける機能が追加されているようです。(以下リンク先のリリースの作成⑩)

https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository

ただのリリースノートとして使うだけならあまりメリットはないですが、リリースごとに気軽にメモを残したりディスカッションが出来るようになるので、使い方によっては便利かもしれません!

Ideas:アイデア帳として使う

私たちのチームでは出来るだけissues管理画面では複数ページを跨がない数に収めるようメンテナンスを心がけています。

しかし開発していて「UIの小さな改善案をissueに残してたら気づけばissueが多くなりすぎた・・・」という経験はないでしょうか?

このような場合にもタスクやバグなどはissueに書いて、アイデアはDiscussionsに書くといった運用ルールを決めておけばissue管理がスッキリします。

いざ対応することが決まればCreate issue from discussionというボタンを押せば簡単にissueにすることもできます。

Q&A:質問箱として使う

ついSlackなどでやってしまうエンジニア同士のQ&AをDiscussionで行えば強力なナレッジツールになります。

エラーが起きた、環境構築に躓いたなどの知識をGitHub内に蓄積すれば、新人が入った場合にもまず検索してみてと言うことができます。

    実践!メジャーアップデートの管理

    ここからは私たちが実践した事例を紹介したいと思います。

    今回GitHub Discussionsを使うことで解決したかった課題はこちらです!

    1. APIにメジャーアップデートが入った場合に後から情報を追うのが大変
    2. リリース前の最終確認として全てのメジャーアップデートの対応が完了しているかチェックが大変

    このような課題を解決するためにGitHub Discussionsの機能を使いました。

    カテゴリーを追加する

    デフォルトのAnnouncementsを使っても良かったのですが、今回は新しいカテゴリーを作成しました。

    カテゴリーを作るには、Categoriesの右上にある編集ボタンを押します。(画像は既にカテゴリーを作成後のため表示されてます)

    カテゴリーを追加する

    すると、このような画面が表示されるので New Category を選択します。

    このような画面が表示されるのでNew Categoryを選択

    最後にカテゴリーのアイコン、名前、Discussion Format を設定します。

    カテゴリーのアイコン、名前、Discussion Formatを設定

    これでカテゴリーの作成は完了です。

    お知らせを作成する

    では早速メジャーアップデートのお知らせを投稿してみたいと思います!

    New discussionを押して、メジャーアップデート内容を記載します。

    仮にバックエンドがAPIをこのように変更したとすると、イメージとしてはこんな内容を書いてメンバーに共有します。

    お知らせを作成する

    対応完了のチェックを入れる

    バックエンドがメジャーアップデートを共有したら、今度はフロントエンド側がAPIコール部分の修正を入れます。

    そして修正を開発ブランチに入れたらメジャーアップデート対応完了となりますので、さきほど作成したGitHub Discussionsを対応済みのチェックを入れます。

    やり方は2パターンあって好みの方をチームで決めて使えばいいかなと思います。

    1. 「対応済み」ラベルをつける
    2. Answeredにチェックをつける

    2つ目のAnsweredにチェックをつけるというのは、カテゴリー作成時にQuestion / Answerを選んでおけば議論のトピックが解決した時にマークをつけることができます。

    やり方は簡単で、先ほど作ったお知らせに何かコメントをします(例えば「対応完了しました」など)

    するとコメントにMark as answerというボタンがあるのでこれにチェックを入れます。

    コメントに`Mark as answer`というボタンがあるのでこれにチェック

    ただしカテゴリー作成時にQuestion / Answerを選んでないと現れないので注意が必要です。

    最終的にMajor Updateの一覧にはそれぞれこのように表示されます。

    最終的にMajor Updateの一覧にはそれぞれこのように表示される

    こうすることで私たちのチームではメジャーアップデートの一覧と対応状況の管理をスムーズに行うことができました!

    今後の課題

    GitHub Discussionsを使ってみての課題もありました。

    私たちは普段GitHub上でメンションを送ったらSlackにもメンションが通知されるようにしているのですが、どうもGitHub Discussions上でメンションをつけてもSlackに飛んでこないため、毎回Slack上で「〇〇更新しました」や「〇〇にコメントしました」と共有しなければなりません。

    その辺りを調査してみるとGitHub Actionsで簡単に出来そうな記事がありました。

    https://times.hrbrain.co.jp/entry/2021/11/16/github-discussions-noti

    今度この記事を参考に通知の設定を試してみようと思います!

    書いた人はこんな人

    広告メディア事業部
    広告メディア事業部
    「好きを仕事にするエンジニア集団」の(株)ライトコードです!

    ライトコードは、福岡、東京、大阪の3拠点で事業展開するIT企業です。
    現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
    いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

    システム開発依頼・お見積もり大歓迎!

    また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」「WEBディレクター」を積極採用中です!
    インターンや新卒採用も行っております。

    以下よりご応募をお待ちしております!
    https://rightcode.co.jp/recruit

    関連記事

    採用情報

    \ あの有名サービスに参画!? /

    バックエンドエンジニア

    \ クリエイティブの最前線 /

    フロントエンドエンジニア

    \ 世界を変える…! /

    Androidエンジニア

    \ みんなが使うアプリを創る /

    iOSエンジニア