
2026/10/01 5:32
Gitea 28.0 リリース
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Gitea 28.0.0 リリースでは、セキュリティおよびネットワーク要件における重大な互換性の崩壊が導入されており、直ちに対応を要します。最も急務なのは、Docker コンテナの再起動やバイナリの置換を行う前に管理者が設定ファイルをレビューすることです。無効な
[migrations]BLOCKED_HOST_LIST エントリは désormais サーバーの起動を厳密にブロックし、[migrations]ALLOWED_DOMAINS のようなレガシー設定は ALLOWED_HOST_LIST に置き換えられました。主要なバイナリの変更には、32 ビット x86 および gogit ビルドの削除、OS 固有のダウンロードサフィックスの廃止、および Git の最小バージョン要件を 2.25.0 に引き上げが含まれます。
ネットワーク操作は慎重な監査を必要とします:新しいエグレスルールはデフォルトで厳密モード (
EGRESS_MODE = strict) に設定され、ポート 80 および 443 が指定されない限り外部接続が制限されます。また、外部プリセットは削除されました。さらに、ホストリストでは IP ワイルドカードの受入が停止し、ROOT_URL は [server]DOMAIN を上回るようになりました。近代化された自動化をサポートするため、今回の更新には Bot アカウント、Deploy Tokens、および改善されたライセンス検出機能が含まれます。運用面の変更としては、Actions の実行をデフォルトで 400 日後に自動的に削除(他の設定がない限り)し、GitHub Actions ワークフローのルールを強化する点が挙げられます。ユーザーは、サポートされないレガシーコンポーネントや誤設定されたネットワークセキュリティ設定によるダウンタイムを防ぐために、直ちにデータのバックアップを行うよう推奨されます。本文
Gitea v28.0.0 リリースのお知らせ
バージョン番号のプレフィックス変更により、**「v1.28.0」ではなく「v28.0.0」**となります。
概要と準備事項
- セキュリティ修正を含むため: 約 1 週間後に詳細追記予定です。
- アップグレード手順:
- 必ず 変更ログ(破壊的変更)を確認してください。
- データをバックアップし、バイナリまたは Docker コンテナを置き換えて再起動を行ってください。
- インストールガイドをご参照ください。
⚠️ 重要な環境変更
- 32 ビット x86 アーキテクチャの廃止: リリース用バイナリから削除されました。
- gogit ビルトの廃止: バイナリから削除されました。
- Snap パッケージの制限:
アーキテクチャへの対応を停止しました。armhf - ファイル名形式の変更: OS バージョンサフィックス(例:
)が廃止されました。ダウンロードスクリプトを更新してください。windows-amd64
主要な破壊的変更 (Breaking Changes)
1. Git ネットワーク操作のエグレス制限強化 (#39426)
マージ、ミラーリングなどの Git ネットワーク操作は、内部プロキシを経由します。許可リストの見直しが必要です。
- 外部プリセット(preset)の廃止:
を設定し、許可するホストを明示的に列挙する必要があります。EGRESS_MODE = strict- 対象セクション:
: マイグレーションおよびミラーリング制御[migrations]
: ウェブフックと OAuth2 制御[security]
- ポート制限(ストリクトモード): ポート指定なしは、80 と 443 のみ許可されます。
- ラックス(緩め)モードの変更:
がパブリックホストの制限から外れました。排他的なリストとして使用するには[security] ALLOWED_HOST_LIST
を設定してください。EGRESS_MODE = strict - ワイルドカードの無効化: IP アドレスエントリでの
は無効です。* - ドメインエントリの構文変化:
構文に従います(例:curl
はすべてのサブドメインに一致)。example.com - 起動エラー: 無効な
エントリは Gitea の起動を停止します。[migrations] BLOCKED_HOST_LIST - 非推奨設定の廃止:
、[migrations] ALLOWED_DOMAINS
、BLOCKED_DOMAINS
は置き換わり、非推奨となりました。ALLOW_LOCALNETWORKS
2. セルフ登録とドメイン設定の変更 (#39400)
- セルフ登録の無効化:
が明示的に設定されない限り、現在無効になっています。[service] DISABLE_REGISTRATION = false
- ドメイン設定の移行:
- Gitea は
をもはや読み取らないようになりました。[server] DOMAIN - インスタンスドメインは
から取得されます。従来ROOT_URL
に依存していた場合はDOMAIN
の設定を行ってください。ROOT_URL
- Gitea は
3. Actions ラン(実行)の保持期間制限 (#38855)
- 自動削除: 完了した Actions ランは、デフォルトで 400 日後に削除されます(ジョブ、ログ、アーティファクトも同様に消去)。
- クリーンアップタスク:
がデフォルトで真夜中に実行されます。cleanup_action_runs - 永久保持の設定: すべてを保持したい場合のみ、以下の設定をアップグレード前に行ってください:
[actions]RUN_RETENTION_DAYS = 0- 「0」は
、RUN_RETENTION_DAYS
、LOG_RETENTION_DAYS
で「永久に保持」の意味です。ARTIFACT_RETENTION_DAYS
- 「0」は
4. Git バージョンの最小要件
- バージョン制限: Gitea は Git バージョン 2.25.0 より古いバージョンで起動を拒否します。
- 自身でインストールする場合は、
を確認してください。git --version
- 自身でインストールする場合は、
主要な新機能と高機能点 (Highlights)
🛡️ 管理・監査機能の強化
- イムポルソンエイション(管理者によるユーザー操作):
- 管理者はパスワードを要求せずに特定のユーザー視点での動作を確認できます。
- セッションには管理者アカウントへのリンクが含まれ、両方のアカウントが監査ログに記録されます。
- 監査ロギングの導入:
- 管理設定やセキュリティイベント(アクター、アクション、起源)を JSONL 形式で記録・表示可能。
- デフォルト無効のため、以下の設定で有効化が必要です:
[audit]RECORD_OUTPUT = database - デフォルト保持期間は 30 日。
で永久保存できます。[audit] RETENTION_DAYS = 0
- Redis セクションの統合: キャッシュ、セッション、キューなどを一元管理するための
セクションが導入されました。[redis][redis]CONN_STR = redis://127.0.0.1:6379/0
🤖 ボットアカウントとデプロイメントトークン
- ボットアカウント:
- 自動化用として用意されており、対話型サインインや通知を受け取らない設定です。
- 管理者から管理 UI、API、CLI を経由して新規作成・変換が可能。
- デプロイメントトークン:
- SSH デプロイメントキーの HTTPS 版であり、特定のリポジトリにスコープされたパスワードとして機能します(読み取り/書き込み権限設定可能)。
🔄 コラボレーション・UI の改善
- 通知と WebSocket の採用:
- サーバー送信イベント(SSE)から WebSocket に移行。リバースプロキシがアップグレードヘッダーを転送する必要があります。
- ウォッチ(Watch)機能の UI 変更: メニューへの統合で、参加状況やカスタマイズ(課題/PR/リリース通知など)が可能に。
- リポジトリ切り替え: リポジトリ名の横にあるドロップダウンから、同じ所有者のリポジトリを検索して切り替え可能。
- 差分ファイルのフィルター: ツリー検索ボックスとファイル拡張子フィルターが追加され、共有可能なビューとして機能します。
🚀 Actions の新機能
- キュー表示の刷新: 実行中ジョブを優先し、待機中のジョブはランナー順序で表示。
- アーティファクトプレビュー: テキスト、画像、PDF、HTML プレビュー(最大 10 MiB デフォルト)が可能に。
で制限解除できます。[actions] ARTIFACT_PREVIEW_MAX_SIZE = -1
- 動的マトリクス評価:
プロパティによる依存関係解決や、再利用可能なワークフローコールのサポート。needs - API 機能拡張: ワークフローランの強制キャンセルやログ取得に対応。
📦 API とパッケージ管理
- プロジェクトボード: REST エンドポイントでリポジトリ/組織/ユーザーレベルのボードを管理可能。
- npm リスト強化:
、バージョンメタデータの表示、単一バージョン API 対応。npm deprecate - Helm チャート: provenance ファイル付きのアップロードが可能。
バグ修正とパフォーマンス向上 (Fixes & Perf)
🔒 セキュリティ関連の修正
- Git パッシュ時の無効および重複オブジェクトを拒否。
- SSH 公開鍵の指紋識別強化。
- Actions 承認ゲート裏のキャンセル済み PR ランの削除防止。
- 依存パッケージ(Go, Mermaid, gRPC など)のセキュリティアップデート。
- チームアクセス権限のリポジトリスコープ化。
🐞 一般的なバグ修正
- PR マージ問題、外部レンダリングコマンドのサニタイズ強化。
- LFS の孤立データ削除後のサイズ再計算。
- LDAP 認証失敗時のメッセージ明確化。
- 複数の UI 改善(ブランチ/タグドロップダウン、トースト通知など)。
⚡ パフォーマンス向上
- キャッシュ活用によるインライン差分ハイライトの高速化。
- Vite モジュールプリロードの有効化。
- Git ネットワーク操作のエグレスルートの最適化。
技術的な改善とリファクタリング (Refactors)
🛠️ アーキテクチャと依存関係
- jQuery are-you-sure をファーストパーティコードに置換。
- golang.org/x/crypto SSH の更新と
の廃止。gliderlabs/ssh - 多くのパッケージで Git リポジトリパス詳細を非公開化(セキュリティ)。
- Vue コンポーネントの
移行。<script setup>
🧹 コード品質
- モデルマイグレーションパッケージと
パッケージの分離準備。models - API トークンスコープチェックの実装。
- Actions lib の更新と self: サポート強化。
- Go vet エラーやコンポジットリテラル関連の修正。
📚 ドキュメントと設定
から未使用のapp.example.ini
を削除。COOKIE_USERNAME- Cron タスクの
に関するドキュメント化。NOTICE_ON_SUCCESS - API レスポンス(X-Total-Count など)のドキュメント補完。
貢献者への感謝
本リリースの実現に尽力してくださったすべての貢献者に感謝いたします!
- @80avin, @afishcalledwander, @agoudbg, @anygotthat, @Asthenia0412
- @atiqur-rahman-pro, @bircni, @breken-ai, @CaeruleusAqua, @davidpavlovschi
- @drrakonov, @eliroca, @EtherK3N, @facorazza, @gomitrah, @grafail
- @GrigorTonikyan, @HardMax71, @Harsh-128, @Huang-404-Q, @joestump
- @karthikbhandary2, @loveulvu, @lunny, @majorissuerep, @McMichalK
- @mohammad-rj, @MyleAtaraxia, @n0liu, @Naxdy, @Nitish-1303, @oxsean
- @paarth-k2002, @pevadev, @philip-x-rutkowski-intel-com, @r3wretrhy
- @rawsun007, @rossigee, @rremer, @s3onghyun, @schonwetter, @SergioBenitez
- @silverwind, @somaz94, @SudhanshuMatrix, @TastyHeadphones, @TheFox0x7
- @ToastyTheBot, @viralpraxis, @vitaliytv, @waterWang, @willemkokke
- @wxiaoguang, @YumeMichi, @Zettat123, @ZPascal
本プロジェクトへの資金提供 Open Collective において、本プロジェクトの資金面を支えてくれているすべてのサポーターに感謝申し上げます。