[meta] API v4
This issue is meant to list all endpoints which are:
- deprecated now and should be removed
- duplicated and one will be removed
- Behavioural change should happen
- Exposed info will be hidden
- Exposed field will be removed
- etc etc
Please use the format like we do in regression issues.
API version change
In 8.17:
- Add a v4 API version, which has all of the existing v3 endpoints and the changes in this issue that are ready before then. v3 is still the preferred API version, and v4 is beta.
- Keep the v3 API around. If there was no change in v4, it can just use the same code as v4. If there was a breaking change, we need to have the old version available under v3 too, with the same behaviour as 8.17.
- Add a page in the API docs listing all of these changes in one place, clearly saying that v4 is not done yet, and currently in beta.
In 9.0:
- Ship all of v4, making it final and no longer beta
- Deprecate v3
- Tell the world that "v3 will continue to work until at least 9.2, but we will remove it at some point with no prior warning but a notice in the blogpost, and you should start upgrading your integrations now"
In 9.4 or later if there are good technical reasons:
- Remove v3 endpoints and code.
- Remove the API doc listing the changes.
Open issues
These are the open api && breaking change issues.
Tough nuts
These are quite a lot of work:
Quick wins
These should be easy/quick to tackle:
In between
These aren't really hard, but will take a bit more time:
Optional
These aren't actually breaking anything:
- #28017 (closed) - API: Separate CE params to avoid wrong conflict resolutions
- #20728 (moved) - Improve consistency in the way we retrieve project & group in API endpoints
Ongoing
These are already been working on:
Done
-
#20207 (closed) - Commits API Pagination Broken (assigned to @oswaldo)
- #1381 (closed) - Add Link headers for commits (assigned to @oswaldo)
- #16834 (closed) - Update API endpoints for raw files (assigned to @felipe_artur)
- #26843 (closed) - API: Make jobs available at top-level (assigned to @to1ne)
- Pagination: (assigned to @razer6)
- #23302 (closed) - API: Pagination for SystemHooks endpoint
- #20248 (closed) - No pagination on Labels endpoints
- #20236 (closed) - Tags REST API pagination does not work as expected
- #14791 (closed) - per_page and page doesn't work in Branches api
- #8099 (closed) - Paginate all API endpoints that return an array?
- #1746 (closed) - Problem in Group Members RestAPI pagination
- #28286 (closed) Remove duplicated endpoint for deleting a deploy key (assigned to @razer6)
- #14492 (closed) - API endpoint /projects/fork/:id should move to /projects/:id/fork (assigned to @oswaldo)
- #23061 (closed) - API: consolidate project lists (assigned to @to1ne)
- #14596 (closed) - [API] PUT should be POST when (un)blocking a user (assigned to @razer6)
- #28328 (closed) - Make the starring API more RESTful (assigned to @razer6)
- #26315 (closed) - Use the IssueFinder to filter by labels in the API (assigned to @oswaldo)
- #28467 (closed) - Deleting a Todo is not very RESTfu l(assigned to @razer6)
- #28327 (closed) - Make the subscription API more RESTful (assigned to @razer6)
-
#22132 (closed) - Create branch param should be
branch
(assigned to @oswaldo) -
#28458 (closed) - Present GitLab version for each V3 to V4 API change on
v3_to_v4.md
(assigned to @oswaldo) - #28441 (closed) - Remove deprecated upvotes and downvotes field from notes API (assigned to @razer6)
- #3874 (closed) - [API | BUG] Wrong body on DELETE responses (assigned to @oswaldo)
- https://gitlab.com/gitlab-org/gitlab-ee/issues/1791 - Remove project git hooks API endpoints (assigned to @razer6)
- #27937 (closed) - API: Remove /groups/owned endpoint (assigned to @razer6)
- #28702 (closed) - Return 400 instead of 422 for access level error in the members API (assigned to @razer6)
-
#20429 (closed) - Make all API
DELETE
endpoints return204
and respect theIf-Unmodified-Since
header in GitLab 9.0 (assigned to @razer6) - #6073 (closed) - API transforms project name to lowercase while form allows uppercases (assigned to @jarka)
- gitlab-ee#1790 - Remove
repository_storage
from settings API (assigned to @oswaldo) - #24707 (closed) - Rename Merge When Build/Pipeline Succeeds in database and API (assigned to @jameslopez)
- #28405 (closed) - Cannot use pagination headers at API (assigned to @razer6)
-
#28257 (closed) - API: Add
:iids
filter to V4/projects/:id/issues
(assigned to @jarka) - #27532 (closed) - API: iid filter changes for projects/:id/milestones (assigned to @jarka)
-
#27501 (closed) - API: Use
visibility
as query parameter everywhere (assigned to @to1ne) -
#26847 (closed) -
api/v3/projects/:id/pipelines
should use PipelinesBasic (assigned to @to1ne) - #28865 (closed) - Allow filtering by authorized projects in the v4 API (assigned to @oswaldo)
- #22374 (closed) - API /projects/:id/merge_requests is triggering parsing of participants which may not be needed (assigned to @adamniedzielski)
- #28598 (closed) - Environment should use ProjectBasic entity (assigned to @oswaldo)
-
#28515 (closed) - GitLab API change name from
builds
to eitherjobs
orpipelines
(assigned to @zj) - #28251 (closed) - API: Use Issues and MRs IID instead ID for project scope API query (assigned to @timothyandrew)
-
#27585 (closed) - Move
/ci/api/v1
to/api/v4/ci
(assigned to @tmaczukin)-
#28513 (closed) - Update GitLab CI API
Builds
resource to beJobs
(assigned to @tmaczukin)
-
#28513 (closed) - Update GitLab CI API