📌

Catch-up! 週刊 GitHub updates(2024年8月26日-9月1日)

2024/09/22に公開

GitHub Changelog for August 26 - September 1, 2024

こんにちは、@dz_ こと、大平かづみです。

GitHub Changelogの週刊キャッチアップをお届けします。

シークレット スキャンのプッシュ保護のバイパスにおいてブランチやファイルパスを表示するように

https://github.blog/changelog/2024-08-26-secret-scanning-displays-branch-and-file-paths-for-push-protection-bypasses

プッシュ保護のバイパスリクエストで、シークレットに対してファイルパスやブランチの情報を表示するようになります。子の改善により、プッシュ保護のバイパスをリクエストされたシークレットをより効率的に選別できるようになります。ブランチ情報は、単一のブランチにプッシュされた場合のみ利用可能です。

シークレット スキャンのプッシュ保護において委任されたバイパスは、Organizationやリポジトリに対して、シークレットを含むコミットをプッシュしてよい人を制御できるようにします。開発者は、ブロックされたシークレットをプッシュするための承認を認可されたメンバーに要求できます。

詳しくは

詳しくは、シークレット スキャンでリポジトリをセキュアに保つをご参照ください。GitHub communityディスカッションにご参加いただくか、60分のフィードバック セッションにご登録いただき、ぜひご意見をお聞かせください。

GitHub Copilotにおけるカスタム モデルがpublic betaで限定公開

https://github.blog/changelog/2024-08-27-custom-models-for-github-copilot-are-now-in-limited-public-beta

Copilot Enterprise向けにGitHub Copilotのカスタム モデルが限定的なPublic betaとして公開されます。この新しい能力により、Organization独自のコーディング プラクティスを理解しそれに沿うようにCopilotをファインチューニングでき、プロジェクト全体でコードの提案の関連性や正確さが向上します。

カスタム モデルとは?

カスタム モデルは、Organizationのコードベースを使用してファインチューニングさせる大規模言語モデル(LLM)です。独自のライブラリや特殊な言語、内部のコーディング パターンを学習することにより、Copilotはより文脈を捉えてOrganizationの要求に沿ったコードの提案を提供します。

このbeta期間中、GitHubリポジトリを使ってカスタム モデルを作成できます。また、任意で、開発者が行ったCopilotへの入力によるコード スニペットやテレメトリのコレクションを用いて、さらにモデルを微調整もできます。この工程により、Copilotの提案を実際のコーディングに密接に寄せることで、より関係性が高く正確になります。その結果、開発チームはコード レビューやデバッグ、手動のコードの調整に費やす時間を削減でき、チームの生産性を劇的に向上し、より一貫したコードの品質を保証します。

重要なことは、あなたのデータはあなたのもののままであることです。あなたのカスタム モデルは、他の顧客のモデルの学習には決して使われず、プライベートに保たれ、完全な制御、セキュリティ、プライバシーが確保されます。

カスタム モデルはいつ利用するのか

カスタム モデルは、Copilotの提案を利用者の特定の要求に対してより関連性を高め、Copilotが提案するコードの承諾率を高めます。次のシナリオにおいてカスタム モデルの利用を検討しましょう:

  • ライブラリやAPIの利用を強化する: ドキュメントが整った公のデータセットではないカスタムしたライブラリやAPIに強く依存しているとき、カスタム モデルは提案の中でそれらを優先させることができ、開発者に内部の基準に従ってもらいやすくなる
  • 特殊な言語に対するサポートを改善する: チームがあまり一般的でなかったり独自の言語で開発している場合、カスタム モデルはCopilotをより効率的に振舞わせることができる。ファインチューニングは、Copilotがそれらの言語をより理解できるよう手助けし、摩擦を減らし生産性を向上する
  • 変化していくコードベースに適応する: コードベースの変化に合わせ、カスタム モデルをいつどうやって再学習するかを完全に制御できる。定期的な再学習により、Copilotが最新のコーディング パターンを追随でき、関連性が高く正確な提案を続けられる

利用するには

  1. Betaに登録する:
    こちらから登録して限定的なPublic betaに参加し、Copilot EnterpriseプランのOrganizationでお試しください
  2. リポジトリを用意する:
    Organizationのコーディング基準を一番反映したリポジトリを選択してください。独自のライブラリや特殊な言語、重要な内部のフレームワークとともにそれらを含めて、ファインチューニングを最大限活用します。もし、Enterpriseが複数のGitHub Organizationを所有している場合、beta期間中は1つのOrganizationのリポジトリしか学習に利用できません。
  3. テレメトリのコレクションを有効化する:
    さらにモデルをカスタマイズするために、開発者の入力やCopilotの提案に紐づくコード スニペットやテレメトリのコレクションを有効化することを検討してください。このデータは安全に収集され追加のファインチューニングのために使用され、チームに対するCopilotの出力の正確さや関連性を高めます。あなたのデータはカスタム モデルを強化するためだけに利用され、他には共有されません。データ制御のプラクティスについての詳細は、Trust & Security Centerデータ保護の契約をご確認ください。
  4. 学習し利用する:
    セットアップが完了したら、カスタム モデルは選択したリポジトリを使って学習されます。準備が完了すると、開発者のIDEは自動的にカスタム モデルの利用を開始し、すべてのインラインのコード補完に反映されます。
  5. 監視や品質の評価:
    定期的にカスタム モデルを学習させ、新しいコードや変化するプラクティスに追随するようにしてください。Copilot 使用状況メトリック APIを使って、提案の採用率のようなメトリクスを追跡したり、どれくらい改善したかを確認してください。

追加のリソース

CodeQL コード スキャンにおけるJavaとC#のコードベースのビルドなしの解析(一般公開、GA)

https://github.blog/changelog/2024-08-28-codeql-code-scanning-can-analyze-java-and-c-codebases-without-needing-a-build-ga

CodeQLコード スキャンはJavaおよびC#コードにおいてビルドを監視することなく解析できるようになります。これにより、多数のリポジトリ、特にGitHub Advanced Security(GHAS) セキュリティ構成を用いてリポジトリに対する有効化や管理を行う場合、セキュリティ解析の展開が容易になります。

CodeQLは、GitHubコード スキャンを強化する解析エンジンです。ソースコードを解析するとき、解析エンジンがコードベースのすべての側面から詳細な情報を持っていることが重要です。この度、解析エンジンはJavaやC#コードのビルドプロセスにおける監視に依存しなくなったため、CodeQLコード スキャン(JavaおよびC#)におけるセットアップの成功や移植率が向上しました。

この機能の試験期間の間、解析結果が以前の方法と同じように正確かどうか検証しました。この機能(JavaC#)は今年初めにpublic betaとして公開されていて、これらの言語に対してCodeQLコード スキャンを新しく利用する人にはこれが新しい標準の解析モードになりました。一部のお客さまは、以前は数週間かかったタスクが数分で達成できるようになり、圧倒的な時間の短縮を経験しました。

JavaやC#の両方に対するCodeQLの新しい構成なしの解析メカニズムは、GitHub.comで利用可能です。これらのリポジトリにCodeQLコード スキャンを設定すると、デフォルトでこの解析メカニズムの恩恵を受けられます。もしこの機能の個々のpublic betaのリリースより前にJavaやC#に対してCodeQLコード スキャンを設定していた場合、変更されないままです(ただし、現在の構成を無効化して既定セットアップを使用してコード スキャンを再有効化することにより、移行できます)。GitHub Enterprise Server(GHES)では、この新しい機能はJava向けにはバージョン3.14から、C#向けには3.15からリリースされる予定です。

コード スキャンの高度なセットアップを使用するリポジトリでは、Actionsワークフローファイルで指定されたどの解析メカニズムでも使用し続けられます。新しい解析構成のテンプレートでは、build-mode: noneを指定することにより新しい解析メカニズムを使用します。古い解析メカニズムも引き続き利用可能です。CodeQL CLIについてはこちらのドキュメントをご参照ください。

ぜひ、GitHubコード スキャンについてご確認ください。これらのJavaやC#に対する新しい解析メカニズムについてフィードバックをお持ちの方は、こちらよりディスカッションにぜひご参加ください。

GitHub Enterprise Server 3.14が一般公開(GA)

https://github.blog/changelog/2024-08-29-github-enterprise-server-3-14-is-generally-available

GitHub Enterprise Server 3.14が一般公開(GA)

GitHub Enterprise Server 3.14では、強化されたデプロイメントの要件やセキュリティ制御を提供します。3.14のリリースにおける注目をご紹介します:

  • SCIM for GitHub Enterprise Server(GHES) は、は要望が多かった企業向けのID管理機能で、public betaとして利用可能になります!SCIMは「クロスドメインアイデンティティ管理システム」の略で、SaaSアプリケーションにおける利用者のライフサイクル管理の主要な標準です。企業の管理者はSCIMをGitHub Enterprise Serverインスタンスに構成できるようになり、SCIM APIを用いて自動的な新しいアカウントやグループのプロビジョニングを提供します。Entra IDやOktaなどの整備されたいくつかのアプリケーションをサポートしており、SAMLやSCIMの管理を一ヶ所にまとめられます。加えて、独自のIDおよび利用者のライフサイクル管理の要件を満たすために、所有するSAML IDプロバイダやSCIMの実装をGitHub Enterprise Serverに持ち込むことも想定されています。利用し始めるには、GitHub Enterprise ServerのSCIMのドキュメントをご参照ください。public betaの間、SCIMを現在利用中の環境に追加する前に、本番ではないGHES環境のID管理システムでSCIMのサポートを試験することをお勧めしました。SCIMサポートは、既存のSAML実装に追加できますが、対象のIdPのいてSCIMを介した自動プロビジョニングに対応した新しいアプリケーションを利用する必要があります。これまでprivate betaを利用しているお客さまも、更新したIdPアプリケーションで実装を再構成する必要があります。
  • SAML設定が、Enterprise設定画面で、読み取り専用の構成として閲覧できるようになります。企業の管理者は、彼らのEnterpriseインスタンスに対して構成したSCIMサポートと同じ場所で、それらの設定を閲覧できます。
  • カスタム可能なOrganizationロールが導入され、信頼できるチームやユーザーに対してOrganizationの管理業務の一部を委任できるようになります。Organizationの管理者はUIまたはAPIの両方を用いて、それらのカスタム ロールを管理できます。詳しくは、Organizationロールのカスタマイズをご参照ください。
  • リポジトリ ルールのコード スキャンのオプション がpublic betaとしてGHESで利用できるようになります。これにより、ステータス チェックに頼る代わりに専用のコード スキャン ルールを作成でき、プルリクエストのマージを阻止できます。新しい脆弱性がコードベースに混入されることを防ぎやすくなります。詳しくは、マージ保護ルールセットの作成をご参照ください。
  • Dependabotのグループ化されたセキュリティ アップデートが一般公開として利用可能になります。この機能により、Dependabotのプルリクエストは自動的にまとめられ、いくつか追加のオプションによりグループ化を調整もできます。リポジトリまたはOrganizationレベルでDependabotのグループ化されたセキュリティ アップデートを有効化できます。もしDependabotのグループ化に対してより細かく制御したい場合は、リポジトリのdependabot.ymlファイルを構成することもできます。
  • 第 2 世代仮想マシンのサポートにより、運用者はGHESの環境を水平展開できます。新しい3.14またはそれ以降のインストールは、ブート ファームウェアやBIOS、UEFIをサポートし、より新しい世代のハードウェアでブートします。詳しくは、第 2 世代仮想マシンの利用をご参照ください。
  • 複数のレプリカノードによるインスタンス上で、単一構成の実行においてすべてのノードに対するレプリケーションの開始または停止するには、運用者はghe-repl-start-allghe-repl-stop-allコマンドを利用できます。

GHES 3.14についての詳細は、リリースノートをご参照いただき、ぜひダウンロードしてみてください。GitHub Enterprise Serverアプライアンスを3.14にアップグレードしたことによる問題がある場合は、サポートチームにご連絡ください

フィードバックの共有や質問がある場合は、ぜひcommunityディスカッションにご参加ください。

GitHub.comにおけるCopilot Chatが、GitHub全体を検索可能に

https://github.blog/changelog/2024-08-29-copilot-chat-in-github-com-now-can-search-across-github-entities

この変更で、GitHub.comのCopilot Chatで自然言語によるGitHub全体の検索が可能になり、コミットやイシュー、プルリクエスト、リポジトリ、トピックを探せるようになりました。

お試しください:

  • What are the most recent issues assigned to me?
  • What repos are related to [insert topic]?
  • What is the most recent PR from @user?

また、内部にいくつかの変更を行い、Copilotがより効率的に会話の履歴を保持できるようになりました。すなわち、Copilotはあなたとの会話の履歴をより覚えていられるようになり、より価値のある信頼できる返答ができるようになります✨。

ぜひGitHub Communityにご参加いただき、ディスカションしましょう。

GitHub Sponsorsの更新

https://github.blog/changelog/2024-08-29-whats-new-in-github-sponsors

一ヶ所ですべてのOrganizationのスポンサーの活動を閲覧できるように

Organizationに対してGitHub Sponsorsに関する活動を一ヶ所で閲覧しやすくなりました。スポンサー ダッシュボードで、現在や過去のスポンサーシップを見たり、一括でスポンサーシップを作成したり、依存関係を確認できます。特定のプロジェクトを検索したり、すべての依存関係をエクスポートしたりでき、スポンサー先のメンテナを見つけやすくなります。

詳しくは、スポンサー ダッシュボードをご参照ください。

ソーシャル メディアでのスポンサーシップの共有

メンテナやスポンサーはボタンをクリックすることによりソーシャル メディアでスポンサーシップを共有して祝えるようになりました。メンテナは、スポンサーへの接点ができ、彼らの目的を共有できます。

詳しくは、ソーシャルで共有するをご参照ください。

シークレット スキャンのバイパスに対する細かな権限

https://github.blog/changelog/2024-08-29-secret-scanning-fine-grained-permissions-for-bypasses

Organization内でプッシュ保護のバイパス要求をレビューして管理するために、細かな権限を付与できるようになります。

この権限を付与された人は、バイパス要求の一覧を承認して管理できるようになります。これまでのように、code security and analysis settingsで「Bypass list」にロールやチームを追加することでこれらの権限を付与もできます。

来月、GitHubはこの変更に合わせて「Bypass list」からカスタム ロールのサポートを削除する予定です。中断を避けるために、これまでパイパスのレビュアーとして追加されていた既存のカスタム ロールには、バイパス要求のレビューと管理の権限が付与されます。

シークレット スキャンのプッシュ保護に対するバイパスの委任により、Organizationやリポジトリで誰がシークレットを含むコミットをプッシュできるかを制御できます。開発者は阻止されたシークレットをプッシュするには認可されたメンバーに承認を要求できます。

詳しくは

詳しくは、シークレット スキャンを利用してリポジトリを安全に保つ方法をご参照ください。GitHub communityディスカッションに参加したり、60分のフィードバックセッションにご登録いただき、ぜひご意見をお聞かせください。

UnkeyがGitHubシークレット スキャンのパートナーに

https://github.blog/changelog/2024-08-29-unkey-is-now-a-github-secret-scanning-partner

Unkeyの利用者に向けて、GitHubシークレット スキャンはUnkeyのトークンをスキャンするようになり、パブリックリポジトリをセキュアに保つのに役立ちます。UnkeyのRoot APIキーは、利用者がAPIやAPIキー、グローバルのレート制限、権限制御を含むUnkeyのリソースを作成したり管理できるものです。GitHubはパブリックリポジトリで見つかった漏洩したトークンをUnkeyに転送し、Unkeyはその信用を失ったトークンを再生成し影響のある利用者に通知します。Unkeyトークンについての詳細はこちらをご参照ください

GitHubシークレット スキャンは、トークンや秘密鍵などの既知の型のシークレットについてリポジトリを検査し、利用者を保護します。それらのシークレットを識別しフラグを立てることにより、スキャンはデータの漏洩や詐称を防ぐことに役立ちます。

GitHub Advanced Securityを利用するお客さまは、プライベートリポジトリにおいてもUnkeyトークンをスキャンし阻止できます。

Organizationのカスタム ロールにリポジトリに対する権限を追加

https://github.blog/changelog/2024-08-29-add-repository-permissions-to-custom-organization-roles

カスタムOrganizationロールにリポジトリの権限を追加でき、Organization内のすべてのリポジトリへのアクセスに対して特定のレベルを付与できるようになります。

これは、GitHubの定義済みOrganizationロールにおけるOrganizationレベルの権限付与のリリースに含まれます。これらの更新により、管理者は大規模なチームやOrganizationに渡り、権限管理を簡単に拡大できます。

Organizationロールでリポジトリに対する権限を使用する

Organizationロールは、リポジトリに対するロールや権限(例えば close_issue)を含めるために、Organizationに対する権限を含む必要はありません。これにより、WriteTriageのような定義済みのOrganization規定ロールの独自のバージョンを作成でき、要求に沿った標準のアクセス権のセットを適用するために、Organizationの全員にそれらのロールを割り当てられます。

よくあるユース ケースでは、オンコール交代のための昇格したロールを作成することです。たとえば、「Jump the merge queue(マージ キューを飛ばす)」や「Request a solo merge(単独のマージを要求する)」などのリポジトリに対する権限にWrite権限を割り当てたロールを追加することで、オンコール チームは素早く修正できるようになります。APIを利用しこのロールをオンコールの当番に割り当て、彼らに緊急時やシフトによる権限委任として昇格した権限を付与できます。

## Organizationのカスタム ロールにリポジトリに対する権限を追加

https://github.blog/changelog/2024-08-29-add-repository-permissions-to-custom-organization-roles

カスタムOrganizationロールにリポジトリの権限を追加でき、Organization内のすべてのリポジトリへのアクセスに対して特定のレベルを付与できるようになります。

これは、GitHubの定義済みOrganizationロールにおけるOrganizationレベルの権限付与のリリースに含まれます。これらの更新により、管理者は大規模なチームやOrganizationに渡り、権限管理を簡単に拡大できます。

Organizationロールでリポジトリに対する権限の使用

Organizationロールは、リポジトリに対するロールや権限(例えば close_issue)を含めるために、Organizationに対する権限を含む必要はありません。これにより、WriteTriageのような定義済みのOrganization規定ロールの独自のバージョンを作成でき、要求に沿った標準のアクセス権のセットを適用するために、Organizationの全員にそれらのロールを割り当てられます。

よくあるユース ケースでは、オンコール交代のための昇格したロールを作成することです。たとえば、「Jump the merge queue(マージ キューを飛ばす)」や「Request a solo merge(単独のマージを要求する)」などのリポジトリに対する権限にWrite権限を割り当てたロールを追加することで、オンコール チームは素早く修正できるようになります。APIを利用しこのロールをオンコールの当番に割り当て、彼らに緊急時やシフトによる権限委任として昇格した権限を付与できます。

リポジトリへのアクセス権限の管理

Organizationロールの作成のUIやREST APIの両方で、リポジトリに対する権限をサポートするよう更新されました。

加えて、リポジトリへのアクセス権の管理画面を更新し、リポジトリの所有者によって利用者やチームに付与されたアクセス権と、Organizationの所有者によって行われたOrganization全体での付与を分離します。これにより、利用者がどのように特定のリポジトリに対してのアクセスを持っているのかを説明しやすくなります。

自動的なロールの作成や割当てに関して、詳しくは、GitHubのドキュメントREST APIメソッドをご参照ください。

Discussion