summaryrefslogtreecommitdiff
path: root/lib/api/issues.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/api/issues.rb')
-rw-r--r--lib/api/issues.rb174
1 files changed, 87 insertions, 87 deletions
diff --git a/lib/api/issues.rb b/lib/api/issues.rb
index f43f4d961d6..a942c510c33 100644
--- a/lib/api/issues.rb
+++ b/lib/api/issues.rb
@@ -34,40 +34,40 @@ module API
# rubocop: enable CodeReuse/ActiveRecord
params :issues_params do
- optional :labels, type: String, desc: 'Comma-separated list of label names'
- optional :milestone, type: String, desc: 'Milestone title'
- optional :order_by, type: String, values: %w[created_at updated_at], default: 'created_at',
- desc: 'Return issues ordered by `created_at` or `updated_at` fields.'
- optional :sort, type: String, values: %w[asc desc], default: 'desc',
- desc: 'Return issues sorted in `asc` or `desc` order.'
- optional :milestone, type: String, desc: 'Return issues for a specific milestone'
- optional :iids, type: Array[Integer], desc: 'The IID array of issues'
- optional :search, type: String, desc: 'Search issues for text present in the title, description, or any combination of these'
- optional :in, type: String, desc: '`title`, `description`, or a string joining them with comma'
- optional :created_after, type: DateTime, desc: 'Return issues created after the specified time'
- optional :created_before, type: DateTime, desc: 'Return issues created before the specified time'
- optional :updated_after, type: DateTime, desc: 'Return issues updated after the specified time'
- optional :updated_before, type: DateTime, desc: 'Return issues updated before the specified time'
- optional :author_id, type: Integer, desc: 'Return issues which are authored by the user with the given ID'
+ optional :labels, type: String, desc: "Comma-separated list of label names"
+ optional :milestone, type: String, desc: "Milestone title"
+ optional :order_by, type: String, values: %w[created_at updated_at], default: "created_at",
+ desc: "Return issues ordered by `created_at` or `updated_at` fields."
+ optional :sort, type: String, values: %w[asc desc], default: "desc",
+ desc: "Return issues sorted in `asc` or `desc` order."
+ optional :milestone, type: String, desc: "Return issues for a specific milestone"
+ optional :iids, type: Array[Integer], desc: "The IID array of issues"
+ optional :search, type: String, desc: "Search issues for text present in the title, description, or any combination of these"
+ optional :in, type: String, desc: "`title`, `description`, or a string joining them with comma"
+ optional :created_after, type: DateTime, desc: "Return issues created after the specified time"
+ optional :created_before, type: DateTime, desc: "Return issues created before the specified time"
+ optional :updated_after, type: DateTime, desc: "Return issues updated after the specified time"
+ optional :updated_before, type: DateTime, desc: "Return issues updated before the specified time"
+ optional :author_id, type: Integer, desc: "Return issues which are authored by the user with the given ID"
optional :assignee_id, types: [Integer, String], integer_none_any: true,
- desc: 'Return issues which are assigned to the user with the given ID'
+ desc: "Return issues which are assigned to the user with the given ID"
optional :scope, type: String, values: %w[created-by-me assigned-to-me created_by_me assigned_to_me all],
- desc: 'Return issues for the given scope: `created_by_me`, `assigned_to_me` or `all`'
- optional :my_reaction_emoji, type: String, desc: 'Return issues reacted by the authenticated user by the given emoji'
- optional :confidential, type: Boolean, desc: 'Filter confidential or public issues'
+ desc: "Return issues for the given scope: `created_by_me`, `assigned_to_me` or `all`"
+ optional :my_reaction_emoji, type: String, desc: "Return issues reacted by the authenticated user by the given emoji"
+ optional :confidential, type: Boolean, desc: "Filter confidential or public issues"
use :pagination
use :issues_params_ee
end
params :issue_params do
- optional :description, type: String, desc: 'The description of an issue'
- optional :assignee_ids, type: Array[Integer], desc: 'The array of user IDs to assign issue'
- optional :assignee_id, type: Integer, desc: '[Deprecated] The ID of a user to assign issue'
- optional :milestone_id, type: Integer, desc: 'The ID of a milestone to assign issue'
- optional :labels, type: String, desc: 'Comma-separated list of label names'
- optional :due_date, type: String, desc: 'Date string in the format YEAR-MONTH-DAY'
- optional :confidential, type: Boolean, desc: 'Boolean parameter if the issue should be confidential'
+ optional :description, type: String, desc: "The description of an issue"
+ optional :assignee_ids, type: Array[Integer], desc: "The array of user IDs to assign issue"
+ optional :assignee_id, type: Integer, desc: "[Deprecated] The ID of a user to assign issue"
+ optional :milestone_id, type: Integer, desc: "The ID of a milestone to assign issue"
+ optional :labels, type: String, desc: "Comma-separated list of label names"
+ optional :due_date, type: String, desc: "Date string in the format YEAR-MONTH-DAY"
+ optional :confidential, type: Boolean, desc: "Boolean parameter if the issue should be confidential"
optional :discussion_locked, type: Boolean, desc: " Boolean parameter indicating if the issue's discussion is locked"
use :issue_params_ee
@@ -79,20 +79,20 @@ module API
success Entities::IssueBasic
end
params do
- optional :state, type: String, values: %w[opened closed all], default: 'all',
- desc: 'Return opened, closed, or all issues'
+ optional :state, type: String, values: %w[opened closed all], default: "all",
+ desc: "Return opened, closed, or all issues"
use :issues_params
- optional :scope, type: String, values: %w[created-by-me assigned-to-me created_by_me assigned_to_me all], default: 'created_by_me',
- desc: 'Return issues for the given scope: `created_by_me`, `assigned_to_me` or `all`'
+ optional :scope, type: String, values: %w[created-by-me assigned-to-me created_by_me assigned_to_me all], default: "created_by_me",
+ desc: "Return issues for the given scope: `created_by_me`, `assigned_to_me` or `all`"
end
get do
- authenticate! unless params[:scope] == 'all'
+ authenticate! unless params[:scope] == "all"
issues = paginate(find_issues)
options = {
with: Entities::IssueBasic,
current_user: current_user,
- issuable_metadata: issuable_meta_data(issues, 'Issue')
+ issuable_metadata: issuable_meta_data(issues, "Issue"),
}
present issues, options
@@ -100,15 +100,15 @@ module API
end
params do
- requires :id, type: String, desc: 'The ID of a group'
+ requires :id, type: String, desc: "The ID of a group"
end
resource :groups, requirements: API::NAMESPACE_OR_PROJECT_REQUIREMENTS do
- desc 'Get a list of group issues' do
+ desc "Get a list of group issues" do
success Entities::IssueBasic
end
params do
- optional :state, type: String, values: %w[opened closed all], default: 'all',
- desc: 'Return opened, closed, or all issues'
+ optional :state, type: String, values: %w[opened closed all], default: "all",
+ desc: "Return opened, closed, or all issues"
use :issues_params
end
get ":id/issues" do
@@ -119,7 +119,7 @@ module API
options = {
with: Entities::IssueBasic,
current_user: current_user,
- issuable_metadata: issuable_meta_data(issues, 'Issue')
+ issuable_metadata: issuable_meta_data(issues, "Issue"),
}
present issues, options
@@ -127,17 +127,17 @@ module API
end
params do
- requires :id, type: String, desc: 'The ID of a project'
+ requires :id, type: String, desc: "The ID of a project"
end
resource :projects, requirements: API::NAMESPACE_OR_PROJECT_REQUIREMENTS do
include TimeTrackingEndpoints
- desc 'Get a list of project issues' do
+ desc "Get a list of project issues" do
success Entities::IssueBasic
end
params do
- optional :state, type: String, values: %w[opened closed all], default: 'all',
- desc: 'Return opened, closed, or all issues'
+ optional :state, type: String, values: %w[opened closed all], default: "all",
+ desc: "Return opened, closed, or all issues"
use :issues_params
end
get ":id/issues" do
@@ -149,41 +149,41 @@ module API
with: Entities::IssueBasic,
current_user: current_user,
project: user_project,
- issuable_metadata: issuable_meta_data(issues, 'Issue')
+ issuable_metadata: issuable_meta_data(issues, "Issue"),
}
present issues, options
end
- desc 'Get a single project issue' do
+ desc "Get a single project issue" do
success Entities::Issue
end
params do
- requires :issue_iid, type: Integer, desc: 'The internal ID of a project issue'
+ requires :issue_iid, type: Integer, desc: "The internal ID of a project issue"
end
get ":id/issues/:issue_iid", as: :api_v4_project_issue do
issue = find_project_issue(params[:issue_iid])
present issue, with: Entities::Issue, current_user: current_user, project: user_project
end
- desc 'Create a new project issue' do
+ desc "Create a new project issue" do
success Entities::Issue
end
params do
- requires :title, type: String, desc: 'The title of an issue'
+ requires :title, type: String, desc: "The title of an issue"
optional :created_at, type: DateTime,
- desc: 'Date time when the issue was created. Available only for admins and project owners.'
+ desc: "Date time when the issue was created. Available only for admins and project owners."
optional :merge_request_to_resolve_discussions_of, type: Integer,
- desc: 'The IID of a merge request for which to resolve discussions'
+ desc: "The IID of a merge request for which to resolve discussions"
optional :discussion_to_resolve, type: String,
- desc: 'The ID of a discussion to resolve, also pass `merge_request_to_resolve_discussions_of`'
+ desc: "The ID of a discussion to resolve, also pass `merge_request_to_resolve_discussions_of`"
optional :iid, type: Integer,
- desc: 'The internal ID of a project issue. Available only for admins and project owners.'
+ desc: "The internal ID of a project issue. Available only for admins and project owners."
use :issue_params
end
- post ':id/issues' do
- Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42320')
+ post ":id/issues" do
+ Gitlab::QueryLimiting.whitelist("https://gitlab.com/gitlab-org/gitlab-ce/issues/42320")
authorize! :create_issue, user_project
@@ -195,11 +195,11 @@ module API
issue_params = convert_parameters_from_legacy_format(issue_params)
issue = ::Issues::CreateService.new(user_project,
- current_user,
- issue_params.merge(request: request, api: true)).execute
+ current_user,
+ issue_params.merge(request: request, api: true)).execute
if issue.spam?
- render_api_error!({ error: 'Spam detected' }, 400)
+ render_api_error!({error: "Spam detected"}, 400)
end
if issue.valid?
@@ -209,22 +209,22 @@ module API
end
end
- desc 'Update an existing issue' do
+ desc "Update an existing issue" do
success Entities::Issue
end
params do
- requires :issue_iid, type: Integer, desc: 'The internal ID of a project issue'
- optional :title, type: String, desc: 'The title of an issue'
+ requires :issue_iid, type: Integer, desc: "The internal ID of a project issue"
+ optional :title, type: String, desc: "The title of an issue"
optional :updated_at, type: DateTime,
- desc: 'Date time when the issue was updated. Available only for admins and project owners.'
- optional :state_event, type: String, values: %w[reopen close], desc: 'State of the issue'
+ desc: "Date time when the issue was updated. Available only for admins and project owners."
+ optional :state_event, type: String, values: %w[reopen close], desc: "State of the issue"
use :issue_params
at_least_one_of :title, :description, :assignee_ids, :assignee_id, :milestone_id, :discussion_locked,
- :labels, :created_at, :due_date, :confidential, :state_event
+ :labels, :created_at, :due_date, :confidential, :state_event
end
# rubocop: disable CodeReuse/ActiveRecord
- put ':id/issues/:issue_iid' do
- Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42322')
+ put ":id/issues/:issue_iid" do
+ Gitlab::QueryLimiting.whitelist("https://gitlab.com/gitlab-org/gitlab-ce/issues/42322")
issue = user_project.issues.find_by!(iid: params.delete(:issue_iid))
authorize! :update_issue, issue
@@ -239,8 +239,8 @@ module API
update_params = convert_parameters_from_legacy_format(update_params)
issue = ::Issues::UpdateService.new(user_project,
- current_user,
- update_params).execute(issue)
+ current_user,
+ update_params).execute(issue)
render_spam_error! if issue.spam?
@@ -252,22 +252,22 @@ module API
end
# rubocop: enable CodeReuse/ActiveRecord
- desc 'Move an existing issue' do
+ desc "Move an existing issue" do
success Entities::Issue
end
params do
- requires :issue_iid, type: Integer, desc: 'The internal ID of a project issue'
- requires :to_project_id, type: Integer, desc: 'The ID of the new project'
+ requires :issue_iid, type: Integer, desc: "The internal ID of a project issue"
+ requires :to_project_id, type: Integer, desc: "The ID of the new project"
end
# rubocop: disable CodeReuse/ActiveRecord
- post ':id/issues/:issue_iid/move' do
- Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42323')
+ post ":id/issues/:issue_iid/move" do
+ Gitlab::QueryLimiting.whitelist("https://gitlab.com/gitlab-org/gitlab-ce/issues/42323")
issue = user_project.issues.find_by(iid: params[:issue_iid])
- not_found!('Issue') unless issue
+ not_found!("Issue") unless issue
new_project = Project.find_by(id: params[:to_project_id])
- not_found!('Project') unless new_project
+ not_found!("Project") unless new_project
begin
issue = ::Issues::MoveService.new(user_project, current_user).execute(issue, new_project)
@@ -278,14 +278,14 @@ module API
end
# rubocop: enable CodeReuse/ActiveRecord
- desc 'Delete a project issue'
+ desc "Delete a project issue"
params do
- requires :issue_iid, type: Integer, desc: 'The internal ID of a project issue'
+ requires :issue_iid, type: Integer, desc: "The internal ID of a project issue"
end
# rubocop: disable CodeReuse/ActiveRecord
delete ":id/issues/:issue_iid" do
issue = user_project.issues.find_by(iid: params[:issue_iid])
- not_found!('Issue') unless issue
+ not_found!("Issue") unless issue
authorize!(:destroy_issue, issue)
@@ -295,13 +295,13 @@ module API
end
# rubocop: enable CodeReuse/ActiveRecord
- desc 'List merge requests that are related to the issue' do
+ desc "List merge requests that are related to the issue" do
success Entities::MergeRequestBasic
end
params do
- requires :issue_iid, type: Integer, desc: 'The internal ID of a project issue'
+ requires :issue_iid, type: Integer, desc: "The internal ID of a project issue"
end
- get ':id/issues/:issue_iid/related_merge_requests' do
+ get ":id/issues/:issue_iid/related_merge_requests" do
issue = find_project_issue(params[:issue_iid])
merge_requests = ::Issues::ReferencedMergeRequestsService.new(user_project, current_user)
@@ -314,14 +314,14 @@ module API
project: user_project
end
- desc 'List merge requests closing issue' do
+ desc "List merge requests closing issue" do
success Entities::MergeRequestBasic
end
params do
- requires :issue_iid, type: Integer, desc: 'The internal ID of a project issue'
+ requires :issue_iid, type: Integer, desc: "The internal ID of a project issue"
end
# rubocop: disable CodeReuse/ActiveRecord
- get ':id/issues/:issue_iid/closed_by' do
+ get ":id/issues/:issue_iid/closed_by" do
issue = find_project_issue(params[:issue_iid])
merge_request_ids = MergeRequestsClosingIssues.where(issue_id: issue).select(:merge_request_id)
@@ -331,31 +331,31 @@ module API
end
# rubocop: enable CodeReuse/ActiveRecord
- desc 'List participants for an issue' do
+ desc "List participants for an issue" do
success Entities::UserBasic
end
params do
- requires :issue_iid, type: Integer, desc: 'The internal ID of a project issue'
+ requires :issue_iid, type: Integer, desc: "The internal ID of a project issue"
end
- get ':id/issues/:issue_iid/participants' do
+ get ":id/issues/:issue_iid/participants" do
issue = find_project_issue(params[:issue_iid])
participants = ::Kaminari.paginate_array(issue.participants)
present paginate(participants), with: Entities::UserBasic, current_user: current_user, project: user_project
end
- desc 'Get the user agent details for an issue' do
+ desc "Get the user agent details for an issue" do
success Entities::UserAgentDetail
end
params do
- requires :issue_iid, type: Integer, desc: 'The internal ID of a project issue'
+ requires :issue_iid, type: Integer, desc: "The internal ID of a project issue"
end
get ":id/issues/:issue_iid/user_agent_detail" do
authenticated_as_admin!
issue = find_project_issue(params[:issue_iid])
- break not_found!('UserAgentDetail') unless issue.user_agent_detail
+ break not_found!("UserAgentDetail") unless issue.user_agent_detail
present issue.user_agent_detail, with: Entities::UserAgentDetail
end