近年ソフトウェア開発もリモートワークで行われることが多くなってきました。しかしソフトウェア開発の現場では、コミュニケーションロスが大きな問題を引き起こす場合があります。ここでは、リモートワークの開発現場でも円滑なコミュニケーションを実現する、Microsoft TeamsとGitHubの連携についてご紹介します。
Microsoft Teamsとは
Microsoft Teamsは、マイクロソフト社がMicrosoft 365で提供するコミュニケーションツールです。チャットやビデオ会議にスケジュール管理、ファイル共有、ワークフローなど、業務上のコミュニケーションをオンラインで完結できる様々な機能を備えています。
他のMicrosoft 365で提供されているサービスと親和性が高く、異なる組織のAzure AD(Active Directory)を連携させTeamsで情報共有を可能としたり、Microsoft ExcelやPowerPointのファイルをオンライン上で複数人が同時編集したりできるなど、参加者同士の情報共有がより簡単になります。
ゲストアカウントを作成することで外部ユーザーもTeamsに参加でき、主要な機能を利用可能となるため、プロジェクトの状況に応じて担当者を参加させられます。
連携できるツールは300を超えており、外部クラウドサービスとの連携も容易なため、TrelloやAsanaなどのタスク管理ツールや、SlackやZoomといった一般的によく使われているツールとの連携も可能です。これにより、より柔軟なコミュニケーションを実現できます。
GitHubとは
GitHubは、Gitと呼ばれるプログラムのバージョン管理(ソースコード管理)ツールをWebサービスとして提供しているサイトです。一般的にGitHubのことをGitと呼ぶこともあります。これまでSubversionやSVNといった集中型管理ツールはありましたが、Gitは分散型の管理ツールであるため、集中的な管理場所や管理者を置かず、複数の開発者が分散的に管理を行います。なお、Gitの開発にLinuxの生みの親であるlinus torvalds氏が関わっていたことは有名です。
GitHubには複数の開発者が追加、修正したソースコードの差分を明確に表示する機能や、ソースコードに不明な点がある際にコメントをつける機能、ソースコードに誤りがないか他の開発者が確認した上で正式採用する機能、必要に応じて不要になった修正を破棄する機能など、分散開発を容易にする様々な機能が備えられています。
そのひとつとして、これまでGitHubはチャットツールとして代表的なSlackとの連携を提供していました。そして2020年9月にはSlackと同様にチャット機能を提供するMicrosoft Teamsとの連携が可能になったことを発表しています。
Microsoft TeamsとGitHubの連携で何ができるのか
Microsoft TeamsとGitHubを連携することで、ソースコードに対してどのような変化があるかについて、最新の状況を確認できます。ソースコードに対するコミット(追加・修正)やプルリクエスト(追加・修正の反映依頼)、新しいイシュー(issue:問題提議)、コードレビュー(追加・修正点の確認依頼)、コメントがあった際などは、Teamsのチャネルを確認することで全体状況を把握できます。
また単に状況を確認できるだけでなく、Teamsのチャネルからそのままコメントやプルリクエストの返信を行ったり、イシューの開始、終了を操作したりすることも可能です。また、このほかにも保留中のプルリクエストに対してリマインダーを設定することで、忘却することなくより迅速に確認することが可能になります。
前述したようにGitHubは分散型の管理ツールであり、複数の開発者が部分的に開発を担当し、互いにレビューを行いながら全体的なプログラムを完成させていきます。このため、現在プログラムにどのような変更が行われているのか、その変更により自分が担当している開発に影響がないかなど、常に全体の状況を把握しておくことが大変重要です。つまり、プログラムに行われた変更をTeamsのチャネルなどで一括して確認できるようにすることが求められるのです。
GitHubの通知をMicrosoft Teamsに出す方法
GitHubとTeamsを連携し、Microsoft Teamsに通知を行うための方法についてご紹介します。GitHub Enterpriseコネクタ
GitHub EnterpriseコネクタはGitHubからの通知に特化したTeamsコネクタで、GitHub Enterprise以外でも利用可能です。
設定方法は、まずTeamsのチャネル名にある […] から[コネクタ] を選択します。検索ボックスで[github]を入力し検索すると、検索結果に[GitHub]と[GitHub Enterprise]が表示されるので[GitHub Enterprise]の[追加]ボタンをクリックします。続けてコネクタの設定画面が表示されるので、[名前]に任意の名前を入力し[Webhook URL]に表示されているURLをコピーしておきます。
続いてGItHubのリポジトリの画面にある[Setting]タブを選択し[hooks]を選択後に[Add webhook]ボタンをクリックします。続けて[Payload URL]にTeamsのコネクタを設定する際にコピーしたURLをペーストもしくは入力し、[Secret]はパスワードが必要であれば設定します。[Which events would you like to trigger this webhook?]ではどのようなイベントが発生した際にTeamsに通知を送信するか選択できます。
GitHubコネクタ
GitHubコネクタは「GitHub」アプリの一部で通知以外にコメントの返信やイシューのクローズといった操作も可能となります。
設定方法は前述と同様に、Teamsのチャネル名にある […] から[コネクタ] を選択後、検索ボックスで[github]を入力し検索結果に出力される[GitHub]の[追加]ボタンをクリックします。
次いでGitHubアカウントでのログイン、OAuthによるAzure ADへのログインを行い、どのようなイベントが発生した際に通知を受け取るかを設定すれば完了です。
まとめ
時間や場所を限定しない働き方が一般的になりつつある昨今、様々なクラウドサービスを組み合わせることは作業の効率化につながります。それはソフトウェア開発の場合も例外ではありません。GitHubとMicrosoft Teamsの連携により、さらに効率的な開発環境を実現してみてはいかがでしょうか。