Add reviews_for_me scope to merge requests API
What does this MR do and why?
Add reviews_for_me scope to merge requests API
Adds a new 'reviews_for_me' scope to the merge requests API that returns all merge requests where the authenticated user is assigned as a reviewer.
References
Resolves #301016 (closed)
How to set up and validate locally
Query:
MergeRequest Load (0.9ms) SELECT "merge_requests"."id", "merge_requests"."target_branch", "merge_requests"."source_branch", "merge_requests"."source_project_id", "merge_requests"."author_id", "merge_requests"."assignee_id", "merge_requests"."title", "merge_requests"."created_at", "merge_requests"."updated_at", "merge_requests"."milestone_id", "merge_requests"."merge_status", "merge_requests"."target_project_id", "merge_requests"."iid", "merge_requests"."description", "merge_requests"."updated_by_id", "merge_requests"."merge_error", "merge_requests"."merge_params", "merge_requests"."merge_when_pipeline_succeeds", "merge_requests"."merge_user_id", "merge_requests"."merge_commit_sha", "merge_requests"."approvals_before_merge", "merge_requests"."rebase_commit_sha", "merge_requests"."in_progress_merge_commit_sha", "merge_requests"."lock_version", "merge_requests"."title_html", "merge_requests"."description_html", "merge_requests"."time_estimate", "merge_requests"."squash", "merge_requests"."cached_markdown_version", "merge_requests"."last_edited_at", "merge_requests"."last_edited_by_id", "merge_requests"."merge_jid", "merge_requests"."discussion_locked", "merge_requests"."latest_merge_request_diff_id", "merge_requests"."allow_maintainer_to_push", "merge_requests"."state_id", "merge_requests"."rebase_jid", "merge_requests"."squash_commit_sha", "merge_requests"."merge_ref_sha", "merge_requests"."draft", "merge_requests"."prepared_at", "merge_requests"."merged_commit_sha", "merge_requests"."override_requested_changes", "merge_requests"."head_pipeline_id", "merge_requests"."imported_from", "merge_requests"."retargeted"
FROM "merge_requests"
INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id"
LEFT JOIN project_features ON projects.id = project_features.project_id
WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20))
AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL)
AND EXISTS (SELECT true FROM "merge_request_reviewers" WHERE merge_request_id = merge_requests.id AND "merge_request_reviewers"."user_id" = 1)
ORDER BY "merge_requests"."created_at" DESC, "merge_requests"."id" DESC
LIMIT 20 OFFSET 0
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Edited by Kai Armstrong