GitLab 16.5リリースノート
2023年10月22日、GitLab 16.5が以下の機能とともにリリースされました。
さらに、今月の注目すべきコントリビューターを含む、すべてのコントリビューターに感謝します。
今月の注目すべきコントリビューター: Thorben Westerhuys
Thorbenは、24時間形式で時刻を表示するユーザー設定を追加するためのマージリクエストにおける継続的な作業が評価されました。この機能は16.6で計画されており、ユーザーは12時間形式と24時間形式のどちらかを選択できるようになります。
GitLabのプロダクトマネージャーであるMagdalena FrankiewiczはThorbenを指名し、この機能のイシューが7年間で190件以上の同意するを獲得していると指摘しました。GitLabのスタッフバックエンドエンジニアであるPeter Leitzenも、Thorbenによる時刻形式に関連するバックエンドコードをリファクタリングする作業に注目しました。
Thorbenは、高解像度のGeoデータを統合する3DウェブプラットフォームであるLUUCYのCTOです。彼は、都市計画関連のトピックを扱う地理空間データコンサルタント会社cividiの元CTOです。
ThorbenとGitLabコミュニティの皆様、貢献ありがとうございます🙌
主要な機能
コンプライアンス基準遵守レポート
- プラン: Ultimate
- 提供形態: GitLab.com
- リンク: ドキュメント
コンプライアンスセンターに、レポートの新しいタブが追加されました。このレポートには、最初にGitLabのベストプラクティス標準が含まれており、グループ内のプロジェクトが標準に含まれるチェックの要件を満たしていない場合に表示されます。最初に表示される3つのチェックは次のとおりです:
- 承認ルールは、MRに2人以上の承認者を要求するために存在します。
- 承認ルールは、MRの作成者がマージすることを禁止するために存在します。
- 承認ルールは、MRへのコミッターがマージすることを禁止するために存在します。
このレポートには、プロジェクトごとの各チェックのステータスに関する詳細が含まれています。また、チェックが最後に実行された日時、チェックが適用される標準、およびレポートに表示される可能性のある失敗や問題を修正する方法も表示されます。今後のイテレーションでは、より多くのチェックが追加され、より多くの規制と標準を含めるようにスコープが展開する予定です。さらに、レポートをグループ化およびフィルター処理する改善も追加するため、組織にとって最も重要なプロジェクトまたは標準に集中できます。
ターゲットブランチを設定するマージリクエストのルールを作成する
- プラン: Premium、Ultimate
- 提供形態: GitLab.com
- リンク: ドキュメント
一部のプロジェクトでは、developやqaなど、複数の長期ブランチを開発に使用します。これらのプロジェクトでは、プロジェクトの本番環境状態を表すため、mainをデフォルトブランチとして維持したい場合があります。ただし、開発作業ではマージリクエストがdevelopまたはqaをターゲットブランチにすることを想定しています。ターゲットブランチルールは、マージリクエストがプロジェクトと開発ワークフローに適したブランチをターゲットブランチに設定することを保証するのに役立ちます。
マージリクエストを作成すると、ルールはブランチの名前をチェックします。ブランチ名がルールに一致する場合、マージリクエストはルールで指定したブランチをターゲットブランチとして事前に選択します。ブランチ名が一致しない場合、マージリクエストはプロジェクトのデフォルトブランチをターゲットとします。
イシュースレッドを解決する
多数のスレッドを持つ長期間のイシューは、読み取りと追跡するのが難しい場合があります。ディスカッションのトピックが完了した場合に、イシューのスレッドを解決することができるようになりました。
半線形履歴を持つ早送りマージトレイン
16.4では早送りマージトレインをリリースし、その継続として、すべてのマージメソッドをサポートしたいと考えています。これで、半線形コミット履歴が維持されるようにしたい場合は、半線形早送りマージトレインを使用できます。
規模とデプロイ
高度な検索でエピックを検索する
GitLabにおけるエピックの人気は高まり続けています。以前は、エピックを見つけることは、他のコンテンツタイプよりも少し困難でした。このリリースにより、高度な検索を使用すると、エピックの検索と結果の表示が可能になりました。
Omnibusの改善
- プラン: Free、Premium、Ultimate
- リンク: ドキュメント
- GitLab 16.5の
.debLinuxパッケージは、gzipからxz圧縮に切り替わり、パッケージサイズが縮小されました。この変更により、インストール中の解凍時間が遅くなる可能性があります。 - GitLab 16.5にはMattermost 9.0が含まれています。このバージョンでは、非推奨のインサイト機能が削除され、Mattermostボードとさまざまなプラグインがコミュニティサポートに移行しました。
- GitLab 16.5では、GitLab SELinuxポリシーモジュールを
/opt/gitlab/embedded/selinux/rhel/7/から/opt/gitlab/embedded/selinuxに移動することで、このモジュールがRHEL 7専用ではないことを反映しています。
Jira開発パネルにおけるマージリクエストのレビュアー情報
GitLab for Jira Cloudアプリを使用すると、GitLabとJira Cloudを接続して開発情報をリアルタイムで同期できます。この情報は、Jira開発パネルで表示できます。以前は、マージリクエストにレビュアーが割り当てられた場合、レビュアー情報はJira開発パネルに表示されませんでした。このリリースにより、GitLab for Jira Cloudアプリを使用すると、レビュアー名、メール、承認ステータスがJira開発パネルに表示されます。
コンテキストの変更がより簡単に
- プラン: Free、Premium、Ultimate
- リンク: ドキュメント
左サイドバーでは、検索ボタンを見つけたり、プロジェクトや設定などの間で切り替えたりするのが難しいというフィードバックをいただいていました。今回のリリースでは、ボタンをより目立つようにしました。これにより、発見しやすさが向上し、ワークフローを単一のタッチポイントに合理化できます。
検索または移動先ボタンを選択するか、/またはsと入力してキーボードショートカットで試すことができます。
リリースが削除されたときにWebhookがトリガーされるようになりました
リリースイベントを使用して、リリースオブジェクトを監視し、変更に対応できます。以前は、リリースが作成または更新された場合にのみ、Webhookがトリガーされていました。厳しく規制された業界では、リリースの削除は監視および追跡されなければならない重要なイベントです。GitLab 16.5では、リリースが削除された場合にもWebhookがトリガーされるようになりました。
再設計されたサービスデスクイシューリスト
- プラン: Free、Premium、Ultimate
- リンク: ドキュメント
私たちはサービスデスクイシューリストを、より速く、よりスムーズに読み込むように再設計しました。これにより、通常のイシューリストにより近づきました。利用可能な機能:
- イシューリストと同じソートおよび並べ替えオプション。
- OR演算子やイシューIDによるフィルターを含む、同じフィルター。
Geoがすべてのコンポーネントに一括再同期および再検証ボタンを追加
Geo管理UIのボタンを介して、Geoによって管理されているあらゆるデータコンポーネントの一括再同期または再検証をトリガーすることができます。ボタンを選択すると、操作がそれぞれのコンポーネントに関連するすべてのデータアイテムに適用されます。以前は、これはRailsコンソールにログインすることによってのみ可能でした。これらのアクションはよりアクセスしやすくなり、トラブルシューティングや、ストレージ場所の移動など、特定のコンポーネントの完全な再同期または再検証を必要とする大規模な変更の適用体験が向上しました。
クラウド上のリポジトリデータをバックアップおよび復元する
GitLabのバックアップおよび復元する機能は、リポジトリデータをオブジェクトストレージに保存することをサポートするようになりました。この更新により、大きなtarballを作成するために使用される中間ステップが不要になり、パフォーマンスが向上します。tarballは手動で適切な場所に保存する必要がありました。
この更新により、リポジトリバックアップは、選択したオブジェクトストレージの場所(Amazon S3、Google Cloud Storage、Azure Cloud Data Storage、MinIOなど)に保存されます。この変更により、Gitalyインスタンスからデータを手動で移動する必要がなくなります。
統合されたDevOpsとセキュリティ
デプロイ承認と承認ルールの変更を監査イベントに統合
規制された業界におけるデプロイは、コンプライアンスの中心的なトピックです。以前のリリースでは、デプロイ承認は監査イベントの一部ではなかったため、承認ルールがいつどのように変更されたかを判断することが困難でした。
GitLabは、デプロイ承認および承認ルールの変更に関する新しい監査イベントセットを提供するようになりました。これらのイベントは、デプロイ承認ルールが変更された場合、または保護環境の承認ルールが変更された場合に発生します。
APIを使用してユーザーのSAMLおよびSCIMアイデンティティを削除する
以前は、グループオーナーはSAMLまたはSCIMのアイデンティティをプログラムで削除する方法がありませんでした。これにより、ユーザーのプロビジョニングとサインインプロセスに関するイシューのトラブルシューティングを行うことが困難でした。現在、グループオーナーは新しいエンドポイントを使用してこれらのアイデンティティを削除できます。
jgao1025さんのコントリビュートに感謝します!
コンプライアンス違反レポートをエクスポートする
- プラン: Ultimate
- 提供形態: GitLab.com
- リンク: ドキュメント
コンプライアンス違反レポートには多くの情報が含まれる可能性があります。以前は、情報をGitLab UIでのみ表示できました。これは個々のイシューには問題ありませんでしたが、例えば次のような場合は複雑になる可能性があります:
- リリースの現在のコンプライアンスステータスのアーティファクトを作成する。例えば、監査担当者に違反が0件であることを証明する。
- データを別のデータセットと集約するか、別のツールで処理します。
GitLab 16.5では、コンプライアンス違反レポートに含まれるアイテムのリストをCSV形式でエクスポートすることができるようになりました。
新しいカスタマイズ可能なパーミッション
グループメンバーおよびプロジェクトアクセストークンを管理する権限が、カスタムロールフレームワークに追加されました。これらの権限を任意のベースロールに追加して、カスタムロールを作成できます。特定のタスクを達成するために必要な権限のみを持つカスタムロールを作成することで、メンテナーやオーナーのような高度な権限を持つロールをユーザーに不必要に割り当てる必要がなくなります。
インスタンスレベルの監査イベントストリーミングからGoogle Cloud Loggingへ
以前は、Google Cloud Loggingに対してトップレベルグループの監査イベントストリーミングのみを設定できました。
GitLab 16.5では、Google Cloud Loggingのサポートをインスタンスレベルのストリーミング先に拡張しました。
設定可能なロックされたユーザーポリシー
管理者は、サインイン試行の回数とユーザーのロック期間を選択することで、インスタンスのロックされたユーザーポリシーを設定できるようになりました。例えば、5回のサインイン試行の失敗で、ユーザーは60分間ロックされます。これにより、管理者は、セキュリティおよびコンプライアンスの要件を満たすロックされたユーザーポリシーを定義できます。以前は、サインイン試行回数とロックされたユーザーの期間は設定できませんでした。
監査イベントストリーミングのヘッダーをアクティブ化および非アクティブ化
以前は、一時的に非アクティブ化したい場合でも、監査イベントストリーミングストリーミング先に追加されたHTTPヘッダーを削除する必要がありました。
GitLab 16.5では、GitLab UIのアクティブチェックボックスを使用して、各ヘッダーを個別にオン/オフを切替できます。これは次の目的で使用できます:
- 異なるヘッダーをテストする。
- 一時的にヘッダーを非アクティブ化する。
- 同じヘッダーの2つのバージョンを切り替える。
現在認証済みユーザー用のPATを作成するAPI
現在認証済みユーザー用の新しいパーソナルアクセストークンを作成するために、user/personal_access_tokensの新しいREST APIエンドポイントを使用できるようになりました。このトークンのスコープはセキュリティ上の理由からk8s_proxyに制限されているため、Kubernetes用のエージェントを使用してKubernetesAPIコールのみを実行するために使用できます。以前は、インスタンス管理者のみがAPIを介してパーソナルアクセストークンを作成することができました。
脆弱性レポートのステータスと重大度によるグループ化
ユーザーとして、脆弱性をより効率的にトリアージできるように脆弱性をグループ化する機能が必要です。このリリースにより、重大度またはステータスでグループ化できるようになりました。これにより、グループまたはプロジェクトに確認済みの脆弱性がいくつあるか、またはまだトリアージする必要がある脆弱性がいくつあるかといった質問に、より適切に答えることができます。
個別のWikiページをPDFとしてエクスポートする
GitLab 16.5から、個別のWikiページをPDFファイルとしてエクスポートすることができます。これで、チームの知識共有がさらにシームレスになりました。WikiをPDFにエクスポートすることは、さまざまなユースケースに利用できます。例えば、Wikiに保存されている技術ドキュメントのコピーを提供したり、プロジェクトのステータスとWiki内の情報を共有したりできます。一部の組織ではこれらのツールを使用することが禁止されており、別の課題となっていたMarkdownファイルをPDFに変換するための代替ツールを活用する必要はなくなりました。JiHuによるこの機能の貢献に感謝します!
タスク、目標、または主な成果の子アイテムをクイックアクションで追加する
/add_childクイックアクションを使用して、タスク、目標、または主な成果の子アイテムを追加できるようになりました。
タスク、目標、および主な成果におけるリンクされたアイテムウィジェット
このリリースにより、タスクとOKRを「関連」、「ブロック元」、「ブロック中」としてリンクし、依存する作業アイテムと関連する作業アイテム間の追跡可能性を提供できるようになりました。
エピックとイシューを作業アイテムフレームワークに移行すると、これらすべてのタイプ間でリンクできるようになります。
タスク、目標、または主な成果の親をクイックアクションで設定する
/set_parentクイックアクションを使用して、タスク、目標、または主な成果の親アイテムを設定することができるようになりました。
DASTアナライザーの更新
16.5リリースマイルストーン中に、ブラウザベースのDASTに対して次のアクティブなチェックをデフォルトで有効にしました:
- チェック78.1はZAPチェック90020を置き換え、コマンドインジェクションを特定します。コマンドインジェクションは、ターゲットアプリケーションサーバー上で任意のOSコマンドを実行することによって悪用される可能性があります。これは、システム全体を侵害する可能性のある重大な脆弱性です。
- チェック611.1はZAPチェック90023を置き換え、外部XMLエンティティインジェクション (XXE)を特定します。これは、アプリケーションのXMLパーサーに外部リソースを含ませることによって悪用される可能性があります。
- チェック94.4はZAPチェック90019を置き換え、「Server-sideコードインジェクション (NodeJS)」を特定します。これは、サーバーで実行される任意のJavaScriptコードを挿入することによって悪用される可能性があります。
- チェック113.1はZAPチェック40003を置き換え、「HTTPヘッダーにおけるCRLFシーケンスの不適切な無効化(「HTTP応答スプリット」)」を特定します。これは、キャリッジリターン/ラインフィード(CRLF)文字を挿入して、任意のデータをHTTP応答に挿入することによって悪用される可能性があります。
ジョブAPIエンドポイントのレート制限を設定可能にする
最近、project/:id/jobs APIエンドポイントのレート制限が追加され、ユーザーあたり毎分600リクエストがデフォルトになりました。フォローアップのイテレーションとして、この制限を設定可能にし、インスタンス管理者が要件に最適な制限を設定できるようにしています。
GitLab Runner 16.5
- プラン: Free、Premium、Ultimate
- リンク: ドキュメント
本日、GitLab Runner 16.5もリリースします!GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、軽量で拡張性の高いエージェントです。GitLab Runnerは、GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。
新機能
バグ修正
- Runnerマネージャーのk8sポッドの終了により、孤立したワーカーポッドが発生する
- GitLab Runner 15.8.0は特殊文字を含むブランチをcheckoutできない
- GitLab Runnerがarm64コンピューティングホストでarm64ヘルパーイメージではなくx86-64ヘルパーイメージをプルする
GitLab Runnerのすべての変更リストは変更履歴にあります。