イベント

GitHubが年次イベント「GitHub Satellite」をオンライン開催、4領域で新発表

開発ワークフローにコードのセキュリティ解析を組み込む「Code Scanning」など

 コード共有サイトのGitHubは、年次イベント「GitHub Satellite Virtual 2020」を5月6日(米国時間)に開催した。GitHub Satelliteは年に1回、米国外で開催されるイベントだが、今年はオンライン開催となった。

 GitHubのCEO、Nat Friedman氏による基調講演では、「コミュニティ」「コード」「エンタープライズ」「セキュリティ」の4つの領域について新発表がなされた。

GitHubのCEOのNat Friedman氏。自宅からnpm(3月にGitHubが買収)のTシャツ姿で登場した
新発表まとめ。グレーで書かれた項目は、新発表以外で言及されたものと思われる

Issue等の並びでフォーラム「GitHub Discussions」が登場

 コミュニティの領域では「GitHub Discussions」が発表された。リポジトリごとに用意されるフォーラムだ。これまでリポジトリには、バグ報告や機能要望などを議論する「GitHub Issue」があったが、Friedman氏は「GitHub Issueは生産性ツール。GitHub Discussionsはオープンな議論をする場所」と区別した。IssueとDiscussionの相互変換の機能もある。

 すでに60以上の開発コミュニティが先行してβ版を利用しているという。使い方としては、Q&Aに使うほか、アイデアの共有と議論なども想定されている。例えばNext.jsコミュニティではRFCの議論にも利用していることが紹介された

 GitHub Discussionsは夏に登場予定。基調講演では、GitHub Satellite 2020のGitHub Discussionsで試せると紹介された。

GitHub Discussionの画面。リポジトリの「Discussions」タブで表示
GitHub Discussionの特徴
先行して利用している開発コミュニティの例
夏に登場、GitHub Satellite 2020のGitHub Discussionsで試せると

オンライン開発環境「GitHub Codespaces」発表

 コードの領域では、オンライン開発環境の「GitHub Codespaces」が発表された。リポジトリのソースコードを、Web版のVisual Studio Code(VSCode)で直接編集できるものだ。VSCodeの機能をフルに使えるほか、VSCodeの拡張機能も使える。GitHubリポジトリに対してgitの操作もできる。

 開発環境は、クラウドにホストされたDockerコンテナとして動く。リポジトリの中の「.devcontainer/devcontainer.json」という設定ファイルで環境をカスタマイズすることもできる。VSCodeからターミナルを開いてサーバーアプリをテスト実行することもでき、実行したときなどにターミナルにメッセージとして表示される「localhost」をWebブラウザーでクリックしたときに、Webブラウザー側ではなくサーバーアプリに安全につながるという。

 Friedman氏は「オープンソースソフトウェア(OSS)にコントリビュートしようとすると、ローカルに環境をセットアップし、ソースコードを入手し、READMEを読み、依存ライブラリのインストールなどの準備を実行する必要がある」とし、GitHub Codespacesならリポジトリ上でクリックするだけで開発環境が用意できるとした。

 GitHub Codespacesは、発表と同時にアーリーアクセスの申し込みを受け付けている。

GitHub Codespacesの特徴
GitHubリポジトリから「Code」-「Open with Codespaces」で呼び出す
GitHub Codespacesの画面
アーリーアクセスの申し込みを受け付け

第3のGitHub Enterprise「GitHub Private Instances」

 エンタープライズ用のGitHubには、現在、オンプレミスのGitHub Enterprise Serverと、クラウドのGitHub Enterprise Cloudがある。

 この2つに加えて新しく「GitHub Private Instances」が発表された。クラウド上のフルマネージドな専用GitHubで、自前キーによる暗号化や、プライベートコネクト、バックアップとアーカイブなどの機能を持つ。GitHub Private Instancesは近日登場予定。

GitHub Private Instancesが、GitHub Enterprise ServerとGitHub Enterprise Cloudに並んで登場
GitHub Private Instancesの特徴

 そのほか、GitHub Enterprise Serverに、GitHub ActionsとGitHub Packagesの機能が今年後半にやってくることも紹介。さらに、GitHub Enterpriseに最近追加された機能として、コードレビューやプルリクエストなどの活動メトリクスをグラフ表示する「GitHub Insights」も紹介した。

GitHub Enterprise Serverに、GitHub ActionsとGitHub Packagesの機能が今年後半にやってくる
GitHub Insights

開発ワークフローにコードのセキュリティ解析を組み込む「GitHub Code Scanning」

 セキュリティの領域について、Friedman氏は「いまや自動車を買うとOSSが入っている時代」として、OSSのコードセキュリティの重要性を強調した。そのために、コミュニティによる解決と、開発ワークフローによる解決の両方が必要だという。

 その開発ワークフローによる解決として、新しく「GitHub Code Scanning」が発表された。2019年に買収したSemmle社のコード解析技術「CodeQL」を元にしており、「プロアクティブなコードスキャンをワークフローに組み込む」とFriedman氏は説明した。

 基調講演では、GitHubリポジトリから「CodeQL Analysis」を選ぶことで、GitHub ActionsのワークフローによりCode Scanningを設定されるところを紹介した。リポジトリにpushされたタイミングと定期実行で、コードスキャンが実行され、コード中のセキュリティ問題が検出される。スキャンの結果には、問題個所のほか、詳細や解説、対処法などが表示される。

 Code Scanningのほか、アクセストークンなどの秘密情報が誤ってリポジトリに入ってしまうのを検出する「Secret Scanning」を、公開リポジトリと同様に、プライベートリポジトリ(非公開リポジトリ)でも利用可能になったことも発表された。

GitHub Code Scanningの特徴
開発ワークフローにGitHub Code Scanningを組み込む
GitHubリポジトリから「CodeQL Analysis」を選ぶ
GitHub Actionsのワークフロー定義。pushのタイミングや定期実行でコードスキャンを実行する
スキャン結果の一覧
問題点が検出された
該当箇所のほか、解説や対処方法なども表示される