REST APIの非推奨
以下の非推奨事項を定期的に確認し、推奨される変更を行う必要があります。これらの非推奨事項は、多くの場合、API機能の改善を示すものであり、機能のために新しいフィールドまたはエンドポイントを使用することを推奨しています。
一部の非推奨事項ではv5 REST APIに言及していますが、v5 REST APIの開発は現在行われていません。GitLabは、REST API v4内でこれらの変更を行いません。また、REST APIにセマンティックバージョニングを採用しています。
geo_nodes APIエンドポイント
破壊的な変更。関連するイシュー。
The geo_nodes APIエンドポイントは非推奨となり、geo_sitesに置き換えられました。これは、Geoデプロイの参照方法に関するグローバルな変更の一部です。ノードはアプリケーション全体でサイトに名前が変更されます。両方のエンドポイントの機能は同じままです。
merged_by APIフィールド
破壊的な変更。関連するイシュー。
マージリクエストAPIのmerged_byフィールドは非推奨となり、merge_userフィールドが代わりに推奨されます。これは、単純なマージ以外の操作(自動マージに設定、マージトレインに追加など)を実行した際に、誰がマージリクエストをマージしたかをより正確に識別します。
APIユーザーは、代わりに新しいmerge_userフィールドを使用することを推奨されます。merged_byフィールドは、GitLab REST APIのv5で削除されます。
merge_status APIフィールド
破壊的な変更。関連するイシュー。
マージリクエストAPIのmerge_statusフィールドは非推奨となり、detailed_merge_statusフィールドが代わりに推奨されます。これは、マージリクエストがとりうるすべての潜在的なステータスをより正確に識別します。APIユーザーは、代わりに新しいdetailed_merge_statusフィールドを使用することを推奨されます。merge_statusフィールドは、GitLab REST APIのv5で削除されます。
ユーザーAPIにおけるprivate_profile属性のNull値
破壊的な変更。関連するイシュー。
APIを介してユーザーを作成および更新する際、nullはprivate_profile属性の有効な値であり、内部的にデフォルト値に変換されていました。GitLab REST APIのv5では、nullはこのパラメータの有効な値ではなくなり、使用された場合は400の応答が返されます。この変更後、有効な値はtrueとfalseのみになります。
単一のマージリクエストの変更APIエンドポイント
破壊的な変更。関連するイシュー。
単一のマージリクエストから変更を取得するためのエンドポイントは非推奨となり、代わりにマージリクエスト差分の一覧のエンドポイントが推奨されます。APIユーザーは、代わりに新しい差分エンドポイントに切り替えることを推奨されます。
changes from a single merge requestエンドポイントは、GitLab REST APIのv5で削除されます。
管理ライセンスAPIエンドポイント
破壊的な変更。関連するイシュー。
特定のプロジェクトのすべての管理ライセンスを取得するためのエンドポイントは非推奨となり、ライセンス承認ポリシー機能が代わりに推奨されます。
検出されたライセンスに基づいて承認を引き続き適用したい場合は、代わりに新しいライセンス承認ポリシーを作成することをおすすめします。
managed licensesエンドポイントは、GitLab REST APIのv5で削除されます。
マージリクエスト承認APIにおける承認者およびApprover Groupフィールド
破壊的な変更。関連するイシュー。
プロジェクトの承認の設定を取得するエンドポイントは、approversとapproval_groupsに対して空の配列を返します。これらのフィールドは非推奨となり、マージリクエストのすべての承認ルールを一覧表示するエンドポイントが代わりに推奨されます。APIユーザーは、代わりにこのエンドポイントに切り替えることを推奨されます。
これらのフィールドは、GitLab REST APIのv5でget configurationエンドポイントから削除されます。
Runnerにおけるactiveの使用がpausedに置き換えられます
破壊的な変更。関連するイシュー。
GitLab Runner GraphQL APIエンドポイントにおけるactive識別子は、GitLab 16.0でpausedに名前が変更されます。
- REST APIのv4では、
activeの代わりにpausedプロパティを使用できます。 - REST APIのv5では、この変更は
activeプロパティを受け取るか返すエンドポイント(例えば以下)に影響します:GET /runnersGET /runners/allGET /runners/:id/PUT /runners/:idPUT --form "active=false" /runners/:runner_idGET /projects/:id/runners/POST /projects/:id/runnersGET /groups/:id/runners
GitLab Runnerの16.0リリースでは、Runnerを登録する際にpausedプロパティの使用を開始します。
Runnerステータスはpausedを返しません
破壊的な変更。関連するイシュー。
将来のREST API v5では、GitLab Runnerのエンドポイントはpausedまたはactiveを返さなくなります。
Runnerのステータスは、online、offline、not_connectedなど、Runnerの接続ステータスのみに関連します。ステータスpausedまたはactiveは表示されなくなります。
Runnerがpausedかどうかを確認する場合、APIユーザーは、代わりにブール属性pausedがtrueであるかどうかを確認することをおすすめします。Runnerがactiveかどうかを確認する場合は、pausedがfalseであるかどうかを確認します。
Runnerはip_addressを返しません
破壊的な変更。関連するイシュー。
GitLab 17.0では、Runner APIはRunnerに対してip_addressの代わりに""を返します。REST APIのv5では、このフィールドは削除されます。
default_branch_protection APIフィールド
破壊的な変更。関連するイシュー。
default_branch_protectionフィールドは、GitLab 17.0で以下のAPIに対して非推奨です:
代わりにdefault_branch_protection_defaultsフィールドを使用してください。これにより、デフォルトのブランチ保護に対して、よりきめ細かな制御が可能になります。
default_branch_protectionフィールドは、GitLab REST APIのv5で削除されます。
require_password_to_approve APIフィールド
require_password_to_approveは、GitLab 16.9で非推奨になりました。代わりにrequire_reauthentication_to_approveフィールドを使用します。両方のフィールドに値を指定した場合、require_reauthentication_to_approveフィールドが優先されます。
require_password_to_approveフィールドは、GitLab REST APIのv5で削除されます。
プロジェクトAPIエンドポイントを使用したプルミラーリング設定
破壊的な変更。関連するイシュー。
GitLab 17.6では、プロジェクトAPIを使用したプルミラーリング設定は非推奨です。これは、新しい設定とエンドポイントであるprojects/:id/mirror/pullに置き換えられます。
プロジェクトAPIを使用した以前の設定は、GitLab REST APIのv5で削除されます。
プロジェクトAPIエンドポイントのrestrict_user_defined_variablesパラメータ
GitLab 17.7では、プロジェクトAPIのrestrict_user_defined_variablesパラメータは非推奨となり、ci_pipeline_variables_minimum_override_roleのみを使用することが推奨されます。
restrict_user_defined_variables: falseと同じ動作に一致させるには、ci_pipeline_variables_minimum_override_roleをdeveloperとして設定します。
プロジェクトインポートAPIエンドポイントのnamespaceパラメータ
破壊的な変更。関連するイシュー。
GitLab 18.7では、プロジェクトインポートおよびエクスポートAPIのnamespaceパラメータは非推奨となり、namespace_idおよびnamespace_pathパラメータが代わりに推奨されます。namespaceパラメータはIDまたはパスの両方を受け入れていたため、ネームスペースパスが数字のみで構成されている場合に曖昧さが発生していました。
代わりに、以下を使用してください:
namespace_idは、数値のIDでネームスペースを指定する場合。namespace_pathは、パスでネームスペースを指定する場合。
namespaceパラメータは、GitLab REST APIのv5で削除されます。