イベント

開発者のためのサービスという基本姿勢は変わらず――、GitHubが4つのカテゴリーで新機能を発表

GitHub Universe 2018基調講演レポート

 コード共有サイトの米GitHubは、年次イベント「GitHub Universe 2018」を10月16~17日に開催した。会場はサンフランシスコのパレス・オブ・ファイン・アート。

 初日の基調講演では、GitHubにおけるコードのワークフローを自動化する機能「Actions(GitHub Actions)」や、オンプレミス版であるGitHub EnterpriseとGitHub.comとをつなぐ「Connect(GitHub Connect)」など、いくつかの新機能が発表された。

 基調講演を通して、「Developer Experience(開発者エクスペリエンス)へのフォーカス」が強調され、「GitHubを使う3100万人の開発者」という言葉がさまざまな話者から何度も繰り返されたのは、開発者のためのサービスであるというGitHubの基本姿勢を表しているものといえるだろう。

 なお、GitHub Actionsについては別記事でレポートする。

GitHub Universe 2018の基調講演会場。ステージが中央になりその周囲360度に観客席が並ぶ
GitHub Universe 2018会場。各社の展示ブースや、GitHubノベルティーの販売コーナー、各種企画などが並ぶ奥に講演会場がある
GitHub Universe 2018会場となったパレス・オブ・ファイン・アート
GitHub Universe会場入り口

アメリカン航空のGitHub Enterprise採用事例

 Jason Warner氏(Head of Technology)がまず、GitHubの10年間を振り返った。そして「この10年間でソフトウェア開発がオープンなものになり自動化が進んだ」と語った。

 2008年にGitHubがリリース。2010年には開発者に修正を送る「プルリクエスト」の機能がローンチし、ソーシャルコーディングのサイトとしての立場を確立した。

 2011年にはオンプレミス版のGitHub Enterpriseをリリース。2014年にはテキストエディタのAtom 1.0をリリースし、そのコア技術から独立したElectronが2016年にリリースされた。

 2017年にはいろいろなことがあった。GitHub Business Cloudや、GitHubと連動する外部SaaSのマーケットプレイスのGitHub Marketplace、セキュリティのあるバージョンのライブラリの利用をチェックするSecurity Vulnerability Alertsがリリースされた。

 Warner氏はGitHubの現状をいくつか「The State of the Octoverse 2018」レポートから紹介した。年に11億のコントリビューションがなされ、3100万人の開発者が登録し、特にこの1年で800万人の新規登録があったという。

 公開リポジトリだけではなく、企業内でのGitHub Enterpriseの採用も盛んだ。ステージにはアメリカン航空のSpencer Kaiser氏が登壇。いくつかのコードホスティングソリューションの中からGitHub Enterpriseを採用し、インナーソーシング(企業内でのオープン開発)に活用していることを紹介した。

GitHubのJason Warner氏(Head of Technology)(写真提供:GitHub)

プルリクエストをレビューするための新機能

 新機能は、Collaboration、Business、Security、Platformの4カテゴリーに分けて紹介された。

 Collaborationカテゴリーで新発表された「Suggested Changes(変更の提案)」は、Kathy Simpson氏(Senior Director of Product Management)が紹介した。現在は、パブリックベータ版。

 これは、プルリクエストに対してさらに変更を提案する機能で、共同開発でプルリクエストをレビューする場合や、プルリクエスト送信者に変更内容の小さな修正を提案するときなどに利用できる。プルリクエストのコードの特定個所に対するコメントの中で、Markdownのコードブロック形式として「```suggestion」と「```」で囲んでコードを示すと、それが修正版コードとして認識される。

 同様のことをするには、これまではプルリクエストに対するプルリクエストを作成することになり、レビューする側もされる側も手間がかかっていた。Suggested Changesでやりとりを簡単にすることにより、コラボレーションを活発化させることが期待されている。

コースウェアのプラットフォーム「Learning Lab」に企業版などが登場

 Businessカテゴリーでは、チュートリアルのためのコースウェアのプラットフォーム「Learning Lab」関連の新発表がなされた。Learning Labは2018年初頭にリリースされている。

 まず、Learning Labsに、GitHubで安全に開発を行う方法、プルリクエストをレビューする方法、最初のGitHub Appsを作成する方法といった3つのコースが新しく追加されたことも発表された。

 また、企業向けの「Learning Lab for Organizations(企業向けGitHub Learning Lab)」が発表された。GitHubのパブリックリポジトリに対するプライベートリポジトリのような関係のサービスで、プライベートなコースウェアを作成できる。内容のカスタマイズや、管理レポート、メトリクス情報などにも対応している。

 そのほか、企業などが自分たちで、YAML形式の定義とMarkdown形式のドキュメントによりコースウェアを作成する方法も公開された。これまではJavaScriptによりイベントを処理するコードを書く必要があった。Learning Lab for Organizationsに合わせたものと思われる。

 なお、ブレークアウトセッションでは、実際にLearning LabのコースウェアをJavaScript方式とYAML方式のそれぞれで作成する方法が解説された。

「Learning Lab for Organizations」の紹介(以下、一連の写真はブレークアウトセッションのもの)
GitHub Learning Labでコースを作成する
JavaScript方式でコースを記述する例
YAML方式でコースを記述する例

GitHub EnterpriseとGitHub.comを“つなぐ”「GitHub Connect」

 Businessカテゴリーのもう1つの新発表は「Connect(GitHub Connect)」だ。オンプレミス版であるGitHub EnterpriseとGitHub.comを“つなぐ”機能群だ。

 Connectの機能の1つである「Unified Business Identity」は、1つの企業で複数のOrganization(チーム単位のアカウント)を持てる機能だ。これにより、支払いが1つの企業のアカウントにまとめられ、管理も集中できる。なお、Unified Business Identityは、制限付きパブリックベータ版として発売当日に追加された。

 また、「Unified Search」では、同じ検索画面から検索先としてGitHub EnterpriseとGitHub.comを選べ、同じように検索できるようになる。

 「Unified Contribution」では、その開発者の1年間のコントリビューション状況を図示するコントリビューショングラフ(日本の開発者の間のスラングでは「草」と呼ばれる)において、GitHub EnterpriseとGitHub.comを合わせて表示できる。

 Unified SearchとUnified Contributionは、講演当日の10月16日にリリースされた「GitHub Enterprise 2.15」で追加された。

GitHub EnterpriseとGitHub.comをつなぐ「GitHub Connect」(以下、一連の写真はブレークアウトセッションのもの)
1つの企業で複数のOrganizationを持てる「Unified Business Identity」
企業でGitHubの利用に成功してくるとたくさんのOrganizationができる
同じ画面からGitHubとGitHub Enterpriseを検索できる「Unified Search」
開発者のコントリビューション状況を図示するコントリビューショングラフでGitHub EnterpriseとGitHub.comを合わせて表示できる「Unified Contribution」

ソースコード中に含まれるアクセストークンを警告する「Token Scanning」

 Securityカテゴリーでの新発表としては、まず、「Token Scanning」は、ソースコードにアクセストークンなどが含まれていた場合に検出する新機能だ。

 例えばAWSなどにプログラムからアクセスするには、AWSアカウントにひもづいた秘密のアクセストークンが必要になる。こうしたアクセストークンを、AWSなどを利用するプログラムのソースコード中などに書いて、GitHubなどで公開してしまうケースがしばしばあり、それによって勝手にサーバーなどを使われて莫大(ばくだい)な料金が請求されることもあるという。

 ブレークアウトセッションで紹介されたところによれば、1か月に最大3億個のトークンがパブリックリポジトリから見つかっているという。

 Token Scanningこれを防ぐための機能だ。GitHubでパブリックリポジトリをスキャンし、トークンが発見された場合は該当リポジトリのオーナーに連絡して、そのトークンの無効化をサービス側に依頼するよう勧めるという。なお、Token Scanningは現在パブリックベータ版。

 また、セキュリティ脆弱性のあるバージョンのライブラリの利用をチェックする「Security Vulnerability Alerts」の対象言語として、従来のJavaScript、Ruby、Pythonの3つに、新しくJavaと.NETの2つが加わったことがアナウンスされた。

 もう1つ、セキュリティ上の問題がないかAPIから呼び出してチェックする「Security Advisory API」も新しく発表された。

ソースコード中に含まれるアクセストークンを警告する「Token Scanning」(以下、一連の写真はブレークアウトセッションのもの)
1か月に最大3億個のトークンがパブリックリポジトリから見つかっている
脆弱性のあるライブラリをチェックする「Security Vulnerability Alerts」の対象言語にJavaと.NETの2つが加わった
Security Vulnerability Alertsの警告の例

自然言語によるコード検索など機械学習の応用を実験

 Platformカテゴリーのについては、前述したGitHub Actionsを、Sam Lambert氏(Head of Platform)が発表した。これについては別の記事で紹介する。

 Platformカテゴリーではそのほか、機械学習を使った新サービスの実験についてOmoju Miller氏(Senior Data Scientist)が紹介した。

 Miller氏は、GitHubのユーザーやそのコードが宇宙のように広がり、互いにつながっているというビッグデータの状況を紹介した。

 そうしたデータを使った機械学習成果の一例として、最近のGitHubでダッシュボードに表示される「Discover Repositories」の機能が紹介された。これはプロジェクトから類似するプロジェクトを紹介するレコメンデーションだ。

 ごく最近登場したものとしては、将来に向けた実験段階の機能をデモするサイト「GitHub Experiments」で公開された「Semantic Code Search」も解説された。これは自然言語で問い合わせると、該当するコードが検索されるものだ。講演では、「flatten list of lists(入れ子になったリストを1次元リストに展開する)」という言葉で検索して、PythonやRubyなど複数の言語によるコードが表示されるところが紹介された。