Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
04baa85554
commit
546ddc3f6a
31 changed files with 160 additions and 107 deletions
|
@ -4,12 +4,12 @@ import {
|
||||||
GlAvatar,
|
GlAvatar,
|
||||||
GlIcon,
|
GlIcon,
|
||||||
GlSprintf,
|
GlSprintf,
|
||||||
GlDeprecatedButton,
|
|
||||||
GlModal,
|
GlModal,
|
||||||
GlAlert,
|
GlAlert,
|
||||||
GlLoadingIcon,
|
GlLoadingIcon,
|
||||||
GlDropdown,
|
GlDropdown,
|
||||||
GlDropdownItem,
|
GlDropdownItem,
|
||||||
|
GlNewButton,
|
||||||
} from '@gitlab/ui';
|
} from '@gitlab/ui';
|
||||||
import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
|
import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
|
||||||
|
|
||||||
|
@ -22,13 +22,13 @@ export default {
|
||||||
GlAvatar,
|
GlAvatar,
|
||||||
GlIcon,
|
GlIcon,
|
||||||
GlSprintf,
|
GlSprintf,
|
||||||
GlDeprecatedButton,
|
|
||||||
GlModal,
|
GlModal,
|
||||||
GlAlert,
|
GlAlert,
|
||||||
GlLoadingIcon,
|
GlLoadingIcon,
|
||||||
GlDropdown,
|
GlDropdown,
|
||||||
GlDropdownItem,
|
GlDropdownItem,
|
||||||
TimeAgoTooltip,
|
TimeAgoTooltip,
|
||||||
|
GlNewButton,
|
||||||
},
|
},
|
||||||
apollo: {
|
apollo: {
|
||||||
canCreateSnippet: {
|
canCreateSnippet: {
|
||||||
|
@ -67,17 +67,14 @@ export default {
|
||||||
condition: this.snippet.userPermissions.updateSnippet,
|
condition: this.snippet.userPermissions.updateSnippet,
|
||||||
text: __('Edit'),
|
text: __('Edit'),
|
||||||
href: this.editLink,
|
href: this.editLink,
|
||||||
click: undefined,
|
|
||||||
variant: 'outline-info',
|
|
||||||
cssClass: undefined,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
condition: this.snippet.userPermissions.adminSnippet,
|
condition: this.snippet.userPermissions.adminSnippet,
|
||||||
text: __('Delete'),
|
text: __('Delete'),
|
||||||
href: undefined,
|
|
||||||
click: this.showDeleteModal,
|
click: this.showDeleteModal,
|
||||||
variant: 'outline-danger',
|
variant: 'danger',
|
||||||
cssClass: 'btn-inverted btn-danger ml-2',
|
category: 'secondary',
|
||||||
|
cssClass: 'ml-2',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
condition: this.canCreateSnippet,
|
condition: this.canCreateSnippet,
|
||||||
|
@ -85,9 +82,9 @@ export default {
|
||||||
href: this.snippet.project
|
href: this.snippet.project
|
||||||
? `${this.snippet.project.webUrl}/snippets/new`
|
? `${this.snippet.project.webUrl}/snippets/new`
|
||||||
: '/snippets/new',
|
: '/snippets/new',
|
||||||
click: undefined,
|
variant: 'success',
|
||||||
variant: 'outline-success',
|
category: 'secondary',
|
||||||
cssClass: 'btn-inverted btn-success ml-2',
|
cssClass: 'ml-2',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
|
@ -187,18 +184,20 @@ export default {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="detail-page-header-actions">
|
<div class="detail-page-header-actions">
|
||||||
<div class="d-none d-sm-block">
|
<div class="d-none d-sm-flex">
|
||||||
<template v-for="(action, index) in personalSnippetActions">
|
<template v-for="(action, index) in personalSnippetActions">
|
||||||
<gl-deprecated-button
|
<gl-new-button
|
||||||
v-if="action.condition"
|
v-if="action.condition"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
:disabled="action.disabled"
|
||||||
:variant="action.variant"
|
:variant="action.variant"
|
||||||
|
:category="action.category"
|
||||||
:class="action.cssClass"
|
:class="action.cssClass"
|
||||||
:href="action.href || undefined"
|
:href="action.href"
|
||||||
@click="action.click ? action.click() : undefined"
|
@click="action.click ? action.click() : undefined"
|
||||||
>
|
>
|
||||||
{{ action.text }}
|
{{ action.text }}
|
||||||
</gl-deprecated-button>
|
</gl-new-button>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-block d-sm-none dropdown">
|
<div class="d-block d-sm-none dropdown">
|
||||||
|
@ -206,7 +205,7 @@ export default {
|
||||||
<gl-dropdown-item
|
<gl-dropdown-item
|
||||||
v-for="(action, index) in personalSnippetActions"
|
v-for="(action, index) in personalSnippetActions"
|
||||||
:key="index"
|
:key="index"
|
||||||
:href="action.href || undefined"
|
:href="action.href"
|
||||||
@click="action.click ? action.click() : undefined"
|
@click="action.click ? action.click() : undefined"
|
||||||
>{{ action.text }}</gl-dropdown-item
|
>{{ action.text }}</gl-dropdown-item
|
||||||
>
|
>
|
||||||
|
@ -228,16 +227,17 @@ export default {
|
||||||
</gl-sprintf>
|
</gl-sprintf>
|
||||||
|
|
||||||
<template #modal-footer>
|
<template #modal-footer>
|
||||||
<gl-deprecated-button @click="closeDeleteModal">{{ __('Cancel') }}</gl-deprecated-button>
|
<gl-new-button @click="closeDeleteModal">{{ __('Cancel') }}</gl-new-button>
|
||||||
<gl-deprecated-button
|
<gl-new-button
|
||||||
variant="danger"
|
variant="danger"
|
||||||
|
category="primary"
|
||||||
:disabled="isDeleting"
|
:disabled="isDeleting"
|
||||||
data-qa-selector="delete_snippet_button"
|
data-qa-selector="delete_snippet_button"
|
||||||
@click="deleteSnippet"
|
@click="deleteSnippet"
|
||||||
>
|
>
|
||||||
<gl-loading-icon v-if="isDeleting" inline />
|
<gl-loading-icon v-if="isDeleting" inline />
|
||||||
{{ __('Delete snippet') }}
|
{{ __('Delete snippet') }}
|
||||||
</gl-deprecated-button>
|
</gl-new-button>
|
||||||
</template>
|
</template>
|
||||||
</gl-modal>
|
</gl-modal>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -30,12 +30,26 @@ class AuditEvent < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def author_name
|
def author_name
|
||||||
self.user.name
|
lazy_author.name
|
||||||
end
|
end
|
||||||
|
|
||||||
def formatted_details
|
def formatted_details
|
||||||
details.merge(details.slice(:from, :to).transform_values(&:to_s))
|
details.merge(details.slice(:from, :to).transform_values(&:to_s))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def lazy_author
|
||||||
|
BatchLoader.for(author_id).batch(default_value: default_author_value) do |author_ids, loader|
|
||||||
|
User.where(id: author_ids).find_each do |user|
|
||||||
|
loader.call(user.id, user)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def default_author_value
|
||||||
|
::Gitlab::Audit::NullAuthor.for(author_id, details[:author_name])
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
AuditEvent.prepend_if_ee('EE::AuditEvent')
|
AuditEvent.prepend_if_ee('EE::AuditEvent')
|
||||||
|
|
|
@ -13,7 +13,7 @@ class AuditEventService
|
||||||
#
|
#
|
||||||
# @return [AuditEventService]
|
# @return [AuditEventService]
|
||||||
def initialize(author, entity, details = {})
|
def initialize(author, entity, details = {})
|
||||||
@author = author
|
@author = build_author(author)
|
||||||
@entity = entity
|
@entity = entity
|
||||||
@details = details
|
@details = details
|
||||||
end
|
end
|
||||||
|
@ -49,6 +49,14 @@ class AuditEventService
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def build_author(author)
|
||||||
|
if author.is_a?(User)
|
||||||
|
author
|
||||||
|
else
|
||||||
|
Gitlab::Audit::UnauthenticatedAuthor.new(name: author)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def base_payload
|
def base_payload
|
||||||
{
|
{
|
||||||
author_id: @author.id,
|
author_id: @author.id,
|
||||||
|
|
|
@ -9,7 +9,7 @@ module Groups
|
||||||
deploy_token = create_deploy_token_for(@group, params)
|
deploy_token = create_deploy_token_for(@group, params)
|
||||||
|
|
||||||
if deploy_token.persisted?
|
if deploy_token.persisted?
|
||||||
success(deploy_token: deploy_token, http_status: :ok)
|
success(deploy_token: deploy_token, http_status: :created)
|
||||||
else
|
else
|
||||||
error(deploy_token.errors.full_messages.to_sentence, :bad_request)
|
error(deploy_token.errors.full_messages.to_sentence, :bad_request)
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,7 +9,7 @@ module Projects
|
||||||
deploy_token = create_deploy_token_for(@project, params)
|
deploy_token = create_deploy_token_for(@project, params)
|
||||||
|
|
||||||
if deploy_token.persisted?
|
if deploy_token.persisted?
|
||||||
success(deploy_token: deploy_token, http_status: :ok)
|
success(deploy_token: deploy_token, http_status: :created)
|
||||||
else
|
else
|
||||||
error(deploy_token.errors.full_messages.to_sentence, :bad_request)
|
error(deploy_token.errors.full_messages.to_sentence, :bad_request)
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,13 +9,13 @@
|
||||||
= f.check_box :hashed_storage_enabled, class: 'form-check-input qa-hashed-storage-checkbox'
|
= f.check_box :hashed_storage_enabled, class: 'form-check-input qa-hashed-storage-checkbox'
|
||||||
= f.label :hashed_storage_enabled, _("Use hashed storage"), class: 'label-bold form-check-label'
|
= f.label :hashed_storage_enabled, _("Use hashed storage"), class: 'label-bold form-check-label'
|
||||||
.form-text.text-muted
|
.form-text.text-muted
|
||||||
= _("Use hashed storage paths for newly created and renamed projects. Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents repositories from having to be moved or renamed when the Project URL changes and may improve disk I/O performance.")
|
= _("Use hashed storage paths for newly created and renamed repositories. Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents repositories from having to be moved or renamed when the Repository URL changes and may improve disk I/O performance.")
|
||||||
.sub-section
|
.sub-section
|
||||||
%h4= _("Storage nodes for new projects")
|
%h4= _("Storage nodes for new repositories")
|
||||||
.form-group
|
.form-group
|
||||||
.form-text
|
.form-text
|
||||||
%p.text-secondary
|
%p.text-secondary
|
||||||
= _('Select the configured storaged available for new projects to be placed on.')
|
= _('Select the configured storage available for new repositories to be placed on.')
|
||||||
= link_to icon('question-circle'), help_page_path('administration/repository_storage_paths')
|
= link_to icon('question-circle'), help_page_path('administration/repository_storage_paths')
|
||||||
.form-check
|
.form-check
|
||||||
= f.collection_check_boxes :repository_storages, Gitlab.config.repositories.storages, :first, :first, include_hidden: false do |b|
|
= f.collection_check_boxes :repository_storages, Gitlab.config.repositories.storages, :first, :first, include_hidden: false do |b|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Only display mirrored URL to users who can manage Repository settings
|
||||||
|
merge_request: 27166
|
||||||
|
author:
|
||||||
|
type: changed
|
5
changelogs/unreleased/create-token--http-response.yml
Normal file
5
changelogs/unreleased/create-token--http-response.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Token creation uses HTTP status CREATED
|
||||||
|
merge_request: 28587
|
||||||
|
author:
|
||||||
|
type: fixed
|
5
changelogs/unreleased/dmishunov-new-buttons.yml
Normal file
5
changelogs/unreleased/dmishunov-new-buttons.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Replaced old-style buttons with the new ones on Snippet view
|
||||||
|
merge_request: 28614
|
||||||
|
author:
|
||||||
|
type: other
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Update copies in Admin Panel > Repository Storage section
|
||||||
|
merge_request: 27986
|
||||||
|
author:
|
||||||
|
type: changed
|
|
@ -0,0 +1,17 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class AddConfidentialAttributeToEpics < ActiveRecord::Migration[6.0]
|
||||||
|
include Gitlab::Database::MigrationHelpers
|
||||||
|
|
||||||
|
DOWNTIME = false
|
||||||
|
|
||||||
|
disable_ddl_transaction!
|
||||||
|
|
||||||
|
def up
|
||||||
|
add_column_with_default(:epics, :confidential, :boolean, default: false)
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
remove_column(:epics, :confidential)
|
||||||
|
end
|
||||||
|
end
|
|
@ -2271,6 +2271,7 @@ CREATE TABLE public.epics (
|
||||||
state_id smallint DEFAULT 1 NOT NULL,
|
state_id smallint DEFAULT 1 NOT NULL,
|
||||||
start_date_sourcing_epic_id integer,
|
start_date_sourcing_epic_id integer,
|
||||||
due_date_sourcing_epic_id integer,
|
due_date_sourcing_epic_id integer,
|
||||||
|
confidential boolean DEFAULT false NOT NULL,
|
||||||
external_key character varying(255)
|
external_key character varying(255)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -12925,6 +12926,7 @@ COPY "schema_migrations" (version) FROM STDIN;
|
||||||
20200326144443
|
20200326144443
|
||||||
20200326145443
|
20200326145443
|
||||||
20200330074719
|
20200330074719
|
||||||
|
20200330121000
|
||||||
20200330132913
|
20200330132913
|
||||||
20200331220930
|
20200331220930
|
||||||
\.
|
\.
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 20 KiB |
BIN
doc/administration/img/repository_storages_admin_ui_v12_10.png
Normal file
BIN
doc/administration/img/repository_storages_admin_ui_v12_10.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 93 KiB |
|
@ -104,16 +104,16 @@ working, you can remove the `repos_path` line.
|
||||||
Note that Omnibus stores the repositories in a `repositories` subdirectory
|
Note that Omnibus stores the repositories in a `repositories` subdirectory
|
||||||
of the `git-data` directory.
|
of the `git-data` directory.
|
||||||
|
|
||||||
## Choose where new project repositories will be stored
|
## Choose where new repositories will be stored
|
||||||
|
|
||||||
Once you set the multiple storage paths, you can choose where new projects will
|
Once you set the multiple storage paths, you can choose where new repositories
|
||||||
be stored under **Admin Area > Settings > Repository > Repository storage > Storage
|
will be stored under **Admin Area > Settings > Repository >
|
||||||
nodes for new projects**.
|
Repository storage > Storage nodes for new repositories**.
|
||||||
|
|
||||||
![Choose repository storage path in Admin Area](img/repository_storages_admin_ui.png)
|
![Choose repository storage path in Admin Area](img/repository_storages_admin_ui_v12_10.png)
|
||||||
|
|
||||||
Beginning with GitLab 8.13.4, multiple paths can be chosen. New projects will be
|
Beginning with GitLab 8.13.4, multiple paths can be chosen. New repositories
|
||||||
randomly placed on one of the selected paths.
|
will be randomly placed on one of the selected paths.
|
||||||
|
|
||||||
[ce-4578]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/4578
|
[ce-4578]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/4578
|
||||||
[restart-gitlab]: restart_gitlab.md#installations-from-source
|
[restart-gitlab]: restart_gitlab.md#installations-from-source
|
||||||
|
|
|
@ -156,9 +156,7 @@ unicorn['worker_timeout'] = 300
|
||||||
|
|
||||||
For source installations, edit `config/unicorn.rb`.
|
For source installations, edit `config/unicorn.rb`.
|
||||||
|
|
||||||
[Reconfigure] GitLab for the changes to take effect.
|
[Reconfigure](../restart_gitlab.md#omnibus-gitlab-reconfigure) GitLab for the changes to take effect.
|
||||||
|
|
||||||
[Reconfigure]: ../restart_gitlab.md#omnibus-gitlab-reconfigure
|
|
||||||
|
|
||||||
#### Troubleshooting without affecting other users
|
#### Troubleshooting without affecting other users
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Markdown API
|
# Markdown API
|
||||||
|
|
||||||
> [Introduced][ce-18926] in GitLab 11.0.
|
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18926) in GitLab 11.0.
|
||||||
|
|
||||||
Available only in APIv4.
|
Available only in APIv4.
|
||||||
|
|
||||||
|
@ -25,5 +25,3 @@ Response example:
|
||||||
```json
|
```json
|
||||||
{ "html": "<p dir=\"auto\">Hello world! <gl-emoji title=\"party popper\" data-name=\"tada\" data-unicode-version=\"6.0\">🎉</gl-emoji></p>" }
|
{ "html": "<p dir=\"auto\">Hello world! <gl-emoji title=\"party popper\" data-name=\"tada\" data-unicode-version=\"6.0\">🎉</gl-emoji></p>" }
|
||||||
```
|
```
|
||||||
|
|
||||||
[ce-18926]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18926
|
|
||||||
|
|
|
@ -292,9 +292,7 @@ const dateFormat = createDateTimeFormat({ year: 'numeric', month: 'long', day: '
|
||||||
console.log(dateFormat.format(new Date('2063-04-05'))) // April 5, 2063
|
console.log(dateFormat.format(new Date('2063-04-05'))) // April 5, 2063
|
||||||
```
|
```
|
||||||
|
|
||||||
This makes use of [`Intl.DateTimeFormat`].
|
This makes use of [`Intl.DateTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat).
|
||||||
|
|
||||||
[`Intl.DateTimeFormat`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat
|
|
||||||
|
|
||||||
- In Ruby/HAML, we have two ways of adding format to dates and times:
|
- In Ruby/HAML, we have two ways of adding format to dates and times:
|
||||||
|
|
||||||
|
@ -404,9 +402,7 @@ This also applies when using links in between translated sentences, otherwise th
|
||||||
The reasoning behind this is that in some languages words change depending on context. For example in Japanese は is added to the subject of a sentence and を to the object. This is impossible to translate correctly if we extract individual words from the sentence.
|
The reasoning behind this is that in some languages words change depending on context. For example in Japanese は is added to the subject of a sentence and を to the object. This is impossible to translate correctly if we extract individual words from the sentence.
|
||||||
|
|
||||||
When in doubt, try to follow the best practices described in this [Mozilla
|
When in doubt, try to follow the best practices described in this [Mozilla
|
||||||
Developer documentation][mdn].
|
Developer documentation](https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Localization_content_best_practices#Splitting).
|
||||||
|
|
||||||
[mdn]: https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Localization_content_best_practices#Splitting
|
|
||||||
|
|
||||||
##### Vue components interpolation
|
##### Vue components interpolation
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,7 @@ are very appreciative of the work done by translators and proofreaders!
|
||||||
1. Request proofreader permissions by opening a merge request to add yourself
|
1. Request proofreader permissions by opening a merge request to add yourself
|
||||||
to the list of proofreaders.
|
to the list of proofreaders.
|
||||||
|
|
||||||
Open the [proofreader.md source file][proofreader-src] and click **Edit**.
|
Open the [proofreader.md source file](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/development/i18n/proofreader.md) and click **Edit**.
|
||||||
|
|
||||||
Add your language in alphabetical order, and add yourself to the list
|
Add your language in alphabetical order, and add yourself to the list
|
||||||
including:
|
including:
|
||||||
|
@ -138,5 +138,3 @@ are very appreciative of the work done by translators and proofreaders!
|
||||||
the language or current proofreaders.
|
the language or current proofreaders.
|
||||||
- When a request is made for the first proofreader for a language and there are no [GitLab team members](https://about.gitlab.com/company/team/)
|
- When a request is made for the first proofreader for a language and there are no [GitLab team members](https://about.gitlab.com/company/team/)
|
||||||
or [Core team members](https://about.gitlab.com/community/core-team/) who speak the language, we will request links to previous translation work in other communities or projects.
|
or [Core team members](https://about.gitlab.com/community/core-team/) who speak the language, we will request links to previous translation work in other communities or projects.
|
||||||
|
|
||||||
[proofreader-src]: https://gitlab.com/gitlab-org/gitlab/blob/master/doc/development/i18n/proofreader.md
|
|
||||||
|
|
|
@ -69,7 +69,7 @@ determining a suitable level of formality.
|
||||||
|
|
||||||
### Inclusive language
|
### Inclusive language
|
||||||
|
|
||||||
[Diversity] is one of GitLab's values.
|
[Diversity](https://about.gitlab.com/handbook/values/#diversity) is one of GitLab's values.
|
||||||
We ask you to avoid translations which exclude people based on their gender or
|
We ask you to avoid translations which exclude people based on their gender or
|
||||||
ethnicity.
|
ethnicity.
|
||||||
In languages which distinguish between a male and female form, use both or
|
In languages which distinguish between a male and female form, use both or
|
||||||
|
@ -78,8 +78,6 @@ choose a neutral formulation.
|
||||||
For example in German, the word "user" can be translated into "Benutzer" (male) or "Benutzerin" (female).
|
For example in German, the word "user" can be translated into "Benutzer" (male) or "Benutzerin" (female).
|
||||||
Therefore "create a new user" would translate into "Benutzer(in) anlegen".
|
Therefore "create a new user" would translate into "Benutzer(in) anlegen".
|
||||||
|
|
||||||
[Diversity]: https://about.gitlab.com/handbook/values/#diversity
|
|
||||||
|
|
||||||
### Updating the glossary
|
### Updating the glossary
|
||||||
|
|
||||||
To propose additions to the glossary please
|
To propose additions to the glossary please
|
||||||
|
|
|
@ -2,10 +2,11 @@
|
||||||
|
|
||||||
## Deep Dive
|
## Deep Dive
|
||||||
|
|
||||||
In April 2019, Francisco Javier López hosted a [Deep Dive] on GitLab's [Git LFS] implementation to share his domain specific knowledge with anyone who may work in this part of the code base in the future. You can find the [recording on YouTube], and the slides on [Google Slides] and in [PDF]. Everything covered in this deep dive was accurate as of GitLab 11.10, and while specific details may have changed since then, it should still serve as a good introduction.
|
In April 2019, Francisco Javier López hosted a [Deep Dive](https://gitlab.com/gitlab-org/create-stage/issues/1)
|
||||||
|
on GitLab's [Git LFS](../topics/git/lfs/index.md) implementation to share his domain
|
||||||
[Deep Dive]: https://gitlab.com/gitlab-org/create-stage/issues/1
|
specific knowledge with anyone who may work in this part of the code base in the future.
|
||||||
[Git LFS]: ../topics/git/lfs/index.md
|
You can find the [recording on YouTube](https://www.youtube.com/watch?v=Yyxwcksr0Qc),
|
||||||
[recording on YouTube]: https://www.youtube.com/watch?v=Yyxwcksr0Qc
|
and the slides on [Google Slides](https://docs.google.com/presentation/d/1E-aw6-z0rYd0346YhIWE7E9A65zISL9iIMAOq2zaw9E/edit)
|
||||||
[Google Slides]: https://docs.google.com/presentation/d/1E-aw6-z0rYd0346YhIWE7E9A65zISL9iIMAOq2zaw9E/edit
|
and in [PDF](https://gitlab.com/gitlab-org/create-stage/uploads/07a89257a140db067bdfb484aecd35e1/Git_LFS_Deep_Dive__Create_.pdf).
|
||||||
[PDF]: https://gitlab.com/gitlab-org/create-stage/uploads/07a89257a140db067bdfb484aecd35e1/Git_LFS_Deep_Dive__Create_.pdf
|
Everything covered in this deep dive was accurate as of GitLab 11.10, and while specific
|
||||||
|
details may have changed since then, it should still serve as a good introduction.
|
||||||
|
|
|
@ -25,23 +25,18 @@ After that, the next pipeline will use the up-to-date `knapsack/report-master.js
|
||||||
|
|
||||||
## Monitoring
|
## Monitoring
|
||||||
|
|
||||||
The GitLab test suite is [monitored] for the `master` branch, and any branch
|
The GitLab test suite is [monitored](../performance.md#rspec-profiling) for the `master` branch, and any branch
|
||||||
that includes `rspec-profile` in their name.
|
that includes `rspec-profile` in their name.
|
||||||
|
|
||||||
A [public dashboard] is available for everyone to see. Feel free to look at the
|
A [public dashboard](https://redash.gitlab.com/public/dashboards/l1WhHXaxrCWM5Ai9D7YDqHKehq6OU3bx5gssaiWe?org_slug=default) is available for everyone to see. Feel free to look at the
|
||||||
slowest test files and try to improve them.
|
slowest test files and try to improve them.
|
||||||
|
|
||||||
[monitored]: ../performance.md#rspec-profiling
|
|
||||||
[public dashboard]: https://redash.gitlab.com/public/dashboards/l1WhHXaxrCWM5Ai9D7YDqHKehq6OU3bx5gssaiWe?org_slug=default
|
|
||||||
|
|
||||||
## CI setup
|
## CI setup
|
||||||
|
|
||||||
- Rails logging to `log/test.log` is disabled by default in CI [for
|
- Rails logging to `log/test.log` is disabled by default in CI [for
|
||||||
performance reasons][logging]. To override this setting, provide the
|
performance reasons](https://jtway.co/speed-up-your-rails-test-suite-by-6-in-1-line-13fedb869ec4). To override this setting, provide the
|
||||||
`RAILS_ENABLE_TEST_LOG` environment variable.
|
`RAILS_ENABLE_TEST_LOG` environment variable.
|
||||||
|
|
||||||
[logging]: https://jtway.co/speed-up-your-rails-test-suite-by-6-in-1-line-13fedb869ec4
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[Return to Testing documentation](index.md)
|
[Return to Testing documentation](index.md)
|
||||||
|
|
|
@ -20,7 +20,7 @@ please refer to the [Git book](https://git-scm.com/book/en/v2).
|
||||||
|
|
||||||
We will explain a few different techniques to undo your changes based on the stage
|
We will explain a few different techniques to undo your changes based on the stage
|
||||||
of the change in your current development. Also, keep in mind that [nothing in
|
of the change in your current development. Also, keep in mind that [nothing in
|
||||||
Git is really deleted][git-autoclean-ref].
|
Git is really deleted](https://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery).
|
||||||
|
|
||||||
This means that until Git automatically cleans detached commits (which cannot be
|
This means that until Git automatically cleans detached commits (which cannot be
|
||||||
accessed by branch or tag) it will be possible to view them with `git reflog` command
|
accessed by branch or tag) it will be possible to view them with `git reflog` command
|
||||||
|
@ -28,7 +28,7 @@ and access them with direct commit-id. Read more about _[redoing the undo](#redo
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
This guide is organized depending on the [stage of development][git-basics]
|
This guide is organized depending on the [stage of development](https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository)
|
||||||
where you want to undo your changes from and if they were shared with other developers
|
where you want to undo your changes from and if they were shared with other developers
|
||||||
or not. Because Git is tracking changes a created or edited file is in the unstaged state
|
or not. Because Git is tracking changes a created or edited file is in the unstaged state
|
||||||
(if created it is untracked by Git). After you add it to a repository (`git add`) you put
|
(if created it is untracked by Git). After you add it to a repository (`git add`) you put
|
||||||
|
@ -52,16 +52,16 @@ Here's what we'll cover in this tutorial:
|
||||||
|
|
||||||
### Branching strategy
|
### Branching strategy
|
||||||
|
|
||||||
[Git][git-official] is a de-centralized version control system, which means that beside regular
|
[Git](https://git-scm.com/) is a de-centralized version control system, which means that beside regular
|
||||||
versioning of the whole repository, it has possibilities to exchange changes
|
versioning of the whole repository, it has possibilities to exchange changes
|
||||||
with other repositories.
|
with other repositories.
|
||||||
|
|
||||||
To avoid chaos with
|
To avoid chaos with
|
||||||
[multiple sources of truth][git-distributed], various
|
[multiple sources of truth](https://git-scm.com/about/distributed), various
|
||||||
development workflows have to be followed, and it depends on your internal
|
development workflows have to be followed, and it depends on your internal
|
||||||
workflow how certain changes or commits can be undone or changed.
|
workflow how certain changes or commits can be undone or changed.
|
||||||
|
|
||||||
[GitLab Flow][gitlab-flow] provides a good
|
[GitLab Flow](https://about.gitlab.com/blog/2014/09/29/gitlab-flow/) provides a good
|
||||||
balance between developers clashing with each other while
|
balance between developers clashing with each other while
|
||||||
developing the same feature and cooperating seamlessly, but it does not enable
|
developing the same feature and cooperating seamlessly, but it does not enable
|
||||||
joined development of the same feature by multiple developers by default.
|
joined development of the same feature by multiple developers by default.
|
||||||
|
@ -71,7 +71,7 @@ with every synchronization is unavoidable, but a proper or chosen Git Workflow w
|
||||||
prevent that anything is lost or out of sync when feature is complete.
|
prevent that anything is lost or out of sync when feature is complete.
|
||||||
|
|
||||||
You can also
|
You can also
|
||||||
read through this blog post on [Git Tips & Tricks][gitlab-git-tips-n-tricks]
|
read through this blog post on [Git Tips & Tricks](https://about.gitlab.com/blog/2016/12/08/git-tips-and-tricks/)
|
||||||
to learn how to easily **do** things in Git.
|
to learn how to easily **do** things in Git.
|
||||||
|
|
||||||
## Undo local changes
|
## Undo local changes
|
||||||
|
@ -234,7 +234,7 @@ git bisect A..E
|
||||||
```
|
```
|
||||||
|
|
||||||
Bisect will provide us with commit-id of the middle commit to test, and then guide us
|
Bisect will provide us with commit-id of the middle commit to test, and then guide us
|
||||||
through simple bisection process. You can read more about it [in official Git Tools][git-debug]
|
through simple bisection process. You can read more about it [in official Git Tools](https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git)
|
||||||
In our example we will end up with commit `B`, that introduced bug/error. We have
|
In our example we will end up with commit `B`, that introduced bug/error. We have
|
||||||
4 options on how to remove it (or part of it) from our repository.
|
4 options on how to remove it (or part of it) from our repository.
|
||||||
|
|
||||||
|
@ -333,7 +333,7 @@ Sometimes you realize that the changes you undid were useful and you want them
|
||||||
back. Well because of first paragraph you are in luck. Command `git reflog`
|
back. Well because of first paragraph you are in luck. Command `git reflog`
|
||||||
enables you to *recall* detached local commits by referencing or applying them
|
enables you to *recall* detached local commits by referencing or applying them
|
||||||
via commit-id. Although, do not expect to see really old commits in reflog, because
|
via commit-id. Although, do not expect to see really old commits in reflog, because
|
||||||
Git regularly [cleans the commits which are *unreachable* by branches or tags][git-autoclean-ref].
|
Git regularly [cleans the commits which are *unreachable* by branches or tags](https://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery).
|
||||||
|
|
||||||
To view repository history and to track older commits you can use below command:
|
To view repository history and to track older commits you can use below command:
|
||||||
|
|
||||||
|
@ -403,7 +403,7 @@ the cleanup of detached commits (happens automatically).
|
||||||
Modified history breaks the development chain of other developers, as changed
|
Modified history breaks the development chain of other developers, as changed
|
||||||
history does not have matching commits'ids. For that reason it should not be
|
history does not have matching commits'ids. For that reason it should not be
|
||||||
used on any public branch or on branch that *might* be used by other developers.
|
used on any public branch or on branch that *might* be used by other developers.
|
||||||
When contributing to big open source repositories (for example, [GitLab][gitlab]
|
When contributing to big open source repositories (for example, [GitLab](https://gitlab.com/gitlab-org/gitlab/blob/master/CONTRIBUTING.md#contribution-acceptance-criteria)
|
||||||
itself), it is acceptable to *squash* commits into a single one, to present a
|
itself), it is acceptable to *squash* commits into a single one, to present a
|
||||||
nicer history of your contribution.
|
nicer history of your contribution.
|
||||||
|
|
||||||
|
@ -476,7 +476,7 @@ Git also enables you to delete sensitive information from your past commits and
|
||||||
it does modify history in the progress. That is why we have included it in this
|
it does modify history in the progress. That is why we have included it in this
|
||||||
section and not as a standalone topic. To do so, you should run the
|
section and not as a standalone topic. To do so, you should run the
|
||||||
`git filter-branch`, which enables you to rewrite history with
|
`git filter-branch`, which enables you to rewrite history with
|
||||||
[certain filters][git-filters-manual].
|
[certain filters](https://git-scm.com/docs/git-filter-branch#_options).
|
||||||
This command uses rebase to modify history and if you want to remove certain
|
This command uses rebase to modify history and if you want to remove certain
|
||||||
file from history altogether use:
|
file from history altogether use:
|
||||||
|
|
||||||
|
@ -487,7 +487,7 @@ git filter-branch --tree-filter 'rm filename' HEAD
|
||||||
Since `git filter-branch` command might be slow on big repositories, there are
|
Since `git filter-branch` command might be slow on big repositories, there are
|
||||||
tools that can use some of Git specifics to enable faster execution of common
|
tools that can use some of Git specifics to enable faster execution of common
|
||||||
tasks (which is exactly what removing sensitive information file is about).
|
tasks (which is exactly what removing sensitive information file is about).
|
||||||
An alternative is the open source community-maintained tool [BFG][bfg-repo-cleaner].
|
An alternative is the open source community-maintained tool [BFG](https://rtyley.github.io/bfg-repo-cleaner/).
|
||||||
Keep in mind that these tools are faster because they do not provide the same
|
Keep in mind that these tools are faster because they do not provide the same
|
||||||
feature set as `git filter-branch` does, but focus on specific use cases.
|
feature set as `git filter-branch` does, but focus on specific use cases.
|
||||||
|
|
||||||
|
@ -512,14 +512,3 @@ If you have none to add when creating a doc, leave this section in place
|
||||||
but commented out to help encourage others to add to it in the future. -->
|
but commented out to help encourage others to add to it in the future. -->
|
||||||
|
|
||||||
<!-- Identifiers, in alphabetical order -->
|
<!-- Identifiers, in alphabetical order -->
|
||||||
|
|
||||||
[bfg-repo-cleaner]: https://rtyley.github.io/bfg-repo-cleaner/
|
|
||||||
[git-autoclean-ref]: https://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery
|
|
||||||
[git-basics]: https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository
|
|
||||||
[git-debug]: https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git
|
|
||||||
[git-distributed]: https://git-scm.com/about/distributed
|
|
||||||
[git-filters-manual]: https://git-scm.com/docs/git-filter-branch#_options
|
|
||||||
[git-official]: https://git-scm.com/
|
|
||||||
[gitlab]: https://gitlab.com/gitlab-org/gitlab/blob/master/CONTRIBUTING.md#contribution-acceptance-criteria
|
|
||||||
[gitlab-flow]: https://about.gitlab.com/blog/2014/09/29/gitlab-flow/
|
|
||||||
[gitlab-git-tips-n-tricks]: https://about.gitlab.com/blog/2016/12/08/git-tips-and-tricks/
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ set to 50MB. The default is 1MB.
|
||||||
**If pushing over SSH**, first check your SSH configuration as 'Broken pipe'
|
**If pushing over SSH**, first check your SSH configuration as 'Broken pipe'
|
||||||
errors can sometimes be caused by underlying issues with SSH (such as
|
errors can sometimes be caused by underlying issues with SSH (such as
|
||||||
authentication). Make sure that SSH is correctly configured by following the
|
authentication). Make sure that SSH is correctly configured by following the
|
||||||
instructions in the [SSH troubleshooting] docs.
|
instructions in the [SSH troubleshooting](../../ssh/README.md#troubleshooting) docs.
|
||||||
|
|
||||||
There's another option where you can prevent session timeouts by configuring
|
There's another option where you can prevent session timeouts by configuring
|
||||||
SSH 'keep alive' either on the client or on the server (if you are a GitLab
|
SSH 'keep alive' either on the client or on the server (if you are a GitLab
|
||||||
|
@ -86,7 +86,7 @@ git push
|
||||||
### Upgrade your Git client
|
### Upgrade your Git client
|
||||||
|
|
||||||
In case you're running an older version of Git (< 2.9), consider upgrading
|
In case you're running an older version of Git (< 2.9), consider upgrading
|
||||||
to >= 2.9 (see [Broken pipe when pushing to Git repository][Broken-Pipe]).
|
to >= 2.9 (see [Broken pipe when pushing to Git repository](https://stackoverflow.com/questions/19120120/broken-pipe-when-pushing-to-git-repository/36971469#36971469)).
|
||||||
|
|
||||||
## `ssh_exchange_identification` error
|
## `ssh_exchange_identification` error
|
||||||
|
|
||||||
|
@ -168,6 +168,3 @@ The default value of `http.postBuffer`, 1 MiB, is applied if the setting is not
|
||||||
```shell
|
```shell
|
||||||
git config http.postBuffer 524288000
|
git config http.postBuffer 524288000
|
||||||
```
|
```
|
||||||
|
|
||||||
[SSH troubleshooting]: ../../ssh/README.md#troubleshooting "SSH Troubleshooting"
|
|
||||||
[Broken-Pipe]: https://stackoverflow.com/questions/19120120/broken-pipe-when-pushing-to-git-repository/36971469#36971469 "StackOverflow: 'Broken pipe when pushing to Git repository'"
|
|
||||||
|
|
|
@ -28,6 +28,10 @@ immediate update, unless:
|
||||||
- The mirror is already being updated.
|
- The mirror is already being updated.
|
||||||
- 5 minutes haven't elapsed since its last update.
|
- 5 minutes haven't elapsed since its last update.
|
||||||
|
|
||||||
|
For security reasons, from [GitLab 12.10 onwards](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27166),
|
||||||
|
the URL to the original repository is only displayed to users with
|
||||||
|
Maintainer or Owner permissions to the mirrored project.
|
||||||
|
|
||||||
## Use cases
|
## Use cases
|
||||||
|
|
||||||
The following are some possible use cases for repository mirroring:
|
The following are some possible use cases for repository mirroring:
|
||||||
|
|
|
@ -3353,6 +3353,12 @@ msgstr ""
|
||||||
msgid "Cannot create the abuse report. This user has been blocked."
|
msgid "Cannot create the abuse report. This user has been blocked."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Cannot make epic confidential if it contains not-confidential issues"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Cannot make epic confidential if it contains not-confidential sub-epics"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Cannot merge"
|
msgid "Cannot merge"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -3371,6 +3377,9 @@ msgstr ""
|
||||||
msgid "Cannot refer to a group milestone by an internal id!"
|
msgid "Cannot refer to a group milestone by an internal id!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Cannot set confidential epic for not-confidential issue"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Cannot show preview. For previews on sketch files, they must have the file format introduced by Sketch version 43 and above."
|
msgid "Cannot show preview. For previews on sketch files, they must have the file format introduced by Sketch version 43 and above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5760,6 +5769,9 @@ msgstr ""
|
||||||
msgid "Could not save prometheus manual configuration"
|
msgid "Could not save prometheus manual configuration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Could not update the LDAP settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Could not upload your designs as one or more files uploaded are not supported."
|
msgid "Could not upload your designs as one or more files uploaded are not supported."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -11585,6 +11597,9 @@ msgstr ""
|
||||||
msgid "LDAP settings"
|
msgid "LDAP settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "LDAP settings updated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "LDAP sync in progress. This could take a few minutes. Refresh the page to see the changes."
|
msgid "LDAP sync in progress. This could take a few minutes. Refresh the page to see the changes."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -13598,6 +13613,9 @@ msgstr ""
|
||||||
msgid "Not started"
|
msgid "Not started"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Not-confidential epic cannot be assigned to a confidential parent epic"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Note"
|
msgid "Note"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -17646,9 +17664,6 @@ msgstr ""
|
||||||
msgid "Security Dashboard"
|
msgid "Security Dashboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Security Dashboard|Error fetching the dashboard data. Please check your network connection and try again."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Security Dashboard|Error fetching the vulnerability counts. Please check your network connection and try again."
|
msgid "Security Dashboard|Error fetching the vulnerability counts. Please check your network connection and try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -17940,7 +17955,7 @@ msgstr ""
|
||||||
msgid "Select the branch you want to set as the default for this project. All merge requests and commits will automatically be made against this branch unless you specify a different one."
|
msgid "Select the branch you want to set as the default for this project. All merge requests and commits will automatically be made against this branch unless you specify a different one."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Select the configured storaged available for new projects to be placed on."
|
msgid "Select the configured storage available for new repositories to be placed on."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Select the custom project template source group."
|
msgid "Select the custom project template source group."
|
||||||
|
@ -19226,7 +19241,7 @@ msgstr ""
|
||||||
msgid "Storage"
|
msgid "Storage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Storage nodes for new projects"
|
msgid "Storage nodes for new repositories"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Storage:"
|
msgid "Storage:"
|
||||||
|
@ -21969,7 +21984,7 @@ msgstr ""
|
||||||
msgid "Use hashed storage"
|
msgid "Use hashed storage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Use hashed storage paths for newly created and renamed projects. Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents repositories from having to be moved or renamed when the Project URL changes and may improve disk I/O performance."
|
msgid "Use hashed storage paths for newly created and renamed repositories. Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents repositories from having to be moved or renamed when the Repository URL changes and may improve disk I/O performance."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Use one line per URI"
|
msgid "Use one line per URI"
|
||||||
|
|
|
@ -267,7 +267,7 @@ describe Groups::Settings::CiCdController do
|
||||||
it 'creates the deploy token' do
|
it 'creates the deploy token' do
|
||||||
subject
|
subject
|
||||||
|
|
||||||
expect(response).to have_gitlab_http_status(:ok)
|
expect(response).to have_gitlab_http_status(:created)
|
||||||
expect(response).to match_response_schema('public_api/v4/deploy_token')
|
expect(response).to match_response_schema('public_api/v4/deploy_token')
|
||||||
expect(json_response).to match(expected_response)
|
expect(json_response).to match(expected_response)
|
||||||
end
|
end
|
||||||
|
|
|
@ -300,7 +300,7 @@ describe Projects::Settings::CiCdController do
|
||||||
it 'creates the deploy token' do
|
it 'creates the deploy token' do
|
||||||
subject
|
subject
|
||||||
|
|
||||||
expect(response).to have_gitlab_http_status(:ok)
|
expect(response).to have_gitlab_http_status(:created)
|
||||||
expect(response).to match_response_schema('public_api/v4/deploy_token')
|
expect(response).to match_response_schema('public_api/v4/deploy_token')
|
||||||
expect(json_response).to match(expected_response)
|
expect(json_response).to match(expected_response)
|
||||||
end
|
end
|
||||||
|
|
|
@ -59,7 +59,9 @@ describe('diffs/components/commit_item', () => {
|
||||||
expect(titleElement.text()).toBe(commit.title_html);
|
expect(titleElement.text()).toBe(commit.title_html);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('renders commit description', () => {
|
// https://gitlab.com/gitlab-org/gitlab/-/issues/209776
|
||||||
|
// eslint-disable-next-line jest/no-disabled-tests
|
||||||
|
it.skip('renders commit description', () => {
|
||||||
const descElement = getDescElement();
|
const descElement = getDescElement();
|
||||||
const descExpandElement = getDescExpandElement();
|
const descExpandElement = getDescExpandElement();
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import SnippetHeader from '~/snippets/components/snippet_header.vue';
|
import SnippetHeader from '~/snippets/components/snippet_header.vue';
|
||||||
import DeleteSnippetMutation from '~/snippets/mutations/deleteSnippet.mutation.graphql';
|
import DeleteSnippetMutation from '~/snippets/mutations/deleteSnippet.mutation.graphql';
|
||||||
import { ApolloMutation } from 'vue-apollo';
|
import { ApolloMutation } from 'vue-apollo';
|
||||||
import { GlDeprecatedButton, GlModal } from '@gitlab/ui';
|
import { GlNewButton, GlModal } from '@gitlab/ui';
|
||||||
import { shallowMount } from '@vue/test-utils';
|
import { shallowMount } from '@vue/test-utils';
|
||||||
|
|
||||||
describe('Snippet header component', () => {
|
describe('Snippet header component', () => {
|
||||||
|
@ -89,7 +89,7 @@ describe('Snippet header component', () => {
|
||||||
updateSnippet: false,
|
updateSnippet: false,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(wrapper.findAll(GlDeprecatedButton).length).toEqual(0);
|
expect(wrapper.findAll(GlNewButton).length).toEqual(0);
|
||||||
|
|
||||||
createComponent({
|
createComponent({
|
||||||
permissions: {
|
permissions: {
|
||||||
|
@ -97,7 +97,7 @@ describe('Snippet header component', () => {
|
||||||
updateSnippet: false,
|
updateSnippet: false,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(wrapper.findAll(GlDeprecatedButton).length).toEqual(1);
|
expect(wrapper.findAll(GlNewButton).length).toEqual(1);
|
||||||
|
|
||||||
createComponent({
|
createComponent({
|
||||||
permissions: {
|
permissions: {
|
||||||
|
@ -105,7 +105,7 @@ describe('Snippet header component', () => {
|
||||||
updateSnippet: true,
|
updateSnippet: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(wrapper.findAll(GlDeprecatedButton).length).toEqual(2);
|
expect(wrapper.findAll(GlNewButton).length).toEqual(2);
|
||||||
|
|
||||||
createComponent({
|
createComponent({
|
||||||
permissions: {
|
permissions: {
|
||||||
|
@ -117,7 +117,7 @@ describe('Snippet header component', () => {
|
||||||
canCreateSnippet: true,
|
canCreateSnippet: true,
|
||||||
});
|
});
|
||||||
return wrapper.vm.$nextTick().then(() => {
|
return wrapper.vm.$nextTick().then(() => {
|
||||||
expect(wrapper.findAll(GlDeprecatedButton).length).toEqual(3);
|
expect(wrapper.findAll(GlNewButton).length).toEqual(3);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -845,6 +845,7 @@ Epic:
|
||||||
- due_date_sourcing_epic_id
|
- due_date_sourcing_epic_id
|
||||||
- health_status
|
- health_status
|
||||||
- external_key
|
- external_key
|
||||||
|
- confidential
|
||||||
EpicIssue:
|
EpicIssue:
|
||||||
- id
|
- id
|
||||||
- relative_position
|
- relative_position
|
||||||
|
|
Loading…
Reference in a new issue