オンラインのコードリポジトリGitHubが今週、例年のカンファレンスを開催している。テクノロジー業界の長年のやり方に倣って同社は、このイベントを利用してサービスの新しい機能をいくつか発表した。今回の大きなテーマは二つ、セキュリティと発見性(discoverability, コードの見つけやすさ)だ。
近年はハッキングの被害がますます増えているから、ユーザーから預かったコードのセキュリティをGitHubが重視するのも当然だ。同社がとくに問題にするのは、最近のプロジェクトの多くが非常に多様なサードパーティのライブラリなど、外部資源に依存していることだ。
そこで今回GitHubがローンチしたのが、“依存性グラフ”(dependency graph)だ。これによりデベロッパーは、自分のコードが利用しているほかのパッケージやアプリケーションを一望にできる。当面RubyとJavaScriptのコードだけだが、近くPythonもサポートされる。すべての依存性が一望的に分かれば、それを標準的な脆弱性データベースと対照して、やばいものが使われていたらデベロッパーたちに通知できる。GitHub自身の通知警報機能は“もうすぐ提供”だそうだから、それまでは各自の取り組みが必要だ。
GitHubのチームによると、同サービス上のプロジェクトの75%以上に何らかの依存性があり、その半分以上に10以上の依存性がある。そして依存性が100を超えるプロジェクトも、昨今では珍しくない。
発見性に関しては、GitHub上には今や2500万あまりのアクティブなレポジトリーがあり、デベロッパーが関心を持ったコードをその中に見つけるのが容易ではない。この状況を改善するために同社は、ニューズフィードを一新してリコメンデーションを含めることにした。リコメンデーションは、ユーザーが誰々をフォローし、どのリポジトリーをスターし、また今GitHub上で何に人気があるか、といった情報に基づいて作成される。また“Explore”と呼ばれる人間が編集するセクションでは、機械学習やゲーム開発など、分野別のプロジェクトやリソースをまとめて紹介する。
また、有料のGitHub Enterpriseでは、30分以内のお返事を約束するプレミアムサポートと、コミュニティフォーラム、Marketplace機能のトライアル、チームディスカッションツールなどが提供される。そこではもちろん、どのコードがどこにあるか、ということも話題になる。
GitHubのデータサイエンティストMiju Hanはこう言う: “GitHubの上で人間がやってることを、明日になれば人工知能がやってくれるなんて、ありえないからね。GitHubでは基本がいちばん重要。基本を良くしていけば、長期的には最良のデータが得られるようになる”。