GitHub Universe 2021

Image of Thomas Dohmke

昨年のGitHub Universe以降、私たちはエンジニアやオープンソースコミュニティ、企業における開発環境など、さまざまなユーザーのために、20,000を超えるGitHubの機能改善をリリースしてきました。本ブログでは、今週のUniverseで発表する内容について概要を紹介します。GitHubがどのようにエンジニアのエクスペリエンスを変革して、エンジニアが「優れたソフトウェアを開発する」という重要事項に専念できるよう支援しているかについて、2021年10月27日と28日(米国時間)のライブ配信をご覧ください。これら配信は、オンデマンド配信でもご覧いただけます。

  日々のユーザーエクスペリエンスの向上

  • GitHub Issueの新しいUXをパブリックベータ版に展開IssueとPull Requestをフィルタリング、並べ替え、グループ化できるプロジェクトテーブルとプロジェクトボードを使って、ワークフローを追跡できます。作業しているプロジェクトを公開したり、非公開にしたり、切り替えることができます。 
  • GitHub Discussionsのラベルと自動リリースノート:ラベルはディスカッションを並べ替える時に役立ちます。自動リリースノートにはコントリビュータへの謝意を記載することができます。
  • GitHub ActionsによるCI/CDの向上OpenID Connectを使用した安全なデプロイメント、デプロイメント環境での承認の簡素化、再利用可能なワークフローの向上、セルフホストランナー向けの新しい自動拡張機能を実装しました。 
  • コマンドパレット:IDEのキーボードショートカットのように、コマンドパレットを使ったコマンドを実行したり、Organization、リポジトリ、Issue、Pull Requestなど、GitHub UI内のあらゆる要素に移動できます。
  • Pull Requestのマージのキュー:ほかの変更が到達する時に自分のPull Requestを更新しなくても、ブランチに影響を及ぼすことなく、複数のPull Requestを効率的にマージできます。ぜひ、プライベートベータ版に申し込んでください

☁️  クラウド化する開発環境のサポート

  • GitHub Codespacesの向上:新しいdevcontainer機能の構成、ポート転送のアクセス制御の拡大、GitHub CLIおよびREST APIを使えるようになりました。(なお、GitHub CodespacesはTeamプランとGitHub Enterprise Cloudでのみ利用できます。)
  • NeovimおよびJetBrains向けのGitHub Copilot:Neovimと、最新バージョンのJetBrains IntelliJ IDEAおよびPyCharmで、GitHub Copilotを利用できるようになりました。

🔒 すべてのステップでセキュリティを強化

  • Code ScanningがRubyに対応:CodeQL分析で、Rubyのコードに含まれる潜在的な脆弱性を検知できるようになりました。(ベータ版での提供)
  • リポジトリのカスタム権限:GitHub Enterprise Cloudのご利用の方は、リポジトリアクセスに関するカスタム権限を作成できるようになりました。これにより、ユーザーごとに適切な権限を正確に提供できます。(ベータ版での提供)

エンジニアのUXを変革

日々の作業に役立つ新しいツールや改良されたツールの一部をご紹介します。

GitHub Issueの新しいUXをパブリックベータ版で提供

生まれ変わったGitHub Issueを体験していただくために、GitHub.comの全ユーザーにベータ版を提供開始します。新しいGitHub Issueには、プロジェクトボードやダイナミックテーブルなどの機能があります。これらの機能を使ってIssueやPull Requestのフィルタリング、並べ替え、グループ化を行うことができます。他にも以下の機能を提供します。

  • イテレーションのサポート:プロジェクトテーブル内に”イテレーション”フィールドタイプを作成し、スプリントやサイクルによってIssueを並べ替えたりグループ化したりできるようになりました。
  • カスタムフィールド:チームにとって重要な情報を使い、作業の計画と追跡を行います。
  • パブリックプロジェクト:プロジェクトを必要に応じてパブリック(誰もが閲覧可能)またはプライベート(特定のユーザーのみに閲覧可能)に切り替えることができるようになります。この操作の実施例については、GitHubパブリックロードマップでご覧いただけます。


新しいGitHub Issueのベータ版の詳細をご確認ください。新機能について、Universeのディスカッションでフィードバックや不明点を質問してください。

GitHub Discussionsでコミュニティを活性化

GitHubでは昨年、エンジニアやオープンソースコミュニティのメンバーがGitHub上でアイデアの収集や、コラボレーションとコミュニケーションをより効率的に行えるようサポートするツールとして、GitHub Discussionsのベータ版をリリースしました。
皆さんからのフィードバックのおかげで、私たちは多くのことを知り、GitHub Discussionsをよりパワフルで機能豊富なツールにすることができましたフィードバックの一例をご紹介します。 

「GitHub Discussionsのおかげで、コミュニティを中心とした機能のリリースができました。問題追跡ツールとは別に設けられた専用スペースで、各機能やテストについてのディスカッションができたからです。スレッドがサポートされているので、ディスカッションの参加者が増えても、コメントを見失うことなく個別に対処できました。また、私たちが使っている問題追跡ツールに、質問や機能リクエストが書かれなくなり、雑談と分けることができたのも良かったです。」 ~ @LekoArts (Gatsbyのメンテナー)

さらに、本日から、次の機能をお試しいただけます。

  • GitHub Actionsの統合サポートDiscussionDiscussionCommentのwebhookイベントで、GitHub Actionsのワークフローをトリガーできます。
  • ラベル:独自のラベルを使用して、ディスカッションの分類やフィルタリングが可能です。
  • GitHub MobileがDiscussionsに対応:GitHub MobileアプリがDiscussionsに対応しました。

さらに、今後数か月の間に以下の2つの新機能をリリースする予定です。  

  • Polls (アンケート):機能や興味のあること、ロードマップ計画など、あらゆることに対する関心の程度を測るアンケートを作成できます。
  • コミュニティのインサイトダッシュボード:Issue、Discussions、Pull Requestなどの傾向を新しいダッシュボードで監視できます。

リポジトリでまだGitHub Discussionsを有効化していない場合は、ドキュメントクイックスタートガイドをご覧ください。

GitHub Codespacesを使用したクラウド開発環境

GitHub Codespacesを使うことで、ブラウザーから、またはVisual Studio Codeを使用して直接、開発環境を短時間で構築できるようになります。私たちは今年の初めに、すべてのエンジニアリングチームをGitHub Codespacesに移行し、全社的にGitHub Codespacesをデフォルトの開発環境にしました。GitHub Codespacesに移行する前は、社内で新しい開発環境を一から作成するのに最大45分かかっていましたが、GitHub Codespacesを使うと、構成済みの新しい開発環境をわずか10秒で作成できました。つまり、GitHubの開発により多くの時間を費やし、開発環境のトラブルシューティングや待機に要する時間を短縮できるということです。

私たちは現在も、エンジニアのUXを向上すべく、既にGitHub Codespacesを採用している企業からさまざまなことを学んでいます。ユーザーからのフィードバックをもとにした、機能改善の一部をご紹介します。 

  • 開発環境の構築をより簡単に:クリック1回のセットアップで、コード定義時に”devcontainer.json”開発環境を作成、更新できるようになりました。 
  • CLIのサポート:GitHub CodespacesのサポートをGitHub CLIに追加し、コマンドラインやダイレクトSSHを使用するエンジニアが自分の開発環境にアクセスできるようにしました。
  • REST APIのサポート(ベータ版):新しいREST APIにより、マシンタイプやシークレットなど、自分のコードスペースをプログラムによって簡単に管理できます。
  • 転送ポートへのアクセス制御:自分のCodespacesへの転送ポートを共有し、パブリック、プライベート、またはOrganizationのメンバーと共有としてマークできます。
  • GitHubコンテナーレジストリへのシームレスなアクセス:GitHubコンテナーレジストリに格納される開発コンテナーを自動的に認証します。個人アクセストークン(PAT)を提供する必要はありません。

現在、GitHub CodespacesはTeamプランとGitHub Enterpriseでご利用いただけます。GitHub Codespacesによってソフトウェアの開発がどのように変わるかについては、Universeでオンデマンドセッションをご覧ください。 

GitHub Codespacesの詳細はこちらから確認できます。また、クイックスタートガイドも活用してください。

GitHub CopilotがNeovimおよびJetbrainsをサポート

GitHub Copilotは、コメントをコードに変換したり、APIドキュメントによって面倒な作業の時間を減らしたり、テストの作成をサポートします。 

現在、NeovimとJetBrains IDEも対象となるようにエディターのサポート範囲を拡大していて、特に最新バージョンのIntelliJ IDEAとPyCharmに重点を置いています。Javaのマルチライン入力補完もサポートし、今後数か月の間に、他の言語もサポートする予定です。

GitHubでは、テクニカルプレビューを試していただけるエンジニアを引き続き募集しています。ぜひGitHub Copilotのウェイティングリストにご登録ください。

CI/CDの向上と自動化のためのGitHub Actionsのアップデート

この1年間、GitHub Actionsのアップデートを数多くリリースしました。例えば、環境、GitHub Mobileサポートを使用したデプロイメントに対する必須の承認者、デプロイメント時のブランチ保護、環境シークレット、ワークフローの再実行、ランナー管理エクスペリエンスの向上、GitHub Actionsに対するGitHub CLIのサポートなどです。また、GitHub Marketplaceで公開されている、オープンソースコミュニティやパートナーが提供するGitHub Actionsは10,000件を超えました。こうしたアップデートにより、GitHub Actionsを最良のCI/CDにして、優れた自動化エクスペリエンスを実現できます。  

最近では、以下の機能をリリースしました。

  • 再利用可能なワークフロー:ワークフローの重複を削減します。開発チームは標準化されたデプロイメントワークフローでベストプラクティスを実施することで、作業の迅速化とセキュリティの強化を実現できます。再利用可能なワークフローは、単一のリポジトリ内で維持され、企業全体で共有できます。
  • セルフホストランナーを自動拡張/縮小するためのAPI:特定のワークロードに応じてフリートを拡大または縮小することで、セルフホストのインフラストラクチャのコストを管理します。私たちは、これらのAPIを活用して、VMやKubernetes上のセルフホスト型ランナを自動スケーリングするためのソリューションを提供する、2つのオープンソースプロジェクトと提携しています。
  • Open ID Connect (OIDC)に基づく認証のサポート:OIDCをサポートする任意のクラウドプロバイダー(AWS、Azure、GCPなど)を使用して、デプロイメントごとにシークレットを自動的に入れ替えます。

GitHub Actionsに対する最新の機能改善や、10,000を超えるActionsを参考にして、ワークフローの自動化に役立ててください。

新しいコマンドパレットでGitHubのナビゲーションをシンプル化

新しいコマンドパレットのパブリックベータ版では、GitHubをよりシームレスに移動でき、単一のショートカットで始まるコマンド(macOSの`command k`、WindowsとLinuxの`control k`)の新しいホストを使って、GitHub上の任意の場所からワークフローを最適化できます。同様に、任意の場所から任意のプロジェクト、リポジトリ、Pull Request、またはIssueに迅速に移動し、コマンドを実行できます。 

新しいコマンドパレットを試して、感想をお寄せください

Code ScanningがRubyに対応。さらに、GitHub Enterprise Cloudのアクセス制御を向上

非常に短いスクリプトからモノレポまで、私たちはより優れたセキュリティツールを提供できるよう取り組んでいます。安全なコードを簡単に作成してリリースするための追加能を、Universeでリリースします。

Code ScanningがRubyに対応

Rubyは、オープンソースコミュニティ内で10番目*に人気のある言語です。多くのオープンソースメンテナーや企業がコード内の潜在的な脆弱性を検出できるようGitHub Code Scanningを強化し、CodeQLエンジンにRubyのサポート(ベータ版)を追加しました。

GitHubのCodeQLアナリストが、コードに含まれるセキュリティ問題と、脆弱な場所に向かうデータフローを特定します。Rubyを使用した安全なサービスとツールの作成をサポートするために、CodeQLのベータ版では、SQLインジェクション、正規表現によるサービス妨害(ReDoS)、複数のクロスサイトスクリプティングの攻撃ベクトル、コマンドラインインジェクションなど、最も一般的なセキュリティ問題の多くを特定します。 

Ruby向けのCodeQLは、GitHub.comのCode Scanning機能、CodeQL CLI、およびVS Code向けのCodeQL拡張機能で、今日からデフォルトで提供されます。 また、GitHub Enterprise Server 3.4にも含まれる予定です。C/C++、C#、Java、JavaScript/TypeScript、Python、Goと並び、RubyがCodeQL言語サポート対象のリストに追加されています。 

コードスキャン機能で新しいRuby分析を使い始めるには、既存のワークフローファイルを更新するだけです。または、コードスキャン機能を初めて使う場合は、リポジトリの[Security]タブで分析ワークフローを設定してください。

GitHub Enterprise Cloudのアップデート

GitHub Enterprise Cloudは、企業ユーザー向けの完全なクラウドDevOpsプラットフォームです。私たちは、今日の環境において企業が直面している、進化する需要に対応できる機能の開発を継続的に取り組んでいます。その取り組みの中で大部分を占めるのが、セキュリティ機能や権限機能のリリースです。 

GitHub Enterprise Cloudに対して最近実施したセキュリティアップデートのうち、2つをご紹介します。

  • Enterprise Managed Users (EMU):Enterprise Managed Usersは、エンタープライズIDを管理する新しいオプションを提供します。企業の管理者がIDを所有して、そのライフサイクル全体を管理できるとともに、プロビジョニング機能とデプロビジョニング機能が向上しました。ご利用にあたっては、GitHub営業担当にお問い合わせください。
  • リポジトリのカスタム権限:GitHub管理者は、Team、Organizationのメンバー、外部のコラボレータ向けにカスタム権限レベルを作成できるようになりました。(パブリックベータ版として提供)

GitHub Enterprise Cloudの詳細をご確認ください。

Universeにご参加ください

さらなる情報については、2021年10月27日と28日(米国時間)にライブ配信(日本時間 10月28日00:00AM)されるUniverseをご覧いただくか、オンデマンドセッションで、GitHubの最新情報をご覧ください。