404ニキのBlog@hatena

Microsoftの技術について取り扱うブログです。開発ツールとAzureがメイン、あとは興味のある内容

GitHub Universe Recap 2024 基調講演メモ

はじめに

渋谷で開催されたGitHubUniverseRecap2024に行ってきたので基調講演の内容を共有します。 なお、だいぶ走り書きに書いているところもあるため、読みにくいところがあったらごめんなさい。

また、内容についてアドバイスがありましたらご指摘いただけますと幸いです。 なお、修正箇所があったら適宜、修正していく予定です。

イベント概要

https://github.registration.goldcast.io/events/f3d6dfde-6341-4a07-a0d0-c93a03ff540e

Welcome

歴代のアップデートが動画で紹介されたのちにGitHub Japan角田賢治さんからの挨拶セッション

年に1度GitHub Universeはサンフランシスコで開催される。今日は日本で開催されるGitHub Universeである。 AI開発者を10億人にするビジョンがある。(米国GitHub) 日本の開発者は350万人いる。プラットフォームごとにみると9番目の順位となる。増加率は23%

これからの利用者を増やすためにさまざまなアナウンスをした。

  • GitHub secure Open Source Fundの紹介
  • GitHub Certification
  • GitHub ZOZO TOWNコラボ
  • COBOLのモダナイゼーション

スポンサーはPostman、New Relic

スポンサーは各ブースでライトニングトークやソリューションの紹介をしている。

GitHub基調講演 / GitHub Keynote

GitHub基調講演、プロダクト発表の振り返りおよびデモ

10周年を迎えたGitHubの発表をロールアップ

2013年から始まった。とくに大きな発表できることがなかった。セキュリティを強化していると発表した。 次にGitHub Actionsの発表、60日で開発した。 今思うと失敗したところもあると思うけども、失敗したら切り戻せる。 (16年間の開発イノベーション)

NASAがブラックホールの撮影に成功した。これはGitHubにソースコードがあったからこそ成功した。

2015年以来、6700万を超えるissueを解決してきた。OSS活動はスポーツである。

AIは開発者のレベルアップを助ける。GitHub Copilotはたくさん使われている。皆さんのおかけで次のステップ進めた。

CopilotでさまざまなAIモデルを使える。o1、Claude、geminiが利用できる。 GitHub Modelsを今年の夏に出した。 また、テクニカルプレビューとしてCopilot Workspaceを出している。 Copilot Extensionsも登場した。自分で拡張機能を作成できる。

Copilot Summarries for discussionsも登場した。議論をまとめることができる。 長いディスカッションをようやくできるようになった。 GitHub Copilot Code Reviewを使うことで、コードレビューを効率化できる。コードのチェックをAIがやってくれる。

パブリックプレビューとしてGitHub issue 2.0が登場した。 より複雑なプロジェクトに対応できるようになった。

セキュリティのトピック、今年のメインテーマとなるものである。 Copilot Autofix、Apply fixes in secondsとなる。 Copilot AutofixはDependabotで使える。 パブリックプレビューとしてCode Scanning Autofix for Third Party Code Scanningが登場した。

パブリックプレビューとしてSecurity Campaigns(GitHub Advanced Securityに使える。) Copilot Secret Scanningが一般提供、Scan for secretsをクリックすることで利用できる。

2018年からリリースしているGitHub Actionsの説明 パブリックプレビューとしてCI/CDにセキュリティが入った。 パブリックプレビューとしてAPI Insights & Actions Perfonmance Metricsが登場した。

Empowering Enterprise Governance and Adoministrationの説明

GitHub enterprise Cloud with Data Residencyの説明、組織用にデータを管理できる。 日本で展開する予定はまだわからない。 まとめとして今年一年はいろんなことがありました。みんなで協力して一緒にやっていきましょう。

{ここで田中さんに交代}

今までOpenAIのモデルを使っていたために皆さんは複数のAIが使えるようになったことに驚いたと思う。 複数のAIが利用できるようになったCopilotのデモが行われた。 begin focus managmentを使うと特定のコードにフォーカスできる。

レビュー依頼をしてもなかなかレビューしてくれないこともある。(なかなかレビューしてくれない問題) それはそれでいくつかの背景がある。 言い方はあれだけども、さまつなレビューが割り込んでくることがあってそれが面倒に感じることもある。 (明らかに間違えてんじゃんみたいな指摘などは面倒)

レビュワーにCopilotを設定できる。ブランチごとに設定できる。Copilotだとコードレビューは30秒から1分くらいで完了する。 「なかなかレビューしてくれない問題」はこれで解決できるのではないかというところ、これは体験が良いと思う。

レビューはさまざまな言語に対応している。 Copilotのレビューを実行するといくつかのサジェスチョンをしてくれる。 どんなプロジェクトであってもCopilotを使うことでレビューできる。

ドキュメントの修正などについてはタイポなども指摘してくれる。

コードレビューはプロジェクトごとに観点が違うと思う。そういうのにCopilotで対応できないのか。 =>CopilotにCoding Guidelinesを使うことで対応できる。(リポジトリの管理者がアクセスできる) コーディング規約を設定することで、Copilotに指示ができる。

GitHub Copilot コード レビューのコーディング ガイドラインの構成 - 参考

また、LLMを使うのであれば、リンターなどで対応できるような部分をCopilotにやらせるのはもったいない。 なので人間が見ないと見つけらないような曖昧なところをCopilotにお願いするのがいい。 コーディング規約が効いているかどうかはサンプルコードを貼り付けることで確認できる。

Code Scaningもチェックして結果を返す。(Copilotとは別に) 結果は異なるところに出力されるので閲覧が大変だが、Copilot Workspaceを使うことで修正結果のすべてを確認できる。 Copilot Workspaceを開くとCodespacesが自動的に立ち上がるので、Codespacesでテストを実行することもできる。 レビューをするだけでなく、レビュー内容を取り込むまでを早くする必要がある。

最後にもうひとつデモを見せる。 古いJavaバージョンのプロジェクトを例にデモを行った。 GitHub Assitant for Java(今作っているもの)を使ってJavaプロジェクトをアップデートする。

アップデートを開始するとLTSで3つのバージョンが表示される。その後、planが提供される。planにはさまざまな指摘事項が挙げられる。

アップグレードを実行すると、アップグレードが完了する。 アップグレードが完了すると何をやったかを教えてくれる。

質問回答コーナー

Q.Copilotでより良い結果を得るためには英語が良いか

Daniel Cho氏: 英語のほうが学習されているので英語のほうが良いかもしれないけども、個人的には日本語でも大丈夫だと思う。 体感ではあまり差はないと思う。

Kenta Nakase: ちょうどPythonのスクリプトで使っていたが、日本語でも大丈夫だと思う。

Q.アップグレードアシスタントはJava以外でもあるか

C#はあるけど、まだ開発段階で動いているところはまだ見たことない。

Q.Copilotによるレビューですが、リポジトリ全体のコードを見て考慮してくれるか

現状はリポジトリ全体を見ていない。

Q.ProプランをEnterpriseに移行するモチベーションの例を知りたい

Daniel Cho氏: 機能よりガバナンスの観点でアップデートが大きい。また、シングルサインオンなどの機能もある。 より社内で正式に使っていく場合はEnterpriseが多い。

Kenta Nakase: チームプランで使っているお客様からは運用管理が話題に上がることが多い。(ガバナンスの観点もあるけど)

Q.Copilotを使って動くコードを作成できるけど、そこからPRを出せるまでに修正するんですが、リファクタリングに時間がかかってしまい、結果的にどちらが早かったのかわからない

Daniel Cho氏: うまくハマれば早いけどもやっぱ良くないコードが出てくることもある。全部をAIにまかせるのは難しい。 どういうコンテキストが与えられているのかに注目してチャットしながら進めるのが良い。(ひとつの考え方として)

Kenta Nakase: Copilotと並走してリファクタリングしている。(自分で書くとうまくいかないことがあるため)

Q.Copilot Workspaceの画面上からビルドやテストの実行を確認できる機能について料金はかかるか

かかる。

Q.Advanced Securityの機能を使うためには費用的にはなかなか。。

これはまぁ。。。

Q.アップグレードアシスタントはどこから使えるか

これはテクニカルプレビューとして提供されている。wait listに登録することで使える。 初期フェイズなのでアクセス付与はまだ時間がかかるかもしれない。

Q.GitHub全体についてUIの日本語化の予定

今のところはないけども、進めている。COBOLの件は元は英語で書かれた事例だったが、日本語に翻訳された。 徐々に進んではいる。

Q.Copilot WorkspaceのGA待ってる

ありがとうございます。

Q.モデルを切り替えるのは便利だけど、質問内容に応じて振り分けて欲しい。そもそもチャットにたくさん書くのがナンセンスなのでもうすこし自然に入ってきてほしい

これはそのとおり。データに応じて検索ができるように開発と研究をしている。extensionsをうまいこと使っていくといい。 GitHub Modelsが提供されているのでモデルの違いを見極めながら使って欲しい。

AIからAIのモデルについて聞くものもよい。

Q.CopilotのEclipse対応はいつ頃か

コミットはしているが、まだ具体的な日付は決まっていない。要望を強くいただいている状態である。

Q.GitHub Copilot chatにコーディング規約を渡しているが、簡単に回避できる。強制的に適用できるようにする方法はあるか

トークン数などもあって、今のところは難しい。使い方で調整する。

Q.Copilot PRのwish listにならんでいるが、あとどれくらいが時間がかかる

ちょっとわからない状態

感想

全体的にAIのアップデートが多い印象だった。 Copilotは利用できているが、まだまだ活用したことがない機能が多いため、実際に使ってみたいと思いました。