Fix services API returning nonexistent services
What does this MR do?
The REST GET projects/:id/services/:slug
API previously returned
unsaved service objects.
For example https://gitlab.com/api/v4/projects/17595187/services/asana currently returns (note the "id": null
):
{
"id": null,
"title": "Asana",
"slug": "asana",
"created_at": null,
"updated_at": null,
"active": false,
"commit_events": true,
"push_events": true,
"issues_events": true,
"confidential_issues_events": true,
"merge_requests_events": true,
"tag_push_events": true,
"note_events": true,
"confidential_note_events": true,
"pipeline_events": true,
"wiki_page_events": true,
"job_events": true,
"comment_on_event_enabled": true,
"properties": {}
}
This MR changes that endpoint to return a 404 response when a project does not have the service.
- Issue: #330818 (closed)
Does this MR meet the acceptance criteria?
Conformity
-
I have included a changelog entry, or it's not needed. (Does this MR need a changelog?) - [-] I have added/updated documentation, or it's not needed. (Is documentation required?)
- [-] I have properly separated EE content from FOSS, or this MR is FOSS only. (Where should EE code go?)
- [-] I have added information for database reviewers in the MR description, or it's not needed. (Does this MR have database related changes?)
-
I have self-reviewed this MR per code review guidelines. -
This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. (Merge request performance guidelines) -
I have followed the style guides.
Availability and Testing
-
I have added/updated tests following the Testing Guide, or it's not needed. (Consider all test levels. See the Test Planning Process.) - [-] I have tested this MR in all supported browsers, or it's not needed.
- [-] I have informed the Infrastructure department of a default or new setting change per definition of done, or it's not needed.
Related to #330818 (closed)
Edited by Luke Duncalfe