Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
bae24262df
commit
6e33325c14
2
Gemfile
2
Gemfile
|
@ -453,7 +453,7 @@ group :ed25519 do
|
||||||
end
|
end
|
||||||
|
|
||||||
# Gitaly GRPC protocol definitions
|
# Gitaly GRPC protocol definitions
|
||||||
gem 'gitaly', '~> 13.0.0.pre.rc1'
|
gem 'gitaly', '~> 13.1.0.pre.rc1'
|
||||||
|
|
||||||
gem 'grpc', '~> 1.24.0'
|
gem 'grpc', '~> 1.24.0'
|
||||||
|
|
||||||
|
|
|
@ -377,7 +377,7 @@ GEM
|
||||||
po_to_json (>= 1.0.0)
|
po_to_json (>= 1.0.0)
|
||||||
rails (>= 3.2.0)
|
rails (>= 3.2.0)
|
||||||
git (1.5.0)
|
git (1.5.0)
|
||||||
gitaly (13.0.0.pre.rc1)
|
gitaly (13.1.0.pre.rc1)
|
||||||
grpc (~> 1.0)
|
grpc (~> 1.0)
|
||||||
github-markup (1.7.0)
|
github-markup (1.7.0)
|
||||||
gitlab-chronic (0.10.5)
|
gitlab-chronic (0.10.5)
|
||||||
|
@ -1235,7 +1235,7 @@ DEPENDENCIES
|
||||||
gettext (~> 3.2.2)
|
gettext (~> 3.2.2)
|
||||||
gettext_i18n_rails (~> 1.8.0)
|
gettext_i18n_rails (~> 1.8.0)
|
||||||
gettext_i18n_rails_js (~> 1.3)
|
gettext_i18n_rails_js (~> 1.3)
|
||||||
gitaly (~> 13.0.0.pre.rc1)
|
gitaly (~> 13.1.0.pre.rc1)
|
||||||
github-markup (~> 1.7.0)
|
github-markup (~> 1.7.0)
|
||||||
gitlab-chronic (~> 0.10.5)
|
gitlab-chronic (~> 0.10.5)
|
||||||
gitlab-labkit (= 0.12.0)
|
gitlab-labkit (= 0.12.0)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/* eslint-disable func-names, consistent-return, one-var, no-return-assign */
|
/* eslint-disable func-names, consistent-return, one-var, no-return-assign */
|
||||||
|
|
||||||
import $ from 'jquery';
|
import $ from 'jquery';
|
||||||
|
import 'jquery.waitforimages';
|
||||||
|
|
||||||
// Width where images must fits in, for 2-up this gets divided by 2
|
// Width where images must fits in, for 2-up this gets divided by 2
|
||||||
const availWidth = 900;
|
const availWidth = 900;
|
||||||
|
|
|
@ -5,4 +5,3 @@ import 'jquery-ujs';
|
||||||
import 'jquery.caret'; // must be imported before at.js
|
import 'jquery.caret'; // must be imported before at.js
|
||||||
import '@gitlab/at.js';
|
import '@gitlab/at.js';
|
||||||
import 'vendor/jquery.scrollTo';
|
import 'vendor/jquery.scrollTo';
|
||||||
import 'jquery.waitforimages';
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ export default {
|
||||||
tooltip,
|
tooltip,
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['hasChanges']),
|
...mapGetters(['someUncommittedChanges']),
|
||||||
...mapState(['currentActivityView']),
|
...mapState(['currentActivityView']),
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -69,7 +69,7 @@ export default {
|
||||||
<icon name="file-modified" />
|
<icon name="file-modified" />
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
<li v-show="hasChanges">
|
<li v-show="someUncommittedChanges">
|
||||||
<button
|
<button
|
||||||
v-tooltip
|
v-tooltip
|
||||||
:class="{
|
:class="{
|
||||||
|
|
|
@ -26,7 +26,7 @@ export default {
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(['changedFiles', 'stagedFiles', 'currentActivityView', 'lastCommitMsg']),
|
...mapState(['changedFiles', 'stagedFiles', 'currentActivityView', 'lastCommitMsg']),
|
||||||
...mapState('commit', ['commitMessage', 'submitCommitLoading']),
|
...mapState('commit', ['commitMessage', 'submitCommitLoading']),
|
||||||
...mapGetters(['hasChanges']),
|
...mapGetters(['someUncommittedChanges']),
|
||||||
...mapGetters('commit', ['discardDraftButtonDisabled', 'preBuiltCommitMessage']),
|
...mapGetters('commit', ['discardDraftButtonDisabled', 'preBuiltCommitMessage']),
|
||||||
overviewText() {
|
overviewText() {
|
||||||
return n__('%d changed file', '%d changed files', this.stagedFiles.length);
|
return n__('%d changed file', '%d changed files', this.stagedFiles.length);
|
||||||
|
@ -126,7 +126,7 @@ export default {
|
||||||
>
|
>
|
||||||
<div v-if="isCompact" ref="compactEl" class="commit-form-compact">
|
<div v-if="isCompact" ref="compactEl" class="commit-form-compact">
|
||||||
<button
|
<button
|
||||||
:disabled="!hasChanges"
|
:disabled="!someUncommittedChanges"
|
||||||
type="button"
|
type="button"
|
||||||
class="btn btn-primary btn-sm btn-block qa-begin-commit-button"
|
class="btn btn-primary btn-sm btn-block qa-begin-commit-button"
|
||||||
@click="toggleIsCompact"
|
@click="toggleIsCompact"
|
||||||
|
|
|
@ -40,7 +40,6 @@ export default {
|
||||||
...mapState([
|
...mapState([
|
||||||
'openFiles',
|
'openFiles',
|
||||||
'viewer',
|
'viewer',
|
||||||
'currentMergeRequestId',
|
|
||||||
'fileFindVisible',
|
'fileFindVisible',
|
||||||
'emptyStateSvgPath',
|
'emptyStateSvgPath',
|
||||||
'currentProjectId',
|
'currentProjectId',
|
||||||
|
@ -49,7 +48,6 @@ export default {
|
||||||
]),
|
]),
|
||||||
...mapGetters([
|
...mapGetters([
|
||||||
'activeFile',
|
'activeFile',
|
||||||
'hasChanges',
|
|
||||||
'someUncommittedChanges',
|
'someUncommittedChanges',
|
||||||
'isCommitModeActive',
|
'isCommitModeActive',
|
||||||
'allBlobs',
|
'allBlobs',
|
||||||
|
@ -108,14 +106,7 @@ export default {
|
||||||
<div class="multi-file-edit-pane">
|
<div class="multi-file-edit-pane">
|
||||||
<template v-if="activeFile">
|
<template v-if="activeFile">
|
||||||
<commit-editor-header v-if="isCommitModeActive" :active-file="activeFile" />
|
<commit-editor-header v-if="isCommitModeActive" :active-file="activeFile" />
|
||||||
<repo-tabs
|
<repo-tabs v-else :active-file="activeFile" :files="openFiles" :viewer="viewer" />
|
||||||
v-else
|
|
||||||
:active-file="activeFile"
|
|
||||||
:files="openFiles"
|
|
||||||
:viewer="viewer"
|
|
||||||
:has-changes="hasChanges"
|
|
||||||
:merge-request-id="currentMergeRequestId"
|
|
||||||
/>
|
|
||||||
<repo-editor :file="activeFile" class="multi-file-edit-pane-content" />
|
<repo-editor :file="activeFile" class="multi-file-edit-pane-content" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
|
|
|
@ -16,7 +16,7 @@ export default {
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(['changedFiles', 'stagedFiles', 'lastCommitMsg']),
|
...mapState(['changedFiles', 'stagedFiles', 'lastCommitMsg']),
|
||||||
...mapState('commit', ['commitMessage', 'submitCommitLoading']),
|
...mapState('commit', ['commitMessage', 'submitCommitLoading']),
|
||||||
...mapGetters(['lastOpenedFile', 'hasChanges', 'someUncommittedChanges', 'activeFile']),
|
...mapGetters(['lastOpenedFile', 'someUncommittedChanges', 'activeFile']),
|
||||||
...mapGetters('commit', ['discardDraftButtonDisabled']),
|
...mapGetters('commit', ['discardDraftButtonDisabled']),
|
||||||
showStageUnstageArea() {
|
showStageUnstageArea() {
|
||||||
return Boolean(this.someUncommittedChanges || this.lastCommitMsg);
|
return Boolean(this.someUncommittedChanges || this.lastCommitMsg);
|
||||||
|
@ -26,8 +26,8 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
hasChanges() {
|
someUncommittedChanges() {
|
||||||
if (!this.hasChanges) {
|
if (!this.someUncommittedChanges) {
|
||||||
this.updateActivityBarView(leftSidebarViews.edit.name);
|
this.updateActivityBarView(leftSidebarViews.edit.name);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -20,15 +20,6 @@ export default {
|
||||||
type: String,
|
type: String,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
hasChanges: {
|
|
||||||
type: Boolean,
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
mergeRequestId: {
|
|
||||||
type: String,
|
|
||||||
required: false,
|
|
||||||
default: '',
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions(['updateViewer', 'removePendingTab']),
|
...mapActions(['updateViewer', 'removePendingTab']),
|
||||||
|
|
|
@ -50,9 +50,6 @@ export const emptyRepo = state =>
|
||||||
export const currentTree = state =>
|
export const currentTree = state =>
|
||||||
state.trees[`${state.currentProjectId}/${state.currentBranchId}`];
|
state.trees[`${state.currentProjectId}/${state.currentBranchId}`];
|
||||||
|
|
||||||
export const hasChanges = state =>
|
|
||||||
Boolean(state.changedFiles.length) || Boolean(state.stagedFiles.length);
|
|
||||||
|
|
||||||
export const hasMergeRequest = state => Boolean(state.currentMergeRequestId);
|
export const hasMergeRequest = state => Boolean(state.currentMergeRequestId);
|
||||||
|
|
||||||
export const allBlobs = state =>
|
export const allBlobs = state =>
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
import $ from 'jquery';
|
import $ from 'jquery';
|
||||||
|
import 'jquery.waitforimages';
|
||||||
|
|
||||||
import initBlob from '~/blob_edit/blob_bundle';
|
import initBlob from '~/blob_edit/blob_bundle';
|
||||||
import ShortcutsNavigation from '~/behaviors/shortcuts/shortcuts_navigation';
|
import ShortcutsNavigation from '~/behaviors/shortcuts/shortcuts_navigation';
|
||||||
import NotificationsForm from '~/notifications_form';
|
import NotificationsForm from '~/notifications_form';
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
import $ from 'jquery';
|
import $ from 'jquery';
|
||||||
|
import 'jquery.waitforimages';
|
||||||
|
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import initBlob from '~/blob_edit/blob_bundle';
|
import initBlob from '~/blob_edit/blob_bundle';
|
||||||
import commitPipelineStatus from '~/projects/tree/components/commit_pipeline_status_component.vue';
|
import commitPipelineStatus from '~/projects/tree/components/commit_pipeline_status_component.vue';
|
||||||
|
|
|
@ -56,6 +56,7 @@ CAS
|
||||||
CentOS
|
CentOS
|
||||||
Chatops
|
Chatops
|
||||||
Citrix
|
Citrix
|
||||||
|
clonable
|
||||||
Cloudwatch
|
Cloudwatch
|
||||||
Cobertura
|
Cobertura
|
||||||
Cognito
|
Cognito
|
||||||
|
|
|
@ -4,7 +4,7 @@ type: reference
|
||||||
|
|
||||||
# Google Secure LDAP **(CORE ONLY)**
|
# Google Secure LDAP **(CORE ONLY)**
|
||||||
|
|
||||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/46391) in GitLab 11.9.
|
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/46391) in GitLab 11.9.
|
||||||
|
|
||||||
[Google Cloud Identity](https://cloud.google.com/identity/) provides a Secure
|
[Google Cloud Identity](https://cloud.google.com/identity/) provides a Secure
|
||||||
LDAP service that can be configured with GitLab for authentication and group sync.
|
LDAP service that can be configured with GitLab for authentication and group sync.
|
||||||
|
|
|
@ -106,14 +106,14 @@ you list:
|
||||||
|
|
||||||
## Queue selector (experimental)
|
## Queue selector (experimental)
|
||||||
|
|
||||||
> [Introduced](https://gitlab.com/gitlab-com/gl-infra/scalability/issues/45) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.8.
|
> [Introduced](https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/45) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.8.
|
||||||
|
|
||||||
CAUTION: **Caution:**
|
CAUTION: **Caution:**
|
||||||
As this is marked as **experimental**, it is subject to change at any
|
As this is marked as **experimental**, it is subject to change at any
|
||||||
time, including **breaking backwards compatibility**. This is so that we
|
time, including **breaking backwards compatibility**. This is so that we
|
||||||
can react to changes we need for our GitLab.com deployment. We have a
|
can react to changes we need for our GitLab.com deployment. We have a
|
||||||
tracking issue open to [remove the experimental
|
tracking issue open to [remove the experimental
|
||||||
designation](https://gitlab.com/gitlab-com/gl-infra/scalability/issues/147)
|
designation](https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/147)
|
||||||
from this feature; please comment there if you are interested in using
|
from this feature; please comment there if you are interested in using
|
||||||
this in your own deployment.
|
this in your own deployment.
|
||||||
|
|
||||||
|
|
|
@ -117,7 +117,7 @@ Quoting from issue [#1](https://gitlab.com/gitlab-org/gitlab/-/issues/30528):
|
||||||
|
|
||||||
TIP: **Tip:** In support, our general approach to reconfiguring timeouts (applies also to the HTTP stack as well) is that it's acceptable to do it temporarily as a workaround. If it makes GitLab usable for the customer, then it buys time to understand the problem more completely, implement a hot fix, or make some other change that addresses the root cause. Generally, the timeouts should be put back to reasonable defaults once the root cause is resolved.
|
TIP: **Tip:** In support, our general approach to reconfiguring timeouts (applies also to the HTTP stack as well) is that it's acceptable to do it temporarily as a workaround. If it makes GitLab usable for the customer, then it buys time to understand the problem more completely, implement a hot fix, or make some other change that addresses the root cause. Generally, the timeouts should be put back to reasonable defaults once the root cause is resolved.
|
||||||
|
|
||||||
In this case, the guidance we had from development was to drop deadlock_timeout and/or statement_timeout but to leave the third setting at 60s. Setting idle_in_transaction protects the database from sessions potentially hanging for days. There's more discussion in [the issue relating to introducing this timeout on GitLab.com](https://gitlab.com/gitlab-com/gl-infra/production/issues/1053).
|
In this case, the guidance we had from development was to drop deadlock_timeout and/or statement_timeout but to leave the third setting at 60s. Setting idle_in_transaction protects the database from sessions potentially hanging for days. There's more discussion in [the issue relating to introducing this timeout on GitLab.com](https://gitlab.com/gitlab-com/gl-infra/production/-/issues/1053).
|
||||||
|
|
||||||
PostgresSQL defaults:
|
PostgresSQL defaults:
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Legacy Feature Flags API **(PREMIUM)**
|
# Legacy Feature Flags API **(PREMIUM)**
|
||||||
|
|
||||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9566) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.5.
|
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9566) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.5.
|
||||||
|
|
||||||
CAUTION: **Deprecation**
|
CAUTION: **Deprecation**
|
||||||
This API is deprecated and [scheduled for removal in GitLab 14.0](https://gitlab.com/gitlab-org/gitlab/-/issues/213369). Use [this API](feature_flags.md) instead.
|
This API is deprecated and [scheduled for removal in GitLab 14.0](https://gitlab.com/gitlab-org/gitlab/-/issues/213369). Use [this API](feature_flags.md) instead.
|
||||||
|
|
|
@ -8,6 +8,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
||||||
|
|
||||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/12819) in GitLab 9.5.
|
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/12819) in GitLab 9.5.
|
||||||
|
|
||||||
|
This page describes the group milestones API.
|
||||||
|
There's a separate [project milestones API](./group_milestones.md) page.
|
||||||
|
|
||||||
## List group milestones
|
## List group milestones
|
||||||
|
|
||||||
Returns a list of group milestones.
|
Returns a list of group milestones.
|
||||||
|
|
|
@ -6,6 +6,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
||||||
|
|
||||||
# Project milestones API
|
# Project milestones API
|
||||||
|
|
||||||
|
This page describes the project milestones API.
|
||||||
|
There's a separate [group milestones API](./group_milestones.md) page.
|
||||||
|
|
||||||
## List project milestones
|
## List project milestones
|
||||||
|
|
||||||
Returns a list of project milestones.
|
Returns a list of project milestones.
|
||||||
|
|
|
@ -186,15 +186,15 @@ been necessary. These are:
|
||||||
#### 13.0
|
#### 13.0
|
||||||
|
|
||||||
- [Remove Backported
|
- [Remove Backported
|
||||||
`os.Expand`](https://gitlab.com/gitlab-org/gitlab-runner/issues/4915)
|
`os.Expand`](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4915)
|
||||||
- [Remove Fedora 29 package
|
- [Remove Fedora 29 package
|
||||||
support](https://gitlab.com/gitlab-org/gitlab-runner/issues/16158)
|
support](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/16158)
|
||||||
- [Remove macOS 32-bit
|
- [Remove macOS 32-bit
|
||||||
support](https://gitlab.com/gitlab-org/gitlab-runner/issues/25466)
|
support](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/25466)
|
||||||
- [Removed `debug/jobs/list?v=1`
|
- [Removed `debug/jobs/list?v=1`
|
||||||
endpoint](https://gitlab.com/gitlab-org/gitlab-runner/issues/6361)
|
endpoint](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/6361)
|
||||||
- [Remove support for array of strings when defining services for Docker
|
- [Remove support for array of strings when defining services for Docker
|
||||||
executor](https://gitlab.com/gitlab-org/gitlab-runner/issues/4922)
|
executor](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4922)
|
||||||
- [Remove `--docker-services` flag on register
|
- [Remove `--docker-services` flag on register
|
||||||
command](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/6404)
|
command](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/6404)
|
||||||
- [Remove legacy build directory
|
- [Remove legacy build directory
|
||||||
|
|
|
@ -151,7 +151,7 @@ Requires GitLab Runner 11.11 or later, but is not supported if GitLab
|
||||||
Runner is installed using the [Helm
|
Runner is installed using the [Helm
|
||||||
chart](https://docs.gitlab.com/runner/install/kubernetes.html). See the
|
chart](https://docs.gitlab.com/runner/install/kubernetes.html). See the
|
||||||
[related
|
[related
|
||||||
issue](https://gitlab.com/gitlab-org/charts/gitlab-runner/issues/83) for
|
issue](https://gitlab.com/gitlab-org/charts/gitlab-runner/-/issues/83) for
|
||||||
details.
|
details.
|
||||||
|
|
||||||
The Docker daemon supports connection over TLS and it's done by default
|
The Docker daemon supports connection over TLS and it's done by default
|
||||||
|
|
|
@ -31,7 +31,7 @@ Two things need to be configured for the interactive web terminal to work:
|
||||||
NOTE: **Note:**
|
NOTE: **Note:**
|
||||||
Interactive web terminals are not yet supported by
|
Interactive web terminals are not yet supported by
|
||||||
[`gitlab-runner` Helm chart](https://docs.gitlab.com/charts/charts/gitlab/gitlab-runner/index.html),
|
[`gitlab-runner` Helm chart](https://docs.gitlab.com/charts/charts/gitlab/gitlab-runner/index.html),
|
||||||
but support [is planned](https://gitlab.com/gitlab-org/charts/gitlab-runner/issues/79).
|
but support [is planned](https://gitlab.com/gitlab-org/charts/gitlab-runner/-/issues/79).
|
||||||
|
|
||||||
## Debugging a running job
|
## Debugging a running job
|
||||||
|
|
||||||
|
|
|
@ -1110,7 +1110,7 @@ docker build:
|
||||||
|
|
||||||
Additional job configuration may be added to rules in the future. If something
|
Additional job configuration may be added to rules in the future. If something
|
||||||
useful is not available, please
|
useful is not available, please
|
||||||
[open an issue](https://gitlab.com/gitlab-org/gitlab/issues).
|
[open an issue](https://gitlab.com/gitlab-org/gitlab/-/issues).
|
||||||
|
|
||||||
### `only`/`except` (basic)
|
### `only`/`except` (basic)
|
||||||
|
|
||||||
|
@ -1611,7 +1611,7 @@ This example creates four paths of execution:
|
||||||
pipeline will be created with YAML error.
|
pipeline will be created with YAML error.
|
||||||
- The maximum number of jobs that a single job can need in the `needs:` array is limited:
|
- The maximum number of jobs that a single job can need in the `needs:` array is limited:
|
||||||
- For GitLab.com, the limit is ten. For more information, see our
|
- For GitLab.com, the limit is ten. For more information, see our
|
||||||
[infrastructure issue](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7541).
|
[infrastructure issue](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/7541).
|
||||||
- For self-managed instances, the limit is:
|
- For self-managed instances, the limit is:
|
||||||
- 10, if the `ci_dag_limit_needs` feature flag is enabled (default).
|
- 10, if the `ci_dag_limit_needs` feature flag is enabled (default).
|
||||||
- 50, if the `ci_dag_limit_needs` feature flag is disabled.
|
- 50, if the `ci_dag_limit_needs` feature flag is disabled.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
## Issue tracker guidelines
|
## Issue tracker guidelines
|
||||||
|
|
||||||
**[Search the issue tracker](https://gitlab.com/gitlab-org/gitlab/issues)** for similar entries before
|
**[Search the issue tracker](https://gitlab.com/gitlab-org/gitlab/-/issues)** for similar entries before
|
||||||
submitting your own, there's a good chance somebody else had the same issue or
|
submitting your own, there's a good chance somebody else had the same issue or
|
||||||
feature proposal. Show your support with an award emoji and/or join the
|
feature proposal. Show your support with an award emoji and/or join the
|
||||||
discussion.
|
discussion.
|
||||||
|
@ -356,10 +356,10 @@ A recent example of this was the issue for
|
||||||
## Feature proposals
|
## Feature proposals
|
||||||
|
|
||||||
To create a feature proposal, open an issue on the
|
To create a feature proposal, open an issue on the
|
||||||
[issue tracker](https://gitlab.com/gitlab-org/gitlab/issues).
|
[issue tracker](https://gitlab.com/gitlab-org/gitlab/-/issues).
|
||||||
|
|
||||||
In order to help track the feature proposals, we have created a
|
In order to help track the feature proposals, we have created a
|
||||||
[`feature`](https://gitlab.com/gitlab-org/gitlab/issues?label_name=feature) label. For the time being, users that are not members
|
[`feature`](https://gitlab.com/gitlab-org/gitlab/-/issues?label_name=feature) label. For the time being, users that are not members
|
||||||
of the project cannot add labels. You can instead ask one of the [core team](https://about.gitlab.com/community/core-team/)
|
of the project cannot add labels. You can instead ask one of the [core team](https://about.gitlab.com/community/core-team/)
|
||||||
members to add the label ~feature to the issue or add the following
|
members to add the label ~feature to the issue or add the following
|
||||||
code snippet right after your description in a new line: `~feature`.
|
code snippet right after your description in a new line: `~feature`.
|
||||||
|
@ -420,7 +420,7 @@ in the regression issue as fixes are addressed.
|
||||||
## Technical and UX debt
|
## Technical and UX debt
|
||||||
|
|
||||||
In order to track things that can be improved in GitLab's codebase,
|
In order to track things that can be improved in GitLab's codebase,
|
||||||
we use the ~"technical debt" label in [GitLab's issue tracker](https://gitlab.com/gitlab-org/gitlab/issues).
|
we use the ~"technical debt" label in [GitLab's issue tracker](https://gitlab.com/gitlab-org/gitlab/-/issues).
|
||||||
For missed user experience requirements, we use the ~"UX debt" label.
|
For missed user experience requirements, we use the ~"UX debt" label.
|
||||||
|
|
||||||
These labels should be added to issues that describe things that can be improved,
|
These labels should be added to issues that describe things that can be improved,
|
||||||
|
|
|
@ -221,7 +221,7 @@ requirements.
|
||||||
1. [Changelog entry added](../changelog.md), if necessary.
|
1. [Changelog entry added](../changelog.md), if necessary.
|
||||||
1. Reviewed by relevant (UX/FE/BE/tech writing) reviewers and all concerns are addressed.
|
1. Reviewed by relevant (UX/FE/BE/tech writing) reviewers and all concerns are addressed.
|
||||||
1. Merged by a project maintainer.
|
1. Merged by a project maintainer.
|
||||||
1. Create an issue in the [infrastructure issue tracker](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues) to inform the Infrastructure department when your contribution is changing default settings or introduces a new setting, if relevant.
|
1. Create an issue in the [infrastructure issue tracker](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues) to inform the Infrastructure department when your contribution is changing default settings or introduces a new setting, if relevant.
|
||||||
1. Confirmed to be working in the [Canary stage](https://about.gitlab.com/handbook/engineering/#canary-testing) or on GitLab.com once the contribution is deployed.
|
1. Confirmed to be working in the [Canary stage](https://about.gitlab.com/handbook/engineering/#canary-testing) or on GitLab.com once the contribution is deployed.
|
||||||
1. Added to the [release post](https://about.gitlab.com/handbook/marketing/blog/release-posts/),
|
1. Added to the [release post](https://about.gitlab.com/handbook/marketing/blog/release-posts/),
|
||||||
if relevant.
|
if relevant.
|
||||||
|
|
|
@ -654,7 +654,7 @@ For other punctuation rules, please refer to the
|
||||||
links shift too, which eventually leads to dead links. If you think it is
|
links shift too, which eventually leads to dead links. If you think it is
|
||||||
compelling to add numbers in headings, make sure to at least discuss it with
|
compelling to add numbers in headings, make sure to at least discuss it with
|
||||||
someone in the Merge Request.
|
someone in the Merge Request.
|
||||||
- [Avoid using symbols and special characters](https://gitlab.com/gitlab-org/gitlab-docs/issues/84)
|
- [Avoid using symbols and special characters](https://gitlab.com/gitlab-org/gitlab-docs/-/issues/84)
|
||||||
in headers. Whenever possible, they should be plain and short text.
|
in headers. Whenever possible, they should be plain and short text.
|
||||||
- Avoid adding things that show ephemeral statuses. For example, if a feature is
|
- Avoid adding things that show ephemeral statuses. For example, if a feature is
|
||||||
considered beta or experimental, put this information in a note, not in the heading.
|
considered beta or experimental, put this information in a note, not in the heading.
|
||||||
|
@ -1050,7 +1050,7 @@ For a complete reference on code blocks, check the [Kramdown guide](https://abou
|
||||||
|
|
||||||
## GitLab SVG icons
|
## GitLab SVG icons
|
||||||
|
|
||||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab-docs/issues/384) in GitLab 12.7.
|
> [Introduced](https://gitlab.com/gitlab-org/gitlab-docs/-/issues/384) in GitLab 12.7.
|
||||||
|
|
||||||
You can use icons from the [GitLab SVG library](https://gitlab-org.gitlab.io/gitlab-svgs/) directly
|
You can use icons from the [GitLab SVG library](https://gitlab-org.gitlab.io/gitlab-svgs/) directly
|
||||||
in the documentation.
|
in the documentation.
|
||||||
|
|
|
@ -65,7 +65,7 @@ within the `pages` directory correspond to Rails controllers and actions. These
|
||||||
auto-generated bundles will be automatically included on the corresponding
|
auto-generated bundles will be automatically included on the corresponding
|
||||||
pages.
|
pages.
|
||||||
|
|
||||||
For example, if you were to visit <https://gitlab.com/gitlab-org/gitlab/issues>,
|
For example, if you were to visit <https://gitlab.com/gitlab-org/gitlab/-/issues>,
|
||||||
you would be accessing the `app/controllers/projects/issues_controller.rb`
|
you would be accessing the `app/controllers/projects/issues_controller.rb`
|
||||||
controller with the `index` action. If a corresponding file exists at
|
controller with the `index` action. If a corresponding file exists at
|
||||||
`pages/projects/issues/index/index.js`, it will be compiled into a webpack
|
`pages/projects/issues/index/index.js`, it will be compiled into a webpack
|
||||||
|
|
|
@ -96,7 +96,7 @@ As a guideline:
|
||||||
Before toggling any feature flag, check that there are no ongoing
|
Before toggling any feature flag, check that there are no ongoing
|
||||||
significant incidents on GitLab.com. You can do this by checking the
|
significant incidents on GitLab.com. You can do this by checking the
|
||||||
`#production` and `#incident-management` Slack channels, or looking for
|
`#production` and `#incident-management` Slack channels, or looking for
|
||||||
[open incident issues](https://gitlab.com/gitlab-com/gl-infra/production/issues/?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=incident)
|
[open incident issues](https://gitlab.com/gitlab-com/gl-infra/production/-/issues/?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=incident)
|
||||||
(although check the dates and times).
|
(although check the dates and times).
|
||||||
|
|
||||||
We do not want to introduce changes during an incident, as it can make
|
We do not want to introduce changes during an incident, as it can make
|
||||||
|
@ -221,7 +221,7 @@ Any feature flag change that affects GitLab.com (production) will
|
||||||
automatically be logged in an issue.
|
automatically be logged in an issue.
|
||||||
|
|
||||||
The issue is created in the
|
The issue is created in the
|
||||||
[gl-infra/feature-flag-log](https://gitlab.com/gitlab-com/gl-infra/feature-flag-log/issues?scope=all&utf8=%E2%9C%93&state=closed)
|
[gl-infra/feature-flag-log](https://gitlab.com/gitlab-com/gl-infra/feature-flag-log/-/issues?scope=all&utf8=%E2%9C%93&state=closed)
|
||||||
project, and it will at minimum log the Slack handle of person enabling
|
project, and it will at minimum log the Slack handle of person enabling
|
||||||
a feature flag, the time, and the name of the flag being changed.
|
a feature flag, the time, and the name of the flag being changed.
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ Therefore "create a new user" would translate into "Benutzer(in) anlegen".
|
||||||
### Updating the glossary
|
### Updating the glossary
|
||||||
|
|
||||||
To propose additions to the glossary please
|
To propose additions to the glossary please
|
||||||
[open an issue](https://gitlab.com/gitlab-org/gitlab/issues?scope=all&utf8=✓&state=all&label_name[]=Category%3AInternationalization).
|
[open an issue](https://gitlab.com/gitlab-org/gitlab/-/issues?scope=all&utf8=✓&state=all&label_name[]=Category%3AInternationalization).
|
||||||
|
|
||||||
## French Translation Guidelines
|
## French Translation Guidelines
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ Marked stuck import jobs as failed. JIDs: xyz
|
||||||
While the performance problems are not tackled, there is a process to workaround
|
While the performance problems are not tackled, there is a process to workaround
|
||||||
importing big projects, using a foreground import:
|
importing big projects, using a foreground import:
|
||||||
|
|
||||||
[Foreground import](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/5384) of big projects for customers.
|
[Foreground import](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/5384) of big projects for customers.
|
||||||
(Using the import template in the [infrastructure tracker](https://gitlab.com/gitlab-com/gl-infra/infrastructure/))
|
(Using the import template in the [infrastructure tracker](https://gitlab.com/gitlab-com/gl-infra/infrastructure/))
|
||||||
|
|
||||||
## Security
|
## Security
|
||||||
|
|
|
@ -57,7 +57,7 @@ This section describes the steps you need to complete to onboard as a partner
|
||||||
and complete an intgration with the Secure stage.
|
and complete an intgration with the Secure stage.
|
||||||
|
|
||||||
1. Read about our [partnerships](https://about.gitlab.com/partners/integrate/).
|
1. Read about our [partnerships](https://about.gitlab.com/partners/integrate/).
|
||||||
1. [Create an issue](https://gitlab.com/gitlab-com/alliances/alliances/issues/new?issuable_template=new_partner)
|
1. [Create an issue](https://gitlab.com/gitlab-com/alliances/alliances/-/issues/new?issuable_template=new_partner)
|
||||||
using our new partner issue template to begin the discussion.
|
using our new partner issue template to begin the discussion.
|
||||||
1. Get a test account to begin developing your integration. You can
|
1. Get a test account to begin developing your integration. You can
|
||||||
request a [GitLab.com Gold Subscription Sandbox](https://about.gitlab.com/partners/integrate/#gitlabcom-gold-subscription-sandbox-request)
|
request a [GitLab.com Gold Subscription Sandbox](https://about.gitlab.com/partners/integrate/#gitlabcom-gold-subscription-sandbox-request)
|
||||||
|
|
|
@ -284,7 +284,7 @@ creating visualizations in Kibana.
|
||||||
**Note:**
|
**Note:**
|
||||||
The fields of the context are currently only logged for Sidekiq jobs triggered
|
The fields of the context are currently only logged for Sidekiq jobs triggered
|
||||||
through web requests. See the
|
through web requests. See the
|
||||||
[follow-up work](https://gitlab.com/gitlab-com/gl-infra/scalability/issues/68)
|
[follow-up work](https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/68)
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
## Exception Handling
|
## Exception Handling
|
||||||
|
@ -358,7 +358,7 @@ end
|
||||||
for most users, but you may need to tweak them in [Omnibus GitLab](https://gitlab.com/gitlab-org/omnibus-gitlab).
|
for most users, but you may need to tweak them in [Omnibus GitLab](https://gitlab.com/gitlab-org/omnibus-gitlab).
|
||||||
|
|
||||||
1. If you add a new file, submit an issue to the [production
|
1. If you add a new file, submit an issue to the [production
|
||||||
tracker](https://gitlab.com/gitlab-com/gl-infra/production/issues) or
|
tracker](https://gitlab.com/gitlab-com/gl-infra/production/-/issues) or
|
||||||
a merge request to the [gitlab_fluentd](https://gitlab.com/gitlab-cookbooks/gitlab_fluentd)
|
a merge request to the [gitlab_fluentd](https://gitlab.com/gitlab-cookbooks/gitlab_fluentd)
|
||||||
project. See [this example](https://gitlab.com/gitlab-cookbooks/gitlab_fluentd/-/merge_requests/51/diffs).
|
project. See [this example](https://gitlab.com/gitlab-cookbooks/gitlab_fluentd/-/merge_requests/51/diffs).
|
||||||
|
|
||||||
|
|
|
@ -93,12 +93,12 @@ systems.
|
||||||
#### Database size
|
#### Database size
|
||||||
|
|
||||||
A recent [database checkup shows a breakdown of the table sizes on
|
A recent [database checkup shows a breakdown of the table sizes on
|
||||||
GitLab.com](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/8022#master-1022016101-8).
|
GitLab.com](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/8022#master-1022016101-8).
|
||||||
Since `merge_request_diff_files` contains over 1 TB of data, we will want to
|
Since `merge_request_diff_files` contains over 1 TB of data, we will want to
|
||||||
reduce/eliminate this table first. GitLab has support for [storing diffs in
|
reduce/eliminate this table first. GitLab has support for [storing diffs in
|
||||||
object storage](../administration/merge_request_diffs.md), which we [will
|
object storage](../administration/merge_request_diffs.md), which we [will
|
||||||
want to do on
|
want to do on
|
||||||
GitLab.com](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7356).
|
GitLab.com](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/7356).
|
||||||
|
|
||||||
#### High availability
|
#### High availability
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@ limitation:
|
||||||
|
|
||||||
- Run multiple PgBouncer instances.
|
- Run multiple PgBouncer instances.
|
||||||
- Use a multi-threaded connection pooler (e.g.
|
- Use a multi-threaded connection pooler (e.g.
|
||||||
[Odyssey](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7776).
|
[Odyssey](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/7776).
|
||||||
|
|
||||||
On some Linux systems, it's possible to run [multiple PgBouncer instances on
|
On some Linux systems, it's possible to run [multiple PgBouncer instances on
|
||||||
the same port](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/4796).
|
the same port](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/4796).
|
||||||
|
@ -275,7 +275,7 @@ in a timely manner:
|
||||||
- Redistribute/gerrymander Sidekiq processes by queue
|
- Redistribute/gerrymander Sidekiq processes by queue
|
||||||
types. Long-running jobs (e.g. relating to project import) can often
|
types. Long-running jobs (e.g. relating to project import) can often
|
||||||
squeeze out jobs that run fast (e.g. delivering e-mail). [This technique
|
squeeze out jobs that run fast (e.g. delivering e-mail). [This technique
|
||||||
was used in to optimize our existing Sidekiq deployment](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7219#note_218019483).
|
was used in to optimize our existing Sidekiq deployment](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/7219#note_218019483).
|
||||||
- Optimize jobs. Eliminating unnecessary work, reducing network calls
|
- Optimize jobs. Eliminating unnecessary work, reducing network calls
|
||||||
(e.g. SQL, Gitaly, etc.), and optimizing processor time can yield significant
|
(e.g. SQL, Gitaly, etc.), and optimizing processor time can yield significant
|
||||||
benefits.
|
benefits.
|
||||||
|
|
|
@ -23,7 +23,7 @@ For more information about the permission model at GitLab, please see [the GitLa
|
||||||
### Impact
|
### Impact
|
||||||
|
|
||||||
Improper permission handling can have significant impacts on the security of an application.
|
Improper permission handling can have significant impacts on the security of an application.
|
||||||
Some situations may reveal [sensitive data](https://gitlab.com/gitlab-com/gl-infra/production/issues/477) or allow a malicious actor to perform [harmful actions](https://gitlab.com/gitlab-org/gitlab/-/issues/8180).
|
Some situations may reveal [sensitive data](https://gitlab.com/gitlab-com/gl-infra/production/-/issues/477) or allow a malicious actor to perform [harmful actions](https://gitlab.com/gitlab-org/gitlab/-/issues/8180).
|
||||||
The overall impact depends heavily on what resources can be accessed or modified improperly.
|
The overall impact depends heavily on what resources can be accessed or modified improperly.
|
||||||
|
|
||||||
A common vulnerability when permission checks are missing is called [IDOR](https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/05-Authorization_Testing/04-Testing_for_Insecure_Direct_Object_References) for Insecure Direct Object References.
|
A common vulnerability when permission checks are missing is called [IDOR](https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/05-Authorization_Testing/04-Testing_for_Insecure_Direct_Object_References) for Insecure Direct Object References.
|
||||||
|
|
|
@ -147,7 +147,7 @@ GitLab doesn't skip jobs scheduled in the future, as we assume that
|
||||||
the state will have changed by the time the job is scheduled to
|
the state will have changed by the time the job is scheduled to
|
||||||
execute.
|
execute.
|
||||||
|
|
||||||
More [deduplication strategies have been suggested](https://gitlab.com/gitlab-com/gl-infra/scalability/issues/195). If you are implementing a worker that
|
More [deduplication strategies have been suggested](https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/195). If you are implementing a worker that
|
||||||
could benefit from a different strategy, please comment in the issue.
|
could benefit from a different strategy, please comment in the issue.
|
||||||
|
|
||||||
If the automatic deduplication were to cause issues in certain
|
If the automatic deduplication were to cause issues in certain
|
||||||
|
|
|
@ -86,7 +86,7 @@ subgraph "gitlab-qa-mirror pipeline"
|
||||||
1. The result of the GitLab QA pipeline is being
|
1. The result of the GitLab QA pipeline is being
|
||||||
propagated upstream, through Omnibus, back to the GitLab merge request.
|
propagated upstream, through Omnibus, back to the GitLab merge request.
|
||||||
|
|
||||||
Please note, we plan to [add more specific information](https://gitlab.com/gitlab-org/quality/team-tasks/issues/156)
|
Please note, we plan to [add more specific information](https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/156)
|
||||||
about the tests included in each job/scenario that runs in `gitlab-qa-mirror`.
|
about the tests included in each job/scenario that runs in `gitlab-qa-mirror`.
|
||||||
|
|
||||||
#### With Pipeline for Merged Results
|
#### With Pipeline for Merged Results
|
||||||
|
@ -191,5 +191,5 @@ Continued reading:
|
||||||
|
|
||||||
You can ask question in the `#quality` channel on Slack (GitLab internal) or
|
You can ask question in the `#quality` channel on Slack (GitLab internal) or
|
||||||
you can find an issue you would like to work on in
|
you can find an issue you would like to work on in
|
||||||
[the `gitlab` issue tracker](https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=QA&label_name%5B%5D=test), or
|
[the `gitlab` issue tracker](https://gitlab.com/gitlab-org/gitlab/-/issues?label_name%5B%5D=QA&label_name%5B%5D=test), or
|
||||||
[the `gitlab-qa` issue tracker](https://gitlab.com/gitlab-org/gitlab-qa/issues?label_name%5B%5D=new+scenario).
|
[the `gitlab-qa` issue tracker](https://gitlab.com/gitlab-org/gitlab-qa/-/issues?label_name%5B%5D=new+scenario).
|
||||||
|
|
|
@ -152,7 +152,7 @@ used by the `review-deploy` and `review-stop` jobs.
|
||||||
|
|
||||||
### Get access to the GCP Review Apps cluster
|
### Get access to the GCP Review Apps cluster
|
||||||
|
|
||||||
You need to [open an access request (internal link)](https://gitlab.com/gitlab-com/access-requests/issues/new)
|
You need to [open an access request (internal link)](https://gitlab.com/gitlab-com/access-requests/-/issues/new)
|
||||||
for the `gcp-review-apps-sg` GCP group. In order to join a group, you must specify the desired GCP role in your access request.
|
for the `gcp-review-apps-sg` GCP group. In order to join a group, you must specify the desired GCP role in your access request.
|
||||||
The role is what will grant you specific permissions in order to engage with Review App containers.
|
The role is what will grant you specific permissions in order to engage with Review App containers.
|
||||||
|
|
||||||
|
@ -406,7 +406,7 @@ find a way to limit it to only us.**
|
||||||
## Other resources
|
## Other resources
|
||||||
|
|
||||||
- [Review Apps integration for CE/EE (presentation)](https://docs.google.com/presentation/d/1QPLr6FO4LduROU8pQIPkX1yfGvD13GEJIBOenqoKxR8/edit?usp=sharing)
|
- [Review Apps integration for CE/EE (presentation)](https://docs.google.com/presentation/d/1QPLr6FO4LduROU8pQIPkX1yfGvD13GEJIBOenqoKxR8/edit?usp=sharing)
|
||||||
- [Stability issues](https://gitlab.com/gitlab-org/quality/team-tasks/issues/212)
|
- [Stability issues](https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/212)
|
||||||
|
|
||||||
### Helpful command line tools
|
### Helpful command line tools
|
||||||
|
|
||||||
|
|
|
@ -295,7 +295,7 @@ graph RL
|
||||||
|
|
||||||
- **DOM**:
|
- **DOM**:
|
||||||
Testing on the real DOM ensures your components work in the intended environment.
|
Testing on the real DOM ensures your components work in the intended environment.
|
||||||
Part of DOM testing is delegated to [cross-browser testing](https://gitlab.com/gitlab-org/quality/team-tasks/issues/45).
|
Part of DOM testing is delegated to [cross-browser testing](https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/45).
|
||||||
- **Properties or state of components**:
|
- **Properties or state of components**:
|
||||||
On this level, all tests can only perform actions a user would do.
|
On this level, all tests can only perform actions a user would do.
|
||||||
For example: to change the state of a component, a click event would be fired.
|
For example: to change the state of a component, a click event would be fired.
|
||||||
|
|
|
@ -114,7 +114,7 @@ We have three kinds of file encoding in our uploads:
|
||||||
|
|
||||||
1. <i class="fa fa-check-circle"></i> **multipart**: `multipart/form-data` is the most common, a file is encoded as a part of a multipart encoded request.
|
1. <i class="fa fa-check-circle"></i> **multipart**: `multipart/form-data` is the most common, a file is encoded as a part of a multipart encoded request.
|
||||||
1. <i class="fa fa-check-circle"></i> **body**: some APIs uploads files as the whole request body.
|
1. <i class="fa fa-check-circle"></i> **body**: some APIs uploads files as the whole request body.
|
||||||
1. <i class="fa fa-times-circle"></i> **JSON**: some JSON API uploads files as base64 encoded strings. This will require a change to GitLab Workhorse, which [is planned](https://gitlab.com/gitlab-org/gitlab-workhorse/issues/226).
|
1. <i class="fa fa-times-circle"></i> **JSON**: some JSON API uploads files as base64 encoded strings. This will require a change to GitLab Workhorse, which [is planned](https://gitlab.com/gitlab-org/gitlab-workhorse/-/issues/226).
|
||||||
|
|
||||||
## Uploading technologies
|
## Uploading technologies
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ have to adhere to various internal requirements (for example, org. compliance, v
|
||||||
In cases where a strategic user has a requirement to test a feature before it is
|
In cases where a strategic user has a requirement to test a feature before it is
|
||||||
officially released, we can offer to create a Release Candidate (RC) version that will
|
officially released, we can offer to create a Release Candidate (RC) version that will
|
||||||
include the specific feature. This should be needed only in extreme cases, and can be requested for
|
include the specific feature. This should be needed only in extreme cases, and can be requested for
|
||||||
consideration by raising an issue in the [release/tasks](https://gitlab.com/gitlab-org/release/tasks/issues/new?issuable_template=Backporting-request) issue tracker.
|
consideration by raising an issue in the [release/tasks](https://gitlab.com/gitlab-org/release/tasks/-/issues/new?issuable_template=Backporting-request) issue tracker.
|
||||||
It is important to note that the Release Candidate will also contain other features and changes as
|
It is important to note that the Release Candidate will also contain other features and changes as
|
||||||
it is not possible to easily isolate a specific feature (similar reasons as noted above). The
|
it is not possible to easily isolate a specific feature (similar reasons as noted above). The
|
||||||
Release Candidate will be no different than any code that is deployed to GitLab.com or is publicly
|
Release Candidate will be no different than any code that is deployed to GitLab.com or is publicly
|
||||||
|
@ -95,7 +95,7 @@ For instance, if we release `11.2.1` with a fix for a severe bug introduced in
|
||||||
`11.0.0`, we could backport the fix to a new `11.0.x`, and `11.1.x` patch release.
|
`11.0.0`, we could backport the fix to a new `11.0.x`, and `11.1.x` patch release.
|
||||||
|
|
||||||
To request backporting to more than one stable release for consideration, raise an issue in the
|
To request backporting to more than one stable release for consideration, raise an issue in the
|
||||||
[release/tasks](https://gitlab.com/gitlab-org/release/tasks/issues/new?issuable_template=Backporting-request) issue tracker.
|
[release/tasks](https://gitlab.com/gitlab-org/release/tasks/-/issues/new?issuable_template=Backporting-request) issue tracker.
|
||||||
|
|
||||||
### Security releases
|
### Security releases
|
||||||
|
|
||||||
|
|
|
@ -358,7 +358,7 @@ as it attempts to fetch the image using `CI_REGISTRY_PASSWORD`.
|
||||||
|
|
||||||
CAUTION: **Deprecation**
|
CAUTION: **Deprecation**
|
||||||
The default value for the `deploymentApiVersion` setting was changed from
|
The default value for the `deploymentApiVersion` setting was changed from
|
||||||
`extensions/v1beta` to `apps/v1` in [GitLab 13.0](https://gitlab.com/gitlab-org/charts/auto-deploy-app/issues/47).
|
`extensions/v1beta` to `apps/v1` in [GitLab 13.0](https://gitlab.com/gitlab-org/charts/auto-deploy-app/-/issues/47).
|
||||||
|
|
||||||
In Kubernetes 1.16 and later, a number of
|
In Kubernetes 1.16 and later, a number of
|
||||||
[APIs were removed](https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/),
|
[APIs were removed](https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/),
|
||||||
|
|
|
@ -141,7 +141,7 @@ enabled on the Git server:
|
||||||
1. **Create a new Git repository and fetch.** Support for `--filter=sparse:oid`
|
1. **Create a new Git repository and fetch.** Support for `--filter=sparse:oid`
|
||||||
using the clone command is incomplete, so we will emulate the clone command
|
using the clone command is incomplete, so we will emulate the clone command
|
||||||
by hand, using `git init` and `git fetch`. Follow
|
by hand, using `git init` and `git fetch`. Follow
|
||||||
[issue tracking support for `--filter=sparse:oid`](https://gitlab.com/gitlab-org/git/issues/4)
|
[issue tracking support for `--filter=sparse:oid`](https://gitlab.com/gitlab-org/git/-/issues/4)
|
||||||
for updates.
|
for updates.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
@ -173,7 +173,7 @@ enabled on the Git server:
|
||||||
|
|
||||||
1. **Sparse checkout** must be enabled and configured to prevent objects from
|
1. **Sparse checkout** must be enabled and configured to prevent objects from
|
||||||
other paths being downloaded automatically when checking out branches. Follow
|
other paths being downloaded automatically when checking out branches. Follow
|
||||||
[issue proposing automating sparse checkouts](https://gitlab.com/gitlab-org/git/issues/5) for updates.
|
[issue proposing automating sparse checkouts](https://gitlab.com/gitlab-org/git/-/issues/5) for updates.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# Enable sparse checkout
|
# Enable sparse checkout
|
||||||
|
|
|
@ -154,7 +154,7 @@ Some tickets need specific knowledge or a deep understanding of a particular com
|
||||||
- Understand what's in the pipeline and proposed features at GitLab: [Direction Page](https://about.gitlab.com/direction/)
|
- Understand what's in the pipeline and proposed features at GitLab: [Direction Page](https://about.gitlab.com/direction/)
|
||||||
- Practice searching issues and filtering using [labels](https://gitlab.com/gitlab-org/gitlab/-/labels) to find existing feature proposals and bugs
|
- Practice searching issues and filtering using [labels](https://gitlab.com/gitlab-org/gitlab/-/labels) to find existing feature proposals and bugs
|
||||||
- If raising a new issue always provide a relevant label and a link to the relevant ticket in Zendesk
|
- If raising a new issue always provide a relevant label and a link to the relevant ticket in Zendesk
|
||||||
- Add [customer labels](https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=customer) for those issues relevant to our subscribers
|
- Add [customer labels](https://gitlab.com/gitlab-org/gitlab/-/issues?label_name%5B%5D=customer) for those issues relevant to our subscribers
|
||||||
- Take a look at the [existing issue templates](https://gitlab.com/gitlab-org/gitlab/blob/master/CONTRIBUTING.md#issue-tracker) to see what is expected
|
- Take a look at the [existing issue templates](https://gitlab.com/gitlab-org/gitlab/blob/master/CONTRIBUTING.md#issue-tracker) to see what is expected
|
||||||
- Raise issues for bugs in a manner that would make the issue easily reproducible. A Developer or a contributor may work on your issue
|
- Raise issues for bugs in a manner that would make the issue easily reproducible. A Developer or a contributor may work on your issue
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ Based on your installation, choose a section below that fits your needs.
|
||||||
source](upgrading_from_source.md) - The guidelines for upgrading Community
|
source](upgrading_from_source.md) - The guidelines for upgrading Community
|
||||||
Edition and Enterprise Edition from source.
|
Edition and Enterprise Edition from source.
|
||||||
- [Patch versions](patch_versions.md) guide includes the steps needed for a
|
- [Patch versions](patch_versions.md) guide includes the steps needed for a
|
||||||
patch version, eg. 6.2.0 to 6.2.1, and apply to both Community and Enterprise
|
patch version, such as 6.2.0 to 6.2.1, and apply to both Community and Enterprise
|
||||||
Editions.
|
Editions.
|
||||||
|
|
||||||
In the past we used separate documents for the upgrading instructions, but we
|
In the past we used separate documents for the upgrading instructions, but we
|
||||||
|
@ -178,7 +178,7 @@ If you wish to upgrade your GitLab installation from Community to Enterprise
|
||||||
Edition, follow the guides below based on the installation method:
|
Edition, follow the guides below based on the installation method:
|
||||||
|
|
||||||
- [Source CE to EE update guides](upgrading_from_ce_to_ee.md) - The steps are very similar
|
- [Source CE to EE update guides](upgrading_from_ce_to_ee.md) - The steps are very similar
|
||||||
to a version upgrade: stop the server, get the code, update config files for
|
to a version upgrade: stop the server, get the code, update configuration files for
|
||||||
the new functionality, install libraries and do migrations, update the init
|
the new functionality, install libraries and do migrations, update the init
|
||||||
script, start the application and check its status.
|
script, start the application and check its status.
|
||||||
- [Omnibus CE to EE](https://docs.gitlab.com/omnibus/update/README.html#updating-community-edition-to-enterprise-edition) - Follow this guide to update your Omnibus
|
- [Omnibus CE to EE](https://docs.gitlab.com/omnibus/update/README.html#updating-community-edition-to-enterprise-edition) - Follow this guide to update your Omnibus
|
||||||
|
|
|
@ -371,7 +371,7 @@ test:
|
||||||
release we will update the autoscaler to enable
|
release we will update the autoscaler to enable
|
||||||
the pre-provisioning of virtual machines. This will significantly reduce
|
the pre-provisioning of virtual machines. This will significantly reduce
|
||||||
the time it takes to provision a VM on the Windows fleet. You can
|
the time it takes to provision a VM on the Windows fleet. You can
|
||||||
follow along in the [related issue](https://gitlab.com/gitlab-org/ci-cd/custom-executor-drivers/autoscaler/issues/32).
|
follow along in the [related issue](https://gitlab.com/gitlab-org/ci-cd/custom-executor-drivers/autoscaler/-/issues/32).
|
||||||
- The Windows Shared Runner fleet may be unavailable occasionally
|
- The Windows Shared Runner fleet may be unavailable occasionally
|
||||||
for maintenance or updates.
|
for maintenance or updates.
|
||||||
- The Windows Shared Runner virtual machine instances do not use the
|
- The Windows Shared Runner virtual machine instances do not use the
|
||||||
|
|
|
@ -258,7 +258,7 @@ build:
|
||||||
- docker push $CI_REGISTRY/group/project/image:latest
|
- docker push $CI_REGISTRY/group/project/image:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also make use of [other variables](../../../ci/variables/README.md) to avoid hardcoding:
|
You can also make use of [other variables](../../../ci/variables/README.md) to avoid hard-coding:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
build:
|
build:
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# GitLab Go Proxy **(PREMIUM)**
|
# GitLab Go Proxy **(PREMIUM)**
|
||||||
|
|
||||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/27376) in [GitLab Premium](https://about.gitlab.com/pricing/) 13.1.
|
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/27376) in [GitLab Premium](https://about.gitlab.com/pricing/) 13.1.
|
||||||
> - It's deployed behind a feature flag, disabled by default.
|
> - It's deployed behind a feature flag, disabled by default.
|
||||||
> - It's disabled on GitLab.com.
|
> - It's disabled on GitLab.com.
|
||||||
> - It's not recommended for production use.
|
> - It's not recommended for production use.
|
||||||
|
|
|
@ -134,7 +134,7 @@ This example code does the following:
|
||||||
#### Setting up your AWS credentials with your GitLab account
|
#### Setting up your AWS credentials with your GitLab account
|
||||||
|
|
||||||
In order to interact with your AWS account, the GitLab CI/CD pipelines require both `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` to be defined in your GitLab settings under **Settings > CI/CD > Variables**.
|
In order to interact with your AWS account, the GitLab CI/CD pipelines require both `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` to be defined in your GitLab settings under **Settings > CI/CD > Variables**.
|
||||||
For more information please see: <https://docs.gitlab.com/ee/ci/variables/README.html#via-the-ui>
|
For more information please see [Create a custom variable in the UI](../../../../ci/variables/README.md#create-a-custom-variable-in-the-ui).
|
||||||
|
|
||||||
NOTE: **Note:**
|
NOTE: **Note:**
|
||||||
The AWS credentials you provide must include IAM policies that provision correct access control to AWS Lambda, API Gateway, CloudFormation, and IAM resources.
|
The AWS credentials you provide must include IAM policies that provision correct access control to AWS Lambda, API Gateway, CloudFormation, and IAM resources.
|
||||||
|
@ -288,7 +288,7 @@ automated testing of both local and deployed serverless function.
|
||||||
|
|
||||||
The example code is available:
|
The example code is available:
|
||||||
|
|
||||||
- As a [cloneable repository](https://gitlab.com/gitlab-org/serverless/examples/serverless-framework-js).
|
- As a [clonable repository](https://gitlab.com/gitlab-org/serverless/examples/serverless-framework-js).
|
||||||
- In a version with [tests and secret variables](https://gitlab.com/gitlab-org/project-templates/serverless-framework/).
|
- In a version with [tests and secret variables](https://gitlab.com/gitlab-org/project-templates/serverless-framework/).
|
||||||
|
|
||||||
You can also use a [template](../../../../gitlab-basics/create-project.md#project-templates)
|
You can also use a [template](../../../../gitlab-basics/create-project.md#project-templates)
|
||||||
|
@ -416,7 +416,7 @@ production:
|
||||||
environment: production
|
environment: production
|
||||||
```
|
```
|
||||||
|
|
||||||
Let’s examine the config file more closely:
|
Let’s examine the configuration file more closely:
|
||||||
|
|
||||||
- `image` specifies the Docker image to use for this build. This is the latest Python
|
- `image` specifies the Docker image to use for this build. This is the latest Python
|
||||||
image since the sample application is written in Python.
|
image since the sample application is written in Python.
|
||||||
|
|
|
@ -356,6 +356,24 @@ a [Push event webhook](../integrations/webhooks.md#push-events) to trigger an im
|
||||||
pull to GitLab. Push mirroring from GitLab is rate limited to once per minute when only push mirroring
|
pull to GitLab. Push mirroring from GitLab is rate limited to once per minute when only push mirroring
|
||||||
protected branches.
|
protected branches.
|
||||||
|
|
||||||
|
### Configure a webhook to trigger an immediate pull to GitLab
|
||||||
|
|
||||||
|
Assuming you have already configured the [push](#setting-up-a-push-mirror-to-another-gitlab-instance-with-2fa-activated) and [pull](#pulling-from-a-remote-repository-starter) mirrors in the upstream GitLab instance, to trigger an immediate pull as suggested above, you will need to configure a [Push Event Web Hook](../integrations/webhooks.md#push-events) in the downstream instance.
|
||||||
|
|
||||||
|
To do this:
|
||||||
|
|
||||||
|
- Create a [personal access token](../../profile/personal_access_tokens.md) with `API` scope.
|
||||||
|
- Navigate to **Settings > Webhooks**
|
||||||
|
- Add the webhook URL which in this case will use the [Pull Mirror API](../../../api/projects.md#start-the-pull-mirroring-process-for-a-project-starter) request to trigger an immediate pull after updates to the repository.
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
https://gitlab.example.com/api/v4/projects/:id/mirror/pull?private_token=<your_access_token>
|
||||||
|
```
|
||||||
|
|
||||||
|
- Ensure that the **Push Events** checkbox is selected.
|
||||||
|
- Click on **Add Webhook** button to save the webhook.
|
||||||
|
- To test the integration click on the **Test** button and confirm GitLab does not return any error.
|
||||||
|
|
||||||
### Preventing conflicts using a `pre-receive` hook
|
### Preventing conflicts using a `pre-receive` hook
|
||||||
|
|
||||||
CAUTION: **Warning:**
|
CAUTION: **Warning:**
|
||||||
|
|
|
@ -177,7 +177,7 @@ To turn on the feature, ask a GitLab administrator with Rails console access to
|
||||||
command:
|
command:
|
||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
Feature.enable(service_desk_email)
|
Feature.enable(:service_desk_email)
|
||||||
```
|
```
|
||||||
|
|
||||||
The configuration options are the same as for configuring
|
The configuration options are the same as for configuring
|
||||||
|
|
|
@ -284,7 +284,7 @@ terminal:
|
||||||
|
|
||||||
- The `webide-file-sync` executable must start **after** the project
|
- The `webide-file-sync` executable must start **after** the project
|
||||||
directory is available. This is why we need to add `sleep 5` to the `command`.
|
directory is available. This is why we need to add `sleep 5` to the `command`.
|
||||||
See [this issue](https://gitlab.com/gitlab-org/webide-file-sync/issues/7) for
|
See [this issue](https://gitlab.com/gitlab-org/webide-file-sync/-/issues/7) for
|
||||||
more information.
|
more information.
|
||||||
- `$CI_PROJECT_DIR` is a
|
- `$CI_PROJECT_DIR` is a
|
||||||
[predefined environment variable](../../../ci/variables/predefined_variables.md)
|
[predefined environment variable](../../../ci/variables/predefined_variables.md)
|
||||||
|
|
|
@ -14,6 +14,21 @@ module Gitlab
|
||||||
|
|
||||||
payload.delete('extra.server')
|
payload.delete('extra.server')
|
||||||
|
|
||||||
|
# The raven extra context is populated by Raven::SidekiqCleanupMiddleware.
|
||||||
|
#
|
||||||
|
# It contains the full sidekiq job which consists of mixed types and nested
|
||||||
|
# objects. That causes a bunch of issues when trying to ingest logs into
|
||||||
|
# Elasticsearch.
|
||||||
|
#
|
||||||
|
# We apply a stricter schema here that forces the args to be an array of
|
||||||
|
# strings. This same logic exists in Gitlab::SidekiqLogging::JSONFormatter.
|
||||||
|
payload['extra.sidekiq'].tap do |value|
|
||||||
|
if value.is_a?(Hash) && value.key?('args')
|
||||||
|
value = value.dup
|
||||||
|
payload['extra.sidekiq']['args'] = Gitlab::Utils::LogLimitedArray.log_limited_array(value['args'].try(:map, &:to_s))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if exception.backtrace
|
if exception.backtrace
|
||||||
payload['exception.backtrace'] = Gitlab::BacktraceCleaner.clean_backtrace(exception.backtrace)
|
payload['exception.backtrace'] = Gitlab::BacktraceCleaner.clean_backtrace(exception.backtrace)
|
||||||
end
|
end
|
||||||
|
|
|
@ -16,9 +16,7 @@ describe('RepoTabs', () => {
|
||||||
vm = createComponent(RepoTabs, {
|
vm = createComponent(RepoTabs, {
|
||||||
files: openedFiles,
|
files: openedFiles,
|
||||||
viewer: 'editor',
|
viewer: 'editor',
|
||||||
hasChanges: false,
|
|
||||||
activeFile: file('activeFile'),
|
activeFile: file('activeFile'),
|
||||||
hasMergeRequest: false,
|
|
||||||
});
|
});
|
||||||
openedFiles[0].active = true;
|
openedFiles[0].active = true;
|
||||||
|
|
||||||
|
|
|
@ -179,5 +179,16 @@ describe Gitlab::ErrorTracking do
|
||||||
described_class.track_exception(exception, extra_info)
|
described_class.track_exception(exception, extra_info)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with sidekiq args' do
|
||||||
|
let(:extra) { { sidekiq: { 'args' => [1, { 'id' => 2, 'name' => 'hello' }, 'some-value', 'another-value'] } } }
|
||||||
|
|
||||||
|
it 'ensures extra.sidekiq.args is a string' do
|
||||||
|
expect(Gitlab::ErrorTracking::Logger).to receive(:error).with(
|
||||||
|
hash_including({ 'extra.sidekiq' => { 'args' => ['1', '{"id"=>2, "name"=>"hello"}', 'some-value', 'another-value'] } }))
|
||||||
|
|
||||||
|
described_class.track_exception(exception, extra)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,28 +6,34 @@ describe SnippetInputAction do
|
||||||
describe 'validations' do
|
describe 'validations' do
|
||||||
using RSpec::Parameterized::TableSyntax
|
using RSpec::Parameterized::TableSyntax
|
||||||
|
|
||||||
where(:action, :file_path, :content, :previous_path, :is_valid) do
|
where(:action, :file_path, :content, :previous_path, :is_valid, :invalid_field) do
|
||||||
'create' | 'foobar' | 'foobar' | 'foobar' | true
|
'create' | 'foobar' | 'foobar' | 'foobar' | true | nil
|
||||||
'move' | 'foobar' | 'foobar' | 'foobar' | true
|
'move' | 'foobar' | 'foobar' | 'foobar' | true | nil
|
||||||
'delete' | 'foobar' | 'foobar' | 'foobar' | true
|
'delete' | 'foobar' | 'foobar' | 'foobar' | true | nil
|
||||||
'update' | 'foobar' | 'foobar' | 'foobar' | true
|
'update' | 'foobar' | 'foobar' | 'foobar' | true | nil
|
||||||
'foo' | 'foobar' | 'foobar' | 'foobar' | false
|
'foo' | 'foobar' | 'foobar' | 'foobar' | false | :action
|
||||||
nil | 'foobar' | 'foobar' | 'foobar' | false
|
nil | 'foobar' | 'foobar' | 'foobar' | false | :action
|
||||||
'' | 'foobar' | 'foobar' | 'foobar' | false
|
'' | 'foobar' | 'foobar' | 'foobar' | false | :action
|
||||||
'move' | 'foobar' | 'foobar' | nil | false
|
'move' | 'foobar' | 'foobar' | nil | false | :previous_path
|
||||||
'move' | 'foobar' | 'foobar' | '' | false
|
'move' | 'foobar' | 'foobar' | '' | false | :previous_path
|
||||||
'create' | 'foobar' | nil | 'foobar' | false
|
'create' | 'foobar' | nil | 'foobar' | false | :content
|
||||||
'create' | 'foobar' | '' | 'foobar' | false
|
'create' | 'foobar' | '' | 'foobar' | false | :content
|
||||||
'create' | nil | 'foobar' | 'foobar' | false
|
'create' | nil | 'foobar' | 'foobar' | false | :file_path
|
||||||
'create' | '' | 'foobar' | 'foobar' | false
|
'create' | '' | 'foobar' | 'foobar' | false | :file_path
|
||||||
'update' | 'foobar' | nil | 'foobar' | false
|
'update' | 'foobar' | nil | 'foobar' | false | :content
|
||||||
'update' | 'other' | 'foobar' | 'foobar' | false
|
'update' | 'other' | 'foobar' | 'foobar' | false | :file_path
|
||||||
end
|
end
|
||||||
|
|
||||||
with_them do
|
with_them do
|
||||||
subject { described_class.new(action: action, file_path: file_path, content: content, previous_path: previous_path).valid? }
|
subject { described_class.new(action: action, file_path: file_path, content: content, previous_path: previous_path) }
|
||||||
|
|
||||||
specify { is_expected.to be is_valid}
|
specify do
|
||||||
|
expect(subject.valid?).to be is_valid
|
||||||
|
|
||||||
|
unless is_valid
|
||||||
|
expect(subject.errors).to include(invalid_field)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue