Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
d23f0cff3c
commit
6f3d5ab313
2
Gemfile
2
Gemfile
|
|
@ -203,7 +203,7 @@ gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||||
gem 'elasticsearch-model', '~> 7.2' # rubocop:todo Gemfile/MissingFeatureCategory
|
gem 'elasticsearch-model', '~> 7.2' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||||
gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' # rubocop:todo Gemfile/MissingFeatureCategory
|
gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||||
gem 'elasticsearch-api', '7.13.3' # rubocop:todo Gemfile/MissingFeatureCategory
|
gem 'elasticsearch-api', '7.13.3' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||||
gem 'aws-sdk-core', '~> 3.194.1' # rubocop:todo Gemfile/MissingFeatureCategory
|
gem 'aws-sdk-core', '~> 3.194.2' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||||
gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory
|
gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||||
gem 'aws-sdk-s3', '~> 1.149.1' # rubocop:todo Gemfile/MissingFeatureCategory
|
gem 'aws-sdk-s3', '~> 1.149.1' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||||
gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
|
gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
{"name":"aws-eventstream","version":"1.3.0","platform":"ruby","checksum":"f1434cc03ab2248756eb02cfa45e900e59a061d7fbdc4a9fd82a5dd23d796d3f"},
|
{"name":"aws-eventstream","version":"1.3.0","platform":"ruby","checksum":"f1434cc03ab2248756eb02cfa45e900e59a061d7fbdc4a9fd82a5dd23d796d3f"},
|
||||||
{"name":"aws-partitions","version":"1.877.0","platform":"ruby","checksum":"9552ed7bbd3700ed1eeb0121c160ceaf64fa5dbaff5a1ff5fe6fd8481ecd9cfd"},
|
{"name":"aws-partitions","version":"1.877.0","platform":"ruby","checksum":"9552ed7bbd3700ed1eeb0121c160ceaf64fa5dbaff5a1ff5fe6fd8481ecd9cfd"},
|
||||||
{"name":"aws-sdk-cloudformation","version":"1.41.0","platform":"ruby","checksum":"31e47539719734413671edf9b1a31f8673fbf9688549f50c41affabbcb1c6b26"},
|
{"name":"aws-sdk-cloudformation","version":"1.41.0","platform":"ruby","checksum":"31e47539719734413671edf9b1a31f8673fbf9688549f50c41affabbcb1c6b26"},
|
||||||
{"name":"aws-sdk-core","version":"3.194.1","platform":"ruby","checksum":"3ac7a3d6b872ae69ded6ee0394e3b64645dde1f7c78e123b7dd84700d392607a"},
|
{"name":"aws-sdk-core","version":"3.194.2","platform":"ruby","checksum":"f925fb739cd093e5834910aed85aba5ac8d1b210f26c2cf51f0daf932cc77567"},
|
||||||
{"name":"aws-sdk-kms","version":"1.76.0","platform":"ruby","checksum":"e7f75013cba9ba357144f66bbc600631c192e2cda9dd572794be239654e2cf49"},
|
{"name":"aws-sdk-kms","version":"1.76.0","platform":"ruby","checksum":"e7f75013cba9ba357144f66bbc600631c192e2cda9dd572794be239654e2cf49"},
|
||||||
{"name":"aws-sdk-s3","version":"1.149.1","platform":"ruby","checksum":"664e608190d42b486dc79b5dc65e7c2240923902a9833063327a9d831226a46a"},
|
{"name":"aws-sdk-s3","version":"1.149.1","platform":"ruby","checksum":"664e608190d42b486dc79b5dc65e7c2240923902a9833063327a9d831226a46a"},
|
||||||
{"name":"aws-sigv4","version":"1.8.0","platform":"ruby","checksum":"84dd99768b91b93b63d1d8e53ee837cfd06ab402812772a7899a78f9f9117cbc"},
|
{"name":"aws-sigv4","version":"1.8.0","platform":"ruby","checksum":"84dd99768b91b93b63d1d8e53ee837cfd06ab402812772a7899a78f9f9117cbc"},
|
||||||
|
|
|
||||||
|
|
@ -303,7 +303,7 @@ GEM
|
||||||
aws-sdk-cloudformation (1.41.0)
|
aws-sdk-cloudformation (1.41.0)
|
||||||
aws-sdk-core (~> 3, >= 3.99.0)
|
aws-sdk-core (~> 3, >= 3.99.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.1)
|
||||||
aws-sdk-core (3.194.1)
|
aws-sdk-core (3.194.2)
|
||||||
aws-eventstream (~> 1, >= 1.3.0)
|
aws-eventstream (~> 1, >= 1.3.0)
|
||||||
aws-partitions (~> 1, >= 1.651.0)
|
aws-partitions (~> 1, >= 1.651.0)
|
||||||
aws-sigv4 (~> 1.8)
|
aws-sigv4 (~> 1.8)
|
||||||
|
|
@ -1921,7 +1921,7 @@ DEPENDENCIES
|
||||||
attr_encrypted (~> 3.2.4)!
|
attr_encrypted (~> 3.2.4)!
|
||||||
awesome_print
|
awesome_print
|
||||||
aws-sdk-cloudformation (~> 1)
|
aws-sdk-cloudformation (~> 1)
|
||||||
aws-sdk-core (~> 3.194.1)
|
aws-sdk-core (~> 3.194.2)
|
||||||
aws-sdk-s3 (~> 1.149.1)
|
aws-sdk-s3 (~> 1.149.1)
|
||||||
axe-core-rspec (~> 4.9.0)
|
axe-core-rspec (~> 4.9.0)
|
||||||
babosa (~> 2.0)
|
babosa (~> 2.0)
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 18 KiB |
|
|
@ -140,7 +140,7 @@ export default {
|
||||||
<template #source>
|
<template #source>
|
||||||
<gl-link
|
<gl-link
|
||||||
:href="pipeline.merge_request.source_branch_path"
|
:href="pipeline.merge_request.source_branch_path"
|
||||||
class="link-commit ref-name gl-mt-1"
|
class="link-commit ref-name gl-break-all gl-mt-1"
|
||||||
data-testid="source-branch-link"
|
data-testid="source-branch-link"
|
||||||
>{{ pipeline.merge_request.source_branch }}</gl-link
|
>{{ pipeline.merge_request.source_branch }}</gl-link
|
||||||
><clipboard-button
|
><clipboard-button
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
fragment DesignItem on Design {
|
fragment DesignItem on Design {
|
||||||
...DesignListItem
|
...DesignListItem
|
||||||
fullPath
|
fullPath
|
||||||
|
imported
|
||||||
diffRefs {
|
diffRefs {
|
||||||
...DesignDiffRefs
|
...DesignDiffRefs
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ export function initIssuableApp(store) {
|
||||||
issuableId,
|
issuableId,
|
||||||
issueType,
|
issueType,
|
||||||
hasIterationsFeature,
|
hasIterationsFeature,
|
||||||
|
imported,
|
||||||
// for issue
|
// for issue
|
||||||
registerPath,
|
registerPath,
|
||||||
signInPath,
|
signInPath,
|
||||||
|
|
@ -129,6 +130,7 @@ export function initIssuableApp(store) {
|
||||||
descriptionComponent: issueType === TYPE_INCIDENT ? IncidentTabs : DescriptionComponent,
|
descriptionComponent: issueType === TYPE_INCIDENT ? IncidentTabs : DescriptionComponent,
|
||||||
isConfidential: this.getNoteableData?.confidential,
|
isConfidential: this.getNoteableData?.confidential,
|
||||||
isLocked: this.getNoteableData?.discussion_locked,
|
isLocked: this.getNoteableData?.discussion_locked,
|
||||||
|
isImported: imported,
|
||||||
issuableStatus: this.getNoteableData?.state,
|
issuableStatus: this.getNoteableData?.state,
|
||||||
issuableType: issueType,
|
issuableType: issueType,
|
||||||
issueId: this.getNoteableData?.id?.toString(),
|
issueId: this.getNoteableData?.id?.toString(),
|
||||||
|
|
|
||||||
|
|
@ -247,7 +247,7 @@ export default {
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-if="isImported">
|
<template v-if="isImported">
|
||||||
<span>·</span>
|
<span v-if="isSystemNote">·</span>
|
||||||
<imported-badge :text-only="isSystemNote" :importable-type="importableType" size="sm" />
|
<imported-badge :text-only="isSystemNote" :importable-type="importableType" size="sm" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
.todos-list > .todo {
|
.todos-list > .todo {
|
||||||
// workaround because we cannot use border-collapse
|
// workaround because we cannot use border-collapse
|
||||||
padding: 6px 12px !important;
|
padding: 6px 12px !important;
|
||||||
border-top: 1px solid transparent;
|
margin-top: -1px;
|
||||||
|
|
||||||
span:not(.todo-label),
|
span:not(.todo-label),
|
||||||
button,
|
button,
|
||||||
|
|
|
||||||
|
|
@ -30,17 +30,11 @@ module SendFileUpload
|
||||||
headers.store(*Gitlab::Workhorse.send_url(file_upload.url(**redirect_params)))
|
headers.store(*Gitlab::Workhorse.send_url(file_upload.url(**redirect_params)))
|
||||||
head :ok
|
head :ok
|
||||||
else
|
else
|
||||||
redirect_to cdn_fronted_url(file_upload, redirect_params)
|
file_url = ObjectStorage::CDN::FileUrl.new(
|
||||||
end
|
file: file_upload,
|
||||||
end
|
ip_address: request.remote_ip,
|
||||||
|
redirect_params: redirect_params)
|
||||||
def cdn_fronted_url(file, redirect_params)
|
redirect_to file_url.url
|
||||||
if file.respond_to?(:cdn_enabled_url)
|
|
||||||
result = file.cdn_enabled_url(request.remote_ip, redirect_params[:query])
|
|
||||||
Gitlab::ApplicationContext.push(artifact_used_cdn: result.used_cdn)
|
|
||||||
result.url
|
|
||||||
else
|
|
||||||
file.url(**redirect_params)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ module Mutations
|
||||||
class Create < BaseMutation
|
class Create < BaseMutation
|
||||||
graphql_name 'IntegrationExclusionCreate'
|
graphql_name 'IntegrationExclusionCreate'
|
||||||
include ResolvesIds
|
include ResolvesIds
|
||||||
|
MAX_PROJECT_IDS = 100
|
||||||
|
|
||||||
field :exclusions, [::Types::Integrations::ExclusionType],
|
field :exclusions, [::Types::Integrations::ExclusionType],
|
||||||
null: true,
|
null: true,
|
||||||
|
|
@ -19,14 +20,18 @@ module Mutations
|
||||||
argument :project_ids,
|
argument :project_ids,
|
||||||
[::Types::GlobalIDType[::Project]],
|
[::Types::GlobalIDType[::Project]],
|
||||||
required: true,
|
required: true,
|
||||||
description: 'Ids of projects to exclude.'
|
description: "IDs of projects to exclude up to a maximum of #{MAX_PROJECT_IDS}."
|
||||||
|
|
||||||
authorize :admin_all_resources
|
authorize :admin_all_resources
|
||||||
|
|
||||||
def resolve(integration_name:, project_ids:)
|
def resolve(integration_name:, project_ids:)
|
||||||
authorize!(:global)
|
authorize!(:global)
|
||||||
|
|
||||||
projects = Project.id_in(resolve_ids(project_ids))
|
if project_ids.length > MAX_PROJECT_IDS
|
||||||
|
raise Gitlab::Graphql::Errors::ArgumentError, "Count of projectIds should be less than #{MAX_PROJECT_IDS}"
|
||||||
|
end
|
||||||
|
|
||||||
|
projects = Project.id_in(resolve_ids(project_ids)).limit(MAX_PROJECT_IDS)
|
||||||
|
|
||||||
result = ::Integrations::Exclusions::CreateService.new(
|
result = ::Integrations::Exclusions::CreateService.new(
|
||||||
current_user: current_user,
|
current_user: current_user,
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ module Mutations
|
||||||
argument :project_ids,
|
argument :project_ids,
|
||||||
[::Types::GlobalIDType[::Project]],
|
[::Types::GlobalIDType[::Project]],
|
||||||
required: true,
|
required: true,
|
||||||
description: 'Id of excluded project.'
|
description: 'IDs of excluded projects.'
|
||||||
|
|
||||||
authorize :admin_all_resources
|
authorize :admin_all_resources
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ query GetSnippetQuery($ids: [SnippetID!]) {
|
||||||
httpUrlToRepo
|
httpUrlToRepo
|
||||||
sshUrlToRepo
|
sshUrlToRepo
|
||||||
hidden
|
hidden
|
||||||
|
imported
|
||||||
blobs {
|
blobs {
|
||||||
__typename
|
__typename
|
||||||
hasUnretrievableBlobs
|
hasUnretrievableBlobs
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,8 @@ module ResolvesMergeRequests
|
||||||
args[:include_subgroups] = true
|
args[:include_subgroups] = true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
rewrite_param_name(args, :reviewer_wildcard_id, :reviewer_id)
|
||||||
|
|
||||||
mr_finder = MergeRequestsFinder.new(current_user, args.compact)
|
mr_finder = MergeRequestsFinder.new(current_user, args.compact)
|
||||||
finder = Gitlab::Graphql::Loaders::IssuableLoader.new(mr_parent, mr_finder)
|
finder = Gitlab::Graphql::Loaders::IssuableLoader.new(mr_parent, mr_finder)
|
||||||
|
|
||||||
|
|
@ -42,6 +44,10 @@ module ResolvesMergeRequests
|
||||||
[:target_project, :author]
|
[:target_project, :author]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def rewrite_param_name(params, old_name, new_name)
|
||||||
|
params[new_name] = params.delete(old_name) if params && params[old_name].present?
|
||||||
|
end
|
||||||
|
|
||||||
def preloads
|
def preloads
|
||||||
{
|
{
|
||||||
assignees: [:assignees],
|
assignees: [:assignees],
|
||||||
|
|
|
||||||
|
|
@ -20,12 +20,8 @@ module Resolvers
|
||||||
|
|
||||||
def resolve_groups(**args)
|
def resolve_groups(**args)
|
||||||
GroupsFinder
|
GroupsFinder
|
||||||
.new(context[:current_user], finder_params(args))
|
.new(context[:current_user], args)
|
||||||
.execute
|
.execute
|
||||||
end
|
end
|
||||||
|
|
||||||
def finder_params(args)
|
|
||||||
args
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,9 @@ module Resolvers
|
||||||
argument :reviewer_username, GraphQL::Types::String,
|
argument :reviewer_username, GraphQL::Types::String,
|
||||||
required: false,
|
required: false,
|
||||||
description: 'Username of the reviewer.'
|
description: 'Username of the reviewer.'
|
||||||
|
argument :reviewer_wildcard_id, ::Types::ReviewerWildcardIdEnum,
|
||||||
|
required: false,
|
||||||
|
description: 'Filter by reviewer presence. Incompatible with reviewerUsername.'
|
||||||
end
|
end
|
||||||
|
|
||||||
argument :iids, [GraphQL::Types::String],
|
argument :iids, [GraphQL::Types::String],
|
||||||
|
|
|
||||||
|
|
@ -14,17 +14,8 @@ module Resolvers
|
||||||
alias_method :organization, :object
|
alias_method :organization, :object
|
||||||
|
|
||||||
def resolve_groups(**args)
|
def resolve_groups(**args)
|
||||||
::Organizations::GroupsFinder.new(context[:current_user], finder_params(args)).execute
|
finder_params = args.merge(organization: organization)
|
||||||
end
|
::Organizations::GroupsFinder.new(context[:current_user], finder_params).execute
|
||||||
|
|
||||||
def finder_params(args)
|
|
||||||
extra_args = if Feature.enabled?(:resolve_all_organization_groups, current_user)
|
|
||||||
{ organization: organization }
|
|
||||||
else
|
|
||||||
{ organization: organization, include_ancestors: false, all_available: false }
|
|
||||||
end
|
|
||||||
|
|
||||||
super.merge(extra_args)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Types
|
||||||
|
class ReviewerWildcardIdEnum < BaseEnum
|
||||||
|
graphql_name 'ReviewerWildcardId'
|
||||||
|
description 'Reviewer ID wildcard values'
|
||||||
|
|
||||||
|
value 'NONE', 'No reviewer is assigned.'
|
||||||
|
value 'ANY', 'Any reviewer is assigned.'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -164,6 +164,7 @@ module IssuablesHelper
|
||||||
canUpdate: can?(current_user, :"update_#{issuable.to_ability_name}", issuable),
|
canUpdate: can?(current_user, :"update_#{issuable.to_ability_name}", issuable),
|
||||||
canDestroy: can?(current_user, :"destroy_#{issuable.to_ability_name}", issuable),
|
canDestroy: can?(current_user, :"destroy_#{issuable.to_ability_name}", issuable),
|
||||||
issuableRef: issuable.to_reference,
|
issuableRef: issuable.to_reference,
|
||||||
|
imported: issuable.imported?,
|
||||||
markdownPreviewPath: preview_markdown_path(parent, target_type: issuable.model_name, target_id: issuable.iid),
|
markdownPreviewPath: preview_markdown_path(parent, target_type: issuable.model_name, target_id: issuable.iid),
|
||||||
markdownDocsPath: help_page_path('user/markdown'),
|
markdownDocsPath: help_page_path('user/markdown'),
|
||||||
lockVersion: issuable.lock_version,
|
lockVersion: issuable.lock_version,
|
||||||
|
|
|
||||||
|
|
@ -311,23 +311,24 @@ module MergeRequestsHelper
|
||||||
_('%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}').html_safe % { author: link_to_author.html_safe, source_branch: merge_request_source_branch(merge_request).html_safe, copy_button: copy_button.html_safe, target_branch: target_branch.html_safe, created_at: time_ago_with_tooltip(merge_request.created_at, html_class: 'gl-display-inline-block').html_safe }
|
_('%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}').html_safe % { author: link_to_author.html_safe, source_branch: merge_request_source_branch(merge_request).html_safe, copy_button: copy_button.html_safe, target_branch: target_branch.html_safe, created_at: time_ago_with_tooltip(merge_request.created_at, html_class: 'gl-display-inline-block').html_safe }
|
||||||
end
|
end
|
||||||
|
|
||||||
def sticky_header_data
|
def sticky_header_data(project, merge_request)
|
||||||
data = {
|
data = {
|
||||||
iid: @merge_request.iid,
|
iid: merge_request.iid,
|
||||||
projectPath: @project.full_path,
|
projectPath: project.full_path,
|
||||||
sourceProjectPath: @merge_request.source_project_path,
|
sourceProjectPath: merge_request.source_project_path,
|
||||||
title: markdown_field(@merge_request, :title),
|
title: markdown_field(merge_request, :title),
|
||||||
isFluidLayout: fluid_layout.to_s,
|
isFluidLayout: fluid_layout.to_s,
|
||||||
blocksMerge: @project.only_allow_merge_if_all_discussions_are_resolved?.to_s,
|
blocksMerge: project.only_allow_merge_if_all_discussions_are_resolved?.to_s,
|
||||||
|
imported: merge_request.imported?.to_s,
|
||||||
tabs: [
|
tabs: [
|
||||||
['show', _('Overview'), project_merge_request_path(@project, @merge_request), @merge_request.related_notes.user.count],
|
['show', _('Overview'), project_merge_request_path(project, merge_request), merge_request.related_notes.user.count],
|
||||||
['commits', _('Commits'), commits_project_merge_request_path(@project, @merge_request), @commits_count],
|
['commits', _('Commits'), commits_project_merge_request_path(project, merge_request), @commits_count],
|
||||||
['diffs', _('Changes'), diffs_project_merge_request_path(@project, @merge_request), @diffs_count]
|
['diffs', _('Changes'), diffs_project_merge_request_path(project, merge_request), @diffs_count]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
if @project.builds_enabled?
|
if project.builds_enabled?
|
||||||
data[:tabs].insert(2, ['pipelines', _('Pipelines'), pipelines_project_merge_request_path(@project, @merge_request), @number_of_pipelines])
|
data[:tabs].insert(2, ['pipelines', _('Pipelines'), pipelines_project_merge_request_path(project, merge_request), @number_of_pipelines])
|
||||||
end
|
end
|
||||||
|
|
||||||
data
|
data
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,10 @@ module Integrations
|
||||||
|
|
||||||
instance_integration = integration_class.for_instance.first
|
instance_integration = integration_class.for_instance.first
|
||||||
|
|
||||||
return ServiceResponse.success(payload: exclusions.destroy_all) unless instance_integration # rubocop: disable Cop/DestroyAll -- We load exclusions so we can have the deleted exclusions in the response
|
unless instance_integration
|
||||||
|
integration_class.id_in(exclusions.map(&:id)).delete_all
|
||||||
|
return ServiceResponse.success(payload: exclusions)
|
||||||
|
end
|
||||||
|
|
||||||
::Integrations::Propagation::BulkUpdateService.new(instance_integration, exclusions).execute
|
::Integrations::Propagation::BulkUpdateService.new(instance_integration, exclusions).execute
|
||||||
ServiceResponse.success(payload: exclusions)
|
ServiceResponse.success(payload: exclusions)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module ObjectStorage
|
||||||
|
module CDN
|
||||||
|
class FileUrl
|
||||||
|
def initialize(file:, ip_address:, redirect_params: {})
|
||||||
|
@file = file
|
||||||
|
@ip_address = ip_address
|
||||||
|
@redirect_params = redirect_params
|
||||||
|
end
|
||||||
|
|
||||||
|
def url
|
||||||
|
if file.respond_to?(:cdn_enabled_url)
|
||||||
|
result = file.cdn_enabled_url(ip_address, redirect_params[:query])
|
||||||
|
Gitlab::ApplicationContext.push(artifact_used_cdn: result.used_cdn)
|
||||||
|
result.url
|
||||||
|
else
|
||||||
|
file.url(**redirect_params)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
attr_reader :file, :ip_address, :redirect_params
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
%li.todo.gl-hover-border-blue-200.gl-hover-bg-blue-50.gl-hover-cursor-pointer.gl-relative{ class: "todo-#{todo.done? ? 'done' : 'pending'}", id: dom_id(todo) }
|
%li.todo.gl-border-t.gl-border-gray-50.gl-hover-border-blue-200.gl-hover-bg-blue-50.gl-hover-cursor-pointer.gl-relative{ class: "hover:gl-z-1 todo-#{todo.done? ? 'done' : 'pending'}", id: dom_id(todo) }
|
||||||
.gl-display-flex.gl-flex-direction-column.gl-sm-flex-direction-row.gl-sm-align-items-center
|
.gl-display-flex.gl-flex-direction-column.gl-sm-flex-direction-row.gl-sm-align-items-center
|
||||||
.todo-item.gl-overflow-hidden.gl-overflow-x-auto.gl-align-self-center.gl-w-full{ data: { testid: "todo-item-container" } }
|
.todo-item.gl-overflow-hidden.gl-overflow-x-auto.gl-align-self-center.gl-w-full{ data: { testid: "todo-item-container" } }
|
||||||
.todo-title.gl-pt-2.gl-pb-3.gl-px-2.gl-md-mb-1.gl-font-sm.gl-text-secondary
|
.todo-title.gl-pt-2.gl-pb-3.gl-px-2.gl-md-mb-1.gl-font-sm.gl-text-secondary
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@
|
||||||
.event-item-timestamp.gl-font-sm
|
.event-item-timestamp.gl-font-sm
|
||||||
#{time_ago_with_tooltip(event.created_at)}
|
#{time_ago_with_tooltip(event.created_at)}
|
||||||
- if event.imported?
|
- if event.imported?
|
||||||
%span •
|
%span ·
|
||||||
= render "import/shared/imported_text", importable: _('event')
|
= render "import/shared/imported_badge", text_only: true, importable: _('event')
|
||||||
|
|
||||||
- if event.wiki_page?
|
- if event.wiki_page?
|
||||||
= render "events/event/wiki", event: event
|
= render "events/event/wiki", event: event
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
- tooltip_title = safe_format(s_('BulkImport|This %{importable} was imported from another instance.'), importable: local_assigns[:importable])
|
||||||
|
- text_only = local_assigns.fetch(:text_only, false)
|
||||||
|
|
||||||
|
- if text_only
|
||||||
|
%span.has-tooltip.gl-line-height-normal.gl-font-sm{ title: tooltip_title }= _('Imported')
|
||||||
|
- else
|
||||||
|
= render Pajamas::BadgeComponent.new(_('Imported'), size: :sm, title: tooltip_title, class: 'has-tooltip')
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
- tooltip_title = safe_format(s_('BulkImport|This %{importable} was imported from another instance.'), importable: local_assigns[:importable])
|
|
||||||
|
|
||||||
%span.has-tooltip.gl-line-height-normal.gl-font-sm{ title: tooltip_title }= _('Imported')
|
|
||||||
|
|
@ -1,15 +1,20 @@
|
||||||
|
- @no_container = true
|
||||||
|
- container_class = fluid_layout ? '' : 'container-limited'
|
||||||
- add_to_breadcrumbs s_("CompareRevisions|Compare revisions"), project_compare_index_path(@project)
|
- add_to_breadcrumbs s_("CompareRevisions|Compare revisions"), project_compare_index_path(@project)
|
||||||
- page_title "#{params[:from]} to #{params[:to]}"
|
- page_title "#{params[:from]} to #{params[:to]}"
|
||||||
- has_diff = @commits.present? || @diffs.present? && @diffs.diff_files.present?
|
- has_diff = @commits.present? || @diffs.present? && @diffs.diff_files.present?
|
||||||
-# Only show commit list in the first page
|
-# Only show commit list in the first page
|
||||||
- hide_commit_list = params[:page].present? && params[:page] != '1'
|
- hide_commit_list = params[:page].present? && params[:page] != '1'
|
||||||
|
|
||||||
.gl-border-b-0.gl-mb-0.gl-pt-4
|
.container-fluid{ class: [container_class] }
|
||||||
|
.gl-border-b-0.gl-mb-0.gl-pt-4
|
||||||
.js-signature-container{ data: { 'signatures-path' => signatures_namespace_project_compare_index_path } }
|
.js-signature-container{ data: { 'signatures-path' => signatures_namespace_project_compare_index_path } }
|
||||||
#js-compare-selector{ data: project_compare_selector_data(@project, @merge_request, params) }
|
#js-compare-selector{ data: project_compare_selector_data(@project, @merge_request, params) }
|
||||||
|
|
||||||
- if has_diff
|
- if has_diff
|
||||||
|
.container-fluid{ class: [container_class] }
|
||||||
= render "projects/commits/commit_list" unless hide_commit_list
|
= render "projects/commits/commit_list" unless hide_commit_list
|
||||||
|
.container-fluid
|
||||||
= render "projects/diffs/diffs",
|
= render "projects/diffs/diffs",
|
||||||
diffs: @diffs,
|
diffs: @diffs,
|
||||||
environment: @environment,
|
environment: @environment,
|
||||||
|
|
@ -18,6 +23,7 @@
|
||||||
paginate_diffs: true,
|
paginate_diffs: true,
|
||||||
paginate_diffs_per_page: Projects::CompareController::COMMIT_DIFFS_PER_PAGE
|
paginate_diffs_per_page: Projects::CompareController::COMMIT_DIFFS_PER_PAGE
|
||||||
- else
|
- else
|
||||||
|
.container-fluid
|
||||||
= render Pajamas::CardComponent.new(card_options: { class: "gl-bg-gray-10" }) do |c|
|
= render Pajamas::CardComponent.new(card_options: { class: "gl-bg-gray-10" }) do |c|
|
||||||
- c.with_body do
|
- c.with_body do
|
||||||
= render Pajamas::EmptyStateComponent.new(svg_path: 'illustrations/empty-state/empty-commit-md.svg',
|
= render Pajamas::EmptyStateComponent.new(svg_path: 'illustrations/empty-state/empty-commit-md.svg',
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
.detail-page-description.gl-pt-2.gl-pb-4.gl-display-flex.gl-align-items-baseline.gl-flex-wrap{ class: "#{'is-merge-request' if !fluid_layout}" }
|
.detail-page-description.gl-pt-2.gl-pb-4.gl-display-flex.gl-align-items-baseline.gl-flex-wrap{ class: "#{'is-merge-request' if !fluid_layout}" }
|
||||||
.js-mr-header{ data: { project_path: @merge_request.project.path_with_namespace, hidden: @merge_request.hidden?.to_s, iid: @merge_request.iid, state: @merge_request.state } }
|
.js-mr-header{ data: { project_path: @merge_request.project.path_with_namespace, hidden: @merge_request.hidden?.to_s, imported: @merge_request.imported?.to_s, iid: @merge_request.iid, state: @merge_request.state } }
|
||||||
= merge_request_header(@project, @merge_request)
|
= merge_request_header(@project, @merge_request)
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
.merge-request{ data: { mr_action: mr_action, url: merge_request_path(@merge_request, format: :json), project_path: project_path(@merge_request.project), lock_version: @merge_request.lock_version, diffs_batch_cache_key: @diffs_batch_cache_key } }
|
.merge-request{ data: { mr_action: mr_action, url: merge_request_path(@merge_request, format: :json), project_path: project_path(@merge_request.project), lock_version: @merge_request.lock_version, diffs_batch_cache_key: @diffs_batch_cache_key } }
|
||||||
= render "projects/merge_requests/mr_title"
|
= render "projects/merge_requests/mr_title"
|
||||||
#js-merge-sticky-header{ data: { data: sticky_header_data.to_json } }
|
#js-merge-sticky-header{ data: { data: sticky_header_data(@project, @merge_request).to_json } }
|
||||||
.merge-request-details.issuable-details{ data: { id: @merge_request.project.id } }
|
.merge-request-details.issuable-details{ data: { id: @merge_request.project.id } }
|
||||||
= render "projects/merge_requests/mr_box"
|
= render "projects/merge_requests/mr_box"
|
||||||
.gl-static.merge-request-tabs-holder{ class: "#{'js-tabs-affix' unless ENV['RAILS_ENV'] == 'test'}" }
|
.gl-static.merge-request-tabs-holder{ class: "#{'js-tabs-affix' unless ENV['RAILS_ENV'] == 'test'}" }
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,8 @@
|
||||||
%span.system-note-separator.gl-display-none.gl-sm-display-inline
|
%span.system-note-separator.gl-display-none.gl-sm-display-inline
|
||||||
·
|
·
|
||||||
%a.system-note-separator{ href: "##{dom_id(note)}" }= time_ago_with_tooltip(note.created_at, placement: 'bottom', html_class: 'note-created-ago')
|
%a.system-note-separator{ href: "##{dom_id(note)}" }= time_ago_with_tooltip(note.created_at, placement: 'bottom', html_class: 'note-created-ago')
|
||||||
|
- if note.imported?
|
||||||
|
= render "import/shared/imported_badge", importable: note.system? ? _('activity') : _('comment')
|
||||||
- unless note.system?
|
- unless note.system?
|
||||||
.note-actions
|
.note-actions
|
||||||
- if note.for_personal_snippet?
|
- if note.for_personal_snippet?
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
---
|
|
||||||
name: resolve_all_organization_groups
|
|
||||||
feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/444218
|
|
||||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/146600
|
|
||||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/444981
|
|
||||||
milestone: '16.11'
|
|
||||||
group: group::tenant scale
|
|
||||||
type: gitlab_com_derisk
|
|
||||||
default_enabled: false
|
|
||||||
|
|
@ -148,7 +148,7 @@ License.current.license_id
|
||||||
License.current.data
|
License.current.data
|
||||||
|
|
||||||
# Confirm the current billable seat count excluding guest users. This is useful for customers who use an Ultimate subscription tier where Guest seats are not counted.
|
# Confirm the current billable seat count excluding guest users. This is useful for customers who use an Ultimate subscription tier where Guest seats are not counted.
|
||||||
User.active.without_bots.excluding_guests.count
|
User.active.without_bots.excluding_guests_and_requests.count
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -225,7 +225,7 @@ LFS objects are also [S3-compatible](lfs/index.md#storing-lfs-objects-in-remote-
|
||||||
|
|
||||||
## Configure where new repositories are stored
|
## Configure where new repositories are stored
|
||||||
|
|
||||||
After you configure multiple repository storages, you can choose where new repositories are stored:
|
After you [configure multiple repository storages](https://docs.gitlab.com/omnibus/settings/configuration.html#store-git-data-in-an-alternative-directory), you can choose where new repositories are stored:
|
||||||
|
|
||||||
1. On the left sidebar, at the bottom, select **Admin Area**.
|
1. On the left sidebar, at the bottom, select **Admin Area**.
|
||||||
1. Select **Settings > Repository**.
|
1. Select **Settings > Repository**.
|
||||||
|
|
|
||||||
|
|
@ -5460,7 +5460,7 @@ Input type: `IntegrationExclusionCreateInput`
|
||||||
| ---- | ---- | ----------- |
|
| ---- | ---- | ----------- |
|
||||||
| <a id="mutationintegrationexclusioncreateclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
|
| <a id="mutationintegrationexclusioncreateclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
|
||||||
| <a id="mutationintegrationexclusioncreateintegrationname"></a>`integrationName` | [`IntegrationType!`](#integrationtype) | Type of integration to exclude. |
|
| <a id="mutationintegrationexclusioncreateintegrationname"></a>`integrationName` | [`IntegrationType!`](#integrationtype) | Type of integration to exclude. |
|
||||||
| <a id="mutationintegrationexclusioncreateprojectids"></a>`projectIds` | [`[ProjectID!]!`](#projectid) | Ids of projects to exclude. |
|
| <a id="mutationintegrationexclusioncreateprojectids"></a>`projectIds` | [`[ProjectID!]!`](#projectid) | IDs of projects to exclude up to a maximum of 100. |
|
||||||
|
|
||||||
#### Fields
|
#### Fields
|
||||||
|
|
||||||
|
|
@ -5484,7 +5484,7 @@ Input type: `IntegrationExclusionDeleteInput`
|
||||||
| ---- | ---- | ----------- |
|
| ---- | ---- | ----------- |
|
||||||
| <a id="mutationintegrationexclusiondeleteclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
|
| <a id="mutationintegrationexclusiondeleteclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
|
||||||
| <a id="mutationintegrationexclusiondeleteintegrationname"></a>`integrationName` | [`IntegrationType!`](#integrationtype) | Type of integration. |
|
| <a id="mutationintegrationexclusiondeleteintegrationname"></a>`integrationName` | [`IntegrationType!`](#integrationtype) | Type of integration. |
|
||||||
| <a id="mutationintegrationexclusiondeleteprojectids"></a>`projectIds` | [`[ProjectID!]!`](#projectid) | Id of excluded project. |
|
| <a id="mutationintegrationexclusiondeleteprojectids"></a>`projectIds` | [`[ProjectID!]!`](#projectid) | IDs of excluded projects. |
|
||||||
|
|
||||||
#### Fields
|
#### Fields
|
||||||
|
|
||||||
|
|
@ -15690,6 +15690,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="addonuserassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="addonuserassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="addonuserassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="addonuserassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="addonuserassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="addonuserassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="addonuserassignedmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="addonuserassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="addonuserassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="addonuserassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="addonuserassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="addonuserassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="addonuserassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -15728,6 +15729,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="addonuserauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="addonuserauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="addonuserauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="addonuserauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="addonuserauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="addonuserauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="addonuserauthoredmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="addonuserauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="addonuserauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="addonuserauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="addonuserauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="addonuserauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="addonuserauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -16452,6 +16454,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="autocompleteduserassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="autocompleteduserassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="autocompleteduserassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="autocompleteduserassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="autocompleteduserassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="autocompleteduserassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="autocompleteduserassignedmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="autocompleteduserassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="autocompleteduserassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="autocompleteduserassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="autocompleteduserassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="autocompleteduserassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="autocompleteduserassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -16490,6 +16493,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="autocompleteduserauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="autocompleteduserauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="autocompleteduserauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="autocompleteduserauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="autocompleteduserauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="autocompleteduserauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="autocompleteduserauthoredmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="autocompleteduserauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="autocompleteduserauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="autocompleteduserauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="autocompleteduserauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="autocompleteduserauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="autocompleteduserauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -18624,6 +18628,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="currentuserassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="currentuserassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="currentuserassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="currentuserassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="currentuserassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="currentuserassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="currentuserassignedmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="currentuserassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="currentuserassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="currentuserassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="currentuserassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="currentuserassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="currentuserassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -18662,6 +18667,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="currentuserauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="currentuserauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="currentuserauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="currentuserauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="currentuserauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="currentuserauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="currentuserauthoredmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="currentuserauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="currentuserauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="currentuserauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="currentuserauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="currentuserauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="currentuserauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -23896,6 +23902,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="mergerequestassigneeassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="mergerequestassigneeassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="mergerequestassigneeassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="mergerequestassigneeassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="mergerequestassigneeassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="mergerequestassigneeassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="mergerequestassigneeassignedmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="mergerequestassigneeassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="mergerequestassigneeassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="mergerequestassigneeassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="mergerequestassigneeassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="mergerequestassigneeassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="mergerequestassigneeassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -23934,6 +23941,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="mergerequestassigneeauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="mergerequestassigneeauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="mergerequestassigneeauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="mergerequestassigneeauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="mergerequestassigneeauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="mergerequestassigneeauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="mergerequestassigneeauthoredmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="mergerequestassigneeauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="mergerequestassigneeauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="mergerequestassigneeauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="mergerequestassigneeauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="mergerequestassigneeauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="mergerequestassigneeauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -24206,6 +24214,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="mergerequestauthorassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="mergerequestauthorassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="mergerequestauthorassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="mergerequestauthorassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="mergerequestauthorassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="mergerequestauthorassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="mergerequestauthorassignedmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="mergerequestauthorassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="mergerequestauthorassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="mergerequestauthorassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="mergerequestauthorassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="mergerequestauthorassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="mergerequestauthorassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -24244,6 +24253,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="mergerequestauthorauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="mergerequestauthorauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="mergerequestauthorauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="mergerequestauthorauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="mergerequestauthorauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="mergerequestauthorauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="mergerequestauthorauthoredmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="mergerequestauthorauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="mergerequestauthorauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="mergerequestauthorauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="mergerequestauthorauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="mergerequestauthorauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="mergerequestauthorauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -24563,6 +24573,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="mergerequestparticipantassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="mergerequestparticipantassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="mergerequestparticipantassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="mergerequestparticipantassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="mergerequestparticipantassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="mergerequestparticipantassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="mergerequestparticipantassignedmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="mergerequestparticipantassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="mergerequestparticipantassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="mergerequestparticipantassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="mergerequestparticipantassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="mergerequestparticipantassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="mergerequestparticipantassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -24601,6 +24612,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="mergerequestparticipantauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="mergerequestparticipantauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="mergerequestparticipantauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="mergerequestparticipantauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="mergerequestparticipantauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="mergerequestparticipantauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="mergerequestparticipantauthoredmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="mergerequestparticipantauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="mergerequestparticipantauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="mergerequestparticipantauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="mergerequestparticipantauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="mergerequestparticipantauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="mergerequestparticipantauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -24909,6 +24921,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="mergerequestreviewerassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="mergerequestreviewerassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="mergerequestreviewerassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="mergerequestreviewerassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="mergerequestreviewerassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="mergerequestreviewerassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="mergerequestreviewerassignedmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="mergerequestreviewerassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="mergerequestreviewerassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="mergerequestreviewerassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="mergerequestreviewerassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="mergerequestreviewerassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="mergerequestreviewerassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -24947,6 +24960,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="mergerequestreviewerauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="mergerequestreviewerauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="mergerequestreviewerauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="mergerequestreviewerauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="mergerequestreviewerauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="mergerequestreviewerauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="mergerequestreviewerauthoredmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="mergerequestreviewerauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="mergerequestreviewerauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="mergerequestreviewerauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="mergerequestreviewerauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="mergerequestreviewerauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="mergerequestreviewerauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -27865,6 +27879,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="projectmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="projectmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="projectmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="projectmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="projectmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="projectmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="projectmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="projectmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="projectmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="projectmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="projectmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="projectmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="projectmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -30605,6 +30620,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="usercoreassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="usercoreassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="usercoreassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="usercoreassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="usercoreassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="usercoreassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="usercoreassignedmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="usercoreassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="usercoreassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="usercoreassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="usercoreassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="usercoreassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="usercoreassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -30643,6 +30659,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="usercoreauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="usercoreauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="usercoreauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="usercoreauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="usercoreauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="usercoreauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="usercoreauthoredmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="usercoreauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="usercoreauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="usercoreauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="usercoreauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="usercoreauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="usercoreauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -34448,6 +34465,15 @@ Status of a requirement based on last test report.
|
||||||
| <a id="requirementstatusfiltermissing"></a>`MISSING` | Requirements without any test report. |
|
| <a id="requirementstatusfiltermissing"></a>`MISSING` | Requirements without any test report. |
|
||||||
| <a id="requirementstatusfilterpassed"></a>`PASSED` | Passed test report. |
|
| <a id="requirementstatusfilterpassed"></a>`PASSED` | Passed test report. |
|
||||||
|
|
||||||
|
### `ReviewerWildcardId`
|
||||||
|
|
||||||
|
Reviewer ID wildcard values.
|
||||||
|
|
||||||
|
| Value | Description |
|
||||||
|
| ----- | ----------- |
|
||||||
|
| <a id="reviewerwildcardidany"></a>`ANY` | Any reviewer is assigned. |
|
||||||
|
| <a id="reviewerwildcardidnone"></a>`NONE` | No reviewer is assigned. |
|
||||||
|
|
||||||
### `SastUiComponentSize`
|
### `SastUiComponentSize`
|
||||||
|
|
||||||
Size of UI component in SAST configuration page.
|
Size of UI component in SAST configuration page.
|
||||||
|
|
@ -36805,6 +36831,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="userassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="userassignedmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="userassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="userassignedmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="userassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="userassignedmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="userassignedmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="userassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="userassignedmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="userassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="userassignedmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="userassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="userassignedmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
@ -36843,6 +36870,7 @@ four standard [pagination arguments](#pagination-arguments):
|
||||||
| <a id="userauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
| <a id="userauthoredmergerequestsreviewstate"></a>`reviewState` **{warning-solid}** | [`MergeRequestReviewState`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer state of the merge request. |
|
||||||
| <a id="userauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
| <a id="userauthoredmergerequestsreviewstates"></a>`reviewStates` **{warning-solid}** | [`[MergeRequestReviewState!]`](#mergerequestreviewstate) | **Introduced** in GitLab 17.0. **Status**: Experiment. Reviewer states of the merge request. |
|
||||||
| <a id="userauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
| <a id="userauthoredmergerequestsreviewerusername"></a>`reviewerUsername` | [`String`](#string) | Username of the reviewer. |
|
||||||
|
| <a id="userauthoredmergerequestsreviewerwildcardid"></a>`reviewerWildcardId` | [`ReviewerWildcardId`](#reviewerwildcardid) | Filter by reviewer presence. Incompatible with reviewerUsername. |
|
||||||
| <a id="userauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
| <a id="userauthoredmergerequestssort"></a>`sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. |
|
||||||
| <a id="userauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
| <a id="userauthoredmergerequestssourcebranches"></a>`sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. |
|
||||||
| <a id="userauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
| <a id="userauthoredmergerequestsstate"></a>`state` | [`MergeRequestState`](#mergerequeststate) | Merge request state. If provided, all resolved merge requests will have this state. |
|
||||||
|
|
|
||||||
|
|
@ -303,6 +303,7 @@ To view group import history:
|
||||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/429109) in GitLab 16.6 [with a flag](../../feature_flags.md) named `bulk_import_details_page`. Enabled by default.
|
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/429109) in GitLab 16.6 [with a flag](../../feature_flags.md) named `bulk_import_details_page`. Enabled by default.
|
||||||
> - Feature flag `bulk_import_details_page` removed in GitLab 16.8.
|
> - Feature flag `bulk_import_details_page` removed in GitLab 16.8.
|
||||||
> - Details for partially completed and completed imports [added](https://gitlab.com/gitlab-org/gitlab/-/issues/437874) in GitLab 16.9.
|
> - Details for partially completed and completed imports [added](https://gitlab.com/gitlab-org/gitlab/-/issues/437874) in GitLab 16.9.
|
||||||
|
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/443492) in GitLab 17.0, an **Imported** badge to indicate that designs, epics, issues, merge requests, notes (system notes and comments), snippets, and user profile activity were imported.
|
||||||
|
|
||||||
To review the results of an import:
|
To review the results of an import:
|
||||||
|
|
||||||
|
|
@ -310,6 +311,8 @@ To review the results of an import:
|
||||||
1. To see the details of a failed import, select the **See failures** link on any import with a **Failed** or **Partially completed** status.
|
1. To see the details of a failed import, select the **See failures** link on any import with a **Failed** or **Partially completed** status.
|
||||||
1. If the import has a **Partially completed** or **Complete** status, to see which items were and were not imported, select **Details**.
|
1. If the import has a **Partially completed** or **Complete** status, to see which items were and were not imported, select **Details**.
|
||||||
|
|
||||||
|
You can also see that an item was imported when you see an **Imported** badge on some items in the GitLab UI.
|
||||||
|
|
||||||
## Cancel a running import
|
## Cancel a running import
|
||||||
|
|
||||||
To cancel a running import:
|
To cancel a running import:
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,8 @@ variables:
|
||||||
RUBY_VERSION: "3.1"
|
RUBY_VERSION: "3.1"
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
tags:
|
||||||
|
- gitlab-org
|
||||||
image: "ruby:${RUBY_VERSION}"
|
image: "ruby:${RUBY_VERSION}"
|
||||||
cache:
|
cache:
|
||||||
key: "$[[inputs.gem_name]]-${RUBY_VERSION}"
|
key: "$[[inputs.gem_name]]-${RUBY_VERSION}"
|
||||||
|
|
|
||||||
|
|
@ -695,7 +695,8 @@ module API
|
||||||
elsif supports_direct_download && file.class.direct_download_enabled?
|
elsif supports_direct_download && file.class.direct_download_enabled?
|
||||||
return redirect(ObjectStorage::S3.signed_head_url(file)) if request.head? && file.fog_credentials[:provider] == 'AWS'
|
return redirect(ObjectStorage::S3.signed_head_url(file)) if request.head? && file.fog_credentials[:provider] == 'AWS'
|
||||||
|
|
||||||
redirect(cdn_fronted_url(file))
|
file_url = ObjectStorage::CDN::FileUrl.new(file: file, ip_address: ip_address)
|
||||||
|
redirect(file_url.url)
|
||||||
else
|
else
|
||||||
header(*Gitlab::Workhorse.send_url(file.url))
|
header(*Gitlab::Workhorse.send_url(file.url))
|
||||||
status :ok
|
status :ok
|
||||||
|
|
@ -703,16 +704,6 @@ module API
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def cdn_fronted_url(file)
|
|
||||||
if file.respond_to?(:cdn_enabled_url)
|
|
||||||
result = file.cdn_enabled_url(ip_address)
|
|
||||||
Gitlab::ApplicationContext.push(artifact_used_cdn: result.used_cdn)
|
|
||||||
result.url
|
|
||||||
else
|
|
||||||
file.url
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def increment_counter(event_name)
|
def increment_counter(event_name)
|
||||||
Gitlab::UsageDataCounters.count(event_name)
|
Gitlab::UsageDataCounters.count(event_name)
|
||||||
rescue StandardError => error
|
rescue StandardError => error
|
||||||
|
|
|
||||||
|
|
@ -23115,9 +23115,6 @@ msgstr ""
|
||||||
msgid "Get started"
|
msgid "Get started"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Get started with GitLab"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Get started with error tracking"
|
msgid "Get started with error tracking"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -30357,9 +30354,6 @@ msgstr ""
|
||||||
msgid "LearnGitlab|Contact your administrator to start a free Ultimate trial."
|
msgid "LearnGitlab|Contact your administrator to start a free Ultimate trial."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "LearnGitlab|Ok, let's go"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "LearnGitlab|View administrator list"
|
msgid "LearnGitlab|View administrator list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -42398,9 +42392,6 @@ msgstr ""
|
||||||
msgid "Read their documentation."
|
msgid "Read their documentation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Ready to get started with GitLab? Follow these steps to set up your workspace, plan and commit changes, and deploy your project."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Ready to merge by members who can write to the target branch."
|
msgid "Ready to merge by members who can write to the target branch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ module QA
|
||||||
personal_access_token: ENV['GITLAB_QA_ACCESS_TOKEN'])
|
personal_access_token: ENV['GITLAB_QA_ACCESS_TOKEN'])
|
||||||
@delete_before = Date.parse(ENV['DELETE_BEFORE'] || (Date.today - 1).to_s)
|
@delete_before = Date.parse(ENV['DELETE_BEFORE'] || (Date.today - 1).to_s)
|
||||||
@dry_run = dry_run
|
@dry_run = dry_run
|
||||||
|
@permanently_delete = !!(ENV['PERMANENTLY_DELETE'].to_s =~ /true|1|y/i)
|
||||||
@type = nil
|
@type = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -47,7 +48,7 @@ module QA
|
||||||
response = delete(resource_request(resource, permanently_remove: true, full_path: path))
|
response = delete(resource_request(resource, permanently_remove: true, full_path: path))
|
||||||
wait_for_resource_deletion(resource, true) if success?(response&.code)
|
wait_for_resource_deletion(resource, true) if success?(response&.code)
|
||||||
|
|
||||||
if success?(response&.code) && permanently_deleted?(resource)
|
if permanently_deleted?(resource)
|
||||||
log_permanent_deletion(resource)
|
log_permanent_deletion(resource)
|
||||||
else
|
else
|
||||||
log_failure(resource, response)
|
log_failure(resource, response)
|
||||||
|
|
@ -84,7 +85,9 @@ module QA
|
||||||
|
|
||||||
return log_failure(resource, response) unless mark_for_deletion_possible?(resource)
|
return log_failure(resource, response) unless mark_for_deletion_possible?(resource)
|
||||||
|
|
||||||
ENV['PERMANENTLY_DELETE'] ? delete_permanently(resource) : log_marked_for_deletion(resource)
|
@permanently_delete ? delete_permanently(resource) : log_marked_for_deletion(resource)
|
||||||
|
elsif response&.code == 404
|
||||||
|
log_permanent_deletion(resource)
|
||||||
else
|
else
|
||||||
log_failure(resource, response)
|
log_failure(resource, response)
|
||||||
end
|
end
|
||||||
|
|
@ -183,7 +186,7 @@ module QA
|
||||||
# @return [Array<String, Hash>] results
|
# @return [Array<String, Hash>] results
|
||||||
def log_failure(resource, response)
|
def log_failure(resource, response)
|
||||||
path = resource_path(resource)
|
path = resource_path(resource)
|
||||||
logger.error("\e[31mFAILED\e[0m to delete #{@type} #{path} with #{response.code}. Resource still exists.\n")
|
logger.error("\e[31mFAILED\e[0m to delete #{@type} #{path} with #{response.code}.\n")
|
||||||
["failed_deletions", { path: path, response: response }]
|
["failed_deletions", { path: path, response: response }]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -228,6 +231,8 @@ module QA
|
||||||
print_failed_deletion_attempts(failed_deletions)
|
print_failed_deletion_attempts(failed_deletions)
|
||||||
|
|
||||||
logger.info('Done')
|
logger.info('Done')
|
||||||
|
|
||||||
|
exit 1 unless failed_deletions.blank?
|
||||||
end
|
end
|
||||||
|
|
||||||
# Check if a resource can be marked for deletion
|
# Check if a resource can be marked for deletion
|
||||||
|
|
@ -301,7 +306,11 @@ module QA
|
||||||
wait_until(max_duration: 60, sleep_interval: 1, raise_on_failure: false) do
|
wait_until(max_duration: 60, sleep_interval: 1, raise_on_failure: false) do
|
||||||
response = get(resource_request(resource))
|
response = get(resource_request(resource))
|
||||||
|
|
||||||
permanent ? response.code == 404 : response.code == 404 || marked_for_deletion?(parse_body(response))
|
if permanent
|
||||||
|
response&.code == 404
|
||||||
|
else
|
||||||
|
response&.code == 404 || (success?(response&.code) && marked_for_deletion?(parse_body(response)))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,10 @@ RSpec.describe SendFileUpload, feature_category: :user_profile do
|
||||||
end
|
end
|
||||||
|
|
||||||
def current_user; end
|
def current_user; end
|
||||||
|
|
||||||
|
def request
|
||||||
|
ActionDispatch::Request.new({})
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ exports[`Design management design index page when loaded renders design index 1`
|
||||||
iid="1"
|
iid="1"
|
||||||
image="test.jpg"
|
image="test.jpg"
|
||||||
imagev432x230="test.jpg"
|
imagev432x230="test.jpg"
|
||||||
|
imported="true"
|
||||||
islatestversion="true"
|
islatestversion="true"
|
||||||
issidebaropen="true"
|
issidebaropen="true"
|
||||||
issue="[object Object]"
|
issue="[object Object]"
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ export const createGQLSnippet = () => ({
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
hidden: false,
|
hidden: false,
|
||||||
|
imported: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
export const createGQLSnippetsQueryResponse = (snippets) => ({
|
export const createGQLSnippetsQueryResponse = (snippets) => ({
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,16 @@ RSpec.describe Resolvers::ProjectMergeRequestsResolver do
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
let_it_be(:merge_request2) do
|
||||||
|
create(
|
||||||
|
:merge_request,
|
||||||
|
:unique_branches,
|
||||||
|
source_project: project,
|
||||||
|
target_project: project,
|
||||||
|
author: other_user
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
context 'by assignee' do
|
context 'by assignee' do
|
||||||
it 'filters merge requests by assignee username' do
|
it 'filters merge requests by assignee username' do
|
||||||
result = resolve_mr(project, assignee_username: other_user.username)
|
result = resolve_mr(project, assignee_username: other_user.username)
|
||||||
|
|
@ -40,7 +50,7 @@ RSpec.describe Resolvers::ProjectMergeRequestsResolver do
|
||||||
it 'filters merge requests by author username' do
|
it 'filters merge requests by author username' do
|
||||||
result = resolve_mr(project, author_username: other_user.username)
|
result = resolve_mr(project, author_username: other_user.username)
|
||||||
|
|
||||||
expect(result).to contain_exactly(merge_request)
|
expect(result).to contain_exactly(merge_request, merge_request2)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not find anything' do
|
it 'does not find anything' do
|
||||||
|
|
@ -64,6 +74,20 @@ RSpec.describe Resolvers::ProjectMergeRequestsResolver do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with reviewer wildcard param' do
|
||||||
|
it 'filters merge requests by NONE wildcard' do
|
||||||
|
result = resolve_mr(project, reviewer_wildcard_id: 'NONE')
|
||||||
|
|
||||||
|
expect(result).to contain_exactly(merge_request2)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'filters merge requests by ANY wildcard' do
|
||||||
|
result = resolve_mr(project, reviewer_wildcard_id: 'ANY')
|
||||||
|
|
||||||
|
expect(result).to contain_exactly(merge_request)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def resolve_mr(project, resolver: described_class, user: current_user, **args)
|
def resolve_mr(project, resolver: described_class, user: current_user, **args)
|
||||||
resolve(resolver, obj: project, args: args, ctx: { current_user: user })
|
resolve(resolver, obj: project, args: args, ctx: { current_user: user })
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -354,6 +354,7 @@ RSpec.describe GitlabSchema.types['Project'], feature_category: :groups_and_proj
|
||||||
:author_username,
|
:author_username,
|
||||||
:assignee_username,
|
:assignee_username,
|
||||||
:reviewer_username,
|
:reviewer_username,
|
||||||
|
:reviewer_wildcard_id,
|
||||||
:review_state,
|
:review_state,
|
||||||
:review_states,
|
:review_states,
|
||||||
:milestone_title,
|
:milestone_title,
|
||||||
|
|
|
||||||
|
|
@ -252,6 +252,7 @@ RSpec.describe IssuablesHelper, feature_category: :team_planning do
|
||||||
canUpdate: true,
|
canUpdate: true,
|
||||||
canDestroy: true,
|
canDestroy: true,
|
||||||
issuableRef: "##{issue.iid}",
|
issuableRef: "##{issue.iid}",
|
||||||
|
imported: issue.imported?,
|
||||||
markdownPreviewPath: "/#{@project.full_path}/preview_markdown?target_id=#{issue.iid}&target_type=Issue",
|
markdownPreviewPath: "/#{@project.full_path}/preview_markdown?target_id=#{issue.iid}&target_type=Issue",
|
||||||
markdownDocsPath: '/help/user/markdown',
|
markdownDocsPath: '/help/user/markdown',
|
||||||
lockVersion: issue.lock_version,
|
lockVersion: issue.lock_version,
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ RSpec.describe MergeRequestsHelper, feature_category: :code_review_workflow do
|
||||||
include ProjectForksHelper
|
include ProjectForksHelper
|
||||||
include IconsHelper
|
include IconsHelper
|
||||||
include IssuablesHelper
|
include IssuablesHelper
|
||||||
|
include MarkupHelper
|
||||||
|
|
||||||
let_it_be(:current_user) { create(:user) }
|
let_it_be(:current_user) { create(:user) }
|
||||||
|
|
||||||
|
|
@ -218,6 +219,31 @@ RSpec.describe MergeRequestsHelper, feature_category: :code_review_workflow do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#sticky_header_data' do
|
||||||
|
let_it_be(:project) { create(:project) }
|
||||||
|
let(:merge_request) do
|
||||||
|
create(:merge_request, source_project: project, target_project: project, imported_from: imported_from)
|
||||||
|
end
|
||||||
|
|
||||||
|
subject { sticky_header_data(project, merge_request) }
|
||||||
|
|
||||||
|
context 'when the merge request is not imported' do
|
||||||
|
let(:imported_from) { :none }
|
||||||
|
|
||||||
|
it 'returns data with imported set as false' do
|
||||||
|
expect(subject[:imported]).to eq('false')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when the merge request is imported' do
|
||||||
|
let(:imported_from) { :gitlab_migration }
|
||||||
|
|
||||||
|
it 'returns data with imported set as true' do
|
||||||
|
expect(subject[:imported]).to eq('true')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '#tab_count_display' do
|
describe '#tab_count_display' do
|
||||||
let(:merge_request) { create(:merge_request) }
|
let(:merge_request) { create(:merge_request) }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1174,7 +1174,9 @@ RSpec.describe API::Helpers, feature_category: :shared do
|
||||||
|
|
||||||
it 'redirects to a CDN-fronted URL' do
|
it 'redirects to a CDN-fronted URL' do
|
||||||
expect(helper).to receive(:redirect)
|
expect(helper).to receive(:redirect)
|
||||||
expect(helper).to receive(:cdn_fronted_url).and_call_original
|
expect_next_instance_of(ObjectStorage::CDN::FileUrl) do |instance|
|
||||||
|
expect(instance).to receive(:url).and_call_original
|
||||||
|
end
|
||||||
expect(Gitlab::ApplicationContext).to receive(:push).with(artifact: artifact.file.model).and_call_original
|
expect(Gitlab::ApplicationContext).to receive(:push).with(artifact: artifact.file.model).and_call_original
|
||||||
expect(Gitlab::ApplicationContext).to receive(:push).with(artifact_used_cdn: false).and_call_original
|
expect(Gitlab::ApplicationContext).to receive(:push).with(artifact_used_cdn: false).and_call_original
|
||||||
|
|
||||||
|
|
@ -1195,35 +1197,6 @@ RSpec.describe API::Helpers, feature_category: :shared do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#cdn_frontend_url' do
|
|
||||||
before do
|
|
||||||
allow(helper).to receive(:env).and_return({})
|
|
||||||
|
|
||||||
stub_artifacts_object_storage(enabled: true)
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'with a CI artifact' do
|
|
||||||
let(:artifact) { create(:ci_job_artifact, :zip, :remote_store) }
|
|
||||||
|
|
||||||
it 'retrieves a CDN-fronted URL' do
|
|
||||||
expect(artifact.file).to receive(:cdn_enabled_url).and_call_original
|
|
||||||
expect(Gitlab::ApplicationContext).to receive(:push).with(artifact_used_cdn: false).and_call_original
|
|
||||||
expect(helper.cdn_fronted_url(artifact.file)).to be_a(String)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'with a file upload' do
|
|
||||||
let(:url) { 'https://example.com/path/to/upload' }
|
|
||||||
|
|
||||||
it 'retrieves the file URL' do
|
|
||||||
file = double(url: url)
|
|
||||||
|
|
||||||
expect(Gitlab::ApplicationContext).not_to receive(:push)
|
|
||||||
expect(helper.cdn_fronted_url(file)).to eq(url)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#order_by_similarity?' do
|
describe '#order_by_similarity?' do
|
||||||
where(:params, :allow_unauthorized, :current_user_set, :expected) do
|
where(:params, :allow_unauthorized, :current_user_set, :expected) do
|
||||||
{} | false | false | false
|
{} | false | false | false
|
||||||
|
|
|
||||||
|
|
@ -56,5 +56,21 @@ RSpec.describe Mutations::Integrations::Exclusions::Create, feature_category: :i
|
||||||
expect(existing_exclusion.inherit_from_id).to be_nil
|
expect(existing_exclusion.inherit_from_id).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'and the number of project ids exceeds the maximum' do
|
||||||
|
let(:stubbed_limit) { 1 }
|
||||||
|
let(:project_ids) { [project, project2].map { |p| p.to_global_id.to_s } }
|
||||||
|
|
||||||
|
before do
|
||||||
|
stub_const("#{described_class.name}::MAX_PROJECT_IDS", stubbed_limit)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'responds with an error' do
|
||||||
|
resolve_mutation
|
||||||
|
expect(graphql_errors.first['message']).to eq(
|
||||||
|
"Count of projectIds should be less than #{stubbed_limit}"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -41,12 +41,14 @@ RSpec.describe Mutations::Integrations::Exclusions::Delete, feature_category: :i
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'and there are integrations' do
|
context 'and there are integrations' do
|
||||||
let!(:instance_integration) { create(:beyond_identity_integration) }
|
|
||||||
let!(:existing_exclusion) do
|
let!(:existing_exclusion) do
|
||||||
create(:beyond_identity_integration, project: project, active: false, inherit_from_id: nil,
|
create(:beyond_identity_integration, project: project, active: false, inherit_from_id: nil,
|
||||||
instance: false)
|
instance: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'and the integration is active for the instance' do
|
||||||
|
let!(:instance_integration) { create(:beyond_identity_integration) }
|
||||||
|
|
||||||
it 'enables the integration for the specified project' do
|
it 'enables the integration for the specified project' do
|
||||||
resolve_mutation
|
resolve_mutation
|
||||||
|
|
||||||
|
|
@ -57,5 +59,11 @@ RSpec.describe Mutations::Integrations::Exclusions::Delete, feature_category: :i
|
||||||
expect(exclusion_response['project']['id']).to eq(project.to_global_id.to_s)
|
expect(exclusion_response['project']['id']).to eq(project.to_global_id.to_s)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'deletes the integration' do
|
||||||
|
expect { resolve_mutation }.to change { Integration.count }.from(1).to(0)
|
||||||
|
expect(graphql_errors).to be_nil
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -149,26 +149,6 @@ RSpec.describe 'getting organization information', feature_category: :cell do
|
||||||
expect(groups.pluck('id')).to match_array(expected_groups)
|
expect(groups.pluck('id')).to match_array(expected_groups)
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when resolve_all_organization_groups feature flag is disabled' do
|
|
||||||
before do
|
|
||||||
stub_feature_flags(resolve_all_organization_groups: false)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'does not return ancestors of authorized groups' do
|
|
||||||
request_organization
|
|
||||||
|
|
||||||
expect(groups.pluck('id')).not_to include(parent_group_global_id)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'does not return all visible groups' do
|
|
||||||
request_organization
|
|
||||||
|
|
||||||
visible_groups = [parent_group, organization_group]
|
|
||||||
.map { |group| group.to_global_id.to_s }
|
|
||||||
expect(groups.pluck('id')).not_to include(*visible_groups)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'with `search` argument' do
|
context 'with `search` argument' do
|
||||||
let(:search) { 'oth' }
|
let(:search) { 'oth' }
|
||||||
let(:organization_fields) do
|
let(:organization_fields) do
|
||||||
|
|
|
||||||
|
|
@ -716,11 +716,14 @@ RSpec.describe API::Issues, feature_category: :team_planning do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns 404 if issue id not found' do
|
it 'returns 404 if issue id not found' do
|
||||||
get api("/projects/#{project.id}/issues/54321", user)
|
get api("/projects/#{project.id}/issues/#{non_existing_record_id}", user)
|
||||||
expect(response).to have_gitlab_http_status(:not_found)
|
expect(response).to have_gitlab_http_status(:not_found)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns 404 if the issue ID is used' do
|
it 'returns 404 if the issue ID is used' do
|
||||||
|
# Make sure other issues don't exist with a matching iid
|
||||||
|
Issue.where.not(id: issue.id).delete_all
|
||||||
|
|
||||||
get api("/projects/#{project.id}/issues/#{issue.id}", user)
|
get api("/projects/#{project.id}/issues/#{issue.id}", user)
|
||||||
|
|
||||||
expect(response).to have_gitlab_http_status(:not_found)
|
expect(response).to have_gitlab_http_status(:not_found)
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ RSpec.shared_examples 'issuable participants endpoint' do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns a 404 when id is used instead of iid' do
|
it 'returns a 404 when id is used instead of iid' do
|
||||||
|
# Make sure other entities don't exist with a matching iid
|
||||||
|
entity.class.where.not(id: entity.id).delete_all
|
||||||
|
|
||||||
get api("/projects/#{project.id}/#{area}/#{entity.id}/participants", user)
|
get api("/projects/#{project.id}/#{area}/#{entity.id}/participants", user)
|
||||||
|
|
||||||
expect(response).to have_gitlab_http_status(:not_found)
|
expect(response).to have_gitlab_http_status(:not_found)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
RSpec.describe ObjectStorage::CDN::FileUrl, feature_category: :source_code_management do
|
||||||
|
subject(:file_url) do
|
||||||
|
described_class.new(
|
||||||
|
file: file,
|
||||||
|
ip_address: ip_address,
|
||||||
|
redirect_params: redirect_params)
|
||||||
|
end
|
||||||
|
|
||||||
|
let(:ip_address) { '127.0.0.1' }
|
||||||
|
let(:redirect_params) { {} }
|
||||||
|
|
||||||
|
describe '#url' do
|
||||||
|
before do
|
||||||
|
stub_artifacts_object_storage(enabled: true)
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with a CI artifact' do
|
||||||
|
let(:file) { create(:ci_job_artifact, :zip, :remote_store).file }
|
||||||
|
|
||||||
|
it 'retrieves a CDN-frontend URL' do
|
||||||
|
expect(::Gitlab::ApplicationContext).to receive(:push).with(artifact_used_cdn: false).and_call_original
|
||||||
|
expect(file_url.url).to be_a(String)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with a file upload' do
|
||||||
|
let(:expected_url) { 'https://example.com/path/to/upload' }
|
||||||
|
let(:file) { instance_double(::GitlabUploader, url: expected_url) }
|
||||||
|
|
||||||
|
it 'retrieves the file URL' do
|
||||||
|
expect(::Gitlab::ApplicationContext).not_to receive(:push)
|
||||||
|
expect(file_url.url).to eq(expected_url)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Reference in New Issue