🍡

Enterprise レベルの GitHub Apps が GA!|Productivity Weekly(2025-03-12)

こんにちは。サイボウズ株式会社 生産性向上チーム佐々木です。

僕たち生産性向上チームは毎週水曜日に Productivity Weekly という「1 週間の間に発見された開発者の生産性向上に関するネタを共有する会」を社内で開催しています。
本記事はその時のネタをまとめたものです。

2023-01-25 号から、基本的に隔週で連載することとしました。たまに単独でも投稿するかもしれません。
今週は 2025-03-12 単独号です。

今回が第 182 回目です。過去の記事はこちら

news 📺

Enterprise-owned GitHub Apps are now generally available - GitHub Changelog

https://github.blog/changelog/2025-03-10-enterprise-owned-github-apps-are-now-generally-available/

2024 年 10 月に登場した Enterprise レベルの GitHub Apps が GA になりました。
Enterprise レベルの GitHub Apps は GitHub Enterprise に作る GitHub App であり、作成した App は配下の Organization にインストールできます。
これまでは個人か Organization 単位でしか GitHub App を作れなかったため、複数 Org で App を使いまわしたい場合、Org ごとに同じ App を作成したり、App を public にしたりする必要がありました。

今回 GA になるにあたり、次の変更が追加されました。

  • EMU[1] や Org の App を Enterprise に移行できるようになった
    • Enterprise から他の Enterprise への移行はできない
  • Enterprise App に対する権限の更新が自動で Org に反映されるようになった
    • 例えば Marketplace なんかの App を使ってる時に大元の App の権限が更新された際にそれを承認するかどうかを聞かれるのと同じことが Enterprise の App でも起こってたんだと思う。でも同じ Enterprise 内だから Org 側の承認作業が必要なくなったのだと思われる

なお、GA となっても admin:enterprise 系の権限付与はできませんでした。個人的には Enterprise レベルの API を実行するシステムを作る時に現状 PAT しか選択肢がないので Enterprise レベル GitHub App での認証ができるようになると嬉しいです。

また、今後 Enterprise 所有者でないユーザーやチームが特定の Enterprise App を管理したり、企業内のすべての Apps を管理できるようにするために、App Manager Role とポリシーの整備に取り組んでいるとのことです。これは楽しみですね。

なんらかの理由で Org ごとに似たような App を作っている場合は、この機能を使って一本化できるかどうか検討してみましょう。

本項の執筆者: @korosuke613

GitHub Issues & Projects: API support for issues advanced search and more! - GitHub Changelog

https://github.blog/changelog/2025-03-06-github-issues-projects-api-support-for-issues-advanced-search-and-more/

GitHub Issues、Projects のアップデート情報です。3 つの新機能、変更があります。

  • Issue 検索を REST API、GraphQL で行う場合 ANDOR やネストされたクエリを利用できるようになりました
    • REST API の場合は advanced_search パラメータの true、GraphQL の場合は typeISSUE_ADVANCED の指定が必要です
    • 2025/09/04 以降はデフォルトで有効化され、上記パラメータの指定は不要になります
  • Issue type が追加・変更・削除された際、これらのイベントが Issue タイムラインに表示されるようになりました
  • プライベートリポジトリのみで利用できる Issue type が廃止&削除されます (2025/03/26)
    • Private repositories only にチェックが入った Issue type が Issue 上のマーク含めて 3/26 に削除されます
    • もし今後も同じ Issue type を利用したい場合は Private repositories only チェックを外さなければいけません[2]

嬉しい変更もありつつ、Issue type の廃止・削除は利用ユーザには厳しい変更ですね。プライベートな Issue type を利用している場合は急ぎ対応しましょう。

本項の執筆者: @korosuke613

Easily distinguish between direct and transitive dependencies for npm packages - GitHub Changelog

https://github.blog/changelog/2025-03-04-easily-distinguish-between-direct-and-transitive-dependencies-for-npm-packages/

GitHub の機能の依存関係グラフにおいて、あるパッケージへの依存が直接的なものか推移的なものか区別できるようになりました。推移的依存の場合、そのパッケージに到達可能な直接的依存の特定も可能になりました。また、GraphQL API もどちらの種の依存か返すようになったとのことです。

Dependabot を使っている場合に便利そうです!

本項の執筆者: @ajfAfg

A 10x Faster TypeScript - TypeScript

https://devblogs.microsoft.com/typescript/typescript-native-port/

TypeScript コンパイラ tsc のネイティブ実装が進んでいるようです。
プレビュー版は 2025 年の中程、完全な実装は 2025 年末のリリースが予定されています。

巨大なコードベースを扱う際、現在の tsc の実装ではしばしば遅延が発生します。
この問題を解決するために、 tsc の Go への移植が行われています。
現時点ですでに、 VS Code (1,505,000 行) のコンパイル時間が 77.8 秒から 7.5 秒に短縮されているようで、かなりの高速化が期待できそうです。

本項の執筆者: @takoeight0821

ChatGPT、ローカルマシン上のXcodeやVSCodeのコードを読み込み、直接編集してプログラムを作成可能に。Mac版の新機能として - Publickey

https://www.publickey1.jp/blog/25/chatgptxcodevscodemac.html

ChatGPT for Mac に、Xcode や VSCode を直接操作してコード生成を行う機能が追加されました。
今まで、 ChatGPT によるコード生成は、ソースコードをチャットにコピペするなどの一手間が必要でした。
この新機能により、 より手軽に ChatGPT をプログラミングに活用できるようになりそうです。

VSCode の拡張ではなく、独立したアプリケーションとして提供されているのは興味深いです。

本項の執筆者: @takoeight0821

know-how 🎓

「読みやすいコード」を依存グラフで考える

https://zenn.dev/dinii/articles/readable-code-explained-in-dep-graph

コードの疎結合・高凝集を依存グラフ(Dependency Graph、依存関係グラフとも呼ばれる)から説明する話です。可能な限り一方向の依存を心がけ、サイクルはグラフの端に追いやるとよいとのことです。関連して、手続き的なコードに対して、宣言的なコードは一方向の依存を作りやすいために読みやすいとの説明もあります。

わかる〜という気持ちです。クリーンアーキテクチャのような設計論のプリミティブな形だなと感じました。

本項の執筆者: @ajfAfg

read more 🍘

Productivity Weekly で出たネタを全て紹介したいけど紹介する体力が持たなかったネタを一言程度で書くコーナーです。

あとがき

サイボウズの生産性向上チームでは社内エンジニアの開発生産性を上げるための活動を行なっています。そんな生産性向上チームが気になる方は下のリンクをクリック!
https://www.docswell.com/s/cybozu-tech/5R2X3N-engineering-productivity-team-recruitment-information


脚注
  1. EMU は Enterprise Managed User の略。Enterprise 内に閉じたユーザーのこと ↩︎

  2. 結構な破壊的変更では?あんまり利用者いないのだろうか ↩︎

サイボウズ 生産性向上チーム 💪

Discussion