Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
76bbc06371
commit
7162e84914
130 changed files with 778 additions and 791 deletions
|
@ -1255,68 +1255,68 @@ lib/api/entities/project.rb @gitlab-org/manage/manage-workspace/backend-approver
|
|||
ee/lib/ee/api/entities/project.rb @gitlab-org/manage/manage-workspace/backend-approvers
|
||||
|
||||
[Compliance]
|
||||
/ee/app/services/audit_events/build_service.rb @gitlab-org/manage/compliance
|
||||
/ee/spec/services/audit_events/custom_audit_event_service_spec.rb @gitlab-org/manage/compliance
|
||||
/app/models/audit_event.rb @gitlab-org/manage/compliance
|
||||
/app/services/audit_event_service.rb @gitlab-org/manage/compliance
|
||||
/app/services/concerns/audit_event_save_type.rb @gitlab-org/manage/compliance
|
||||
/app/views/profiles/audit_log.html.haml @gitlab-org/manage/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/audit_events_app.vue @gitlab-org/manage/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/audit_events_export_button.vue @gitlab-org/manage/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/audit_events_filter.vue @gitlab-org/manage/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/audit_events_log.vue @gitlab-org/manage/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/audit_events_stream.vue @gitlab-org/manage/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/audit_events_table.vue @gitlab-org/manage/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/tokens/shared/ @gitlab-org/manage/compliance
|
||||
/ee/app/assets/javascripts/audit_events/init_audit_events.js @gitlab-org/manage/compliance
|
||||
/ee/app/controllers/admin/audit_log_reports_controller.rb @gitlab-org/manage/compliance
|
||||
/ee/app/controllers/admin/audit_logs_controller.rb @gitlab-org/manage/compliance
|
||||
/ee/app/controllers/concerns/audit_events/audit_events_params.rb @gitlab-org/manage/compliance
|
||||
/ee/app/controllers/groups/audit_events_controller.rb @gitlab-org/manage/compliance
|
||||
/ee/app/controllers/projects/audit_events_controller.rb @gitlab-org/manage/compliance
|
||||
/ee/app/finders/audit_event_finder.rb @gitlab-org/manage/compliance
|
||||
/ee/app/graphql/types/audit_events/external_audit_event_destination_type.rb @gitlab-org/manage/compliance
|
||||
/ee/app/helpers/audit_events_helper.rb @gitlab-org/manage/compliance
|
||||
/ee/app/helpers/auditor_user_helper.rb @gitlab-org/manage/compliance
|
||||
/ee/app/models/audit_events/external_audit_event_destination.rb @gitlab-org/manage/compliance
|
||||
/ee/app/models/concerns/auditable.rb @gitlab-org/manage/compliance
|
||||
/ee/app/models/ee/audit_event.rb @gitlab-org/manage/compliance
|
||||
/ee/app/policies/audit_events/external_audit_event_destination_policy.rb @gitlab-org/manage/compliance
|
||||
/ee/app/presenters/audit_event_presenter.rb @gitlab-org/manage/compliance
|
||||
/ee/app/serializers/audit_event_entity.rb @gitlab-org/manage/compliance
|
||||
/ee/app/serializers/audit_event_serializer.rb @gitlab-org/manage/compliance
|
||||
/ee/app/services/ci/audit_variable_change_service.rb @gitlab-org/manage/compliance
|
||||
/ee/app/services/ee/audit_event_service.rb @gitlab-org/manage/compliance
|
||||
/ee/app/views/admin/users/_auditor_access_level_radio.html.haml @gitlab-org/manage/compliance
|
||||
/ee/app/views/admin/users/_auditor_user_badge.html.haml @gitlab-org/manage/compliance
|
||||
/ee/app/views/shared/icons/_icon_audit_events_purple.svg @gitlab-org/manage/compliance
|
||||
/ee/app/views/shared/promotions/_promote_audit_events.html.haml @gitlab-org/manage/compliance
|
||||
/ee/app/workers/audit_events/audit_event_streaming_worker.rb @gitlab-org/manage/compliance
|
||||
/ee/config/events/1652263097_groups__audit_events__index_click_streams_tab.yml @gitlab-org/manage/compliance
|
||||
/ee/config/events/202108302307_admin_audit_logs_index_click_date_range_button.yml @gitlab-org/manage/compliance
|
||||
/ee/config/events/202108302307_groups__audit_events_controller_search_audit_event.yml @gitlab-org/manage/compliance
|
||||
/ee/config/events/202108302307_profiles_controller_search_audit_event.yml @gitlab-org/manage/compliance
|
||||
/ee/config/events/202108302307_projects__audit_events_controller_search_audit_event.yml @gitlab-org/manage/compliance
|
||||
/ee/config/events/202111041910_admin__audit_logs_controller_search_audit_event.yml @gitlab-org/manage/compliance
|
||||
/ee/config/feature_flags/development/audit_event_streaming_git_operations.yml @gitlab-org/manage/compliance
|
||||
/ee/config/feature_flags/development/audit_log_group_level.yml @gitlab-org/manage/compliance
|
||||
/ee/config/metrics/counts_28d/20210216183930_g_compliance_audit_events_monthly.yml @gitlab-org/manage/compliance
|
||||
/ee/config/metrics/counts_28d/20210216183934_i_compliance_audit_events_monthly.yml @gitlab-org/manage/compliance
|
||||
/ee/config/metrics/counts_28d/20210216183942_a_compliance_audit_events_api_monthly.yml @gitlab-org/manage/compliance
|
||||
/ee/config/metrics/counts_28d/20211130085433_g_manage_compliance_audit_event_destinations.yml @gitlab-org/manage/compliance
|
||||
/ee/config/metrics/counts_7d/20210216183906_g_compliance_audit_events.yml @gitlab-org/manage/compliance
|
||||
/ee/config/metrics/counts_7d/20210216183908_i_compliance_audit_events.yml @gitlab-org/manage/compliance
|
||||
/ee/config/metrics/counts_7d/20210216183912_a_compliance_audit_events_api.yml @gitlab-org/manage/compliance
|
||||
/ee/config/metrics/counts_7d/20210216183928_g_compliance_audit_events_weekly.yml @gitlab-org/manage/compliance
|
||||
/ee/config/metrics/counts_7d/20210216183932_i_compliance_audit_events_weekly.yml @gitlab-org/manage/compliance
|
||||
/ee/config/metrics/counts_7d/20210216183940_a_compliance_audit_events_api_weekly.yml @gitlab-org/manage/compliance
|
||||
/ee/config/metrics/counts_all/20211130085433_g_manage_compliance_audit_event_destinations.yml @gitlab-org/manage/compliance
|
||||
/ee/lib/api/audit_events.rb @gitlab-org/manage/compliance
|
||||
/ee/lib/audit/external_status_check_changes_auditor.rb @gitlab-org/manage/compliance
|
||||
/ee/lib/audit/group_merge_request_approval_setting_changes_auditor.rb @gitlab-org/manage/compliance
|
||||
/ee/lib/audit/group_push_rules_changes_auditor.rb @gitlab-org/manage/compliance
|
||||
/ee/lib/ee/api/entities/audit_event.rb @gitlab-org/manage/compliance
|
||||
/ee/lib/ee/audit/ @gitlab-org/manage/compliance
|
||||
/ee/lib/ee/gitlab/audit/ @gitlab-org/manage/compliance
|
||||
/lib/gitlab/audit/auditor.rb @gitlab-org/manage/compliance
|
||||
/lib/gitlab/audit_json_logger.rb @gitlab-org/manage/compliance
|
||||
/ee/app/services/audit_events/build_service.rb @gitlab-org/govern/compliance
|
||||
/ee/spec/services/audit_events/custom_audit_event_service_spec.rb @gitlab-org/govern/compliance
|
||||
/app/models/audit_event.rb @gitlab-org/govern/compliance
|
||||
/app/services/audit_event_service.rb @gitlab-org/govern/compliance
|
||||
/app/services/concerns/audit_event_save_type.rb @gitlab-org/govern/compliance
|
||||
/app/views/profiles/audit_log.html.haml @gitlab-org/govern/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/audit_events_app.vue @gitlab-org/govern/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/audit_events_export_button.vue @gitlab-org/govern/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/audit_events_filter.vue @gitlab-org/govern/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/audit_events_log.vue @gitlab-org/govern/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/audit_events_stream.vue @gitlab-org/govern/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/audit_events_table.vue @gitlab-org/govern/compliance
|
||||
/ee/app/assets/javascripts/audit_events/components/tokens/shared/ @gitlab-org/govern/compliance
|
||||
/ee/app/assets/javascripts/audit_events/init_audit_events.js @gitlab-org/govern/compliance
|
||||
/ee/app/controllers/admin/audit_log_reports_controller.rb @gitlab-org/govern/compliance
|
||||
/ee/app/controllers/admin/audit_logs_controller.rb @gitlab-org/govern/compliance
|
||||
/ee/app/controllers/concerns/audit_events/audit_events_params.rb @gitlab-org/govern/compliance
|
||||
/ee/app/controllers/groups/audit_events_controller.rb @gitlab-org/govern/compliance
|
||||
/ee/app/controllers/projects/audit_events_controller.rb @gitlab-org/govern/compliance
|
||||
/ee/app/finders/audit_event_finder.rb @gitlab-org/govern/compliance
|
||||
/ee/app/graphql/types/audit_events/external_audit_event_destination_type.rb @gitlab-org/govern/compliance
|
||||
/ee/app/helpers/audit_events_helper.rb @gitlab-org/govern/compliance
|
||||
/ee/app/helpers/auditor_user_helper.rb @gitlab-org/govern/compliance
|
||||
/ee/app/models/audit_events/external_audit_event_destination.rb @gitlab-org/govern/compliance
|
||||
/ee/app/models/concerns/auditable.rb @gitlab-org/govern/compliance
|
||||
/ee/app/models/ee/audit_event.rb @gitlab-org/govern/compliance
|
||||
/ee/app/policies/audit_events/external_audit_event_destination_policy.rb @gitlab-org/govern/compliance
|
||||
/ee/app/presenters/audit_event_presenter.rb @gitlab-org/govern/compliance
|
||||
/ee/app/serializers/audit_event_entity.rb @gitlab-org/govern/compliance
|
||||
/ee/app/serializers/audit_event_serializer.rb @gitlab-org/govern/compliance
|
||||
/ee/app/services/ci/audit_variable_change_service.rb @gitlab-org/govern/compliance
|
||||
/ee/app/services/ee/audit_event_service.rb @gitlab-org/govern/compliance
|
||||
/ee/app/views/admin/users/_auditor_access_level_radio.html.haml @gitlab-org/govern/compliance
|
||||
/ee/app/views/admin/users/_auditor_user_badge.html.haml @gitlab-org/govern/compliance
|
||||
/ee/app/views/shared/icons/_icon_audit_events_purple.svg @gitlab-org/govern/compliance
|
||||
/ee/app/views/shared/promotions/_promote_audit_events.html.haml @gitlab-org/govern/compliance
|
||||
/ee/app/workers/audit_events/audit_event_streaming_worker.rb @gitlab-org/govern/compliance
|
||||
/ee/config/events/1652263097_groups__audit_events__index_click_streams_tab.yml @gitlab-org/govern/compliance
|
||||
/ee/config/events/202108302307_admin_audit_logs_index_click_date_range_button.yml @gitlab-org/govern/compliance
|
||||
/ee/config/events/202108302307_groups__audit_events_controller_search_audit_event.yml @gitlab-org/govern/compliance
|
||||
/ee/config/events/202108302307_profiles_controller_search_audit_event.yml @gitlab-org/govern/compliance
|
||||
/ee/config/events/202108302307_projects__audit_events_controller_search_audit_event.yml @gitlab-org/govern/compliance
|
||||
/ee/config/events/202111041910_admin__audit_logs_controller_search_audit_event.yml @gitlab-org/govern/compliance
|
||||
/ee/config/feature_flags/development/audit_event_streaming_git_operations.yml @gitlab-org/govern/compliance
|
||||
/ee/config/feature_flags/development/audit_log_group_level.yml @gitlab-org/govern/compliance
|
||||
/ee/config/metrics/counts_28d/20210216183930_g_compliance_audit_events_monthly.yml @gitlab-org/govern/compliance
|
||||
/ee/config/metrics/counts_28d/20210216183934_i_compliance_audit_events_monthly.yml @gitlab-org/govern/compliance
|
||||
/ee/config/metrics/counts_28d/20210216183942_a_compliance_audit_events_api_monthly.yml @gitlab-org/govern/compliance
|
||||
/ee/config/metrics/counts_28d/20211130085433_g_manage_compliance_audit_event_destinations.yml @gitlab-org/govern/compliance
|
||||
/ee/config/metrics/counts_7d/20210216183906_g_compliance_audit_events.yml @gitlab-org/govern/compliance
|
||||
/ee/config/metrics/counts_7d/20210216183908_i_compliance_audit_events.yml @gitlab-org/govern/compliance
|
||||
/ee/config/metrics/counts_7d/20210216183912_a_compliance_audit_events_api.yml @gitlab-org/govern/compliance
|
||||
/ee/config/metrics/counts_7d/20210216183928_g_compliance_audit_events_weekly.yml @gitlab-org/govern/compliance
|
||||
/ee/config/metrics/counts_7d/20210216183932_i_compliance_audit_events_weekly.yml @gitlab-org/govern/compliance
|
||||
/ee/config/metrics/counts_7d/20210216183940_a_compliance_audit_events_api_weekly.yml @gitlab-org/govern/compliance
|
||||
/ee/config/metrics/counts_all/20211130085433_g_manage_compliance_audit_event_destinations.yml @gitlab-org/govern/compliance
|
||||
/ee/lib/api/audit_events.rb @gitlab-org/govern/compliance
|
||||
/ee/lib/audit/external_status_check_changes_auditor.rb @gitlab-org/govern/compliance
|
||||
/ee/lib/audit/group_merge_request_approval_setting_changes_auditor.rb @gitlab-org/govern/compliance
|
||||
/ee/lib/audit/group_push_rules_changes_auditor.rb @gitlab-org/govern/compliance
|
||||
/ee/lib/ee/api/entities/audit_event.rb @gitlab-org/govern/compliance
|
||||
/ee/lib/ee/audit/ @gitlab-org/govern/compliance
|
||||
/ee/lib/ee/gitlab/audit/ @gitlab-org/govern/compliance
|
||||
/lib/gitlab/audit/auditor.rb @gitlab-org/govern/compliance
|
||||
/lib/gitlab/audit_json_logger.rb @gitlab-org/govern/compliance
|
||||
|
|
|
@ -161,26 +161,6 @@ Layout/SpaceInsideParens:
|
|||
- 'qa/spec/scenario/template_spec.rb'
|
||||
- 'spec/dependencies/omniauth_saml_spec.rb'
|
||||
- 'spec/factories/usage_data.rb'
|
||||
- 'spec/features/boards/board_filters_spec.rb'
|
||||
- 'spec/features/boards/user_visits_board_spec.rb'
|
||||
- 'spec/features/dashboard/datetime_on_tooltips_spec.rb'
|
||||
- 'spec/features/graphql_known_operations_spec.rb'
|
||||
- 'spec/features/groups/activity_spec.rb'
|
||||
- 'spec/features/groups/board_sidebar_spec.rb'
|
||||
- 'spec/features/groups/empty_states_spec.rb'
|
||||
- 'spec/features/groups/issues_spec.rb'
|
||||
- 'spec/features/groups/milestone_spec.rb'
|
||||
- 'spec/features/groups/milestones_sorting_spec.rb'
|
||||
- 'spec/features/issues/create_issue_for_discussions_in_merge_request_spec.rb'
|
||||
- 'spec/features/merge_request/user_edits_assignees_sidebar_spec.rb'
|
||||
- 'spec/features/profiles/two_factor_auths_spec.rb'
|
||||
- 'spec/features/projects/branches/user_views_branches_spec.rb'
|
||||
- 'spec/features/projects/fork_spec.rb'
|
||||
- 'spec/features/projects/issues/viewing_issues_with_external_authorization_enabled_spec.rb'
|
||||
- 'spec/features/projects/jobs_spec.rb'
|
||||
- 'spec/features/projects/pipeline_schedules_spec.rb'
|
||||
- 'spec/features/projects/releases/user_views_edit_release_spec.rb'
|
||||
- 'spec/features/projects/releases/user_views_releases_spec.rb'
|
||||
- 'spec/finders/alert_management/http_integrations_finder_spec.rb'
|
||||
- 'spec/finders/events_finder_spec.rb'
|
||||
- 'spec/finders/labels_finder_spec.rb'
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
<script>
|
||||
import { GlPagination, GlModal, GlSprintf } from '@gitlab/ui';
|
||||
import { GlPagination } from '@gitlab/ui';
|
||||
import { mapState, mapGetters } from 'vuex';
|
||||
import { __, s__ } from '~/locale';
|
||||
import { s__ } from '~/locale';
|
||||
import Tracking from '~/tracking';
|
||||
import DeletePackageModal from '~/packages_and_registries/shared/components/delete_package_modal.vue';
|
||||
import PackagesListRow from '~/packages_and_registries/infrastructure_registry/shared/package_list_row.vue';
|
||||
import PackagesListLoader from '~/packages_and_registries/shared/components/packages_list_loader.vue';
|
||||
import { TRACKING_ACTIONS } from '~/packages_and_registries/shared/constants';
|
||||
|
@ -11,8 +12,7 @@ import { TRACK_CATEGORY } from '~/packages_and_registries/infrastructure_registr
|
|||
export default {
|
||||
components: {
|
||||
GlPagination,
|
||||
GlModal,
|
||||
GlSprintf,
|
||||
DeletePackageModal,
|
||||
PackagesListLoader,
|
||||
PackagesListRow,
|
||||
},
|
||||
|
@ -42,22 +42,6 @@ export default {
|
|||
isListEmpty() {
|
||||
return !this.list || this.list.length === 0;
|
||||
},
|
||||
deletePackageName() {
|
||||
return this.itemToBeDeleted?.name ?? '';
|
||||
},
|
||||
deleteModalActionPrimaryProps() {
|
||||
return {
|
||||
text: this.$options.i18n.modalAction,
|
||||
attributes: {
|
||||
variant: 'danger',
|
||||
},
|
||||
};
|
||||
},
|
||||
deleteModalActionCancelProps() {
|
||||
return {
|
||||
text: __('Cancel'),
|
||||
};
|
||||
},
|
||||
tracking() {
|
||||
return {
|
||||
category: TRACK_CATEGORY,
|
||||
|
@ -68,7 +52,6 @@ export default {
|
|||
setItemToBeDeleted(item) {
|
||||
this.itemToBeDeleted = { ...item };
|
||||
this.track(TRACKING_ACTIONS.REQUEST_DELETE_PACKAGE);
|
||||
this.$refs.packageListDeleteModal.show();
|
||||
},
|
||||
deleteItemConfirmation() {
|
||||
this.$emit('package:delete', this.itemToBeDeleted);
|
||||
|
@ -116,22 +99,11 @@ export default {
|
|||
class="gl-w-full gl-mt-3"
|
||||
/>
|
||||
|
||||
<gl-modal
|
||||
ref="packageListDeleteModal"
|
||||
size="sm"
|
||||
modal-id="confirm-delete-package"
|
||||
:action-primary="deleteModalActionPrimaryProps"
|
||||
:action-cancel="deleteModalActionCancelProps"
|
||||
<delete-package-modal
|
||||
:item-to-be-deleted="itemToBeDeleted"
|
||||
@ok="deleteItemConfirmation"
|
||||
@cancel="deleteItemCanceled"
|
||||
>
|
||||
<template #modal-title>{{ $options.i18n.modalTitle }}</template>
|
||||
<gl-sprintf :message="$options.i18n.deleteModalContent">
|
||||
<template #name>
|
||||
<strong>{{ deletePackageName }}</strong>
|
||||
</template>
|
||||
</gl-sprintf>
|
||||
</gl-modal>
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<script>
|
||||
import { GlAlert, GlModal, GlSprintf, GlKeysetPagination } from '@gitlab/ui';
|
||||
import { __, s__, sprintf } from '~/locale';
|
||||
import { GlAlert, GlKeysetPagination } from '@gitlab/ui';
|
||||
import { s__, sprintf } from '~/locale';
|
||||
import DeletePackageModal from '~/packages_and_registries/shared/components/delete_package_modal.vue';
|
||||
import PackagesListRow from '~/packages_and_registries/package_registry/components/list/package_list_row.vue';
|
||||
import PackagesListLoader from '~/packages_and_registries/shared/components/packages_list_loader.vue';
|
||||
import {
|
||||
|
@ -16,8 +17,7 @@ export default {
|
|||
components: {
|
||||
GlAlert,
|
||||
GlKeysetPagination,
|
||||
GlModal,
|
||||
GlSprintf,
|
||||
DeletePackageModal,
|
||||
PackagesListLoader,
|
||||
PackagesListRow,
|
||||
},
|
||||
|
@ -49,9 +49,6 @@ export default {
|
|||
isListEmpty() {
|
||||
return !this.list || this.list.length === 0;
|
||||
},
|
||||
deletePackageName() {
|
||||
return this.itemToBeDeleted?.name ?? '';
|
||||
},
|
||||
tracking() {
|
||||
const category = this.itemToBeDeleted
|
||||
? packageTypeToTrackCategory(this.itemToBeDeleted.packageType)
|
||||
|
@ -63,29 +60,6 @@ export default {
|
|||
showPagination() {
|
||||
return this.pageInfo.hasPreviousPage || this.pageInfo.hasNextPage;
|
||||
},
|
||||
showDeleteModal: {
|
||||
get() {
|
||||
return Boolean(this.itemToBeDeleted);
|
||||
},
|
||||
set(value) {
|
||||
if (!value) {
|
||||
this.itemToBeDeleted = null;
|
||||
}
|
||||
},
|
||||
},
|
||||
deleteModalActionPrimaryProps() {
|
||||
return {
|
||||
text: this.$options.i18n.modalAction,
|
||||
attributes: {
|
||||
variant: 'danger',
|
||||
},
|
||||
};
|
||||
},
|
||||
deleteModalActionCancelProps() {
|
||||
return {
|
||||
text: __('Cancel'),
|
||||
};
|
||||
},
|
||||
errorTitleAlert() {
|
||||
return sprintf(
|
||||
s__('PackageRegistry|There was an error publishing a %{packageName} package'),
|
||||
|
@ -113,18 +87,17 @@ export default {
|
|||
deleteItemConfirmation() {
|
||||
this.$emit('package:delete', this.itemToBeDeleted);
|
||||
this.track(DELETE_PACKAGE_TRACKING_ACTION);
|
||||
this.itemToBeDeleted = null;
|
||||
},
|
||||
deleteItemCanceled() {
|
||||
this.track(CANCEL_DELETE_PACKAGE_TRACKING_ACTION);
|
||||
this.itemToBeDeleted = null;
|
||||
},
|
||||
showConfirmationModal() {
|
||||
this.setItemToBeDeleted(this.errorPackages[0]);
|
||||
},
|
||||
},
|
||||
i18n: {
|
||||
deleteModalContent: s__('PackageRegistry|You are about to delete %{name}, are you sure?'),
|
||||
modalTitle: s__('PackageRegistry|Delete package'),
|
||||
modalAction: s__('PackageRegistry|Permanently delete'),
|
||||
errorMessageBodyAlert: s__(
|
||||
'PackageRegistry|There was a timeout and the package was not published. Delete this package and try again.',
|
||||
),
|
||||
|
@ -169,22 +142,11 @@ export default {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<gl-modal
|
||||
v-model="showDeleteModal"
|
||||
modal-id="confirm-delete-package"
|
||||
size="sm"
|
||||
:action-primary="deleteModalActionPrimaryProps"
|
||||
:action-cancel="deleteModalActionCancelProps"
|
||||
<delete-package-modal
|
||||
:item-to-be-deleted="itemToBeDeleted"
|
||||
@ok="deleteItemConfirmation"
|
||||
@cancel="deleteItemCanceled"
|
||||
>
|
||||
<template #modal-title>{{ $options.i18n.modalTitle }}</template>
|
||||
<gl-sprintf :message="$options.i18n.deleteModalContent">
|
||||
<template #name>
|
||||
<strong>{{ deletePackageName }}</strong>
|
||||
</template>
|
||||
</gl-sprintf>
|
||||
</gl-modal>
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -36,6 +36,7 @@ export default () => {
|
|||
const attachMainComponent = () =>
|
||||
new Vue({
|
||||
el,
|
||||
name: 'PackageRegistery',
|
||||
router,
|
||||
apolloProvider,
|
||||
provide: {
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
<script>
|
||||
import { GlModal, GlSprintf } from '@gitlab/ui';
|
||||
import { __ } from '~/locale';
|
||||
import {
|
||||
DELETE_PACKAGE_MODAL_CONTENT_MESSAGE,
|
||||
DELETE_PACKAGE_MODAL_TITLE,
|
||||
DELETE_PACKAGE_MODAL_ACTION,
|
||||
} from '~/packages_and_registries/shared/constants';
|
||||
import { TRACK_CATEGORY } from '~/packages_and_registries/infrastructure_registry/shared/constants';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
GlModal,
|
||||
GlSprintf,
|
||||
},
|
||||
props: {
|
||||
itemToBeDeleted: {
|
||||
type: Object,
|
||||
required: false,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
isModalVisible() {
|
||||
return Boolean(this.itemToBeDeleted);
|
||||
},
|
||||
deletePackageName() {
|
||||
return this.itemToBeDeleted?.name ?? '';
|
||||
},
|
||||
deleteModalActionPrimaryProps() {
|
||||
return {
|
||||
text: this.$options.i18n.modalAction,
|
||||
attributes: {
|
||||
variant: 'danger',
|
||||
},
|
||||
};
|
||||
},
|
||||
deleteModalActionCancelProps() {
|
||||
return {
|
||||
text: __('Cancel'),
|
||||
};
|
||||
},
|
||||
tracking() {
|
||||
return {
|
||||
category: TRACK_CATEGORY,
|
||||
};
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
deleteItemConfirmation() {
|
||||
this.$emit('ok');
|
||||
},
|
||||
onChangeModalVisibility(isVisible) {
|
||||
if (!isVisible) this.$emit('cancel');
|
||||
},
|
||||
},
|
||||
i18n: {
|
||||
modalTitle: DELETE_PACKAGE_MODAL_TITLE,
|
||||
modalDescription: DELETE_PACKAGE_MODAL_CONTENT_MESSAGE,
|
||||
modalAction: DELETE_PACKAGE_MODAL_ACTION,
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<gl-modal
|
||||
:visible="isModalVisible"
|
||||
size="sm"
|
||||
modal-id="confirm-delete-package"
|
||||
:title="$options.i18n.modalTitle"
|
||||
:action-primary="deleteModalActionPrimaryProps"
|
||||
:action-cancel="deleteModalActionCancelProps"
|
||||
@ok="deleteItemConfirmation"
|
||||
@change="onChangeModalVisibility"
|
||||
>
|
||||
<template #modal-title>{{ $options.i18n.modalTitle }}</template>
|
||||
<gl-sprintf :message="$options.i18n.modalDescription">
|
||||
<template #name>
|
||||
<strong>{{ deletePackageName }}</strong>
|
||||
</template>
|
||||
</gl-sprintf>
|
||||
</gl-modal>
|
||||
</template>
|
|
@ -39,6 +39,12 @@ export const DELETE_PACKAGE_FILE_SUCCESS_MESSAGE = s__(
|
|||
'PackageRegistry|Package asset deleted successfully',
|
||||
);
|
||||
|
||||
export const DELETE_PACKAGE_MODAL_CONTENT_MESSAGE = s__(
|
||||
'PackageRegistry|You are about to delete %{name}, are you sure?',
|
||||
);
|
||||
export const DELETE_PACKAGE_MODAL_TITLE = s__('PackageRegistry|Delete package');
|
||||
export const DELETE_PACKAGE_MODAL_ACTION = s__('PackageRegistry|Permanently delete');
|
||||
|
||||
export const PACKAGE_ERROR_STATUS = 'error';
|
||||
export const PACKAGE_DEFAULT_STATUS = 'default';
|
||||
export const PACKAGE_HIDDEN_STATUS = 'hidden';
|
||||
|
|
215
app/assets/stylesheets/page_bundles/design_management.scss
Normal file
215
app/assets/stylesheets/page_bundles/design_management.scss
Normal file
|
@ -0,0 +1,215 @@
|
|||
@import 'mixins_and_variables_and_functions';
|
||||
|
||||
$design-pin-diameter: 28px;
|
||||
$design-pin-diameter-sm: 24px;
|
||||
$t-gray-a-16-design-pin: rgba($black, 0.16);
|
||||
|
||||
.design-card-header {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.design-checkbox {
|
||||
position: absolute;
|
||||
top: $gl-padding;
|
||||
left: 30px;
|
||||
}
|
||||
|
||||
.layout-page.design-detail-layout {
|
||||
max-height: 100vh;
|
||||
}
|
||||
|
||||
.design-detail {
|
||||
background-color: rgba($modal-backdrop-bg, $modal-backdrop-opacity);
|
||||
|
||||
.with-performance-bar & {
|
||||
top: 35px;
|
||||
}
|
||||
|
||||
.comment-indicator {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.comment-indicator,
|
||||
.frame .design-note-pin {
|
||||
&:active {
|
||||
cursor: grabbing;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.design-list-item {
|
||||
height: 280px;
|
||||
text-decoration: none;
|
||||
|
||||
.icon-version-status {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
.card-body {
|
||||
height: 230px;
|
||||
}
|
||||
}
|
||||
|
||||
// This is temporary class to be removed after feature flag removal: https://gitlab.com/gitlab-org/gitlab/-/issues/223197
|
||||
.design-list-item-new {
|
||||
height: 210px;
|
||||
}
|
||||
|
||||
.design-note-pin {
|
||||
display: flex;
|
||||
height: $design-pin-diameter;
|
||||
width: $design-pin-diameter;
|
||||
box-sizing: content-box;
|
||||
background-color: var(--purple-500, $purple-500);
|
||||
color: var(--white, $white);
|
||||
font-weight: $gl-font-weight-bold;
|
||||
border-radius: 50%;
|
||||
z-index: 1;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
|
||||
&.draft {
|
||||
background-color: var(--orange-500, $orange-500);
|
||||
}
|
||||
|
||||
&.resolved {
|
||||
background-color: var(--gray-500, $gray-500);
|
||||
}
|
||||
|
||||
&.on-image {
|
||||
box-shadow: 0 2px 4px $t-gray-a-08, 0 0 1px $t-gray-a-24;
|
||||
border: var(--white, $white) 2px solid;
|
||||
will-change: transform, box-shadow, opacity;
|
||||
// NOTE: verbose transition property required for Safari
|
||||
transition: transform $general-hover-transition-duration linear, box-shadow $general-hover-transition-duration linear, opacity $general-hover-transition-duration linear;
|
||||
transform-origin: 0 0;
|
||||
transform: translate(-50%, -50%);
|
||||
|
||||
&:hover {
|
||||
transform: scale(1.2) translate(-50%, -50%);
|
||||
}
|
||||
|
||||
&:active {
|
||||
box-shadow: 0 0 4px $t-gray-a-16-design-pin, 0 4px 12px $t-gray-a-16-design-pin;
|
||||
}
|
||||
|
||||
&.inactive {
|
||||
@include gl-opacity-5;
|
||||
|
||||
&:hover {
|
||||
@include gl-opacity-10;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.small {
|
||||
position: absolute;
|
||||
border: 1px solid var(--white, $white);
|
||||
height: $design-pin-diameter-sm;
|
||||
width: $design-pin-diameter-sm;
|
||||
}
|
||||
|
||||
&.user-avatar {
|
||||
top: 25px;
|
||||
right: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.design-scaler-wrapper {
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.image-notes {
|
||||
overflow-y: scroll;
|
||||
padding: $gl-padding;
|
||||
padding-top: 50px;
|
||||
background-color: var(--white, $white);
|
||||
flex-shrink: 0;
|
||||
min-width: 400px;
|
||||
flex-basis: 28%;
|
||||
|
||||
.link-inherit-color {
|
||||
&:hover,
|
||||
&:active,
|
||||
&:focus {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.toggle-comments {
|
||||
line-height: 20px;
|
||||
border-top: 1px solid var(--border-color, $border-color);
|
||||
|
||||
&.expanded {
|
||||
border-bottom: 1px solid var(--border-color, $border-color);
|
||||
}
|
||||
|
||||
.toggle-comments-button:focus {
|
||||
text-decoration: none;
|
||||
color: var(--blue-600, $blue-600);
|
||||
}
|
||||
}
|
||||
|
||||
.design-note-pin {
|
||||
margin-left: $gl-padding;
|
||||
}
|
||||
|
||||
.design-discussion {
|
||||
margin: $gl-padding 0;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
border-left: 1px solid var(--gray-100, $gray-100);
|
||||
position: absolute;
|
||||
left: 28px;
|
||||
top: -17px;
|
||||
height: 17px;
|
||||
}
|
||||
|
||||
.design-note {
|
||||
padding: $gl-padding;
|
||||
list-style: none;
|
||||
transition: background $gl-transition-duration-medium $general-hover-transition-curve;
|
||||
border-top-left-radius: $border-radius-default; // same border radius used by .bordered-box
|
||||
border-top-right-radius: $border-radius-default;
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.note-text a {
|
||||
color: var(--blue-600, $blue-600);
|
||||
}
|
||||
}
|
||||
|
||||
.reply-wrapper {
|
||||
padding: $gl-padding;
|
||||
}
|
||||
}
|
||||
|
||||
.reply-wrapper {
|
||||
border-top: 1px solid var(--border-color, $border-color);
|
||||
}
|
||||
|
||||
.new-discussion-disclaimer {
|
||||
line-height: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: map-get($grid-breakpoints, lg)) {
|
||||
.design-detail {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.image-notes {
|
||||
overflow-y: auto;
|
||||
min-width: 100%;
|
||||
flex-grow: 1;
|
||||
flex-basis: auto;
|
||||
}
|
||||
}
|
|
@ -1,9 +1,5 @@
|
|||
@import 'mixins_and_variables_and_functions';
|
||||
|
||||
$design-pin-diameter: 28px;
|
||||
$design-pin-diameter-sm: 24px;
|
||||
$t-gray-a-16-design-pin: rgba($black, 0.16);
|
||||
|
||||
.description {
|
||||
li {
|
||||
position: relative;
|
||||
|
@ -27,216 +23,6 @@ $t-gray-a-16-design-pin: rgba($black, 0.16);
|
|||
}
|
||||
}
|
||||
|
||||
.design-card-header {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.design-checkbox {
|
||||
position: absolute;
|
||||
top: $gl-padding;
|
||||
left: 30px;
|
||||
}
|
||||
|
||||
.layout-page.design-detail-layout {
|
||||
max-height: 100vh;
|
||||
}
|
||||
|
||||
.design-detail {
|
||||
background-color: rgba($modal-backdrop-bg, $modal-backdrop-opacity);
|
||||
|
||||
.with-performance-bar & {
|
||||
top: 35px;
|
||||
}
|
||||
|
||||
.comment-indicator {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.comment-indicator,
|
||||
.frame .design-note-pin {
|
||||
&:active {
|
||||
cursor: grabbing;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.design-list-item {
|
||||
height: 280px;
|
||||
text-decoration: none;
|
||||
|
||||
.icon-version-status {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
.card-body {
|
||||
height: 230px;
|
||||
}
|
||||
}
|
||||
|
||||
// This is temporary class to be removed after feature flag removal: https://gitlab.com/gitlab-org/gitlab/-/issues/223197
|
||||
.design-list-item-new {
|
||||
height: 210px;
|
||||
}
|
||||
|
||||
.design-note-pin {
|
||||
display: flex;
|
||||
height: $design-pin-diameter;
|
||||
width: $design-pin-diameter;
|
||||
box-sizing: content-box;
|
||||
background-color: var(--purple-500, $purple-500);
|
||||
color: var(--white, $white);
|
||||
font-weight: $gl-font-weight-bold;
|
||||
border-radius: 50%;
|
||||
z-index: 1;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
|
||||
&.draft {
|
||||
background-color: var(--orange-500, $orange-500);
|
||||
}
|
||||
|
||||
&.resolved {
|
||||
background-color: var(--gray-500, $gray-500);
|
||||
}
|
||||
|
||||
&.on-image {
|
||||
box-shadow: 0 2px 4px $t-gray-a-08, 0 0 1px $t-gray-a-24;
|
||||
border: var(--white, $white) 2px solid;
|
||||
will-change: transform, box-shadow, opacity;
|
||||
// NOTE: verbose transition property required for Safari
|
||||
transition: transform $general-hover-transition-duration linear, box-shadow $general-hover-transition-duration linear, opacity $general-hover-transition-duration linear;
|
||||
transform-origin: 0 0;
|
||||
transform: translate(-50%, -50%);
|
||||
|
||||
&:hover {
|
||||
transform: scale(1.2) translate(-50%, -50%);
|
||||
}
|
||||
|
||||
&:active {
|
||||
box-shadow: 0 0 4px $t-gray-a-16-design-pin, 0 4px 12px $t-gray-a-16-design-pin;
|
||||
}
|
||||
|
||||
&.inactive {
|
||||
@include gl-opacity-5;
|
||||
|
||||
&:hover {
|
||||
@include gl-opacity-10;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.small {
|
||||
position: absolute;
|
||||
border: 1px solid var(--white, $white);
|
||||
height: $design-pin-diameter-sm;
|
||||
width: $design-pin-diameter-sm;
|
||||
}
|
||||
|
||||
&.user-avatar {
|
||||
top: 25px;
|
||||
right: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.design-scaler-wrapper {
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.image-notes {
|
||||
overflow-y: scroll;
|
||||
padding: $gl-padding;
|
||||
padding-top: 50px;
|
||||
background-color: var(--white, $white);
|
||||
flex-shrink: 0;
|
||||
min-width: 400px;
|
||||
flex-basis: 28%;
|
||||
|
||||
.link-inherit-color {
|
||||
&:hover,
|
||||
&:active,
|
||||
&:focus {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.toggle-comments {
|
||||
line-height: 20px;
|
||||
border-top: 1px solid var(--border-color, $border-color);
|
||||
|
||||
&.expanded {
|
||||
border-bottom: 1px solid var(--border-color, $border-color);
|
||||
}
|
||||
|
||||
.toggle-comments-button:focus {
|
||||
text-decoration: none;
|
||||
color: var(--blue-600, $blue-600);
|
||||
}
|
||||
}
|
||||
|
||||
.design-note-pin {
|
||||
margin-left: $gl-padding;
|
||||
}
|
||||
|
||||
.design-discussion {
|
||||
margin: $gl-padding 0;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
border-left: 1px solid var(--gray-100, $gray-100);
|
||||
position: absolute;
|
||||
left: 28px;
|
||||
top: -17px;
|
||||
height: 17px;
|
||||
}
|
||||
|
||||
.design-note {
|
||||
padding: $gl-padding;
|
||||
list-style: none;
|
||||
transition: background $gl-transition-duration-medium $general-hover-transition-curve;
|
||||
border-top-left-radius: $border-radius-default; // same border radius used by .bordered-box
|
||||
border-top-right-radius: $border-radius-default;
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.note-text a {
|
||||
color: var(--blue-600, $blue-600);
|
||||
}
|
||||
}
|
||||
|
||||
.reply-wrapper {
|
||||
padding: $gl-padding;
|
||||
}
|
||||
}
|
||||
|
||||
.reply-wrapper {
|
||||
border-top: 1px solid var(--border-color, $border-color);
|
||||
}
|
||||
|
||||
.new-discussion-disclaimer {
|
||||
line-height: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: map-get($grid-breakpoints, lg)) {
|
||||
.design-detail {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.image-notes {
|
||||
overflow-y: auto;
|
||||
min-width: 100%;
|
||||
flex-grow: 1;
|
||||
flex-basis: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.is-ghost {
|
||||
opacity: 0.3;
|
||||
pointer-events: none;
|
||||
|
|
|
@ -181,20 +181,51 @@ module SearchHelper
|
|||
options
|
||||
end
|
||||
|
||||
# search_context exposes a bit too much data to the frontend, this controls what data we share and when.
|
||||
def search_group
|
||||
# group gets derived from the Project in the project's scope
|
||||
@group || @project&.group
|
||||
end
|
||||
|
||||
def search_has_group?
|
||||
search_group&.present? && search_group&.persisted?
|
||||
end
|
||||
|
||||
def search_has_project?
|
||||
@project&.present? && @project&.persisted?
|
||||
end
|
||||
|
||||
def header_search_context
|
||||
{}.tap do |hash|
|
||||
hash[:group] = { id: search_context.group.id, name: search_context.group.name, full_name: search_context.group.full_name } if search_context.for_group?
|
||||
hash[:group_metadata] = search_context.group_metadata if search_context.for_group?
|
||||
if search_has_group?
|
||||
hash[:group] = { id: search_group.id, name: search_group.name, full_name: search_group.full_name }
|
||||
hash[:group_metadata] = { issues_path: issues_group_path(search_group), mr_path: merge_requests_group_path(search_group) }
|
||||
end
|
||||
|
||||
hash[:project] = { id: search_context.project.id, name: search_context.project.name } if search_context.for_project?
|
||||
hash[:project_metadata] = search_context.project_metadata if search_context.for_project?
|
||||
if search_has_project?
|
||||
hash[:project] = { id: @project.id, name: @project.name }
|
||||
hash[:project_metadata] = { issues_path: project_issues_path(@project), mr_path: project_merge_requests_path(@project) }
|
||||
hash[:code_search] = search_scope.nil?
|
||||
hash[:ref] = @ref if @ref && can?(current_user, :download_code, @project)
|
||||
end
|
||||
|
||||
hash[:scope] = search_context.scope if search_context.for_project? || search_context.for_group?
|
||||
hash[:code_search] = search_context.code_search? if search_context.for_project? || search_context.for_group?
|
||||
hash[:scope] = search_scope if search_has_project? || search_has_group?
|
||||
hash[:for_snippets] = @snippet&.present? || @snippets&.any?
|
||||
end
|
||||
end
|
||||
|
||||
hash[:ref] = search_context.ref if can?(current_user, :download_code, search_context.project)
|
||||
hash[:for_snippets] = search_context.for_snippets?
|
||||
def search_scope
|
||||
if current_controller?(:issues)
|
||||
'issues'
|
||||
elsif current_controller?(:merge_requests)
|
||||
'merge_requests'
|
||||
elsif current_controller?(:wikis)
|
||||
'wiki_blobs'
|
||||
elsif current_controller?(:commits)
|
||||
'commits'
|
||||
elsif current_controller?(:groups)
|
||||
if %w(issues merge_requests).include?(controller.action_name)
|
||||
controller.action_name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
- strong_start = "<strong>".html_safe
|
||||
- strong_end = "</strong>".html_safe
|
||||
|
||||
.modal.js-confirm-project-visiblity{ tabindex: -1 }
|
||||
.modal-dialog
|
||||
.modal-content
|
||||
.modal-header
|
||||
%h1.page-title.gl-font-size-h-display= _('Reduce this project’s visibility?')
|
||||
%button.close{ type: "button", "data-dismiss": "modal", "aria-label" => _('Close') }
|
||||
%span{ "aria-hidden": "true" }= sprite_icon("close")
|
||||
.modal-body
|
||||
%p
|
||||
- if @project.group
|
||||
= _("You're about to reduce the visibility of the project %{strong_start}%{project_name}%{strong_end} in %{strong_start}%{group_name}%{strong_end}.").html_safe % { project_name: @project.name, group_name: @project.group.name, strong_start: strong_start, strong_end: strong_end }
|
||||
- else
|
||||
= _("You're about to reduce the visibility of the project %{strong_start}%{project_name}%{strong_end}.").html_safe % { project_name: @project.name, strong_start: strong_start, strong_end: strong_end }
|
||||
%p
|
||||
= _('Once you confirm and press "Reduce project visibility":')
|
||||
%ul
|
||||
%li
|
||||
= _("Current forks will keep their visibility level.").html_safe
|
||||
%label{ for: "confirm_path_input" }
|
||||
= _("To confirm, type %{phrase_code}").html_safe % { phrase_code: '<code class="js-legacy-confirm-danger-match">%{phrase_name}</code>'.html_safe % { phrase_name: @project.full_path } }
|
||||
.form-group
|
||||
= text_field_tag 'confirm_path_input', '', class: 'form-control js-legacy-confirm-danger-input'
|
||||
.form-actions
|
||||
%button.btn.gl-button.btn-default.gl-mr-4{ type: "button", "data-dismiss": "modal" }
|
||||
= _('Cancel')
|
||||
= submit_tag _('Reduce project visibility'), class: "btn gl-button btn-danger js-legacy-confirm-danger-submit", disabled: true
|
|
@ -2,6 +2,7 @@
|
|||
- add_to_breadcrumbs _("Incidents"), project_incidents_path(@project)
|
||||
- breadcrumb_title @issue.to_reference
|
||||
- page_title "#{@issue.title} (#{@issue.to_reference})", _("Incidents")
|
||||
- add_page_specific_style 'page_bundles/design_management'
|
||||
- add_page_specific_style 'page_bundles/incidents'
|
||||
- add_page_specific_style 'page_bundles/issues_show'
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
- add_to_breadcrumbs _("Issues"), project_issues_path(@project)
|
||||
- breadcrumb_title @issue.to_reference
|
||||
- page_title "#{@issue.title} (#{@issue.to_reference})", _("Issues")
|
||||
- add_page_specific_style 'page_bundles/design_management'
|
||||
- add_page_specific_style 'page_bundles/incidents'
|
||||
- add_page_specific_style 'page_bundles/issues_show'
|
||||
- add_page_specific_style 'page_bundles/work_items'
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
- page_card_attributes @merge_request.card_attributes
|
||||
- suggest_changes_help_path = help_page_path('user/project/merge_requests/reviews/suggestions.md')
|
||||
- mr_action = j(params[:tab].presence || 'show')
|
||||
- add_page_specific_style 'page_bundles/design_management'
|
||||
- add_page_specific_style 'page_bundles/merge_requests'
|
||||
- add_page_specific_style 'page_bundles/pipelines'
|
||||
- add_page_specific_style 'page_bundles/reports'
|
||||
|
|
|
@ -269,6 +269,7 @@ module Gitlab
|
|||
config.assets.precompile << "page_bundles/clusters.css"
|
||||
config.assets.precompile << "page_bundles/cycle_analytics.css"
|
||||
config.assets.precompile << "page_bundles/dashboard_projects.css"
|
||||
config.assets.precompile << "page_bundles/design_management.css"
|
||||
config.assets.precompile << "page_bundles/dev_ops_reports.css"
|
||||
config.assets.precompile << "page_bundles/editor.css"
|
||||
config.assets.precompile << "page_bundles/environments.css"
|
||||
|
|
|
@ -476,7 +476,13 @@ data before running `pg_basebackup`.
|
|||
|
||||
WARNING:
|
||||
Each Geo **secondary** site must have its own unique replication slot name.
|
||||
Using the same slot name between two secondaries breaks PostgreSQL replication.
|
||||
Using the same slot name between two secondaries breaks PostgreSQL replication.
|
||||
|
||||
NOTE:
|
||||
Replication slot names must only contain lowercase letters, numbers, and the underscore character.
|
||||
|
||||
When prompted, enter the _plaintext_ password you set up for the `gitlab_replicator`
|
||||
user in the first step.
|
||||
|
||||
```shell
|
||||
gitlab-ctl replicate-geo-database \
|
||||
|
@ -485,12 +491,6 @@ data before running `pg_basebackup`.
|
|||
--sslmode=verify-ca
|
||||
```
|
||||
|
||||
NOTE:
|
||||
Replication slot names must only contain lowercase letters, numbers, and the underscore character.
|
||||
|
||||
When prompted, enter the _plaintext_ password you set up for the `gitlab_replicator`
|
||||
user in the first step.
|
||||
|
||||
NOTE:
|
||||
If you have generated custom PostgreSQL certificates, you will want to use
|
||||
`--sslmode=verify-full` (or omit the `sslmode` line entirely), to benefit from the extra
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Container Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Container Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Container Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Container Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1605,7 +1605,7 @@ If successful, returns [`201`](index.md#status-codes) and the following response
|
|||
Example request:
|
||||
|
||||
```shell
|
||||
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/saml_group_links"
|
||||
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" --data '{ "saml_group_name": "<your_saml_group_name`>", "access_level": <chosen_access_level> }' --url "https://gitlab.example.com/api/v4/groups/1/saml_group_links"
|
||||
```
|
||||
|
||||
Example response:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.example/handbook/product/ux/technical-writing/#assignments
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
# npm API **(FREE)**
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about..example/handbook/product/ux/technical-writing/#assignments
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
# NuGet API **(FREE)**
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Container Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
comments: false
|
||||
description: 'Container Registry metadata database'
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ While any events could trigger an Audit Event, not all events should. In general
|
|||
- Are tracking information for product feature adoption.
|
||||
- Are covered in the direction page's discussion on [what is not planned](https://about.gitlab.com/direction/manage/compliance/audit-events/#what-is-not-planned-right-now).
|
||||
|
||||
If you have any questions, please reach out to `@gitlab-org/manage/compliance` to see if an Audit Event, or some other approach, may be best for your event.
|
||||
If you have any questions, please reach out to `@gitlab-org/govern/compliance` to see if an Audit Event, or some other approach, may be best for your event.
|
||||
|
||||
## Audit Event Schemas
|
||||
|
||||
|
@ -120,7 +120,7 @@ end
|
|||
Because every audit event is persisted to the database, consider the amount of data we expect to generate, and the rate of generation, for new
|
||||
audit events. For new audit events that will produce a lot of data in the database, consider adding a
|
||||
[streaming-only audit event](#event-streaming) instead. If you have questions about this, feel free to ping
|
||||
`@gitlab-org/manage/compliance/backend` in an issue or merge request.
|
||||
`@gitlab-org/govern/compliance/backend` in an issue or merge request.
|
||||
|
||||
## Audit Event instrumentation flows
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ main pieces of the desired UI and UX of a registry page. The most important comp
|
|||
secondary content, right primary and secondary content, right action, and details slots.
|
||||
- `metadata-item`: represents one piece of metadata, with an icon or a link. Used primarily in the
|
||||
title area.
|
||||
- `persisted-dropdown-selection`: represents a dropdown menu that stores the user selection in the
|
||||
- `persisted-dropdown-selection`: represents a menu that stores the user selection in the
|
||||
`localStorage`.
|
||||
- `registry-search`: implements `gl-filtered-search` with a sorting section on the right.
|
||||
- `title-area`: implements the top title area of the registry. Includes: a main title, an avatar, a
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Container Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
# Package Registry Development
|
||||
# Package and container registry documentation
|
||||
|
||||
Development and Architectural documentation for the package registry
|
||||
The documentation for package and container registry development is split into two groups.
|
||||
|
||||
## Package registry development
|
||||
|
||||
Development and architectural documentation for the package registry:
|
||||
|
||||
- [Debian repository structure](debian_repository.md)
|
||||
- [Dependency proxy structure](dependency_proxy.md)
|
||||
- [Cleanup policies](cleanup_policies.md)
|
||||
- [Developing a new format](new_format_development.md)
|
||||
- [Settings](settings.md)
|
||||
- [Structure / Schema](structure.md)
|
||||
|
@ -26,3 +28,11 @@ Development and Architectural documentation for the package registry
|
|||
- [NuGet](../../api/packages/nuget.md)
|
||||
- [PyPI](../../api/packages/pypi.md)
|
||||
- [Ruby Gems](../../api/packages/rubygems.md)
|
||||
|
||||
## Container registry development
|
||||
|
||||
Development and architectural documentation for the container registry
|
||||
|
||||
- [Dependency proxy structure](dependency_proxy.md)
|
||||
- [Settings](settings.md)
|
||||
- [Structure / Schema](structure.md)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ The following example shows `data-track-*` attributes assigned to a button:
|
|||
| Attribute | Required | Description |
|
||||
|:----------------------|:---------|:------------|
|
||||
| `data-track-action` | true | Action the user is taking. Clicks must be prepended with `click` and activations must be prepended with `activate`. For example, focusing a form field is `activate_form_input` and clicking a button is `click_button`. Replaces `data-track-event`, which was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/290962) in GitLab 13.11. |
|
||||
| `data-track-label` | false | The specific element or object to act on. This can be: the label of the element, for example, a tab labeled 'Create from template' for `create_from_template`; a unique identifier if no text is available, for example, `groups_dropdown_close` for closing the Groups dropdown in the top bar; or the name or title attribute of a record being created. |
|
||||
| `data-track-label` | false | The specific element or object to act on. This can be: the label of the element, for example, a tab labeled 'Create from template' for `create_from_template`; a unique identifier if no text is available, for example, `groups_dropdown_close` for closing the Groups dropdown list in the top bar; or the name or title attribute of a record being created. |
|
||||
| `data-track-property` | false | Any additional property of the element, or object being acted on. |
|
||||
| `data-track-value` | false | Describes a numeric value (decimal) directly related to the event. This could be the value of an input. For example, `10` when clicking `internal` visibility. If omitted, this is the element's `value` property or `undefined`. For checkboxes, the default value is the element's checked attribute or `0` when unchecked. The value is parsed as numeric before sending the event. |
|
||||
| `data-track-extra` | false | A key-value pair object passed as a valid JSON string. This attribute is added to the `extra` property in our [`gitlab_standard`](schemas.md#gitlab_standard) schema. |
|
||||
|
@ -415,7 +415,7 @@ Use the following arguments:
|
|||
|------------|---------------------------|---------------|-----------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `category` | String | | Area or aspect of the application. For example, `HealthCheckController` or `Lfs::FileTransformer`. |
|
||||
| `action` | String | | The action being taken. For example, a controller action such as `create`, or an Active Record callback. |
|
||||
| `label` | String | `nil` | The specific element or object to act on. This can be one of the following: the label of the element, for example, a tab labeled 'Create from template' for `create_from_template`; a unique identifier if no text is available, for example, `groups_dropdown_close` for closing the Groups dropdown in the top bar; or the name or title attribute of a record being created. |
|
||||
| `label` | String | `nil` | The specific element or object to act on. This can be one of the following: the label of the element, for example, a tab labeled 'Create from template' for `create_from_template`; a unique identifier if no text is available, for example, `groups_dropdown_close` for closing the Groups dropdown list in the top bar; or the name or title attribute of a record being created. |
|
||||
| `property` | String | `nil` | Any additional property of the element, or object being acted on. |
|
||||
| `value` | Numeric | `nil` | Describes a numeric value (decimal) directly related to the event. This could be the value of an input. For example, `10` when clicking `internal` visibility. |
|
||||
| `context` | Array\[SelfDescribingJSON\] | `nil` | An array of custom contexts to send with this event. Most events should not have any custom contexts. |
|
||||
|
|
|
@ -91,7 +91,7 @@ Each click event provides attributes that describe the event.
|
|||
| --------- | ------- | -------- | ----------- |
|
||||
| category | text | true | The page or backend section of the application. Unless infeasible, use the Rails page attribute by default in the frontend, and namespace + class name on the backend, for example, `Notes::CreateService`. |
|
||||
| action | text | true | The action the user takes, or aspect that's being instrumented. The first word must describe the action or aspect. For example, clicks must be `click`, activations must be `activate`, creations must be `create`. Use underscores to describe what was acted on. For example, activating a form field is `activate_form_input`, an interface action like clicking on a dropdown list is `click_dropdown`, a behavior like creating a project record from the backend is `create_project`. |
|
||||
| label | text | false | The specific element or object to act on. This can be one of the following: the label of the element, for example, a tab labeled 'Create from template' for `create_from_template`; a unique identifier if no text is available, for example, `groups_dropdown_close` for closing the Groups dropdown in the top bar; or the name or title attribute of a record being created. For Service Ping metrics adapted to Snowplow events, this should be the full metric [key path](../service_ping/metrics_dictionary.md#metric-key_path) taken from its definition file. |
|
||||
| label | text | false | The specific element or object to act on. This can be one of the following: the label of the element, for example, a tab labeled 'Create from template' for `create_from_template`; a unique identifier if no text is available, for example, `groups_dropdown_close` for closing the Groups dropdown list in the top bar; or the name or title attribute of a record being created. For Service Ping metrics adapted to Snowplow events, this should be the full metric [key path](../service_ping/metrics_dictionary.md#metric-key_path) taken from its definition file. |
|
||||
| property | text | false | Any additional property of the element, or object being acted on. For Service Ping metrics adapted to Snowplow events, this should be additional information or context that can help analyze the event. For example, in the case of `usage_activity_by_stage_monthly.create.merge_requests_users`, there are four different possible merge request actions: "create", "merge", "comment", and "close". Each of these would be a possible property value. |
|
||||
| value | decimal | false | Describes a numeric value (decimal) directly related to the event. This could be the value of an input. For example, `10` when clicking `internal` visibility. |
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
type: reference
|
||||
---
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Container Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Container Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Container Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Container Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Container Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Container Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Configure
|
||||
group: Configure
|
||||
stage: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Configure
|
||||
group: Configure
|
||||
stage: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
stage: Package
|
||||
group: Package
|
||||
group: Package Registry
|
||||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
|
|
|
@ -11634,9 +11634,6 @@ msgstr ""
|
|||
msgid "Current Project"
|
||||
msgstr ""
|
||||
|
||||
msgid "Current forks will keep their visibility level."
|
||||
msgstr ""
|
||||
|
||||
msgid "Current node must be the primary node or you will be locking yourself out"
|
||||
msgstr ""
|
||||
|
||||
|
@ -28284,9 +28281,6 @@ msgstr ""
|
|||
msgid "Once removed, the fork relationship cannot be restored. This project will no longer be able to receive or send merge requests to the source project or other forks."
|
||||
msgstr ""
|
||||
|
||||
msgid "Once you confirm and press \"Reduce project visibility\":"
|
||||
msgstr ""
|
||||
|
||||
msgid "One more item"
|
||||
msgid_plural "%d more items"
|
||||
msgstr[0] ""
|
||||
|
@ -33389,9 +33383,6 @@ msgstr ""
|
|||
msgid "Reduce risk and triage fewer vulnerabilities with security training"
|
||||
msgstr ""
|
||||
|
||||
msgid "Reduce this project’s visibility?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
|
@ -42168,9 +42159,6 @@ msgstr ""
|
|||
msgid "To complete registration, we need additional details from you."
|
||||
msgstr ""
|
||||
|
||||
msgid "To confirm, type %{phrase_code}"
|
||||
msgstr ""
|
||||
|
||||
msgid "To connect GitHub repositories, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the %{code_open}repo%{code_close} scope, so we can display a list of your public and private repositories which are available to connect."
|
||||
msgstr ""
|
||||
|
||||
|
@ -46933,6 +46921,9 @@ msgstr ""
|
|||
msgid "Your account uses dedicated credentials for the \"%{group_name}\" group and can only be updated through SSO."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your action has been rejected because the namespace storage limit has been reached. For more information, visit %{doc_url}."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your action succeeded."
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
require 'airborne'
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package', :reliable, only: { subdomain: %i[staging staging-canary pre] } do
|
||||
RSpec.describe 'Package', :reliable, only: { subdomain: %i[staging staging-canary pre] }, product_group: :container_registry do
|
||||
include Support::API
|
||||
include Support::Helpers::MaskToken
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'GitLab Metrics', :aggregate_failures, :orchestrated, :metrics do
|
||||
RSpec.describe 'GitLab Metrics', :aggregate_failures, :orchestrated, :metrics, product_group: :observability do
|
||||
let(:web_uri) { URI.parse(Runtime::Scenario.gitlab_address) }
|
||||
let(:endpoint) do
|
||||
"#{web_uri.scheme}://#{web_uri.host}:#{port}#{path}"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package', :orchestrated, :skip_live_env do
|
||||
RSpec.describe 'Package', :orchestrated, :skip_live_env, product_group: :container_registry do
|
||||
describe 'Self-managed Container Registry' do
|
||||
include Support::Helpers::MaskToken
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
module QA
|
||||
RSpec.describe 'Package' do
|
||||
describe 'Container Registry', only: { subdomain: %i[staging staging-canary pre] } do
|
||||
describe 'Container Registry', only: { subdomain: %i[staging staging-canary pre] }, product_group: :container_registry do
|
||||
let(:project) do
|
||||
Resource::Project.fabricate_via_api! do |project|
|
||||
project.name = 'project-with-registry'
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package' do
|
||||
RSpec.describe 'Package', product_group: :container_registry do
|
||||
describe 'Container Registry Online Garbage Collection', :registry_gc, only: { subdomain: %i[pre] } do
|
||||
let(:group) { Resource::Group.fabricate_via_api! }
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package', :orchestrated, :registry, only: { pipeline: :main } do
|
||||
RSpec.describe 'Package', :orchestrated, :registry, only: { pipeline: :main }, product_group: :container_registry do
|
||||
describe 'Dependency Proxy' do
|
||||
using RSpec::Parameterized::TableSyntax
|
||||
include Support::Helpers::MaskToken
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package', :orchestrated, :packages do
|
||||
RSpec.describe 'Package', :orchestrated, :packages, product_group: :package_registry do
|
||||
describe 'Terraform Module Registry' do
|
||||
include Runtime::Fixtures
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage do
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage, product_group: :package_registry do
|
||||
describe 'Composer Repository' do
|
||||
include Runtime::Fixtures
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage, quarantine: {
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage, product_group: :package_registry, quarantine: {
|
||||
only: { job: 'object_storage' },
|
||||
issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/335981',
|
||||
type: :bug
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage, :reliable do
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage, :reliable, product_group: :package_registry do
|
||||
describe 'Generic Repository' do
|
||||
include Runtime::Fixtures
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage do
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage, product_group: :package_registry do
|
||||
describe 'Helm Registry' do
|
||||
using RSpec::Parameterized::TableSyntax
|
||||
include Runtime::Fixtures
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage, :reliable do
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage, :reliable, product_group: :package_registry do
|
||||
describe 'Maven group level endpoint' do
|
||||
include Runtime::Fixtures
|
||||
include_context 'packages registry qa scenario'
|
||||
|
|
|
@ -6,7 +6,7 @@ module QA
|
|||
name: 'maven_central_request_forwarding',
|
||||
scope: :global
|
||||
} do
|
||||
describe 'Maven project level endpoint' do
|
||||
describe 'Maven project level endpoint', product_group: :package_registry do
|
||||
include Runtime::Fixtures
|
||||
|
||||
let(:group_id) { 'com.gitlab.qa' }
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage do
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage, product_group: :package_registry do
|
||||
describe 'Maven Repository with Gradle' do
|
||||
using RSpec::Parameterized::TableSyntax
|
||||
include Runtime::Fixtures
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
module QA
|
||||
RSpec.describe 'Package' do
|
||||
describe 'Package Registry', :orchestrated, :reliable, :packages, :object_storage do
|
||||
describe 'Package Registry', :orchestrated, :reliable, :packages, :object_storage, product_group: :package_registry do
|
||||
describe 'npm instance level endpoint' do
|
||||
using RSpec::Parameterized::TableSyntax
|
||||
include Runtime::Fixtures
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
module QA
|
||||
RSpec.describe 'Package' do
|
||||
describe 'Package Registry', :orchestrated, :reliable, :packages, :object_storage do
|
||||
describe 'Package Registry', :orchestrated, :reliable, :packages, :object_storage, product_group: :package_registry do
|
||||
describe 'npm project level endpoint' do
|
||||
using RSpec::Parameterized::TableSyntax
|
||||
include Runtime::Fixtures
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage, :reliable do
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage, :reliable, product_group: :package_registry do
|
||||
describe 'NuGet group level endpoint' do
|
||||
using RSpec::Parameterized::TableSyntax
|
||||
include Runtime::Fixtures
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage do
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage, product_group: :package_registry do
|
||||
describe 'NuGet project level endpoint' do
|
||||
include Support::Helpers::MaskToken
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage do
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage, product_group: :package_registry do
|
||||
describe 'PyPI Repository' do
|
||||
include Runtime::Fixtures
|
||||
include Support::Helpers::MaskToken
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
module QA
|
||||
RSpec.describe 'Package', :orchestrated, :packages, :object_storage,
|
||||
feature_flag: { name: 'rubygem_packages', scope: :project } do
|
||||
describe 'RubyGems Repository' do
|
||||
describe 'RubyGems Repository', product_group: :package_registry do
|
||||
include Runtime::Fixtures
|
||||
|
||||
let(:project) do
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Release' do
|
||||
RSpec.describe 'Release', product_group: :release do
|
||||
describe 'Deploy key creation' do
|
||||
it 'user adds a deploy key', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/348023' do
|
||||
Flow::Login.sign_in
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
require 'digest/sha1'
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Release', :runner do
|
||||
RSpec.describe 'Release', :runner, product_group: :release do
|
||||
describe 'Git clone using a deploy key' do
|
||||
let(:runner_name) { "qa-runner-#{SecureRandom.hex(4)}" }
|
||||
let(:repository_location) { project.repository_ssh_location }
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Release' do
|
||||
RSpec.describe 'Release', product_group: :release do
|
||||
describe 'Deploy token creation' do
|
||||
it 'user adds a deploy token', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/348028' do
|
||||
Flow::Login.sign_in
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
module QA
|
||||
RSpec.describe 'Configure' do
|
||||
describe 'AutoDevOps Templates', only: { subdomain: %i[staging staging-canary] } do
|
||||
describe 'AutoDevOps Templates', only: { subdomain: %i[staging staging-canary] }, product_group: :configure do
|
||||
using RSpec::Parameterized::TableSyntax
|
||||
|
||||
# specify jobs to be disabled in the pipeline.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Configure', only: { subdomain: %i[staging staging-canary] } do
|
||||
RSpec.describe 'Configure', only: { subdomain: %i[staging staging-canary] }, product_group: :configure do
|
||||
describe 'Auto DevOps with a Kubernetes Agent' do
|
||||
let!(:app_project) do
|
||||
Resource::Project.fabricate_via_api! do |project|
|
||||
|
@ -98,7 +98,7 @@ module QA
|
|||
content: <<~YAML
|
||||
ci_access:
|
||||
projects:
|
||||
- id: #{project.path_with_namespace}
|
||||
- id: #{project.path_with_namespace}
|
||||
YAML
|
||||
}
|
||||
]
|
||||
|
|
|
@ -9,15 +9,12 @@ module QA
|
|||
PRE_PROD_ADDRESS = 'https://pre.gitlab.com'
|
||||
SENTRY_ENVIRONMENTS = {
|
||||
staging: 'https://sentry.gitlab.net/gitlab/staginggitlabcom/?environment=gstg',
|
||||
staging_canary: 'https://sentry.gitlab.net/gitlab/staginggitlabcom/?environment=gstg-cny',
|
||||
staging_ref: 'https://sentry.gitlab.net/gitlab/staging-ref/?environment=gstg-ref',
|
||||
pre: 'https://sentry.gitlab.net/gitlab/pregitlabcom/?environment=pre',
|
||||
canary: 'https://sentry.gitlab.net/gitlab/gitlabcom/?environment=gprd',
|
||||
production: 'https://sentry.gitlab.net/gitlab/gitlabcom/?environment=gprd-cny'
|
||||
staging_ref: 'https://sentry.gitlab.net/gitlab/staging-ref/?environment=all',
|
||||
pre: 'https://sentry.gitlab.net/gitlab/pregitlabcom/?environment=all',
|
||||
production: 'https://sentry.gitlab.net/gitlab/gitlabcom/?environment=gprd'
|
||||
}.freeze
|
||||
KIBANA_ENVIRONMENTS = {
|
||||
staging: 'https://nonprod-log.gitlab.net/',
|
||||
staging_canary: 'https://nonprod-log.gitlab.net/',
|
||||
canary: 'https://log.gprd.gitlab.net/',
|
||||
production: 'https://log.gprd.gitlab.net/'
|
||||
}.freeze
|
||||
|
@ -30,7 +27,7 @@ module QA
|
|||
|
||||
errors = ["Correlation Id: #{correlation_id}"]
|
||||
errors << "Sentry Url: #{sentry_uri}&query=correlation_id%3A%22#{correlation_id}%22" if sentry_uri
|
||||
errors << "Kibana Url: #{kibana_uri}app/discover#/?_a=(query:(language:kuery,query:'json.correlation_id%20:%20#{correlation_id}'))&_g=(time:(from:now-24h%2Fh,to:now))" if kibana_uri
|
||||
errors << "Kibana Url: #{kibana_uri}app/discover#/?_a=(query:(language:kuery,query:'json.correlation_id%20:%20#{correlation_id}'))&_g=(time:(from:now-24h,to:now))" if kibana_uri
|
||||
|
||||
errors.join("\n")
|
||||
end
|
||||
|
@ -53,11 +50,11 @@ module QA
|
|||
|
||||
case address
|
||||
when STAGING_ADDRESS
|
||||
canary? ? :staging_canary : :staging
|
||||
:staging
|
||||
when STAGING_REF_ADDRESS
|
||||
:staging_ref
|
||||
when PRODUCTION_ADDRESS
|
||||
canary? ? :canary : :production
|
||||
:production
|
||||
when PRE_PROD_ADDRESS
|
||||
:pre
|
||||
else
|
||||
|
@ -68,19 +65,6 @@ module QA
|
|||
def self.logging_environment?
|
||||
!logging_environment.nil?
|
||||
end
|
||||
|
||||
def self.cookies
|
||||
browser_cookies = Capybara.current_session.driver.browser.manage.all_cookies
|
||||
# rubocop:disable Rails/IndexBy
|
||||
browser_cookies.each_with_object({}) do |cookie, memo|
|
||||
memo[cookie[:name]] = cookie
|
||||
end
|
||||
# rubocop:enable Rails/IndexBy
|
||||
end
|
||||
|
||||
def self.canary?
|
||||
cookies.dig('gitlab_canary', :value) == 'true'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue