イベント

GitHubが年次イベント「GitHub Universe 2019」開催、初日の発表をレポート

GitHub Actionsを正式リリース

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

「GitHub Universe 2019」入り口
会場のパレス・オブ・ファイン・アート

 1日目の基調講演では、ワークフロー自動化機能「GitHub Actions」の正式リリースや、スマートフォンからGitHubを使うためのアプリ「GitHub for mobile」のベータ版リリースなど、さまざまな新機能が発表された。

 基調講演の冒頭では、GitHubのCEOに就いてから初のGitHub UniverseとなるNat Friedman氏が登場し、「この1年は途方もない年だった」と語った。なお、昨年のGitHub Universeの直後である10月下旬に、MicrosoftがGitHubの買収を完了している。

 Friedman氏は、GitHubには現在約4000万人のユーザーがいることを紹介した。この1年で1000万人が増えたという。「これらのオープンソースソフトウェア(OSS)開発者たちは、1人で孤独に作業するのではなく、世界中でつながっている」とFriedman氏。いまやエンタープライズや金融などの分野でもOSSが使われている。Friedman氏は「オープンソースは勝った(Open source has won)」と述べ、「自動車からポケットの中までOSSが入り、責任も大きい」と語った。

GitHubのCEOのNat Friedman氏
現在約4000万人のユーザー

GitHub ActionsとGitHub Packagesが正式リリース

 1日目の基調講演は、「Code to Cloud」「Daily Experience」「Community」の3つのカテゴリーで新機能が発表された。

 1つ目のカテゴリーは「Code to Cloud」。まず、ワークフロー自動化ツール「GitHub Actions」と、パッケージリポジトリの「GitHub Packages」が、これまでのベータ版から正式版となったことが発表された。

 GitHub Actionsは昨年のGitHub Universeでベータ版が発表された。コードがプッシュされたり、issueが投稿されたりしたGitHub上のイベントを起点として、ワークフローを実行する機能だ。

 8月には、記述形式などを刷新して、Linux・macOS・Windowsでの実行に対応し、マトリックスビルド(異なるランタイムバージョンなどで並行してビルド)にも対応した新版が登場している。

 GitHub Packages(旧名:GitHub Packages Registry)は、各種パッケージシステムのパブリックリポジトリ。NPMやDocker、Maven、RubyGems、NuGetに対応している。

 GitHubのVP of EngineeringのDana Lawson氏は、GitHub Actionsを採用しているプロジェクトや企業を紹介。中でも、Pinterestの「ビルド時間が80分から10分に短縮された」というコメントを紹介した。

GitHubのVP of EngineeringのDana Lawson氏
GitHub ActionsとGitHub Packagesが正式リリース
GitHub ActionsとGitHub Packagesの特徴
GitHub Actionsのパートナー

 壇上では実際にGitHubのSenior Director of ProductのJeremy Epling氏がデモ。Node.jsのプロジェクトからワークフロー作成を開始し、YAMLを編集し、プルリクエストを起点にビルドが実行されてリアルタイムの進行状況がWeb画面に表示されるところを見せた。

 GitHub Actionsでは、セルフホストランナーも今月発表された。GitHub Actionsのアクションをローカルで実行するためのエージェントだ。x86版のほかにARM版が用意され、Raspberry Piにも対応するという。

 また、GitHub Actionsにおける生成物のキャッシュサポートも紹介された。これによって繰り返しビルドするときの時間を短縮できるという。

GitHub Actionsでワークフローのテンプレートを選ぶ
ワークフローはYAMLで記述される
実行ログがリアルタイムに表示。検索もできる
Cache

頑張らずに使えるGitHub Desktop

 2番目のカテゴリーは「Daily Experience」だ。

 まず、新機能というわけではないが、GitHubのGUIクライアント「GitHub Desktop」について、GitHubのManager, Software EngineeringのNeha Batra氏が紹介した。gitの細かいサブコマンドを組み合わせた操作を覚える必要なしに、GUIの目的指向の操作で使え、「頑張らずに使える」という。さらに、プルリクエストなどのGitHubの機能も統合されている。

 Batra氏は、半年前にサポートしていたgitのコマンドと現在を比較し、サポートが増えていることを示した。

GitHubのManager, Software EngineeringのNeha Batra氏
GitHub Desktopの画面
GitHub Desktopが対応するgitの機能。明るく表示されているのは最近追加された機能

GitHubサイトの、細かいが開発者に便利な新機能

 続いて、GitHubサイトでの操作に対して行われた、細かいが開発者に便利な機能追加について、GitHubのSenior Director, Product ManagementのMario Rodriguez氏が紹介した。

 まずはコードナビゲーション。Web画面に表示されたソースコードで、関数やメソッドからそれを定義している場所を探したり、反対に定義している場所から参照している場所を探したりできる。言語は、Ruby、Python、Goに対応している。

GitHubのSenior Director, Product ManagementのMario Rodriguez氏
コードナビゲーションの機能
関数やメソッドから定義している場所を探す
定義から参照している場所を探す

 次にコードの検索の強化(制限つきベータ版)。通常の検索では、2語を指定すると連続した個所でなくOR検索になったり、大文字小文字が同一視されたりして、コード検索には不便なことがある。そこで、入力したとおりの一致や、大文字小文字の区別、完全一致などを、検索オプションで選べるようになる。

コードの検索の強化
“which zsh”のとおり書かれている個所を検索

 続いてコードレビューの割り当て機能(ベータ版)。プルリクエストからチームメンバーにレビューアーを割り当てるときに、その場で直接割り当てられるようになった。割り当て方法は、Round robinとLoad balanceの2種類から選べる。Organizationを対象に提供される。

コードレビューの割り当て機能。割り当て方法はRound robinとLoad balanceから選べる

 リマインダー機能(制限つきベータ版)も発表された。残っているプルリクエストを、指定されたスケジュールでSlackに通知するものだ。ベータ版へのサインアップがすでに受付開始しており、数ヶ月で正式リリースされる予定。

リマインダーを設定
Slackにリマインダーが通知された

 GitHubの機能をオンプレミスで使えるGitHub Enterpriseも、新バージョン「GitHub Enterprise Server 2.19」が公開された。セキュリティや高可用性などでさまざまな機能が追加されているという。

GitHub Enterprise Server 2.19

通知を効率的にさばく新しい通知管理

 多数の通知を効率的にさばくための、新しい通知管理の機能(制限つきベータ版)も、GitHubのSenior Product ManagerのRebecca Zandstein氏により発表された。

 この通知管理では、まず一覧で各通知に、「mentioned」「review requested」などの通知理由が示される。さらに、画面の左側にフィルターがリストアップされており、例えば「Mentioned」をクリックすると自分にメンションされた通知だけに絞り込まれて表示される。フィルターとしてはカスタムフィルターも設定できる。そのほか、キーボードショートカットや、通知の保存などの機能もある。さらに、例えば当該issueなどをページ遷移なしにその場で表示して処理できるため、人間がコンテキストスイッチなしで処理できるという。

GitHubのSenior Product ManagerのRebecca Zandstein氏
通知の画面
各通知に通知理由が示される
通知をフィルタリング
その場でissueを表示して処理
キーボードショートカット

 なお、この日の発表で最大の目玉となったのが、GitHubをスマートフォンやタブレットで使うためのアプリ「GitHub for mobile」だ。こちらについては別記事で紹介する。

GitHub Sponsorsがプロジェクトへの寄付に対応

 3つ目のカテゴリーは「Community」だ。

 具体的には、今月正式リリースされた「GitHub Sponsors」について、GitHubのSenior Product ManagerのDevon Zuegel氏が紹介した。開発者に対してお金を寄付する機能だ。また、GitHub Sponsorsを強化する基金「GitHub Sponsors Matching Fund」もある。

 このGitHub Sponsorsが、新しくOSSプロジェクトへのスポンサーシップに対応したことが発表された(ベータ版)。すでに、homebrew、ESLint、Babel、cURLなどのプロジェクトが参加している。個人のときと同様に、所定のフォルダーのFUNDING.yamlを編集すると、スポンサーを受け付けるボタンが表示される。Open Collectiveなどのほかの支払い方法にリンクすることもできるという。

 Zuegel氏は「オープンソースはGitHubの心臓」と表現し、OSSに参加して作り上げる機会を広げるのが使命だと、GitHub Sponsorsの意義を語った。

GitHubのSenior Product ManagerのDevon Zuegel氏
GitHub Sponsors
GitHub Sponsorsがプロジェクトへの寄付に対応
すでに参加しているプロジェクト
プロジェクトに寄付する例