Catch-up! 週刊 GitHub updates(2024年9月9日-15日)
GitHub Changelog for September 9 - 15, 2024
こんにちは、@dz_ こと、大平かづみです。
GitHub Changelogの週刊キャッチアップをお届けします。
文脈の範囲の拡大、テスト生成の改善、その他VS CodeのCopilot Chatの更新
先月のGPT-4oへのアップグレードにより、利用可能なチャットのコンテキストを引き上げたので、VS CodeのGitHub Copilot Chatでより大きなファイルを参照させたり、より長くチャットの会話ができるようになります。加えて、インラインやクイック チャットで「Attach Context」をクリックすると、(Copilotに送信する)クエリにより関連性の高いコンテキストを加えられるようになりました。
この月(8月)のリリースで、VS CodeのCopilot Chatに次の改善も盛り込まれています:
-
Generate Tests using Copilotアクションか、
/tests
スラッシュ コマンドを使ってより簡単にテストを生成できるようになった。Copilotは既存のファイルを更新したりテストを追加したり、もし存在しなければ新しいテストファイルを作成するようになる。詳しくは、Improved test generationをご覧ください。 - Show Chatsボタンで以前のチャット セッションを再度呼び戻せるようになる。セッション名は、自動的にAIによって設定され、また手動で変更もできる。履歴は、最後に質問した日付によって並べられ、データ バケットによってグループ化される。詳しくは、Improved chat historyをご覧ください。
- Thumbs downボタンを選択すると、満足しなかったチャットの応答について具体的な理由を送信できる。ドロップダウンの詳細の選択肢から、問題の種類を選択したり、問題として報告できるようになり、Copilotの改善に役立つ。詳しくは、Thumbs down feedback detailsをご覧ください。
- コード アクションがより明確な名前に: Generate Tests using CopilotやGenerate DOcumentation using Copilot。識別子にカーソルをあてて、アクションを選択する。詳しくは、Renamed Code Actions for generating tests and documentationをご覧ください。
実験的な新機能
フィードバックを収集しCopilotの機能開発に活かすため、VS Codeで実験的な設定が利用可能になります。ぜひご意見をイシューからご共有ください。
- 設定またはファイルの取り込みにより、コード生成の手順を定義する(例えば、always use underscore for private field names(毎回プライベートのフィールド名にはアンダースコアを使う)など)。自身用のユーザー設定かチーム向けにワークスペースの設定として、
github.copilot.chat.experimental.codeGeneration.instructions
の中でそれらを編集する。詳しくは、Code generation instructions (Experimental)をご覧ください。 - より関連性の高い提案を受けるために、直近で見たまたは編集済みのコード ファイルをインラインChatのコンテキストに含める。VS Codeの
github.copilot.chat.experimental.temporalContext.enabled
で有効化する。詳しくは、Use recent coding files as Inline Chat context (Experimental)をご覧ください。 -
/startDebugging
スラッシュコマンドを使って、起動構成を作成しデバッグを開始できる。VS Codeのgithub.copilot.advanced.startDebugging.experimental.enabled
で有効化する。詳しくは、Start debugging from Chat (Experimental)をご覧ください。
このリリースの詳細や機能について学ぶには、VS Codeの8月リリース(バージョン1.93)の完全なリリースノートをご参照ください。
GitHub Desktop 3.4.4 - カスタムエディタやシェル統合の紹介
GitHub Desktopは、サポートされた連携の一覧になくてもどのエディタやどのシェルでもリポジトリを開くことができるようになります。コマンドラインの引数を指定することも含め、高度な構成で連携を実現します。
アクセシビリティの改善
- 修正: NVDAを介してお知らせされた「Open a Pull Request」と「About」のダイアログの見出しを修正 - #19107
- 修正: フィルタを取り消した時に「Open a Pull Request」ダイアログのブランチ選択のポップオーバーが閉じないことを修正 - #19106
- 修正: 差分ファイルの警告のアイコンのコントラスト比が少なくとも3:1だったのを修正 - #19097
- 修正: 「Push Local Changes」の確認ダイアログが、スクリーン リーダーがダイアログの内容全体を読み上げる警告用ダイアログのロールを使っていたのを修正 - #19098
- 修正: スクリーン リーダー向けの絵文字の説明を修正 - #19101
- 修正: 自動補完の提案のポップオーバーにおける\”dialog\”ロールの不適切な読み上げを停止 - #19114
- 改善: スカッシュのダイアログにおいて視覚的な入力ラベルを表示 - #19100
- 改善: アプリ全体の検索欄において検索アイコンのフォームに視覚的なラベルを表示 - #19103
コミュニティの貢献
- 追加: macOSにおける外部エディタCursorをサポート - #17462。@bjorntechCarlさん、ありがとう!
- 追加: 外部エディタJetBrains RustRoverをサポート - #18802。@Radd-Smaさん、ありがとう!
ぜひGitHub Desktopをダウンロードしてみてください。
プッシュ ルールの一般公開、カスタム プロパティの更新
ルールセットの新しい型であるプッシュ ルールにより、プライベートや内部リポジトリ、フォークに対するプッシュを制限できるようになります。プッシュ ルールにより、アクションのワークフローのような影響の大きいファイルの更新を制限でき、意図しないオブジェクトをリポジトリに入り込ませないようにすることで、コードを健全に保つことに役立ちます。
加えて、Organizationの所有者はリポジトリが作成されたとき、リポジトリ プロパティの値が設定されるようにできるようになりました。これにより、作成した瞬間から適切なルールを確実に適用でき、新しいリポジトリの検索性が向上します。
プッシュ ルール
Organizationやリポジトリの所有者は、パスや拡張子、サイズなどの変更されたファイルの属性により、どの変更がリポジトリにプッシュされてもよいかを管理できるルールを構成できるようになります。
利用できるプッシュ ルール
-
Restrict file paths
- このルールにより、プッシュされるべきでないファイルやファイルパスを定義できる。このルールの使い時の例は、
.github/workflows/**/*
にあるアクションのワークフローへの変更を制限したいときなど。
- このルールにより、プッシュされるべきでないファイルやファイルパスを定義できる。このルールの使い時の例は、
-
Restrict file path length
- フォルダやファイル名のパスの長さを制限できる
-
Restrict file extensions
- このルールを利用して、リポジトリにバイナリを含めないように保てる。拡張子の一覧を追加し、
exe
やjar
などのファイルをリポジトリから除外できる。
- このルールを利用して、リポジトリにバイナリを含めないように保てる。拡張子の一覧を追加し、
-
Restrict file size
- プッシュできるファイルのサイズを制限できる。ただし、現在のGitHubの制限は引き続き適用される。
プッシュ ルールは、プライベートリポジトリに対してはGitHub Teamプランで利用でき、リポジトリだけでなく、そのリポジトリのすべてのフォークに対して網羅できます。加えて、GitHub Enterprise CLoudの顧客は、カスタム リポジトリ プロパティを利用して、内部リポジトリやOrganization全体に渡りプッシュ ルールを設定できます。また、ルール インサイトにアクセスし、リポジトリ全体でどのようにプッシュ ルールが適用されたかを確認できます。
追加の詳細
- 現在beta提供しているプッシュ ルールに対するバイパスの委任により、デプロイメントを行うチームが内部のポリシーに準拠しつづけられるようにし、Gitの履歴をきれいに保つことができる。開発者はプッシュ ルールの例外を簡単に要求でき、GitHub内ですべてがレビューされ監査される。
- 最高のパフォーマンスを確保するために、プッシュ ルールは1プッシュにつきブランチやタグの更新の参照を1000回を上限として処理するよう設計されている。
より詳しい情報は、プッシュ ルールのドキュメントをご参照ください。また、利用し始めるにはruleset-recipes
のリポジトリでプッシュ ルールセットの例をご覧ください。
カスタム プロパティ
Organizationの所有者は、リポジトリの作成時にメンバーにカスタムプロパティを設定を許可できるようになります。以前は、リポジトリの管理者かカスタム リポジトリ プロパティを編集できる権限を持つ人しか利用できませんでした。カスタム プロパティに対しAllow repository actors to set this property
を選択することにより、リポジトリの作成時から必ずプロパティを付与させられるようになりました。
ご意見をお聞かせください
質問や提案がありますか?ぜひ、コミュニティ ディスカッションの会話にご参加ください。
GitHub.comにおけるCopilot Chatが一般的なサポートシナリオやGitHubのドキュメントを理解するように
GitHub.comにおけるCopilot Chatが、一般的なサポートシナリオとGitHubのドキュメンテーションを学習し。最新のコンテキストを提供できるようになり、GitHubを使うにあたり発生する一般的な問題を解決できるようになりました。
ここにいくつかの質問のサンプルがあります:
-
Can I use Copilot knowledge bases with Copilot Individual?
(CopilotナレッジベースをCopilot Individualで利用できますか?) -
How do I configure SSH?
(どうやってSHを設定しますか?) -
A job is stuck in a post-build clean up step and it refuses to cancel or timeout. How do I stop it?
(ビルド前のクリーンアップでジョブが停滞していて、キャンセルもタイムアウトもしない。どうやって止めればよいですか?)
詳細は、GitHub.comでのチャットの「Currently available skills」をご参照ください。また、GitHubコミュニティのディスカッションにぜひ参加ください。
GitHub CLIでLinuxパッケージ向けのGPG署名鍵を更新
GitHub CLIのDebianとRedHatのパッケージを検証するために使用されるGPG鍵は、2024年9月6日金曜日に期限が切れます。公式のパッケージ リポジトリからgh
をインストールしている場合、GitHub CLIのリリースを検証し続けられるようにキーリングを新しい鍵で更新するかを確認されます。
各自のパッケージマネージャでの手順については、このドキュメントをご参照ください。
ご参考に、この注記は今週前半に公開されたCLI v2.56.0のリリースノートにも含まれています。
JetBrainsでGitHub Copilotのインライン チャットが利用可能に
JetBrainsでGitHub Copilotのインライン チャットにより編集中のコード ファイルの中でGitHub Copilotと直接会話できるようになります。この新しい機能は、コード エディタの中で双方向のアシスタントと直接連携することにより、コーディングの体験を強化するよう設計されています。
使い始めるには、JetBrainsIDEsでGitHub Copilotプラグインのバージョンが1.5.21.6667かそれ以上が必要です。
使い始めるには?
- ファイルを開く: 作業したいファイルを開くことにより開始される
- カーソルを配置する: 話したい特定の行やコードブロックにカーソルを置く
- ショートカットを使う: GitHub Copilotのインライン チャット機能を使うには、Shift+Ctrl+I (Mac)かShift+Ctrl+G (Windows)を入力する。もしくは、右クリックし「GitHub Copilot > Copilot: Inline Chat」を選択する。また、単に行やコードの範囲を選択したときに表示されるCopilotアイコンをクリックするだけでもできる。
インライン チャットはどうやってコーディングの体験を強化するか
- 強化されたワークフロー: エディタ内で直接提案を受け取れるためコーディングに集中し続けられる
- 文脈の認識: Copilotはより関連性の高いおすすめに特化したコード スニペットを提供する
- 集中できる対話: 頻繁なコンテキストスイッチを必要としない合理的な体験を楽しめる
インライン チャットはいつ使うべきか
- リファクタ: よりきれいで維持しやすいコードで同じ機能を達成できる代替え可能な方法を要求できる
- テスト: コードの指定した範囲のユニットテスト生成を支援させる
- コードの改善: 可読性を向上するために、複雑なロジックや変数の名前変更、コメントの追加などの足構成により支援させる
- 脆弱性の評価: 可能性のある脆弱性についてCopilotに相談できる、ただし、総合的な評価のために確立したセキュリティ ツールを使用することを忘れないこと
- パフォーマンスの最適化: コードの効率を改善するための提案を得る
インライン チャットはサイドパネル チャットとどう違うか
インライン チャットもサイドパネル チャットもCopilotと双方向の会話ができるが、インライン チャットでは編集中のコードに対して直接会話を連携できることにより、より集中した体験が提供されます。一方で、サイドパネル チャットでは、より広くディスカッションしたり過去の会話を追跡したりする専用のスペースが提供されます。
ぜひ本日(2024年9月11日)よりJetBrains Copilotのインライン チャットの力を活かし、コーディングの体験を途切れることなくより効率的にしてみてください。
GitHubコミュニティでディスカションにご参加ください。
GitHubセキュリティ アドバイザリでCVSS 4.0をサポート
GitHubセキュリティ アドバイザリが新しいCVSS 4.0のスキーマをサポートします。
CVSS(Common Vulnerability Scoring System)は、FIRSTによって維持されている業界標準です。CVSS 4.0標準では、特定の脆弱性のリスクをより詳細に評価するための新しいメトリクスを追加します。
リポジトリ セキュリティ アドバイザリを作成すると、CVSS 4.0か3.1の基準スコアを算出でき、公開されたグローバルのアドバイザリや関連するDependabotのアラート、APIを通じてそのデータを確認できます。
詳しくは、CVSSスコアとGitHubセキュリティ アドバイザリやGitHubアドバイザリ データベースをご参照ください。
Discussion