Posted at

大学の研究室インフラとしてのGitHub Education

More than 1 year has passed since last update.


GitHubの導入のきっかけ

研究室にGitHubを導入したら,インフラとしてかなり便利だったので,GitHub Educationはいいぞという紹介です。最初は通常のコードホスティングサービスとしての利用を想定しており,導入にあたって,いくつかの点を考慮しました。


  • 導入コストがそれなりに低いこと


    • ITツールにそれほど親しくないメンバーもいるため



  • 安価または無料であること


    • 月額課金モデルは研究室の予算では申請がむずかしいため



  • プライベートレポジトリが使えること


    • データセットなど,セキュアなものも含むため



そんな中で我々に射した希望の光が「GitHub Education」だったのです。また今回の記事で紹介するのは「GitHub Education for Organization Account」についてです。GitHub Educationは個人アカウント向けのものもありますが,それとの違いも含めて説明します。


GitHub Education でできること

以下はGitHubに期待していたことのうち,実際に実現したことのいくつかです。


Gitでコードホスティングできる

当たり前ですがコレが最も大きいです。研究をしていると,ソースコードや論文の下書き,関連ファイルがあちらこちらに分散します。それに対して差分管理ができるだけでも,はじめはかなりありがたかったです。

これは余談ですが,Jupyter Notebookのデータをあげておくと自動でレンダリングしてくれるようになり,研究の成果を残しておく場所としてはかなり有用であるといえます。


管理が楽

はじめはGitLabやGitのみのリモートリポジトリを研究室サーバに構築しようと思っていました。しかしセキュアな通信の確保や必要ファイルのインストール,実際の管理はそれほど簡単ではありません。GitHubなら管理の手間はほとんどゼロです。


プライベートレポジトリが使える

以前のEducationプランではプライベートレポジトリ数が制限されていましたが,このリリースでプライベートレポジトリの制限はなくなりました。

Screen Shot 2016-12-04 at 21.38.32.png

上の画像にあるように,ユーザ数もプライベートレポジトリ数も制限なく,無期限で使い続けられるようです。


チームで使える

これはどちらかというとGitHub Organizationの機能ですね。個人アカウント向けGitHub Educationでは,プライベートレポジトリは基本的にはじぶん1人のみ閲覧可能なプライベートレポジトリであり,collaboratorをじぶんで設定するなど,あまりチーム開発向きであるとはいえません。

しかしGitHub Organizationではチームを設定できたり,Organization内のレポジトリが自由に見られたりと,研究室というチームでの開発に向いています。


GitHubを研究室に導入して変わったこと

以下はGitHub導入により,思ってもなかったよかったことです。


ディスカッションが捗るようになった

導入後には「とりあえずissueたてといて」とか「PRにコメントしといたよ」のような会話が日常的に行われるようになりました。また,各自の論文プロジェクトの進捗が可視化されるので,より積極的にコミュニケーションが行われるようになりました。

ぼくらの研究室は特にコアタイムを設けてはいないので,実際に会わなくても助言をもらえたり,他人の研究に助言をしたり,ということができるようになりました。


ドキュメントを気軽に参照できるようになった

それまでは研究室のサーバ管理情報,年内にある行事,各種ノウハウやテンプレコードに至るまでが様々なところに散らばっており,参照するのがむずかしい状況でした。しかしGitHubのレポジトリ,wikiなどに情報をまとめておくと,検索機能で簡単に探すことができ,非常に助かりました。

しかしGitHubそれ自体は優秀ですが,wiki機能はそれほど使いやすいという感じもなく,徐々に使われなくなりました。Markdownファイルをそのままあげておくとよさそうです。


GitHub導入の注意点

上記の文章を読むと万能ツールであるかのように見えますがそうではなく,いくつかの軽微な問題点もあります


導入コストがやや高い

これはGitHubに限った話ではありませんが,導入コスト,学習コストはやや高いといえます。issue程度であれば問題はないのですが,Git自体の操作方法,Pull Requestなどは開発経験のない学生にはなかなかつらいものです。勉強会を開く,ときどきペアプロするなどの対応が必要であると思えます。


万能ツールではない

GitHubは万能ツールではありません。コードホスティングサービスとしてはかなり優秀ですが,コミュニケーションツール,ファイルストレージとして使うとなると,使いにくい部分も多いです。Google DriveやSlackなどと連携しつつ,数あるサービスのうちの1つとして使っていくのがよさそうです。


まだまだ発展途上のサービス

GitHubは優れたサービスですが,それ自体の開発もまだ続いています。突然課金システムを変えてきたり,新機能の導入,UIの変更など,まだまだ手探りのサービスです。上記2つにも関連することなのですが,そういう点も踏まえつつ使っていくといった姿勢が必要であるといえます。


GitHub Edicationを研究室に導入しよう

以下に簡単に方法をまとめました。


GitHub Organizationを作る

まずOrganizationを作り,それに対してEducation Couponの申請をします。研究室のメンバーを招待しておくといいですね。


Education申請をする

こちらのページ から申請をしましょう。 What are you looking to get a discount for? のところで Organization account を選択し,あとで先ほど作ったOrganizationを選択します。学生証のアップロードやメールアドレスの入力などがあり,個人アカウントよりやや厳しい感じです。


承認されるのを待つ

しばらく(〜2ヶ月くらい)待つと承認され,メールが届きます。数ヶ月待っても来ない場合はGitHubのお問い合わせフォームのような部分に英語で問い合わせると,運営の方からメールが届き,手動で追加したぞということを教えてくれます。どうしても待てない場合は使いましょう。