Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
ea3f6d2444
commit
75b46eb33c
|
|
@ -971,6 +971,7 @@ Gitlab/NamespacedClass:
|
||||||
- 'ee/app/presenters/epic_presenter.rb'
|
- 'ee/app/presenters/epic_presenter.rb'
|
||||||
- 'ee/app/presenters/iteration_presenter.rb'
|
- 'ee/app/presenters/iteration_presenter.rb'
|
||||||
- 'ee/app/presenters/merge_request_approver_presenter.rb'
|
- 'ee/app/presenters/merge_request_approver_presenter.rb'
|
||||||
|
- 'ee/app/presenters/repository_presenter.rb'
|
||||||
- 'ee/app/presenters/subscription_presenter.rb'
|
- 'ee/app/presenters/subscription_presenter.rb'
|
||||||
- 'ee/app/presenters/vulnerability_presenter.rb'
|
- 'ee/app/presenters/vulnerability_presenter.rb'
|
||||||
- 'ee/app/serializers/audit_event_entity.rb'
|
- 'ee/app/serializers/audit_event_entity.rb'
|
||||||
|
|
|
||||||
|
|
@ -1924,8 +1924,8 @@ Layout/ArgumentAlignment:
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/source_editor/source_editor_toolbar_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/source_editor/source_editor_toolbar_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_new/add_new_directory_in_web_ide_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/add_file_template_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/5_package/package_registry/nuget/nuget_project_level_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/5_package/package_registry/nuget/nuget_project_level_spec.rb'
|
||||||
|
|
|
||||||
|
|
@ -151,7 +151,7 @@ Layout/FirstHashElementIndentation:
|
||||||
- 'qa/qa/specs/features/api/1_manage/migration/gitlab_migration_release_spec.rb'
|
- 'qa/qa/specs/features/api/1_manage/migration/gitlab_migration_release_spec.rb'
|
||||||
- 'qa/qa/specs/features/api/3_create/repository/commit_to_templated_project_spec.rb'
|
- 'qa/qa/specs/features/api/3_create/repository/commit_to_templated_project_spec.rb'
|
||||||
- 'qa/qa/specs/features/api/5_package/container_registry_spec.rb'
|
- 'qa/qa/specs/features/api/5_package/container_registry_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/open_web_ide_from_diff_tab_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/open_web_ide_from_diff_tab_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/5_package/container_registry/container_registry_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/5_package/container_registry/container_registry_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/5_package/container_registry/online_garbage_collection_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/5_package/container_registry/online_garbage_collection_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb'
|
||||||
|
|
|
||||||
|
|
@ -3291,12 +3291,11 @@ Layout/LineLength:
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/create_first_file_in_web_ide_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/create_first_file_in_web_ide_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/link_to_line_in_web_ide_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/link_to_line_in_web_ide_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/open_fork_in_web_ide_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/open_fork_in_web_ide_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/open_web_ide_from_diff_tab_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/open_web_ide_from_diff_tab_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/review_merge_request_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb'
|
|
||||||
- 'qa/qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb'
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ RSpec/HooksBeforeExamples:
|
||||||
- 'qa/qa/specs/features/browser_ui/1_manage/user/follow_user_activity_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/1_manage/user/follow_user_activity_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/1_manage/user/user_inherited_access_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/1_manage/user/user_inherited_access_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/merge_request/revert/revert_commit_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/merge_request/revert/revert_commit_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/open_fork_in_web_ide_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/open_fork_in_web_ide_spec.rb'
|
||||||
- 'qa/qa/specs/features/ee/api/1_manage/user/minimal_access_user_spec.rb'
|
- 'qa/qa/specs/features/ee/api/1_manage/user/minimal_access_user_spec.rb'
|
||||||
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_git_access_spec.rb'
|
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_git_access_spec.rb'
|
||||||
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_new_account_spec.rb'
|
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_new_account_spec.rb'
|
||||||
|
|
|
||||||
|
|
@ -40,8 +40,8 @@ RSpec/InstanceVariable:
|
||||||
- 'qa/qa/specs/features/browser_ui/1_manage/login/register_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/1_manage/login/register_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/add_file_template_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/link_to_line_in_web_ide_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/link_to_line_in_web_ide_spec.rb'
|
||||||
- 'qa/qa/specs/features/ee/api/1_manage/user/minimal_access_user_spec.rb'
|
- 'qa/qa/specs/features/ee/api/1_manage/user/minimal_access_user_spec.rb'
|
||||||
- 'qa/qa/specs/features/ee/browser_ui/13_secure/license_compliance_spec.rb'
|
- 'qa/qa/specs/features/ee/browser_ui/13_secure/license_compliance_spec.rb'
|
||||||
- 'qa/qa/specs/features/ee/browser_ui/13_secure/merge_request_license_widget_spec.rb'
|
- 'qa/qa/specs/features/ee/browser_ui/13_secure/merge_request_license_widget_spec.rb'
|
||||||
|
|
|
||||||
|
|
@ -1284,7 +1284,6 @@ RSpec/MissingFeatureCategory:
|
||||||
- 'ee/spec/models/protected_environments/deploy_access_level_spec.rb'
|
- 'ee/spec/models/protected_environments/deploy_access_level_spec.rb'
|
||||||
- 'ee/spec/models/push_rule_spec.rb'
|
- 'ee/spec/models/push_rule_spec.rb'
|
||||||
- 'ee/spec/models/remote_mirror_spec.rb'
|
- 'ee/spec/models/remote_mirror_spec.rb'
|
||||||
- 'ee/spec/models/repository_spec.rb'
|
|
||||||
- 'ee/spec/models/requirements_management/requirement_spec.rb'
|
- 'ee/spec/models/requirements_management/requirement_spec.rb'
|
||||||
- 'ee/spec/models/saml_group_link_spec.rb'
|
- 'ee/spec/models/saml_group_link_spec.rb'
|
||||||
- 'ee/spec/models/saml_provider_spec.rb'
|
- 'ee/spec/models/saml_provider_spec.rb'
|
||||||
|
|
|
||||||
|
|
@ -173,7 +173,7 @@ Style/SymbolProc:
|
||||||
- 'qa/qa/runtime/ip_address.rb'
|
- 'qa/qa/runtime/ip_address.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/1_manage/login/register_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/1_manage/login/register_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/review_merge_request_spec.rb'
|
||||||
- 'qa/qa/specs/features/browser_ui/5_package/container_registry/online_garbage_collection_spec.rb'
|
- 'qa/qa/specs/features/browser_ui/5_package/container_registry/online_garbage_collection_spec.rb'
|
||||||
- 'qa/qa/specs/features/ee/browser_ui/13_secure/enable_scanning_from_configuration_spec.rb'
|
- 'qa/qa/specs/features/ee/browser_ui/13_secure/enable_scanning_from_configuration_spec.rb'
|
||||||
- 'qa/qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb'
|
- 'qa/qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb'
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,10 @@
|
||||||
<script>
|
<script>
|
||||||
import {
|
import { GlDropdown, GlButton, GlIcon, GlForm, GlFormGroup, GlFormCheckbox } from '@gitlab/ui';
|
||||||
GlDropdown,
|
|
||||||
GlButton,
|
|
||||||
GlIcon,
|
|
||||||
GlForm,
|
|
||||||
GlFormGroup,
|
|
||||||
GlLink,
|
|
||||||
GlFormCheckbox,
|
|
||||||
} from '@gitlab/ui';
|
|
||||||
import { mapGetters, mapActions } from 'vuex';
|
import { mapGetters, mapActions } from 'vuex';
|
||||||
import { createAlert } from '~/alert';
|
import { createAlert } from '~/alert';
|
||||||
import MarkdownField from '~/vue_shared/components/markdown/field.vue';
|
import MarkdownField from '~/vue_shared/components/markdown/field.vue';
|
||||||
import { scrollToElement } from '~/lib/utils/common_utils';
|
import { scrollToElement } from '~/lib/utils/common_utils';
|
||||||
import Autosave from '~/autosave';
|
import Autosave from '~/autosave';
|
||||||
import { helpPagePath } from '~/helpers/help_page_helper';
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
|
@ -22,7 +13,6 @@ export default {
|
||||||
GlIcon,
|
GlIcon,
|
||||||
GlForm,
|
GlForm,
|
||||||
GlFormGroup,
|
GlFormGroup,
|
||||||
GlLink,
|
|
||||||
GlFormCheckbox,
|
GlFormCheckbox,
|
||||||
MarkdownField,
|
MarkdownField,
|
||||||
ApprovalPassword: () => import('ee_component/batch_comments/components/approval_password.vue'),
|
ApprovalPassword: () => import('ee_component/batch_comments/components/approval_password.vue'),
|
||||||
|
|
@ -102,9 +92,6 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
restrictedToolbarItems: ['full-screen'],
|
restrictedToolbarItems: ['full-screen'],
|
||||||
helpPagePath: helpPagePath('user/project/merge_requests/reviews/index.html', {
|
|
||||||
anchor: 'submit-a-review',
|
|
||||||
}),
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
@ -126,14 +113,6 @@ export default {
|
||||||
<gl-form-group label-for="review-note-body" label-class="gl-mb-2">
|
<gl-form-group label-for="review-note-body" label-class="gl-mb-2">
|
||||||
<template #label>
|
<template #label>
|
||||||
{{ __('Summary comment (optional)') }}
|
{{ __('Summary comment (optional)') }}
|
||||||
<gl-link
|
|
||||||
:href="$options.helpPagePath"
|
|
||||||
:aria-label="__('More information')"
|
|
||||||
target="_blank"
|
|
||||||
class="gl-ml-2"
|
|
||||||
>
|
|
||||||
<gl-icon name="question-o" />
|
|
||||||
</gl-link>
|
|
||||||
</template>
|
</template>
|
||||||
<div class="common-note-form gfm-form">
|
<div class="common-note-form gfm-form">
|
||||||
<div
|
<div
|
||||||
|
|
|
||||||
|
|
@ -28,3 +28,5 @@ module Types
|
||||||
description: 'Tree of the repository.'
|
description: 'Tree of the repository.'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Types::RepositoryType.prepend_mod
|
||||||
|
|
|
||||||
|
|
@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/371084
|
||||||
milestone: '15.4'
|
milestone: '15.4'
|
||||||
type: development
|
type: development
|
||||||
group: group::editor
|
group: group::editor
|
||||||
default_enabled: false
|
default_enabled: true
|
||||||
|
|
|
||||||
|
|
@ -20313,6 +20313,18 @@ Returns [`[String!]`](#string).
|
||||||
| <a id="repositorybranchnamesoffset"></a>`offset` | [`Int!`](#int) | Number of branch names to skip. |
|
| <a id="repositorybranchnamesoffset"></a>`offset` | [`Int!`](#int) | Number of branch names to skip. |
|
||||||
| <a id="repositorybranchnamessearchpattern"></a>`searchPattern` | [`String!`](#string) | Pattern to search for branch names by. |
|
| <a id="repositorybranchnamessearchpattern"></a>`searchPattern` | [`String!`](#string) | Pattern to search for branch names by. |
|
||||||
|
|
||||||
|
##### `Repository.codeOwnersPath`
|
||||||
|
|
||||||
|
Path to CODEOWNERS file in a ref.
|
||||||
|
|
||||||
|
Returns [`String`](#string).
|
||||||
|
|
||||||
|
###### Arguments
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| ---- | ---- | ----------- |
|
||||||
|
| <a id="repositorycodeownerspathref"></a>`ref` | [`String`](#string) | Name of the ref. |
|
||||||
|
|
||||||
##### `Repository.paginatedTree`
|
##### `Repository.paginatedTree`
|
||||||
|
|
||||||
Paginated tree of the repository.
|
Paginated tree of the repository.
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ Automate and interact with GitLab, and integrate with external applications.
|
||||||
|
|
||||||
- [Integrations](../integration/index.md)
|
- [Integrations](../integration/index.md)
|
||||||
- [Webhooks](../user/project/integrations/webhooks.md)
|
- [Webhooks](../user/project/integrations/webhooks.md)
|
||||||
- [Visual Studio Code extension](../user/project/repository/vscode.md)
|
|
||||||
- [REST API](rest/index.md)
|
- [REST API](rest/index.md)
|
||||||
- [GraphQL API](graphql/index.md)
|
- [GraphQL API](graphql/index.md)
|
||||||
- [Lint `.gitlab-ci.yml`](lint.md)
|
- [OAuth 2.0 identity provider API](oauth2.md)
|
||||||
- [GitLab as an OAuth2 provider](oauth2.md)
|
- [GitLab CLI (glab)](../integration/glab/index.md)
|
||||||
|
- [Visual Studio Code extension](../user/project/repository/vscode.md)
|
||||||
|
|
|
||||||
|
|
@ -43,27 +43,10 @@ If you would like to contribute to GitLab:
|
||||||
slowest tests. These tests are good candidates for improving and checking if any of
|
slowest tests. These tests are good candidates for improving and checking if any of
|
||||||
[best practices](../testing_guide/best_practices.md)
|
[best practices](../testing_guide/best_practices.md)
|
||||||
could speed them up.
|
could speed them up.
|
||||||
- Consult the [Contribution Flow](#contribution-flow) section to learn the process.
|
|
||||||
|
|
||||||
### Contribution flow
|
For a walkthrough of the contribution process, see [Tutorial: Make a GitLab contribution](first_contribution.md).
|
||||||
|
|
||||||
The general flow of contributing to GitLab is:
|
### Review process
|
||||||
|
|
||||||
1. [Read about](https://gitlab.com/gitlab-community/meta) and [request access](https://gitlab.com/gitlab-community/meta#request-access-to-community-forks)
|
|
||||||
to the GitLab Community forks. In some cases, you will want to set up the
|
|
||||||
[GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit) to
|
|
||||||
[develop against the GitLab community fork](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/index.md#develop-in-your-own-gitlab-fork).
|
|
||||||
1. Create a feature branch and make changes in the [GitLab community fork](https://gitlab.com/gitlab-community/gitlab).
|
|
||||||
1. When you're ready, [create a new merge request](../../user/project/merge_requests/creating_merge_requests.md).
|
|
||||||
1. In the merge request's description:
|
|
||||||
- Ensure you provide complete and accurate information.
|
|
||||||
- Review the provided checklist.
|
|
||||||
1. Once you're ready, mark your MR as ready for review with `@gitlab-bot ready`.
|
|
||||||
- This will add the `~"workflow::ready for review"` label, and then automatically assign a merge request coach as reviewer.
|
|
||||||
- If you know a relevant reviewer (for example, someone that was involved a related issue), you can also
|
|
||||||
assign them directly with `@gitlab-bot ready @username`.
|
|
||||||
|
|
||||||
#### Review process
|
|
||||||
|
|
||||||
When you submit code to GitLab, we really want it to get merged! However, we always review
|
When you submit code to GitLab, we really want it to get merged! However, we always review
|
||||||
submissions carefully, and this takes time. Code submissions will usually be reviewed by two
|
submissions carefully, and this takes time. Code submissions will usually be reviewed by two
|
||||||
|
|
@ -95,7 +78,7 @@ Lastly, keep the following in mind when submitting merge requests:
|
||||||
be merged, as well as some guidance. The maintainers will be open to discussion about how to change
|
be merged, as well as some guidance. The maintainers will be open to discussion about how to change
|
||||||
the code so it can be approved and merged in the future.
|
the code so it can be approved and merged in the future.
|
||||||
|
|
||||||
#### Getting attention on your merge request
|
### Getting attention on your merge request
|
||||||
|
|
||||||
GitLab will do its best to review community contributions as quickly as possible. Specially
|
GitLab will do its best to review community contributions as quickly as possible. Specially
|
||||||
appointed developers review community contributions daily. Look at the
|
appointed developers review community contributions daily. Look at the
|
||||||
|
|
@ -119,7 +102,7 @@ This [documentation](issue_workflow.md) outlines the current issue workflow:
|
||||||
- [Technical and UX debt](../labels/index.md#technical-and-ux-debt)
|
- [Technical and UX debt](../labels/index.md#technical-and-ux-debt)
|
||||||
- [Technical debt in follow-up issues](issue_workflow.md#technical-debt-in-follow-up-issues)
|
- [Technical debt in follow-up issues](issue_workflow.md#technical-debt-in-follow-up-issues)
|
||||||
|
|
||||||
#### Merge requests workflow
|
### Merge requests workflow
|
||||||
|
|
||||||
This [documentation](merge_request_workflow.md) outlines the current merge request process.
|
This [documentation](merge_request_workflow.md) outlines the current merge request process.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,61 +55,20 @@ within the MR.
|
||||||
|
|
||||||
## Merge request guidelines for contributors
|
## Merge request guidelines for contributors
|
||||||
|
|
||||||
### Getting started
|
For a walkthrough of the contribution process, see [Tutorial: Make a GitLab contribution](first_contribution.md).
|
||||||
|
|
||||||
Merge requests should be submitted to the appropriate project at GitLab.com, for example
|
### Best practices
|
||||||
[GitLab](https://gitlab.com/gitlab-org/gitlab/-/merge_requests),
|
|
||||||
[GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests), or
|
|
||||||
[Omnibus GitLab](https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests).
|
|
||||||
|
|
||||||
To start developing GitLab locally, download the [GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit)
|
- If the change is non-trivial, we encourage you to start a discussion with
|
||||||
and see the [Development section](../../index.md) for the required guidelines.
|
[a product manager or a member of the team](https://about.gitlab.com/handbook/product/categories/).
|
||||||
|
You can do this by tagging them in an MR before submitting the code for review. Talking
|
||||||
NOTE:
|
|
||||||
Consider placing your code behind a feature flag if you think it might affect production availability.
|
|
||||||
Not sure? Read [When to use feature flags](https://about.gitlab.com/handbook/product-development-flow/feature-flag-lifecycle/#when-to-use-feature-flags).
|
|
||||||
|
|
||||||
If the change is non-trivial, we encourage you to
|
|
||||||
start a discussion with [a product manager or a member of the team](https://about.gitlab.com/handbook/product/categories/).
|
|
||||||
You can do
|
|
||||||
this by tagging them in an MR before submitting the code for review. Talking
|
|
||||||
to team members can be helpful when making design decisions. Communicating the
|
to team members can be helpful when making design decisions. Communicating the
|
||||||
intent behind your changes can also help expedite merge request reviews.
|
intent behind your changes can also help expedite merge request reviews.
|
||||||
|
|
||||||
### Creating a merge request
|
- Consider placing your code behind a feature flag if you think it might affect production availability.
|
||||||
|
Not sure? Read [When to use feature flags](https://about.gitlab.com/handbook/product-development-flow/feature-flag-lifecycle/#when-to-use-feature-flags).
|
||||||
|
|
||||||
To create a merge request:
|
- If you would like quick feedback on your merge request feel free to mention someone
|
||||||
|
|
||||||
1. [Read about](https://gitlab.com/gitlab-community/meta) and [request access](https://gitlab.com/gitlab-community/meta#request-access-to-community-forks)
|
|
||||||
to the GitLab Community forks. In some cases, you will want to set up the
|
|
||||||
[GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit) to
|
|
||||||
[develop against the GitLab community fork](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/index.md#develop-in-your-own-gitlab-fork).
|
|
||||||
1. Create a feature branch in the [GitLab community fork](https://gitlab.com/gitlab-community/gitlab)
|
|
||||||
(don't work off the [default branch](../../user/project/repository/branches/default.md)).
|
|
||||||
1. Follow the [commit messages guidelines](#commit-messages-guidelines).
|
|
||||||
1. If you have multiple commits, combine them into a few logically organized commits.
|
|
||||||
1. Push the commits to your working branch in the fork.
|
|
||||||
1. Submit a merge request (MR) against the default branch of the upstream project.
|
|
||||||
1. The MR title should describe the change you want to make.
|
|
||||||
1. The MR description should give a reason for your change.
|
|
||||||
1. If you are contributing code, fill in the description according to the default
|
|
||||||
template already provided in the "Description" field.
|
|
||||||
1. If you are contributing documentation, choose `Documentation` from the
|
|
||||||
"Choose a template" menu and fill in the description according to the template.
|
|
||||||
1. Use the syntax `Solves #XXX`, `Closes #XXX`, or `Refs #XXX` to mention the issues your merge
|
|
||||||
request addresses. Referenced issues do not [close automatically](../../user/project/issues/managing_issues.md#closing-issues-automatically).
|
|
||||||
You must close them manually once the merge request is merged.
|
|
||||||
1. If you're allowed to, set a relevant milestone and [labels](issue_workflow.md).
|
|
||||||
MR labels should generally match the corresponding issue (if there is one).
|
|
||||||
The group label should reflect the group that executed or coached the work,
|
|
||||||
not necessarily the group that owns the feature.
|
|
||||||
1. Read and adhere to
|
|
||||||
[The responsibility of the merge request author](../code_review.md#the-responsibility-of-the-merge-request-author).
|
|
||||||
1. Read and follow
|
|
||||||
[Having your merge request reviewed](../code_review.md#having-your-merge-request-reviewed).
|
|
||||||
1. Make sure the merge request meets the [Definition of done](#definition-of-done).
|
|
||||||
|
|
||||||
If you would like quick feedback on your merge request feel free to mention someone
|
|
||||||
from the [core team](https://about.gitlab.com/community/core-team/) or one of the
|
from the [core team](https://about.gitlab.com/community/core-team/) or one of the
|
||||||
[merge request coaches](https://about.gitlab.com/company/team/). When having your code reviewed
|
[merge request coaches](https://about.gitlab.com/company/team/). When having your code reviewed
|
||||||
and when reviewing merge requests, please keep the [code review guidelines](../code_review.md)
|
and when reviewing merge requests, please keep the [code review guidelines](../code_review.md)
|
||||||
|
|
@ -381,3 +340,8 @@ issue) that are incremental improvements, such as:
|
||||||
|
|
||||||
Tag a merge request with ~"Stuff that should Just Work" to track work in
|
Tag a merge request with ~"Stuff that should Just Work" to track work in
|
||||||
this area.
|
this area.
|
||||||
|
|
||||||
|
## Related topics
|
||||||
|
|
||||||
|
- [The responsibility of the merge request author](../code_review.md#the-responsibility-of-the-merge-request-author)
|
||||||
|
- [Having your merge request reviewed](../code_review.md#having-your-merge-request-reviewed)
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ Learn how to contribute to the development of the GitLab product.
|
||||||
This content is intended for GitLab team members as well as members of the wider community.
|
This content is intended for GitLab team members as well as members of the wider community.
|
||||||
|
|
||||||
- [Contribute to GitLab development](contributing/index.md)
|
- [Contribute to GitLab development](contributing/index.md)
|
||||||
- [Contribute to Omnibus development](https://docs.gitlab.com/omnibus/development/)
|
|
||||||
- [Contribute to GitLab Pages development](pages/index.md)
|
|
||||||
- [Contribute to GitLab Runner development](https://docs.gitlab.com/runner/development/)
|
- [Contribute to GitLab Runner development](https://docs.gitlab.com/runner/development/)
|
||||||
- [Contribute to Helm chart development](https://docs.gitlab.com/charts/development/)
|
- [Contribute to GitLab Pages development](pages/index.md)
|
||||||
|
- [Contribute to GitLab distribution development](distribution/index.md)
|
||||||
|
- [Contribute to the GitLab Design System](https://design.gitlab.com/get-started/contributing)
|
||||||
- [Contribute to the GitLab documentation](documentation/index.md)
|
- [Contribute to the GitLab documentation](documentation/index.md)
|
||||||
|
|
|
||||||
|
|
@ -187,16 +187,15 @@ Open an issue if you notice that using absolute times breaks a layout.
|
||||||
|
|
||||||
## Web IDE
|
## Web IDE
|
||||||
|
|
||||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/370139) in GitLab 15.7 [with a flag](../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
|
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/370139) in GitLab 15.7 [with a flag](../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
|
||||||
|
> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/371084) in GitLab 15.7.
|
||||||
|
> - [Enabled on self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115741) in GitLab 15.11.
|
||||||
|
|
||||||
FLAG:
|
FLAG:
|
||||||
On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to [enable the feature flag](../../administration/feature_flags.md) named `vscode_web_ide`. On GitLab.com, this feature is available.
|
On self-managed GitLab, by default this feature is available. To hide the feature, ask an administrator to [disable the feature flag](../../administration/feature_flags.md) named `vscode_web_ide`. On GitLab.com, this feature is available.
|
||||||
|
|
||||||
The [Web IDE Beta](../project/web_ide_beta/index.md) is
|
The [Web IDE Beta](../project/web_ide_beta/index.md) is
|
||||||
the default editing environment when the `vscode_web_ide` feature
|
the default editing environment. To stop using the Web IDE Beta:
|
||||||
flag is enabled.
|
|
||||||
|
|
||||||
To stop using the Web IDE Beta:
|
|
||||||
|
|
||||||
1. In the **Web IDE** section, select the **Opt out of the Web IDE Beta** checkbox.
|
1. In the **Web IDE** section, select the **Opt out of the Web IDE Beta** checkbox.
|
||||||
1. Select **Save changes**.
|
1. Select **Save changes**.
|
||||||
|
|
|
||||||
|
|
@ -58,21 +58,11 @@ GitLab shows the Code Owners at the top of the page.
|
||||||
## Set up Code Owners
|
## Set up Code Owners
|
||||||
|
|
||||||
1. Create a `CODEOWNERS` file in your [preferred location](#code-owners-file).
|
1. Create a `CODEOWNERS` file in your [preferred location](#code-owners-file).
|
||||||
1. In the file, enter text that follows one of these patterns:
|
1. Define some rules in the file following the [Code Owners syntax reference](#code-owners-syntax-reference).
|
||||||
|
Some suggestions:
|
||||||
```plaintext
|
- Configure [All eligible approvers](merge_requests/approvals/rules.md#code-owners-as-eligible-approvers) approval rule.
|
||||||
# Code Owners for a file
|
- [Require Code Owner approval](protected_branches.md#require-code-owner-approval-on-a-protected-branch) on a protected branch.
|
||||||
filename @username1 @username2
|
1. Commit your changes, and push them up to GitLab.
|
||||||
|
|
||||||
# Code Owners for a directory
|
|
||||||
directoryname/ @username1 @username2
|
|
||||||
|
|
||||||
# All group members as Code Owners for a file
|
|
||||||
filename @groupname
|
|
||||||
|
|
||||||
# All group members as Code Owners for a directory
|
|
||||||
directoryname/ @groupname
|
|
||||||
```
|
|
||||||
|
|
||||||
### Code Owners file
|
### Code Owners file
|
||||||
|
|
||||||
|
|
@ -88,11 +78,6 @@ all others are ignored:
|
||||||
1. In the `docs` directory: `./docs/CODEOWNERS`.
|
1. In the `docs` directory: `./docs/CODEOWNERS`.
|
||||||
1. In the `.gitlab` directory: `./.gitlab/CODEOWNERS`.
|
1. In the `.gitlab` directory: `./.gitlab/CODEOWNERS`.
|
||||||
|
|
||||||
### Make Code Owners eligible approvers or require their approval of MRs
|
|
||||||
|
|
||||||
- [Add Code Owners as merge request approvers](merge_requests/approvals/rules.md#code-owners-as-eligible-approvers).
|
|
||||||
- Set up [Code Owner approval on a protected branch](protected_branches.md#require-code-owner-approval-on-a-protected-branch).
|
|
||||||
|
|
||||||
### Groups as Code Owners
|
### Groups as Code Owners
|
||||||
|
|
||||||
> Group and subgroup hierarchy support was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/32432) in GitLab 13.0.
|
> Group and subgroup hierarchy support was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/32432) in GitLab 13.0.
|
||||||
|
|
@ -429,6 +414,203 @@ data-models/ @data-science-team
|
||||||
README.md @docs
|
README.md @docs
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Code Owners syntax reference
|
||||||
|
|
||||||
|
### Comments
|
||||||
|
|
||||||
|
Lines beginning with `#` are ignored:
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
# This is a comment
|
||||||
|
```
|
||||||
|
|
||||||
|
### Sections
|
||||||
|
|
||||||
|
Sections are groups of entries. A section begins with a section heading in square brackets, followed by the entries.
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
[Section name]
|
||||||
|
/path/of/protected/file.rb @username
|
||||||
|
/path/of/protected/dir/ @group
|
||||||
|
```
|
||||||
|
|
||||||
|
### Section headings
|
||||||
|
|
||||||
|
Section headings must always have a name. They can also be made optional, or require a number of approvals. A list of default owners can be added to the section heading line.
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
# Required section
|
||||||
|
[Section name]
|
||||||
|
|
||||||
|
# Optional section
|
||||||
|
^[Section name]
|
||||||
|
|
||||||
|
# Section requiring 5 approvals
|
||||||
|
[Section name][5]
|
||||||
|
|
||||||
|
# Section with @username as default owner
|
||||||
|
[Section name] @username
|
||||||
|
|
||||||
|
# Section with @group and @subgroup as default owners and requiring 2 approvals
|
||||||
|
[Section name][2] @group @subgroup
|
||||||
|
```
|
||||||
|
|
||||||
|
### Section names
|
||||||
|
|
||||||
|
Sections names are defined between square brackets.
|
||||||
|
Section names are not case-sensitive. [Sections with duplicate names are combined](#sections-with-duplicate-names).
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
[Section name]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Required sections
|
||||||
|
|
||||||
|
Required sections do not include `^` before the [section name](#section-names).
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
[Required section]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Optional sections
|
||||||
|
|
||||||
|
Optional sections include a `^` before the [section name](#section-names).
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
^[Optional section]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Sections requiring multiple approvals
|
||||||
|
|
||||||
|
Sections requiring multiple approvals include the number of approvals in square brackets after the [section name](#section-names).
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
[Section requiring 5 approvals][5]
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE:
|
||||||
|
Optional sections ignore the number of approvals required.
|
||||||
|
|
||||||
|
### Sections with default owners
|
||||||
|
|
||||||
|
You can define a default owner for the entries in a section by appending the owners to the [section heading](#section-headings).
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
# Section with @username as default owner
|
||||||
|
[Section name] @username
|
||||||
|
|
||||||
|
# Section with @group and @subgroup as default owners and requiring 2 approvals
|
||||||
|
[Section name][2] @group @subgroup
|
||||||
|
```
|
||||||
|
|
||||||
|
### Code Owner entries
|
||||||
|
|
||||||
|
Each Code Owner entry includes a path followed by one or more owners.
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
README.md @username1
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE:
|
||||||
|
If an entry is duplicated in a section, [the last entry is used from each section.](#define-more-specific-owners-for-more-specifically-defined-files-or-directories)
|
||||||
|
|
||||||
|
### Relative paths
|
||||||
|
|
||||||
|
If a path does not start with a `/`, the path is treated as if it starts with a [globstar](#globstar-paths).
|
||||||
|
`README.md` is treated the same way as `/**/README.md`
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
# This will match /README.md, /internal/README.md, /app/lib/README.md
|
||||||
|
README.md @username
|
||||||
|
|
||||||
|
# This will match /internal/README.md, /docs/internal/README.md, /docs/api/internal/README.md
|
||||||
|
internal/README.md
|
||||||
|
```
|
||||||
|
|
||||||
|
### Absolute paths
|
||||||
|
|
||||||
|
If a path starts with a `/` it matches the root of the repository.
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
# Matches only the file named `README.md` in the root of the repository.
|
||||||
|
/README.md
|
||||||
|
|
||||||
|
# Matches only the file named `README.md` inside the `/docs` directory.
|
||||||
|
/docs/README.md
|
||||||
|
```
|
||||||
|
|
||||||
|
### Directory paths
|
||||||
|
|
||||||
|
If a path ends with `/`, the path matches any file in the directory.
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
# This is the same as `/docs/**/*`
|
||||||
|
/docs/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Wildcard paths
|
||||||
|
|
||||||
|
Wildcards can be used to match one of more characters of a path.
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
# Any markdown files in the docs directory
|
||||||
|
/docs/*.md @username
|
||||||
|
|
||||||
|
# /docs/index file of any filetype
|
||||||
|
# For example: /docs/index.md, /docs/index.html, /docs/index.xml
|
||||||
|
/docs/index.* @username
|
||||||
|
|
||||||
|
# Any file in the docs directory with 'spec' in the name.
|
||||||
|
# For example: /docs/qa_specs.rb, /docs/spec_helpers.rb, /docs/runtime.spec
|
||||||
|
/docs/*spec* @username
|
||||||
|
|
||||||
|
# README.md files one level deep within the docs directory
|
||||||
|
# For example: /docs/api/README.md
|
||||||
|
/docs/*/README.md @username
|
||||||
|
```
|
||||||
|
|
||||||
|
### Globstar paths
|
||||||
|
|
||||||
|
Globstars (`**`) can be used to match zero or more directories and subdirectories.
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
# This will match /docs/index.md, /docs/api/index.md, /docs/api/graphql/index.md
|
||||||
|
/docs/**/index.md
|
||||||
|
```
|
||||||
|
|
||||||
|
### Entry owners
|
||||||
|
|
||||||
|
Entries must be followed by one or more owner, these can be groups, subgroups,
|
||||||
|
and users. Order of owners is not important.
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
/path/to/entry.rb @group
|
||||||
|
/path/to/entry.rb @group/subgroup
|
||||||
|
/path/to/entry.rb @user
|
||||||
|
/path/to/entry.rb @group @group/subgroup @user
|
||||||
|
```
|
||||||
|
|
||||||
|
### Groups as entry owners
|
||||||
|
|
||||||
|
Groups and subgroups can be owners of an entry.
|
||||||
|
Each entry can be owned by [one or more owners](#entry-owners).
|
||||||
|
For more details see the [Groups as Code Owners section](#groups-as-code-owners).
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
/path/to/entry.rb @group
|
||||||
|
/path/to/entry.rb @group/subgroup
|
||||||
|
/path/to/entry.rb @group @group/subgroup
|
||||||
|
```
|
||||||
|
|
||||||
|
### Users as entry owners
|
||||||
|
|
||||||
|
Users can be owners of an entry. Each entry can be owned by [one or more owners](#entry-owners).
|
||||||
|
|
||||||
|
```codeowners
|
||||||
|
/path/to/entry.rb @username1
|
||||||
|
/path/to/entry.rb @username1 @username2
|
||||||
|
```
|
||||||
|
|
||||||
## Technical Resources
|
## Technical Resources
|
||||||
|
|
||||||
[Code Owners development guidelines](../../../ee/development/code_owners/index.md)
|
[Code Owners development guidelines](../../../ee/development/code_owners/index.md)
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,12 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
||||||
|
|
||||||
# Remote development **(FREE)**
|
# Remote development **(FREE)**
|
||||||
|
|
||||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95169) in GitLab 15.4 [with a flag](../../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
|
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95169) in GitLab 15.4 [with a flag](../../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
|
||||||
|
> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/371084) in GitLab 15.7.
|
||||||
|
> - [Enabled on self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115741) in GitLab 15.11.
|
||||||
|
|
||||||
FLAG:
|
FLAG:
|
||||||
On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to [enable the feature flag](../../../administration/feature_flags.md) named `vscode_web_ide`. On GitLab.com, this feature is available. The feature is not ready for production use.
|
On self-managed GitLab, by default this feature is available. To hide the feature, ask an administrator to [disable the feature flag](../../../administration/feature_flags.md) named `vscode_web_ide`. On GitLab.com, this feature is available. The feature is not ready for production use.
|
||||||
|
|
||||||
WARNING:
|
WARNING:
|
||||||
This feature is in [Alpha](../../../policy/alpha-beta-support.md#alpha-features) and subject to change without notice.
|
This feature is in [Alpha](../../../policy/alpha-beta-support.md#alpha-features) and subject to change without notice.
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,12 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
||||||
|
|
||||||
# Web IDE Beta **(FREE)**
|
# Web IDE Beta **(FREE)**
|
||||||
|
|
||||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95169) in GitLab 15.7 [with a flag](../../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
|
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95169) in GitLab 15.7 [with a flag](../../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
|
||||||
|
> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/371084) in GitLab 15.7.
|
||||||
|
> - [Enabled on self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115741) in GitLab 15.11.
|
||||||
|
|
||||||
FLAG:
|
FLAG:
|
||||||
On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to [enable the feature flag](../../../administration/feature_flags.md) named `vscode_web_ide`. On GitLab.com, this feature is available. The feature is not ready for production use.
|
On self-managed GitLab, by default this feature is available. To hide the feature, ask an administrator to [disable the feature flag](../../../administration/feature_flags.md) named `vscode_web_ide`. On GitLab.com, this feature is available.
|
||||||
|
|
||||||
As announced in [this blog post](https://about.gitlab.com/blog/2022/05/23/the-future-of-the-gitlab-web-ide/),
|
As announced in [this blog post](https://about.gitlab.com/blog/2022/05/23/the-future-of-the-gitlab-web-ide/),
|
||||||
the current implementation of the [Web IDE](../web_ide/index.md) is being replaced
|
the current implementation of the [Web IDE](../web_ide/index.md) is being replaced
|
||||||
|
|
@ -18,15 +20,6 @@ development. For updates, see [this epic](https://gitlab.com/groups/gitlab-org/-
|
||||||
|
|
||||||
To pair the Web IDE Beta with a Remote Development environment, see [Remote Development](../remote_development/index.md).
|
To pair the Web IDE Beta with a Remote Development environment, see [Remote Development](../remote_development/index.md).
|
||||||
|
|
||||||
## Enable the Web IDE Beta
|
|
||||||
|
|
||||||
To use the Web IDE Beta on a self-managed GitLab instance,
|
|
||||||
ensure that the `vscode_web_ide` feature flag
|
|
||||||
[is enabled](../../../administration/feature_flags.md).
|
|
||||||
|
|
||||||
On GitLab.com, this feature is available by default. However, you can
|
|
||||||
[stop using it if you choose](#stop-using-the-web-ide-beta).
|
|
||||||
|
|
||||||
## Use the Web IDE Beta
|
## Use the Web IDE Beta
|
||||||
|
|
||||||
To open the Web IDE Beta from anywhere in the UI:
|
To open the Web IDE Beta from anywhere in the UI:
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ module Gitlab
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.primary_logger
|
def self.primary_logger
|
||||||
Gitlab::AppTextLogger
|
Gitlab::AppJsonLogger
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ module Gitlab
|
||||||
end
|
end
|
||||||
|
|
||||||
def load_yaml
|
def load_yaml
|
||||||
@yaml ||= YAML.load_file(config_file)[rails_env].deep_symbolize_keys
|
@yaml ||= YAML.safe_load_file(config_file, aliases: true)[rails_env].deep_symbolize_keys
|
||||||
end
|
end
|
||||||
|
|
||||||
def application_secrets_file
|
def application_secrets_file
|
||||||
|
|
|
||||||
|
|
@ -48739,6 +48739,9 @@ msgstr ""
|
||||||
msgid "Vulnerability|Evidence"
|
msgid "Vulnerability|Evidence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Vulnerability|Evidence:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Vulnerability|External Security Report"
|
msgid "Vulnerability|External Security Report"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# TODO: remove this test when 'vscode_web_ide' feature flag is default enabled
|
|
||||||
module QA
|
module QA
|
||||||
RSpec.describe 'Create', :skip_live_env, product_group: :editor do
|
RSpec.describe 'Create', product_group: :editor do
|
||||||
describe 'Add a directory in Web IDE' do
|
describe 'Add a directory in Web IDE' do
|
||||||
let(:project) do
|
let(:project) do
|
||||||
Resource::Project.fabricate_via_api! do |project|
|
Resource::Project.fabricate_via_api! do |project|
|
||||||
|
|
@ -30,23 +29,18 @@ module QA
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
end
|
end
|
||||||
|
|
||||||
project.visit!
|
project.visit!
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'throws an error', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/386760' do
|
||||||
Page::Project::Show.perform(&:open_web_ide!)
|
Page::Project::Show.perform(&:open_web_ide!)
|
||||||
|
Page::Project::WebIDE::VSCode.perform do |ide|
|
||||||
|
ide.wait_for_ide_to_load
|
||||||
|
ide.create_new_folder(directory_name)
|
||||||
|
ide.within_vscode_editor do
|
||||||
|
expect(page).to have_content('A file or folder first_directory already exists at this location.')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'throws an error', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347733' do
|
|
||||||
Page::Project::WebIDE::Edit.perform do |ide|
|
|
||||||
# Support::Waiter.wait_until(sleep_interval: 2, max_duration: 60, reload_page: page,
|
|
||||||
# retry_on_exception: true) do
|
|
||||||
# expect(ide).to have_element(:commit_mode_tab)
|
|
||||||
# end
|
|
||||||
ide.wait_until_ide_loads
|
|
||||||
ide.add_directory(directory_name)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
expect(page).to have_content('The name "first_directory" is already taken in this directory.')
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -57,18 +51,19 @@ module QA
|
||||||
Page::Project::Show.perform(&:open_web_ide!)
|
Page::Project::Show.perform(&:open_web_ide!)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'shows in the tree view but cannot be committed', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347732' do
|
it 'shows successfully but not able to be committed',
|
||||||
Page::Project::WebIDE::Edit.perform do |ide|
|
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/386761',
|
||||||
ide.wait_until_ide_loads
|
quarantine: {
|
||||||
ide.add_directory(directory_name)
|
type: :stale,
|
||||||
|
issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/399544'
|
||||||
expect(ide).to have_file(directory_name)
|
} do
|
||||||
expect(ide).to have_folder_icon(directory_name)
|
Page::Project::WebIDE::VSCode.perform do |ide|
|
||||||
expect(ide).not_to have_file_addition_icon(directory_name)
|
ide.wait_for_ide_to_load
|
||||||
|
ide.create_new_folder(directory_name)
|
||||||
ide.switch_to_commit_tab
|
ide.commit_and_push(directory_name)
|
||||||
|
ide.within_vscode_editor do
|
||||||
expect(ide).not_to have_file_to_commit(directory_name)
|
expect(page).to have_content('No changes found. Not able to commit.')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,77 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module QA
|
|
||||||
RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :global }, product_group: :editor do
|
|
||||||
describe 'Add a directory in Web IDE' do
|
|
||||||
let(:project) do
|
|
||||||
Resource::Project.fabricate_via_api! do |project|
|
|
||||||
project.name = 'add-directory-project'
|
|
||||||
project.initialize_with_readme = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
before do
|
|
||||||
Runtime::Feature.enable(:vscode_web_ide)
|
|
||||||
Flow::Login.sign_in
|
|
||||||
project.visit!
|
|
||||||
end
|
|
||||||
|
|
||||||
after do
|
|
||||||
Runtime::Feature.disable(:vscode_web_ide)
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when a directory with the same name already exists' do
|
|
||||||
let(:directory_name) { 'first_directory' }
|
|
||||||
|
|
||||||
before do
|
|
||||||
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
|
||||||
commit.project = project
|
|
||||||
commit.add_files(
|
|
||||||
[
|
|
||||||
{
|
|
||||||
file_path: 'first_directory/test_file.txt',
|
|
||||||
content: "Test file content"
|
|
||||||
}
|
|
||||||
])
|
|
||||||
end
|
|
||||||
project.visit!
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'throws an error', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/386760' do
|
|
||||||
Page::Project::Show.perform(&:open_web_ide!)
|
|
||||||
Page::Project::WebIDE::VSCode.perform do |ide|
|
|
||||||
ide.wait_for_ide_to_load
|
|
||||||
ide.create_new_folder(directory_name)
|
|
||||||
ide.within_vscode_editor do
|
|
||||||
expect(page).to have_content('A file or folder first_directory already exists at this location.')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when user adds a new empty directory' do
|
|
||||||
let(:directory_name) { 'new_empty_directory' }
|
|
||||||
|
|
||||||
before do
|
|
||||||
Page::Project::Show.perform(&:open_web_ide!)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'shows successfully but not able to be committed',
|
|
||||||
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/386761',
|
|
||||||
quarantine: {
|
|
||||||
type: :stale,
|
|
||||||
issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/399544'
|
|
||||||
} do
|
|
||||||
Page::Project::WebIDE::VSCode.perform do |ide|
|
|
||||||
ide.wait_for_ide_to_load
|
|
||||||
ide.create_new_folder(directory_name)
|
|
||||||
ide.commit_and_push(directory_name)
|
|
||||||
ide.within_vscode_editor do
|
|
||||||
expect(page).to have_content('No changes found. Not able to commit.')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# TODO: remove this test when 'vscode_web_ide' feature flag is default enabled
|
# TODO: remove this test when coverage is replaced or deemed irrelevant
|
||||||
module QA
|
module QA
|
||||||
RSpec.describe 'Create', :skip_live_env, product_group: :editor do
|
RSpec.describe 'Create', :skip_live_env, product_group: :editor do
|
||||||
|
before do
|
||||||
|
skip("Skipped but kept as reference. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115741#note_1330720944")
|
||||||
|
end
|
||||||
|
|
||||||
describe 'Web IDE file templates' do
|
describe 'Web IDE file templates' do
|
||||||
include Runtime::Fixtures
|
include Runtime::Fixtures
|
||||||
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# TODO: remove this test when 'vscode_web_ide' feature flag is default enabled
|
# TODO: remove this test when coverage is replaced or deemed irrelevant
|
||||||
module QA
|
module QA
|
||||||
RSpec.describe 'Create', :skip_live_env, product_group: :editor do
|
RSpec.describe 'Create', :skip_live_env, product_group: :editor do
|
||||||
|
before do
|
||||||
|
skip("Skipped but kept as reference. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115741#note_1330720944")
|
||||||
|
end
|
||||||
|
|
||||||
describe 'First file using Web IDE' do
|
describe 'First file using Web IDE' do
|
||||||
let(:project) do
|
let(:project) do
|
||||||
Resource::Project.fabricate_via_api! do |project|
|
Resource::Project.fabricate_via_api! do |project|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# TODO: remove this test when 'vscode_web_ide' feature flag is default enabled
|
# TODO: remove this test when coverage is replaced or deemed irrelevant
|
||||||
module QA
|
module QA
|
||||||
RSpec.describe 'Create', :skip_live_env, product_group: :editor do
|
RSpec.describe 'Create', :skip_live_env, product_group: :editor do
|
||||||
|
before do
|
||||||
|
skip("Skipped but kept as reference. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115741#note_1330720944")
|
||||||
|
end
|
||||||
|
|
||||||
describe 'Link to line in Web IDE' do
|
describe 'Link to line in Web IDE' do
|
||||||
let(:user) { Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1) }
|
let(:user) { Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1) }
|
||||||
let(:project) do
|
let(:project) do
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# TODO: remove this test when 'vscode_web_ide' feature flag is default enabled
|
# TODO: remove this test when coverage is replaced or deemed irrelevant
|
||||||
module QA
|
module QA
|
||||||
RSpec.describe 'Create', :skip_live_env, product_group: :editor do
|
RSpec.describe 'Create', :skip_live_env, product_group: :editor do
|
||||||
|
before do
|
||||||
|
skip("Skipped but kept as reference. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115741#note_1330720944")
|
||||||
|
end
|
||||||
|
|
||||||
describe 'Open Web IDE from Diff Tab' do
|
describe 'Open Web IDE from Diff Tab' do
|
||||||
files = [
|
files = [
|
||||||
{
|
{
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# TODO: remove this test when 'vscode_web_ide' feature flag is default enabled
|
# TODO: remove this test when coverage is replaced or deemed irrelevant
|
||||||
module QA
|
module QA
|
||||||
RSpec.describe 'Create', :skip_live_env, product_group: :editor do
|
RSpec.describe 'Create', :skip_live_env, product_group: :editor do
|
||||||
|
before do
|
||||||
|
skip("Skipped but kept as reference. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115741#note_1330720944")
|
||||||
|
end
|
||||||
|
|
||||||
describe 'Review a merge request in Web IDE' do
|
describe 'Review a merge request in Web IDE' do
|
||||||
let(:new_file) { 'awesome_new_file.txt' }
|
let(:new_file) { 'awesome_new_file.txt' }
|
||||||
let(:original_text) { 'Text' }
|
let(:original_text) { 'Text' }
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# TODO: remove this test when 'vscode_web_ide' feature flag is default enabled
|
# TODO: remove this test when coverage is replaced or deemed irrelevant
|
||||||
module QA
|
module QA
|
||||||
RSpec.describe 'Create', :skip_live_env, except: { job: 'review-qa-*' }, product_group: :editor do
|
RSpec.describe 'Create', :skip_live_env, except: { job: 'review-qa-*' }, product_group: :editor do
|
||||||
|
before do
|
||||||
|
skip("Skipped but kept as reference. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115741#note_1330720944")
|
||||||
|
end
|
||||||
|
|
||||||
describe 'Git Server Hooks' do
|
describe 'Git Server Hooks' do
|
||||||
let(:file_path) { File.join(Runtime::Path.fixtures_path, 'web_ide', 'README.md') }
|
let(:file_path) { File.join(Runtime::Path.fixtures_path, 'web_ide', 'README.md') }
|
||||||
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# TODO: remove this test when 'vscode_web_ide' feature flag is default enabled
|
# TODO: remove this test when coverage is replaced or deemed irrelevant
|
||||||
module QA
|
module QA
|
||||||
RSpec.describe 'Create', :skip_live_env, product_group: :editor do
|
RSpec.describe 'Create', :skip_live_env, product_group: :editor do
|
||||||
|
before do
|
||||||
|
skip("Skipped but kept as reference. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115741#note_1330720944")
|
||||||
|
end
|
||||||
|
|
||||||
describe 'Upload a file in Web IDE' do
|
describe 'Upload a file in Web IDE' do
|
||||||
let(:file_path) { File.join(Runtime::Path.fixtures_path, 'web_ide', file_name) }
|
let(:file_path) { File.join(Runtime::Path.fixtures_path, 'web_ide', file_name) }
|
||||||
|
|
||||||
|
|
@ -2,11 +2,12 @@
|
||||||
|
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
RSpec.describe Gitlab::AppLogger do
|
RSpec.describe Gitlab::AppLogger, feature_category: :shared do
|
||||||
subject { described_class }
|
subject { described_class }
|
||||||
|
|
||||||
it 'logs info to only the AppJsonLogger when unstructured logs are disabled' do
|
specify { expect(described_class.primary_logger).to be Gitlab::AppJsonLogger }
|
||||||
expect_any_instance_of(Gitlab::AppTextLogger).not_to receive(:info).and_call_original
|
|
||||||
|
it 'logs to AppJsonLogger' do
|
||||||
expect_any_instance_of(Gitlab::AppJsonLogger).to receive(:info).and_call_original
|
expect_any_instance_of(Gitlab::AppJsonLogger).to receive(:info).and_call_original
|
||||||
|
|
||||||
subject.info('Hello World!')
|
subject.info('Hello World!')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue