API V3 から API V4

GitLab 9.0以降、API V4が優先的に使用されます。

API V3は2017年8月22日にリリースされたGitLab 9.5からサポートされなくなりました。 API v3はGitLab 11.0で削除されました。 V3のAPIドキュメントはまだ利用可能です。

以下はV3とV4の間の変更点です。

8.17

  • GET /projects/:search を削除 (use:GET /projects?search=x)!8877
  • iid フィルターがGET /projects/:id/issues から削除されました !8967
  • GET /projects/:id/merge_requests?iid[]=x&iid[]=y 配列フィルターの名前がiids !8793に変更されました。
  • GET /projects/merge_request/:id 以下のエンドポイントは削除されました (use:GET /projects/merge_requests/:id)!8793
  • プロジェクト・スニペットが非推奨フィールドを返さないexpires_at !8723
  • GET /projects/:id/keys 以下のエンドポイントは削除されました(GET /projects/:id/deploy_keysを使用)!8716

9.0

  • メンバが既に存在する場合、POST /projects/:id/members に対してステータス 409 が返されます!9093
  • DELETE /projects/:id/starPOST /projects/:id/unstar に移動!9328
  • 以下の非推奨のTemplatesエンドポイントを削除しました(これらはまだ/templates プレフィックスでアクセス可能です)!8853
    • /licenses
    • /licenses/:key
    • /gitignores
    • /gitlab_ci_ymls
    • /dockerfiles
    • /gitignores/:key
    • /gitlab_ci_ymls/:key
    • /dockerfiles/:key
  • POST /projects/fork/:idPOST /projects/:id/fork に移動!8940
  • DELETE /todosPOST /todos/mark_as_done に、DELETE /todos/:todo_idPOST /todos/:todo_id/mark_as_done に移動!9410
  • プロジェクトフィルターはGET /projects/fooではなく、GET /projects?foo=true として利用できるようになりました !8962
    • GET /projects/visible &GET /projects/allGET /projects に統合され、作成者の有無にかかわらず使用可能。
    • GET /projects/owned に移動しました。GET /projects?owned=true
    • GET /projects/starred に移動しました。GET /projects?starred=true
  • GET /projects ユーザがメンバーでない場合でも、現在のユーザが表示可能なすべてのプロジェクトを返します!9674
    • ユーザーが所属しているプロジェクトを取得するにはGET /projects?membership=true
  • 配列を返すすべてのエンドポイントについて、ページネーションヘッダを返します!8606
  • POST /environments/:environment_id/stop を追加し、環境!8808を停止。
  • DELETE /projects/:id/deploy_keys/:key_id/disableを削除。 代わりにDELETE /projects/:id/deploy_keys/:key_id を使用!9366
  • PUT /users/:id/(block|unblock)POST /users/:id/(block|unblock) に移動!9371
  • 購読APIをよりRESTfulに。リソースの購読にはPOST /projects/:id/:subscribable_type/:subscribable_id/subscribe 、購読解除にはPOST /projects/:id/:subscribable_type/:subscribable_id/unsubscribe
  • GET /projects/:id/issuesGET /issues のラベルフィルタが、すべてのラベルを含むイシューのみにマッチするようになりました(つまり、論理AND、ORではありません)!8849
  • 以下のエンドポイントにおいて、パラメータbranch_name の名前をbranch に変更!8936
    • POST /projects/:id/repository/branches
    • POST /projects/:id/repository/commits
    • POST/PUT/DELETE :id/repository/files
  • 以下のエンドポイントにおいて、merge_when_build_succeeds パラメータの名前をmerge_when_pipeline_succeeds に変更:!9335
    • PUT /projects/:id/merge_requests/:merge_request_id/merge
    • POST /projects/:id/merge_requests/:merge_request_id/cancel_merge_when_pipeline_succeeds
    • POST /projects
    • POST /projects/user/:user_id
    • PUT /projects/:id
  • DELETE /projects/:id/repository/branches/:branch のレスポンスでbranch_namebranch に変更!8936
  • プロジェクトの作成および編集アクションからpublic パラメータを削除!8736
  • issuesubscribed または subscribedマージ・subscribed リクエストのリストを返す応答からフィールドを subscribed削除します。subscribed 個々のissueまたはマージ・リクエストをフェッチして、 subscribed!9661のsubscribed 値を取得 subscribedします。
  • visibility を文字列パラメータとしてあらゆる場所で使用!9337
  • 非推奨フィールドupvotedownvote !9384を返さないノート。
  • メンバーの作成または更新時に発生するすべての検証エラーに対して、422 エラーの代わりに HTTP ステータスコード400 を返します
  • GET /groups/ownedを削除。 代わりにGET /groups?owned=true を使用!9505
  • V4 API (DELETE /projects/:id/repository/merged_branches およびDELETE /projects/:id) での非同期リムーブ時に、202 を JSON 本文と共に返します!9449
  • GET /projects/:id/milestones?iid[]=x&iid[]=y 配列フィルターの名前がiids !9096に変更されました。
  • パイプラインの基本情報をGET /projects/:id/pipelines で返します!8875
  • すべてのbuild の参照をjob !9463にリネーム。
  • ドロップGET /projects/:id/repository/commits/:sha/jobs !9463
  • ビルド・トリガーをパイプライン・トリガーAPIに改名!9713
    • POST /projects/:id/trigger/buildsPOST /projects/:id/trigger/pipeline
    • 新しいトリガーを作成する際に説明を要求POST /projects/:id/triggers
  • Environment エンドポイントで公開されるプロジェクトのペイロードを簡素化!9675
  • API はIDs ではなく、マージリクエストIIDs (Web UI の内部 ID) を使用します。これは、マージリクエスト、アワード絵文字、Todo、および時間追跡 API に影響します
  • IIDIDこれは、イシュー、アワード絵文字、Todo、およびタイムトラッキングAPIに影響します
  • GET /projects/:id/repository/commits の初期ページを0 から1 に変更 (他の API と同様)!9679
  • GET /projects/:id/repository/commits の正しいLink ヘッダーデータを返します!9679
  • リポジトリファイルのエンドポイントを更新!9637
    • GET /projects/:id/repository/files?file_path=:file_pathGET /projects/:id/repository/files/:file_path に移動 (:file_path は URL エンコードされるべき)
    • GET /projects/:id/repository/blobs/:sha によって識別される:shaコミットを :sha見つけ、そのコミット内のblobの生のコンテンツを返す:sha代わりに :sha、によって識別されるblobのJSON属性を返すようになりました。?filepath=:filepath
    • GET /projects/:id/repository/commits/:sha/blob?file_path=:file_pathGET /projects/:id/repository/blobs/:sha?file_path=:file_pathGET /projects/:id/repository/files/:file_path/raw?ref=:sha
    • GET /projects/:id/repository/tree パラメータref_name は、一貫性を保つため、ref に改名されました。
  • confirm POST /users のパラメータは廃止され、 のパラメータが使われるようになりました。skip_confirmation