Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
359f9c9929
commit
cb840235d7
2
Gemfile
2
Gemfile
|
@ -293,7 +293,7 @@ gem 'autoprefixer-rails', '10.2.0.0'
|
|||
gem 'terser', '1.0.2'
|
||||
|
||||
gem 'addressable', '~> 2.7'
|
||||
gem 'gemojione', '~> 4.3.3'
|
||||
gem 'gemojione', '~> 3.3'
|
||||
gem 'gon', '~> 6.2'
|
||||
gem 'request_store', '~> 1.5'
|
||||
gem 'base32', '~> 0.3.0'
|
||||
|
|
|
@ -412,7 +412,7 @@ GEM
|
|||
ruby-progressbar (~> 1.4)
|
||||
fuzzyurl (0.9.0)
|
||||
gemoji (3.0.1)
|
||||
gemojione (4.3.3)
|
||||
gemojione (3.3.0)
|
||||
json
|
||||
get_process_mem (0.2.5)
|
||||
ffi (~> 1.0)
|
||||
|
@ -1414,7 +1414,7 @@ DEPENDENCIES
|
|||
fog-rackspace (~> 0.1.1)
|
||||
fugit (~> 1.2.1)
|
||||
fuubar (~> 2.2.0)
|
||||
gemojione (~> 4.3.3)
|
||||
gemojione (~> 3.3)
|
||||
gettext (~> 3.3)
|
||||
gettext_i18n_rails (~> 1.8.0)
|
||||
gettext_i18n_rails_js (~> 1.3)
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
Binary file not shown.
Before Width: | Height: | Size: 5.4 MiB After Width: | Height: | Size: 2.8 MiB |
|
@ -43,7 +43,7 @@ export default {
|
|||
</gl-link>
|
||||
</div>
|
||||
<div v-if="userCanEnableAlertManagement" class="gl-display-block center gl-pt-4">
|
||||
<gl-button category="primary" variant="success" :href="enableAlertManagementPath">
|
||||
<gl-button category="primary" variant="confirm" :href="enableAlertManagementPath">
|
||||
{{ $options.i18n.emptyState.buttonText }}
|
||||
</gl-button>
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<script>
|
||||
import { GlButton, GlLoadingIcon, GlModal, GlLink } from '@gitlab/ui';
|
||||
import { GlButton, GlEmptyState, GlLoadingIcon, GlModal, GlLink } from '@gitlab/ui';
|
||||
import { getParameterByName } from '~/lib/utils/common_utils';
|
||||
import SvgBlankState from '~/pipelines/components/pipelines_list/blank_state.vue';
|
||||
import PipelinesTableComponent from '~/pipelines/components/pipelines_list/pipelines_table.vue';
|
||||
import eventHub from '~/pipelines/event_hub';
|
||||
import PipelinesMixin from '~/pipelines/mixins/pipelines_mixin';
|
||||
|
@ -13,12 +12,12 @@ import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
|
|||
export default {
|
||||
components: {
|
||||
GlButton,
|
||||
GlEmptyState,
|
||||
GlLink,
|
||||
GlLoadingIcon,
|
||||
GlModal,
|
||||
PipelinesTableComponent,
|
||||
TablePagination,
|
||||
SvgBlankState,
|
||||
},
|
||||
mixins: [PipelinesMixin, glFeatureFlagMixin()],
|
||||
props: {
|
||||
|
@ -183,12 +182,12 @@ export default {
|
|||
class="prepend-top-20"
|
||||
/>
|
||||
|
||||
<svg-blank-state
|
||||
<gl-empty-state
|
||||
v-else-if="shouldRenderErrorState"
|
||||
:svg-path="errorStateSvgPath"
|
||||
:message="
|
||||
:title="
|
||||
s__(`Pipelines|There was an error fetching the pipelines.
|
||||
Try again in a few moments or contact your support team.`)
|
||||
Try again in a few moments or contact your support team.`)
|
||||
"
|
||||
/>
|
||||
|
||||
|
|
|
@ -3,10 +3,10 @@ export const FREQUENTLY_USED_COOKIE_KEY = 'frequently_used_emojis';
|
|||
|
||||
export const CATEGORY_ICON_MAP = {
|
||||
[FREQUENTLY_USED_KEY]: 'history',
|
||||
activity: 'dumbbell',
|
||||
people: 'smiley',
|
||||
nature: 'nature',
|
||||
food: 'food',
|
||||
activity: 'dumbbell',
|
||||
travel: 'car',
|
||||
objects: 'object',
|
||||
symbols: 'heart',
|
||||
|
|
|
@ -8,7 +8,7 @@ let emojiMap = null;
|
|||
let validEmojiNames = null;
|
||||
export const FALLBACK_EMOJI_KEY = 'grey_question';
|
||||
|
||||
export const EMOJI_VERSION = '2';
|
||||
export const EMOJI_VERSION = '1';
|
||||
|
||||
const isLocalStorageAvailable = AccessorUtilities.isLocalStorageAccessSafe();
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import AccessorUtilities from '../../lib/utils/accessor';
|
||||
|
||||
const GL_EMOJI_VERSION = '0.3.0';
|
||||
const GL_EMOJI_VERSION = '0.2.0';
|
||||
|
||||
const unicodeSupportTestMap = {
|
||||
// man, student (emojione does not have any of these yet), http://emojipedia.org/emoji-zwj-sequences/
|
||||
|
@ -25,8 +25,6 @@ const unicodeSupportTestMap = {
|
|||
// angel_tone5
|
||||
'\u{1F47C}\u{1F3FF}',
|
||||
],
|
||||
// star_struck, http://emojipedia.org/unicode-9.0/
|
||||
'10.0': '\u{1F929}',
|
||||
// rofl, http://emojipedia.org/unicode-9.0/
|
||||
'9.0': '\u{1F923}',
|
||||
// metal, http://emojipedia.org/unicode-8.0/
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
<script>
|
||||
export default {
|
||||
name: 'PipelinesSvgState',
|
||||
props: {
|
||||
svgPath: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
|
||||
message: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="row empty-state">
|
||||
<div class="col-12">
|
||||
<div class="svg-content"><img :src="svgPath" /></div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 text-center">
|
||||
<div class="text-content">
|
||||
<h4>{{ message }}</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
|
@ -1,5 +1,5 @@
|
|||
<script>
|
||||
import { GlIcon, GlLoadingIcon } from '@gitlab/ui';
|
||||
import { GlEmptyState, GlIcon, GlLoadingIcon } from '@gitlab/ui';
|
||||
import { isEqual } from 'lodash';
|
||||
import { deprecatedCreateFlash as createFlash } from '~/flash';
|
||||
import { getParameterByName } from '~/lib/utils/common_utils';
|
||||
|
@ -10,7 +10,6 @@ import { ANY_TRIGGER_AUTHOR, RAW_TEXT_WARNING, FILTER_TAG_IDENTIFIER } from '../
|
|||
import PipelinesMixin from '../../mixins/pipelines_mixin';
|
||||
import PipelinesService from '../../services/pipelines_service';
|
||||
import { validateParams } from '../../utils';
|
||||
import SvgBlankState from './blank_state.vue';
|
||||
import EmptyState from './empty_state.vue';
|
||||
import NavigationControls from './nav_controls.vue';
|
||||
import PipelinesFilteredSearch from './pipelines_filtered_search.vue';
|
||||
|
@ -19,13 +18,13 @@ import PipelinesTableComponent from './pipelines_table.vue';
|
|||
export default {
|
||||
components: {
|
||||
EmptyState,
|
||||
GlEmptyState,
|
||||
GlIcon,
|
||||
GlLoadingIcon,
|
||||
NavigationTabs,
|
||||
NavigationControls,
|
||||
PipelinesFilteredSearch,
|
||||
PipelinesTableComponent,
|
||||
SvgBlankState,
|
||||
TablePagination,
|
||||
},
|
||||
mixins: [PipelinesMixin],
|
||||
|
@ -333,19 +332,19 @@ export default {
|
|||
:can-set-ci="canCreatePipeline"
|
||||
/>
|
||||
|
||||
<svg-blank-state
|
||||
<gl-empty-state
|
||||
v-else-if="stateToRender === $options.stateMap.error"
|
||||
:svg-path="errorStateSvgPath"
|
||||
:message="
|
||||
:title="
|
||||
s__(`Pipelines|There was an error fetching the pipelines.
|
||||
Try again in a few moments or contact your support team.`)
|
||||
"
|
||||
/>
|
||||
|
||||
<svg-blank-state
|
||||
<gl-empty-state
|
||||
v-else-if="stateToRender === $options.stateMap.emptyTab"
|
||||
:svg-path="noPipelinesSvgPath"
|
||||
:message="emptyTabMessage"
|
||||
:title="emptyTabMessage"
|
||||
/>
|
||||
|
||||
<div v-else-if="stateToRender === $options.stateMap.tableList">
|
||||
|
|
|
@ -48,8 +48,16 @@ export default {
|
|||
legacyTableMobileClass() {
|
||||
return !this.glFeatures.newPipelinesTable ? 'table-mobile-content' : '';
|
||||
},
|
||||
singleStagePipelineManual() {
|
||||
return (
|
||||
this.pipeline.details.manual_actions.length > 0 && this.pipeline.details.stages.length === 1
|
||||
);
|
||||
},
|
||||
showInProgress() {
|
||||
return !this.duration && !this.finishedTime;
|
||||
return !this.duration && !this.finishedTime && !this.singleStagePipelineManual;
|
||||
},
|
||||
showSkipped() {
|
||||
return !this.duration && !this.finishedTime && this.singleStagePipelineManual;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
@ -65,6 +73,11 @@ export default {
|
|||
{{ s__('Pipeline|In progress') }}
|
||||
</span>
|
||||
|
||||
<span v-if="showSkipped" data-testid="pipeline-skipped">
|
||||
<gl-icon name="status_skipped_borderless" class="gl-mr-2" :size="16" />
|
||||
{{ s__('Pipeline|Skipped') }}
|
||||
</span>
|
||||
|
||||
<p v-if="duration" class="duration">
|
||||
<gl-icon name="timer" class="gl-vertical-align-baseline!" :size="12" />
|
||||
{{ durationFormatted }}
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
<script>
|
||||
import { GlLink } from '@gitlab/ui';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
GlLink,
|
||||
},
|
||||
props: {
|
||||
path: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
text: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
cssClass: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<gl-link :href="path" :class="cssClass" class="btn gl-button">{{ text }}</gl-link>
|
||||
</template>
|
File diff suppressed because it is too large
Load Diff
|
@ -108,7 +108,7 @@
|
|||
> .dropdown,
|
||||
> input,
|
||||
> form {
|
||||
margin-right: $gl-padding-top;
|
||||
margin-right: $gl-padding-8;
|
||||
|
||||
&:last-child {
|
||||
margin-right: 0;
|
||||
|
|
|
@ -71,7 +71,7 @@ class Projects::ServicesController < Projects::ApplicationController
|
|||
end
|
||||
|
||||
result[:data].presence || {}
|
||||
rescue Gitlab::HTTP::BlockedUrlError => e
|
||||
rescue *Gitlab::HTTP::HTTP_ERRORS => e
|
||||
{ error: true, message: s_('Integrations|Connection failed. Please check your settings.'), service_response: e.message, test_failed: true }
|
||||
end
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ module ProtectedRef
|
|||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
belongs_to :project
|
||||
belongs_to :project, touch: true
|
||||
|
||||
validates :name, presence: true
|
||||
validates :project, presence: true
|
||||
|
|
|
@ -8,7 +8,7 @@ class Release < ApplicationRecord
|
|||
|
||||
cache_markdown_field :description
|
||||
|
||||
belongs_to :project
|
||||
belongs_to :project, touch: true
|
||||
# releases prior to 11.7 have no author
|
||||
belongs_to :author, class_name: 'User'
|
||||
|
||||
|
|
|
@ -995,6 +995,12 @@ class Repository
|
|||
raw_repository.search_files_by_name(query, ref)
|
||||
end
|
||||
|
||||
def search_files_by_wildcard_path(path, ref = 'HEAD')
|
||||
# We need to use RE2 to match Gitaly's regexp engine
|
||||
regexp_string = RE2::Regexp.escape(path).gsub('\*', '.*?')
|
||||
raw_repository.search_files_by_regexp("^#{regexp_string}$", ref)
|
||||
end
|
||||
|
||||
def copy_gitattributes(ref)
|
||||
actual_ref = ref || root_ref
|
||||
begin
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
- user_status_data = user_status_properties(current_user)
|
||||
|
||||
%header.navbar.navbar-gitlab.navbar-expand-sm.js-navbar{ data: { qa_selector: 'navbar' } }
|
||||
%a.sr-only.gl-accessibility{ href: "#content-body", tabindex: "1" } Skip to content
|
||||
%a.gl-sr-only.gl-accessibility{ href: "#content-body" } Skip to content
|
||||
.container-fluid
|
||||
.header-content
|
||||
.title-container
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Update secondary nav elements right margin to 8px
|
||||
merge_request: 56794
|
||||
author:
|
||||
type: changed
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Enable :jira_issues_show_integration feature flag by default
|
||||
merge_request: 56182
|
||||
author:
|
||||
type: added
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Remove tabindex on skip link that could negatively impact keyboard focus management
|
||||
and order
|
||||
merge_request: 55756
|
||||
author:
|
||||
type: other
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Move to confirm variant from success in alert_management directory
|
||||
merge_request: 56206
|
||||
author: Yogi (@yo)
|
||||
type: changed
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Support newlines for the chatops "run" command
|
||||
merge_request: 56668
|
||||
author:
|
||||
type: changed
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Adds skipped state to duration cell for single stage manual pipelines
|
||||
merge_request: 56669
|
||||
author:
|
||||
type: changed
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Catch network errors
|
||||
merge_request: 56457
|
||||
author: Shubham Kumar (@imskr)
|
||||
type: fixed
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: API JSON caching for tags endpoint
|
||||
merge_request: 54975
|
||||
author:
|
||||
type: performance
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
name: api_caching_tags
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/54975
|
||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/324391
|
||||
milestone: '13.10'
|
||||
type: development
|
||||
group: group::source code
|
||||
default_enabled: false
|
|
@ -8,10 +8,11 @@ product_category: collection
|
|||
value_type: string
|
||||
status: data_available
|
||||
time_frame: none
|
||||
data_source:
|
||||
data_source: ruby
|
||||
distribution:
|
||||
- ce
|
||||
- ee
|
||||
tier:
|
||||
- free
|
||||
skip_validation: true
|
||||
- premium
|
||||
- ultimate
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
# Warning: gitlab.NonStandardQuotes
|
||||
#
|
||||
# Use only standard single and double quotes, not left or right quotes.
|
||||
#
|
||||
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||
extends: existence
|
||||
message: 'Use standard single quotes or double quotes only. Do not use left or right quotes.'
|
||||
level: warning
|
||||
ignorecase: true
|
||||
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html
|
||||
scope: raw
|
||||
raw:
|
||||
- '[‘’“”]'
|
|
@ -5,11 +5,9 @@
|
|||
#
|
||||
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||
extends: existence
|
||||
message: 'Rewrite "%s" to not use "’s".'
|
||||
message: "Rewrite '%s' to not use 's."
|
||||
level: error
|
||||
ignorecase: true
|
||||
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#trademark
|
||||
tokens:
|
||||
- GitLab's # Straight apostrophe.
|
||||
- GitLab’s # Curly closing apostrophe.
|
||||
- GitLab‘s # Curly opening apostrophe.
|
||||
- GitLab's
|
||||
|
|
|
@ -154,7 +154,7 @@ The following are PostgreSQL upgrade validation tests we performed.
|
|||
- Follow up issues:
|
||||
- [`replicate-geo-database` incorrectly tries to back up repositories](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/5241).
|
||||
- [`pg-upgrade` fails to upgrade a standalone Geo tracking database](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/5242).
|
||||
- [`revert-pg-upgrade` fails to downgrade the PostgreSQL data of a Geo secondary’s standalone tracking database](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/5243).
|
||||
- [`revert-pg-upgrade` fails to downgrade the PostgreSQL data of a Geo secondary's standalone tracking database](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/5243).
|
||||
- [Timeout error on Geo secondary read-replica near the end of `gitlab-ctl pg-upgrade`](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/5235).
|
||||
|
||||
[Verify Geo installation with PostgreSQL 11](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/4971):
|
||||
|
|
|
@ -81,7 +81,7 @@ from [owasp.org](https://owasp.org/).
|
|||
considered an administrator with super-user privileges.
|
||||
- See also: [more granular access control](https://gitlab.com/gitlab-org/gitlab/-/issues/18242)
|
||||
(not Geo-specific).
|
||||
- Much of Geo’s integration (database replication, for instance) must be
|
||||
- Much of Geo's integration (database replication, for instance) must be
|
||||
configured with the application, typically by system administrators.
|
||||
|
||||
### What administrative capabilities does the application offer?
|
||||
|
@ -223,7 +223,7 @@ from [owasp.org](https://owasp.org/).
|
|||
|
||||
### What data input validation requirements have been defined?
|
||||
|
||||
- **Secondary** nodes must have a faithful replication of the **primary** node’s data.
|
||||
- **Secondary** nodes must have a faithful replication of the **primary** node's data.
|
||||
|
||||
### What data does the application store and how?
|
||||
|
||||
|
@ -235,7 +235,7 @@ from [owasp.org](https://owasp.org/).
|
|||
rest. A subset of database columns are encrypted at rest using the `db_otp_key`.
|
||||
- A static secret shared across all hosts in a GitLab deployment.
|
||||
- In transit, data should be encrypted, although the application does permit
|
||||
communication to proceed unencrypted. The two main transits are the **secondary** node’s
|
||||
communication to proceed unencrypted. The two main transits are the **secondary** node's
|
||||
replication process for PostgreSQL, and for Git repositories/files. Both should
|
||||
be protected using TLS, with the keys for that managed via Omnibus per existing
|
||||
configuration for end-user access to GitLab.
|
||||
|
|
|
@ -838,7 +838,7 @@ addition to the GitLab nodes. Some requests handled by
|
|||
process. `gitaly-ruby` uses the Gitaly address set in the GitLab server's
|
||||
`git_data_dirs` setting to make this connection.
|
||||
|
||||
We hope that if you’re managing fault-tolerant systems like GitLab, you have a load balancer
|
||||
We hope that if you're managing fault-tolerant systems like GitLab, you have a load balancer
|
||||
of choice already. Some examples include [HAProxy](https://www.haproxy.org/)
|
||||
(open-source), [Google Internal Load Balancer](https://cloud.google.com/load-balancing/docs/internal/),
|
||||
[AWS Elastic Load Balancer](https://aws.amazon.com/elasticloadbalancing/), F5
|
||||
|
|
|
@ -105,7 +105,7 @@ Limit the maximum daily member invitations allowed per group hierarchy.
|
|||
|
||||
## Gitaly concurrency limit
|
||||
|
||||
Clone traffic can put a large strain on your Gitaly service. To prevent such workloads from overwhelming your Gitaly server, you can set concurrency limits in Gitaly’s configuration file.
|
||||
Clone traffic can put a large strain on your Gitaly service. To prevent such workloads from overwhelming your Gitaly server, you can set concurrency limits in Gitaly's configuration file.
|
||||
|
||||
Read more on [Gitaly concurrency limits](gitaly/configure_gitaly.md#limit-rpc-concurrency).
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ You can add custom metrics in the self monitoring project by:
|
|||
|
||||
## Troubleshooting
|
||||
|
||||
### Getting error message in logs: `Could not create instance administrators group. Errors: ["You don’t have permission to create groups."]`
|
||||
### Getting error message in logs: `Could not create instance administrators group. Errors: ["You don't have permission to create groups."]`
|
||||
|
||||
There is [a bug](https://gitlab.com/gitlab-org/gitlab/-/issues/208676) which causes
|
||||
project creation to fail with the following error (which appears in the log file)
|
||||
|
@ -98,7 +98,7 @@ when the first administrator user is an
|
|||
[external user](../../../user/permissions.md#external-users):
|
||||
|
||||
```plaintext
|
||||
Could not create instance administrators group. Errors: ["You don’t have permission to create groups."]
|
||||
Could not create instance administrators group. Errors: ["You don't have permission to create groups."]
|
||||
```
|
||||
|
||||
Run the following in a Rails console to check if the first administrator user is an external user:
|
||||
|
|
|
@ -25,5 +25,5 @@ Explore our features to monitor your GitLab instance:
|
|||
- [`nginx_status`](https://docs.gitlab.com/omnibus/settings/nginx.html#enablingdisabling-nginx_status):
|
||||
Monitor your NGINX server status.
|
||||
- [Auto Monitoring](../../topics/autodevops/stages.md#auto-monitoring): Automated
|
||||
monitoring for your application’s server and response metrics, provided by
|
||||
monitoring for your application's server and response metrics, provided by
|
||||
[Auto DevOps](../../topics/autodevops/index.md).
|
||||
|
|
|
@ -180,7 +180,7 @@ outside world.
|
|||
pages_nginx['redirect_http_to_https'] = true
|
||||
```
|
||||
|
||||
1. If you haven’t named your certificate and key `example.io.crt` and `example.io.key`
|
||||
1. If you haven't named your certificate and key `example.io.crt` and `example.io.key`
|
||||
then you'll need to also add the full paths as shown below:
|
||||
|
||||
```ruby
|
||||
|
|
|
@ -7,7 +7,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# Redis replication and failover providing your own instance **(FREE SELF)**
|
||||
|
||||
If you’re hosting GitLab on a cloud provider, you can optionally use a managed
|
||||
If you're hosting GitLab on a cloud provider, you can optionally use a managed
|
||||
service for Redis. For example, AWS offers ElastiCache that runs Redis.
|
||||
|
||||
Alternatively, you may opt to manage your own Redis instance separate from the
|
||||
|
|
|
@ -12,7 +12,7 @@ This page details the recommended Reference Architectures that were built and
|
|||
verified by the GitLab Quality and Support teams.
|
||||
|
||||
Below is a chart representing each architecture tier and the number of users
|
||||
they can handle. As your number of users grow with time, it’s recommended that
|
||||
they can handle. As your number of users grow with time, it's recommended that
|
||||
you scale GitLab accordingly.
|
||||
|
||||
![Reference Architectures](img/reference-architectures.png)
|
||||
|
|
|
@ -7,7 +7,7 @@ type: reference
|
|||
|
||||
# Troubleshooting Group SAML and SCIM **(PREMIUM SAAS)**
|
||||
|
||||
These are notes and screenshots regarding Group SAML and SCIM that the GitLab Support Team sometimes uses while troubleshooting, but which do not fit into the official documentation. GitLab is making this public, so that anyone can make use of the Support team’s collected knowledge.
|
||||
These are notes and screenshots regarding Group SAML and SCIM that the GitLab Support Team sometimes uses while troubleshooting, but which do not fit into the official documentation. GitLab is making this public, so that anyone can make use of the Support team's collected knowledge.
|
||||
|
||||
Please refer to the GitLab [Group SAML](../../user/group/saml_sso/index.md) docs for information on the feature and how to set it up.
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ This section is for links to information elsewhere in the GitLab documentation.
|
|||
|
||||
Command exceeded allowed execution time
|
||||
|
||||
PANIC: could not write to file ‘pg_xlog/xlogtemp.123’: No space left on device
|
||||
PANIC: could not write to file 'pg_xlog/xlogtemp.123': No space left on device
|
||||
```
|
||||
|
||||
- [Checking Geo configuration](../geo/replication/troubleshooting.md), including:
|
||||
|
|
|
@ -347,7 +347,7 @@ Gitlab::SidekiqDaemon::Monitor.cancel_job('job-id')
|
|||
> environment variable.
|
||||
|
||||
To perform of the interrupt we use `Thread.raise` which
|
||||
has number of drawbacks, as mentioned in [Why Ruby’s Timeout is dangerous (and Thread.raise is terrifying)](https://jvns.ca/blog/2015/11/27/why-rubys-timeout-is-dangerous-and-thread-dot-raise-is-terrifying/):
|
||||
has number of drawbacks, as mentioned in [Why Ruby's Timeout is dangerous (and Thread.raise is terrifying)](https://jvns.ca/blog/2015/11/27/why-rubys-timeout-is-dangerous-and-thread-dot-raise-is-terrifying/):
|
||||
|
||||
> This is where the implications get interesting, and terrifying. This means that an exception can get raised:
|
||||
>
|
||||
|
@ -357,4 +357,4 @@ has number of drawbacks, as mentioned in [Why Ruby’s Timeout is dangerous (and
|
|||
> - while creating an object to save to the database afterwards
|
||||
> - in any of your code, regardless of whether it could have possibly raised an exception before
|
||||
>
|
||||
> Nobody writes code to defend against an exception being raised on literally any line. That’s not even possible. So Thread.raise is basically like a sneak attack on your code that could result in almost anything. It would probably be okay if it were pure-functional code that did not modify any state. But this is Ruby, so that’s unlikely :)
|
||||
> Nobody writes code to defend against an exception being raised on literally any line. That's not even possible. So Thread.raise is basically like a sneak attack on your code that could result in almost anything. It would probably be okay if it were pure-functional code that did not modify any state. But this is Ruby, so that's unlikely :)
|
||||
|
|
|
@ -8121,11 +8121,11 @@ The dismissal reason of the Vulnerability.
|
|||
|
||||
| Value | Description |
|
||||
| ----- | ----------- |
|
||||
| `ACCEPTABLE_RISK` | The likelihood of the Vulnerability occurring and its impact are deemed acceptable |
|
||||
| `FALSE_POSITIVE` | The Vulnerability was incorrectly identified as being present |
|
||||
| `MITIGATING_CONTROL` | There is a mitigating control that eliminates the Vulnerability or makes its risk acceptable |
|
||||
| `NOT_APPLICABLE` | Other reasons for dismissal |
|
||||
| `USED_IN_TESTS` | The Vulnerability is used in tests and does not pose an actual risk |
|
||||
| `ACCEPTABLE_RISK` | The vulnerability is known, and has not been remediated or mitigated, but is considered to be an acceptable business risk. |
|
||||
| `FALSE_POSITIVE` | An error in reporting in which a test result incorrectly indicates the presence of a vulnerability in a system when the vulnerability is not present. |
|
||||
| `MITIGATING_CONTROL` | A management, operational, or technical control (that is, safeguard or countermeasure) employed by an organization that provides equivalent or comparable protection for an information system. |
|
||||
| `NOT_APPLICABLE` | The vulnerability is known, and has not been remediated or mitigated, but is considered to be in a part of the application that will not be updated. |
|
||||
| `USED_IN_TESTS` | The finding is not a vulnerability because it is part of a test or is test data. |
|
||||
|
||||
### `VulnerabilityExternalIssueLinkExternalTracker`
|
||||
|
||||
|
|
|
@ -227,12 +227,12 @@ listed in the descriptions of the relevant settings.
|
|||
| `authorized_keys_enabled` | boolean | no | By default, we write to the `authorized_keys` file to support Git over SSH without additional configuration. GitLab can be optimized to authenticate SSH keys via the database file. Only disable this if you have configured your OpenSSH server to use the AuthorizedKeysCommand. |
|
||||
| `auto_devops_domain` | string | no | Specify a domain to use by default for every project's Auto Review Apps and Auto Deploy stages. |
|
||||
| `auto_devops_enabled` | boolean | no | Enable Auto DevOps for projects by default. It automatically builds, tests, and deploys applications based on a predefined CI/CD configuration. |
|
||||
| `automatic_purchased_storage_allocation` | boolean | no | Enabling this permits automatic allocation of purchased storage within a namespace. |
|
||||
| `automatic_purchased_storage_allocation` | boolean | no | Enabling this permits automatic allocation of purchased storage in a namespace. |
|
||||
| `check_namespace_plan` | boolean | no | **(PREMIUM)** Enabling this makes only licensed EE features available to projects if the project namespace's plan includes the feature or if the project is public. |
|
||||
| `commit_email_hostname` | string | no | Custom hostname (for private commit emails). |
|
||||
| `container_registry_token_expire_delay` | integer | no | Container Registry token duration in minutes. |
|
||||
| `default_artifacts_expire_in` | string | no | Set the default expiration time for each job's artifacts. |
|
||||
| `default_branch_protection` | integer | no | Determine if developers can push to master. Can take: `0` _(not protected, both developers and maintainers can push new commits, force push, or delete the branch)_, `1` _(partially protected, developers and maintainers can push new commits, but cannot force push, or delete, the branch)_ or `2` _(fully protected, developers cannot push new commits, but maintainers can; no-one can force push or delete the branch)_ as a parameter. Default is `2`. |
|
||||
| `default_branch_protection` | integer | no | Determine if developers can push to the default branch. Can take: `0` _(not protected, both developers and maintainers can push new commits, force push, or delete the branch)_, `1` _(partially protected, developers and maintainers can push new commits, but cannot force push, or delete, the branch)_ or `2` _(fully protected, developers cannot push new commits, but maintainers can; no-one can force push or delete the branch)_ as a parameter. Default is `2`. |
|
||||
| `default_ci_config_path` | string | no | Default CI configuration path for new projects (`.gitlab-ci.yml` if not set). |
|
||||
| `default_group_visibility` | string | no | What visibility level new groups receive. Can take `private`, `internal` and `public` as a parameter. Default is `private`. |
|
||||
| `default_project_creation` | integer | no | Default project creation protection. Can take: `0` _(No one)_, `1` _(Maintainers)_ or `2` _(Developers + Maintainers)_|
|
||||
|
@ -291,12 +291,12 @@ listed in the descriptions of the relevant settings.
|
|||
| `grafana_enabled` | boolean | no | Enable Grafana. |
|
||||
| `grafana_url` | string | no | Grafana URL. |
|
||||
| `gravatar_enabled` | boolean | no | Enable Gravatar. |
|
||||
| `hashed_storage_enabled` | boolean | no | Create new projects using hashed storage paths: Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents repositories from having to be moved or renamed when the Project URL changes and may improve disk I/O performance. (Always enabled since 13.0, configuration is scheduled for removal in 14.0) |
|
||||
| `hashed_storage_enabled` | boolean | no | Create new projects using hashed storage paths: Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents repositories from having to be moved or renamed when the Project URL changes and may improve disk I/O performance. (Always enabled in GitLab versions 13.0 and later, configuration is scheduled for removal in 14.0) |
|
||||
| `help_page_hide_commercial_content` | boolean | no | Hide marketing-related entries from help. |
|
||||
| `help_page_support_url` | string | no | Alternate support URL for help page and help dropdown. |
|
||||
| `help_page_text` | string | no | Custom text displayed on the help page. |
|
||||
| `help_text` | string | no | **(PREMIUM)** GitLab server administrator information |
|
||||
| `hide_third_party_offers` | boolean | no | Do not display offers from third parties within GitLab. |
|
||||
| `hide_third_party_offers` | boolean | no | Do not display offers from third parties in GitLab. |
|
||||
| `home_page_url` | string | no | Redirect to this URL when not logged in. |
|
||||
| `housekeeping_bitmaps_enabled` | boolean | required by: `housekeeping_enabled` | Enable Git pack file bitmap creation. |
|
||||
| `housekeeping_enabled` | boolean | no | (**If enabled, requires:** `housekeeping_bitmaps_enabled`, `housekeeping_full_repack_period`, `housekeeping_gc_period`, and `housekeeping_incremental_repack_period`) Enable or disable Git housekeeping. |
|
||||
|
@ -305,7 +305,7 @@ listed in the descriptions of the relevant settings.
|
|||
| `housekeeping_incremental_repack_period` | integer | required by: `housekeeping_enabled` | Number of Git pushes after which an incremental `git repack` is run. |
|
||||
| `html_emails_enabled` | boolean | no | Enable HTML emails. |
|
||||
| `import_sources` | array of strings | no | Sources to allow project import from, possible values: `github`, `bitbucket`, `bitbucket_server`, `gitlab`, `fogbugz`, `git`, `gitlab_project`, `gitea`, `manifest`, and `phabricator`. |
|
||||
| `in_product_marketing_emails_enabled` | boolean | no | Enable in-product marketing emails. Enabled by default. |
|
||||
| `in_product_marketing_emails_enabled` | boolean | no | Enable [in-product marketing emails](../user/profile/notifications.md#global-notification-settings). Enabled by default. |
|
||||
| `invisible_captcha_enabled` | boolean | no | <!-- vale gitlab.Spelling = NO --> Enable Invisible Captcha <!-- vale gitlab.Spelling = YES --> spam detection during sign-up. Disabled by default. |
|
||||
| `issues_create_limit` | integer | no | Max number of issue creation requests per minute per user. Disabled by default.|
|
||||
| `keep_latest_artifact` | boolean | no | Prevent the deletion of the artifacts from the most recent successful jobs, regardless of the expiry time. Enabled by default. |
|
||||
|
@ -318,7 +318,7 @@ listed in the descriptions of the relevant settings.
|
|||
| `max_pages_size` | integer | no | Maximum size of pages repositories in MB |
|
||||
| `max_personal_access_token_lifetime` | integer | no | **(ULTIMATE SELF)** Maximum allowable lifetime for personal access tokens in days |
|
||||
| `metrics_method_call_threshold` | integer | no | A method call is only tracked when it takes longer than the given amount of milliseconds. |
|
||||
| `mirror_available` | boolean | no | Allow repository mirroring to configured by project Maintainers. If disabled, only Admins can configure repository mirroring. |
|
||||
| `mirror_available` | boolean | no | Allow repository mirroring to configured by project Maintainers. If disabled, only Administrators can configure repository mirroring. |
|
||||
| `mirror_capacity_threshold` | integer | no | **(PREMIUM)** Minimum capacity to be available before scheduling more mirrors preemptively |
|
||||
| `mirror_max_capacity` | integer | no | **(PREMIUM)** Maximum number of mirrors that can be synchronizing at the same time. |
|
||||
| `mirror_max_delay` | integer | no | **(PREMIUM)** Maximum time (in minutes) between updates that a mirror can have when scheduled to synchronize. |
|
||||
|
@ -352,7 +352,7 @@ listed in the descriptions of the relevant settings.
|
|||
| `repository_storages` | array of strings | no | (GitLab 13.0 and earlier) List of names of enabled storage paths, taken from `gitlab.yml`. New projects are created in one of these stores, chosen at random. |
|
||||
| `require_admin_approval_after_user_signup` | boolean | no | When enabled, any user that signs up for an account using the registration form is placed under a **Pending approval** state and has to be explicitly [approved](../user/admin_area/approving_users.md) by an administrator. |
|
||||
| `require_two_factor_authentication` | boolean | no | (**If enabled, requires:** `two_factor_grace_period`) Require all users to set up Two-factor authentication. |
|
||||
| `restricted_visibility_levels` | array of strings | no | Selected levels cannot be used by non-admin users for groups, projects or snippets. Can take `private`, `internal` and `public` as a parameter. Default is `null` which means there is no restriction. |
|
||||
| `restricted_visibility_levels` | array of strings | no | Selected levels cannot be used by non-Administrator users for groups, projects or snippets. Can take `private`, `internal` and `public` as a parameter. Default is `null` which means there is no restriction. |
|
||||
| `rsa_key_restriction` | integer | no | The minimum allowed bit length of an uploaded RSA key. Default is `0` (no restriction). `-1` disables RSA keys. |
|
||||
| `send_user_confirmation_email` | boolean | no | Send confirmation email on sign-up. |
|
||||
| `session_expire_delay` | integer | no | Session duration in minutes. GitLab restart is required to apply changes |
|
||||
|
|
|
@ -12,7 +12,7 @@ description: 'Container Registry metadata database'
|
|||
|
||||
With the [Container Registry](https://gitlab.com/gitlab-org/container-registry) integrated into GitLab, every GitLab project can have its own space to store its Docker images. You can use the registry to build, push and share images using the Docker client, CI/CD or the GitLab API.
|
||||
|
||||
Each day on GitLab.com, between [150k and 200k images are pushed to the registry](https://app.periscopedata.com/app/gitlab/527857/Package-GitLab.com-Stage-Activity-Dashboard?widget=9620193&udv=0), generating about [700k API events](https://app.periscopedata.com/app/gitlab/527857/Package-GitLab.com-Stage-Activity-Dashboard?widget=7601761&udv=0). It’s also worth noting that although some customers use other registry vendors, [more than 96% of instances](https://app.periscopedata.com/app/gitlab/527857/Package-GitLab.com-Stage-Activity-Dashboard?widget=9832282&udv=0) are using the GitLab Container Registry.
|
||||
Each day on GitLab.com, between [150k and 200k images are pushed to the registry](https://app.periscopedata.com/app/gitlab/527857/Package-GitLab.com-Stage-Activity-Dashboard?widget=9620193&udv=0), generating about [700k API events](https://app.periscopedata.com/app/gitlab/527857/Package-GitLab.com-Stage-Activity-Dashboard?widget=7601761&udv=0). It's also worth noting that although some customers use other registry vendors, [more than 96% of instances](https://app.periscopedata.com/app/gitlab/527857/Package-GitLab.com-Stage-Activity-Dashboard?widget=9832282&udv=0) are using the GitLab Container Registry.
|
||||
|
||||
For GitLab.com and for GitLab customers, the Container Registry is a critical component to building and deploying software.
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ from development to staging, and then to production (or
|
|||
through any series of custom environment flows you can set up).
|
||||
With an at-a-glance view of multiple projects, you can instantly
|
||||
see which pipelines are green and which are red allowing you to
|
||||
diagnose if there is a block at a particular point, or if there’s
|
||||
diagnose if there is a block at a particular point, or if there's
|
||||
a more systemic problem you need to investigate.
|
||||
|
||||
You can access the dashboard from the top bar by clicking
|
||||
|
|
|
@ -166,7 +166,7 @@ For examples of others who have implemented GitLab CI/CD, see:
|
|||
|
||||
To see how you can integrate GitLab CI/CD with third-party systems, see:
|
||||
|
||||
- [Streamline and shorten error remediation with Sentry’s new GitLab integration](https://about.gitlab.com/blog/2019/01/25/sentry-integration-blog-post/)
|
||||
- [Streamline and shorten error remediation with Sentry's new GitLab integration](https://about.gitlab.com/blog/2019/01/25/sentry-integration-blog-post/)
|
||||
- [How to simplify your smart home configuration with GitLab CI/CD](https://about.gitlab.com/blog/2018/08/02/using-the-gitlab-ci-slash-cd-for-smart-home-configuration-management/)
|
||||
- [Demo: GitLab + Jira + Jenkins](https://about.gitlab.com/blog/2018/07/30/gitlab-workflow-with-jira-jenkins/)
|
||||
- [Introducing Auto Breakfast from GitLab (sort of)](https://about.gitlab.com/blog/2018/06/29/introducing-auto-breakfast-from-gitlab/)
|
||||
|
|
|
@ -2614,7 +2614,7 @@ the GitLab UI to run.
|
|||
|
||||
Also in the example, `GIT_STRATEGY` is set to `none`. If the
|
||||
`stop_review_app` job is [automatically triggered](../environments/index.md#stopping-an-environment),
|
||||
the runner won’t try to check out the code after the branch is deleted.
|
||||
the runner won't try to check out the code after the branch is deleted.
|
||||
|
||||
The example also overwrites global variables. If your `stop` `environment` job depends
|
||||
on global variables, use [anchor variables](#yaml-anchors-for-variables) when you set the `GIT_STRATEGY`
|
||||
|
@ -4197,7 +4197,7 @@ job:
|
|||
|
||||
#### `release:ref`
|
||||
|
||||
If the `release: tag_name` doesn’t exist yet, the release is created from `ref`.
|
||||
If the `release: tag_name` doesn't exist yet, the release is created from `ref`.
|
||||
`ref` can be a commit SHA, another tag name, or a branch name.
|
||||
|
||||
#### `release:milestones`
|
||||
|
|
|
@ -319,7 +319,7 @@ You can also use `workflow::ready for review` label. That means that your merge
|
|||
When your merge request receives an approval from the first reviewer it can be passed to a maintainer. You should default to choosing a maintainer with [domain expertise](#domain-experts), and otherwise follow the Reviewer Roulette recommendation or use the label `ready for merge`.
|
||||
|
||||
Sometimes, a maintainer may not be available for review. They could be out of the office or [at capacity](#review-response-slo).
|
||||
You can and should check the maintainer’s availability in their profile. If the maintainer recommended by
|
||||
You can and should check the maintainer's availability in their profile. If the maintainer recommended by
|
||||
the roulette is not available, choose someone else from that list.
|
||||
|
||||
It is responsibility of the author of a merge request that the merge request is reviewed. If it stays in `ready for review` state too long it is recommended to assign it to a specific reviewer.
|
||||
|
|
|
@ -149,7 +149,7 @@ Keep the following in mind when submitting merge requests:
|
|||
- [Documentation](../documentation/styleguide/index.md) style guide.
|
||||
- [Code style guides](style_guides.md).
|
||||
- Sometimes style guides will be followed but the code will lack structural integrity, or the
|
||||
reviewer will have reservations about the code’s overall quality. When there is a reservation,
|
||||
reviewer will have reservations about the code's overall quality. When there is a reservation,
|
||||
the reviewer will inform the author and provide some guidance.
|
||||
- Though GitLab generally allows anyone to indicate
|
||||
[approval](../../user/project/merge_requests/merge_request_approvals.md) of merge requests, the
|
||||
|
|
|
@ -231,7 +231,7 @@ for its search function. This is how it works:
|
|||
|
||||
### Algolia notes for GitLab team members
|
||||
|
||||
If you’re a GitLab team member, find credentials for the Algolia dashboard
|
||||
If you're a GitLab team member, find credentials for the Algolia dashboard
|
||||
in the shared [GitLab 1Password account](https://about.gitlab.com/handbook/security/#1password-for-teams).
|
||||
To receive weekly reports of the search usage, search the Google doc with
|
||||
title `Email, Slack, and GitLab Groups and Aliases`, search for `docsearch`,
|
||||
|
|
|
@ -52,9 +52,9 @@ A concept should answer the questions:
|
|||
- What is this?
|
||||
- Why would I use it?
|
||||
|
||||
Think of everything someone might want to know if they’ve never heard of this topic before.
|
||||
Think of everything someone might want to know if they've never heard of this topic before.
|
||||
|
||||
Don’t tell them **how** to do this thing. Tell them **what it is**.
|
||||
Don't tell them **how** to do this thing. Tell them **what it is**.
|
||||
|
||||
If you start describing another topic, start a new concept and link to it.
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ so when in doubt don't use `aria-*`, `role`, and `tabindex`, and stick with sema
|
|||
To provide markup with accessible names, ensure every:
|
||||
|
||||
- `input` has an associated `label`.
|
||||
- `button` and `a` have child text, or `aria-label` when text isn’t present.
|
||||
- `button` and `a` have child text, or `aria-label` when text isn't present.
|
||||
For example, an icon button with no visible text.
|
||||
- `img` has an `alt` attribute.
|
||||
- `fieldset` has `legend` as its first child.
|
||||
|
|
|
@ -26,7 +26,7 @@ production assets post-compile.
|
|||
|
||||
We use the [Renovate GitLab Bot](https://gitlab.com/gitlab-org/frontend/renovate-gitlab-bot) to
|
||||
automatically create merge requests for updating dependencies of several projects.
|
||||
You can find the up-to-date list of projects managed by the renovate bot in the project’s README.
|
||||
You can find the up-to-date list of projects managed by the renovate bot in the project's README.
|
||||
|
||||
Some key dependencies updated using renovate are:
|
||||
|
||||
|
|
|
@ -104,7 +104,7 @@ by the examples that follow:
|
|||
|
||||
**Example 1:**
|
||||
|
||||
The following HAML expression generates a loading icon’s markup and
|
||||
The following HAML expression generates a loading icon's markup and
|
||||
centers the icon by wrapping it in a `gl-spinner-container` element.
|
||||
|
||||
```haml
|
||||
|
@ -121,7 +121,7 @@ centers the icon by wrapping it in a `gl-spinner-container` element.
|
|||
|
||||
**Example 2:**
|
||||
|
||||
The following HAML expression generates a loading icon’s markup
|
||||
The following HAML expression generates a loading icon's markup
|
||||
with a custom size. It also appends a margin utility class.
|
||||
|
||||
```haml
|
||||
|
@ -137,7 +137,7 @@ with a custom size. It also appends a margin utility class.
|
|||
### Usage in Vue
|
||||
|
||||
The [GitLab UI](https://gitlab-org.gitlab.io/gitlab-ui/) components library provides a
|
||||
`GlLoadingIcon` component. See the component’s
|
||||
`GlLoadingIcon` component. See the component's
|
||||
[storybook](https://gitlab-org.gitlab.io/gitlab-ui/?path=/story/base-loading-icon--default)
|
||||
for more information about its usage.
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ across the GitLab frontend team.
|
|||
|
||||
## Overview
|
||||
|
||||
GitLab is built on top of [Ruby on Rails](https://rubyonrails.org). It uses [Haml](https://haml.info/) and a JavaScript0based frontend with [Vue.js](https://vuejs.org).
|
||||
GitLab is built on top of [Ruby on Rails](https://rubyonrails.org). It uses [Haml](https://haml.info/) and a JavaScript-based frontend with [Vue.js](https://vuejs.org).
|
||||
<!-- vale gitlab.Spelling = NO -->
|
||||
Be wary of [the limitations that come with using Hamlit](https://github.com/k0kubun/hamlit/blob/master/REFERENCE.md#limitations).
|
||||
<!-- vale gitlab.Spelling = YES -->
|
||||
|
|
|
@ -35,7 +35,7 @@ performance.getEntriesByName('my-component-start')
|
|||
- The start of navigation and a mark
|
||||
- The start of navigation and the moment the measurement is taken
|
||||
|
||||
It takes several arguments of which the measurement’s name is the only one required. Examples:
|
||||
It takes several arguments of which the measurement's name is the only one required. Examples:
|
||||
|
||||
- Duration between the start and end marks:
|
||||
|
||||
|
@ -185,16 +185,16 @@ To access stored measurements, you can use either:
|
|||
### Naming convention
|
||||
|
||||
All the marks and measures should be instantiated with the constants from
|
||||
`app/assets/javascripts/performance/constants.js`. When you’re ready to add a new mark’s or
|
||||
measurement’s label, you can follow the pattern.
|
||||
`app/assets/javascripts/performance/constants.js`. When you're ready to add a new mark's or
|
||||
measurement's label, you can follow the pattern.
|
||||
|
||||
NOTE:
|
||||
This pattern is a recommendation and not a hard rule.
|
||||
|
||||
```javascript
|
||||
app-*-start // for a start ‘mark’
|
||||
app-*-end // for an end ‘mark’
|
||||
app-* // for ‘measure’
|
||||
app-*-start // for a start 'mark'
|
||||
app-*-end // for an end 'mark'
|
||||
app-* // for 'measure'
|
||||
```
|
||||
|
||||
For example, `'webide-init-editor-start`, `mr-diffs-mark-file-tree-end`, and so on. We do it to
|
||||
|
|
|
@ -18,4 +18,4 @@ There are multiple ways of writing code to accomplish the same results. We shoul
|
|||
|
||||
## Improve code [iteratively](https://about.gitlab.com/handbook/values/#iteration)
|
||||
|
||||
Whenever you see existing code that does not follow our current style guide, update it proactively. You don’t need to fix everything, but each merge request should iteratively improve our codebase, and reduce technical debt where possible.
|
||||
Whenever you see existing code that does not follow our current style guide, update it proactively. You don't need to fix everything, but each merge request should iteratively improve our codebase, and reduce technical debt where possible.
|
||||
|
|
|
@ -8,7 +8,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
## Resources
|
||||
|
||||
[Mozilla’s HTTP Observatory CLI](https://github.com/mozilla/http-observatory-cli) and
|
||||
[Mozilla's HTTP Observatory CLI](https://github.com/mozilla/http-observatory-cli) and
|
||||
[Qualys SSL Labs Server Test](https://www.ssllabs.com/ssltest/analyze.html) are good resources for finding
|
||||
potential problems and ensuring compliance with security best practices.
|
||||
|
||||
|
@ -41,7 +41,7 @@ Security Policy headers in the GitLab Rails app.
|
|||
Some resources on implementing Content Security Policy:
|
||||
|
||||
- [MDN Article on CSP](https://developer.mozilla.org/en-US/docs/Web/Security/CSP)
|
||||
- [GitHub’s CSP Journey on the GitHub Engineering Blog](http://githubengineering.com/githubs-csp-journey/)
|
||||
- [GitHub's CSP Journey on the GitHub Engineering Blog](http://githubengineering.com/githubs-csp-journey/)
|
||||
- The Dropbox Engineering Blog's series on CSP: [1](https://blogs.dropbox.com/tech/2015/09/on-csp-reporting-and-filtering/), [2](https://blogs.dropbox.com/tech/2015/09/unsafe-inline-and-nonce-deployment/), [3](https://blogs.dropbox.com/tech/2015/09/csp-the-unexpected-eval/), [4](https://blogs.dropbox.com/tech/2015/09/csp-third-party-integrations-and-privilege-separation/)
|
||||
|
||||
### Subresource Integrity (SRI)
|
||||
|
|
|
@ -322,7 +322,7 @@ A few things to keep in mind when adding context:
|
|||
- [Go 1.13 errors](https://blog.golang.org/go1.13-errors).
|
||||
- [Programing with
|
||||
errors](https://peter.bourgon.org/blog/2019/09/11/programming-with-errors.html).
|
||||
- [Don’t just check errors, handle them
|
||||
- [Don't just check errors, handle them
|
||||
gracefully](https://dave.cheney.net/2016/04/27/dont-just-check-errors-handle-them-gracefully).
|
||||
|
||||
## CLIs
|
||||
|
|
|
@ -106,7 +106,7 @@ and complete an integration with the Secure stage.
|
|||
1. Demo the integration to GitLab:
|
||||
- After you have tested and are ready to demo your integration please
|
||||
[reach out](https://about.gitlab.com/partners/integrate/) to us. If you
|
||||
skip this step you won’t be able to do supported marketing.
|
||||
skip this step you won't be able to do supported marketing.
|
||||
1. Begin doing supported marketing of your GitLab integration.
|
||||
- Work with our [partner team](https://about.gitlab.com/partners/integrate/)
|
||||
to support your go-to-market as appropriate.
|
||||
|
|
|
@ -153,7 +153,7 @@ and therefore it does not have any records yet.
|
|||
|
||||
When using a single-transaction migration, a transaction holds a database connection
|
||||
for the duration of the migration, so you must make sure the actions in the migration
|
||||
do not take too much time: GitLab.com’s production database has a `15s` timeout, so
|
||||
do not take too much time: GitLab.com's production database has a `15s` timeout, so
|
||||
in general, the cumulative execution time in a migration should aim to fit comfortably
|
||||
in that limit. Singular query timings should fit within the [standard limit](query_performance.md#timing-guidelines-for-queries)
|
||||
|
||||
|
|
|
@ -576,7 +576,7 @@ overwrites the Git configuration with the appropriate settings to fetch
|
|||
from the GitLab repository.
|
||||
|
||||
`CI_REPO_CACHE_CREDENTIALS` contains the Google Cloud service account
|
||||
JSON for uploading to the `gitlab-ci-git-repo-cache` bucket. (If you’re a
|
||||
JSON for uploading to the `gitlab-ci-git-repo-cache` bucket. (If you're a
|
||||
GitLab Team Member, find credentials in the
|
||||
[GitLab shared 1Password account](https://about.gitlab.com/handbook/security/#1password-for-teams).
|
||||
|
||||
|
|
|
@ -525,7 +525,7 @@ The [`StandardContext`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/g
|
|||
| `contexts` | **{dotted-circle}** | | |
|
||||
| `derived_contexts` | **{dotted-circle}** | | Contexts derived in the Enrich process |
|
||||
| `derived_tstamp` | **{dotted-circle}** | timestamp | Timestamp making allowance for inaccurate device clock |
|
||||
| `doc_charset` | **{dotted-circle}** | string | Web page’s character encoding |
|
||||
| `doc_charset` | **{dotted-circle}** | string | Web page's character encoding |
|
||||
| `doc_height` | **{dotted-circle}** | string | Web page height |
|
||||
| `doc_width` | **{dotted-circle}** | string | Web page width |
|
||||
| `domain_sessionid` | **{dotted-circle}** | string | Unique identifier (UUID) for this visit of this user_id to this domain |
|
||||
|
@ -554,10 +554,10 @@ The [`StandardContext`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/g
|
|||
| `geo_region_name` | **{dotted-circle}** | string | Region of IP origin |
|
||||
| `geo_timezone` | **{dotted-circle}** | string | Timezone of IP origin |
|
||||
| `geo_zipcode` | **{dotted-circle}** | string | Zip (postal) code of IP origin |
|
||||
| `ip_domain` | **{dotted-circle}** | string | Second level domain name associated with the visitor’s IP address |
|
||||
| `ip_isp` | **{dotted-circle}** | string | Visitor’s ISP |
|
||||
| `ip_netspeed` | **{dotted-circle}** | string | Visitor’s connection type |
|
||||
| `ip_organization` | **{dotted-circle}** | string | Organization associated with the visitor’s IP address – defaults to ISP name if none is found |
|
||||
| `ip_domain` | **{dotted-circle}** | string | Second level domain name associated with the visitor's IP address |
|
||||
| `ip_isp` | **{dotted-circle}** | string | Visitor's ISP |
|
||||
| `ip_netspeed` | **{dotted-circle}** | string | Visitor's connection type |
|
||||
| `ip_organization` | **{dotted-circle}** | string | Organization associated with the visitor's IP address – defaults to ISP name if none is found |
|
||||
| `mkt_campaign` | **{dotted-circle}** | string | The campaign ID |
|
||||
| `mkt_clickid` | **{dotted-circle}** | string | The click ID |
|
||||
| `mkt_content` | **{dotted-circle}** | string | The content or ID of the ad. |
|
||||
|
@ -566,7 +566,7 @@ The [`StandardContext`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/g
|
|||
| `mkt_source` | **{dotted-circle}** | string | The company / website where the traffic came from |
|
||||
| `mkt_term` | **{dotted-circle}** | string | Keywords associated with the referrer |
|
||||
| `name_tracker` | **{dotted-circle}** | string | The tracker namespace |
|
||||
| `network_userid` | **{dotted-circle}** | string | Unique identifier for a user, based on a cookie from the collector (so set at a network level and shouldn’t be set by a tracker) |
|
||||
| `network_userid` | **{dotted-circle}** | string | Unique identifier for a user, based on a cookie from the collector (so set at a network level and shouldn't be set by a tracker) |
|
||||
| `os_family` | **{dotted-circle}** | string | Operating system family |
|
||||
| `os_manufacturer` | **{dotted-circle}** | string | Manufacturers of operating system |
|
||||
| `os_name` | **{dotted-circle}** | string | Name of operating system |
|
||||
|
@ -598,7 +598,7 @@ The [`StandardContext`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/g
|
|||
| `refr_urlscheme` | **{dotted-circle}** | string | Referer scheme |
|
||||
| `se_action` | **{dotted-circle}** | string | The action / event itself |
|
||||
| `se_category` | **{dotted-circle}** | string | The category of event |
|
||||
| `se_label` | **{dotted-circle}** | string | A label often used to refer to the ‘object’ the action is performed on |
|
||||
| `se_label` | **{dotted-circle}** | string | A label often used to refer to the 'object' the action is performed on |
|
||||
| `se_property` | **{dotted-circle}** | string | A property associated with either the action or the object |
|
||||
| `se_value` | **{dotted-circle}** | decimal | A value associated with the user action |
|
||||
| `ti_category` | **{dotted-circle}** | string | Item category |
|
||||
|
|
|
@ -55,12 +55,12 @@ Including when that expanded content is:
|
|||
### Using assertions to detect transient bugs caused by unmet conditions
|
||||
|
||||
Transient bugs happen in the context of code that executes under the assumption
|
||||
that the application’s state meets one or more conditions. We may write a feature
|
||||
that the application's state meets one or more conditions. We may write a feature
|
||||
that assumes a server-side API response always include a group of attributes or that
|
||||
an operation only executes when the application has successfully transitioned to a new
|
||||
state.
|
||||
|
||||
Transient bugs are difficult to debug because there isn’t any mechanism that alerts
|
||||
Transient bugs are difficult to debug because there isn't any mechanism that alerts
|
||||
the user or the developer about unsatisfied conditions. These conditions are usually
|
||||
not expressed explicitly in the code. A useful debugging technique for such situations
|
||||
is placing assertions to make any assumption explicit. They can help detect the cause
|
||||
|
|
|
@ -7158,7 +7158,7 @@ Group: `group::product intelligence`
|
|||
|
||||
Status: `data_available`
|
||||
|
||||
Tiers: `free`
|
||||
Tiers: `free`, `premium`, `ultimate`
|
||||
|
||||
### `recording_ee_finished_at`
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ More links:
|
|||
## What is Usage Ping?
|
||||
|
||||
- GitLab sends a weekly payload containing usage data to GitLab Inc. Usage Ping provides high-level data to help our product, support, and sales teams. It does not send any project names, usernames, or any other specific data. The information from the usage ping is not anonymous, it is linked to the hostname of the instance. Sending usage ping is optional, and any instance can disable analytics.
|
||||
- The usage data is primarily composed of row counts for different tables in the instance’s database. By comparing these counts month over month (or week over week), we can get a rough sense for how an instance is using the different features in the product. In addition to counts, other facts
|
||||
- The usage data is primarily composed of row counts for different tables in the instance's database. By comparing these counts month over month (or week over week), we can get a rough sense for how an instance is using the different features in the product. In addition to counts, other facts
|
||||
that help us classify and understand GitLab installations are collected.
|
||||
- Usage ping is important to GitLab as we use it to calculate our Stage Monthly Active Users (SMAU) which helps us measure the success of our stages and features.
|
||||
- While usage ping is enabled, GitLab gathers data from the other instances and can show usage statistics of your instance to your users.
|
||||
|
@ -33,8 +33,8 @@ More links:
|
|||
### Why should we enable Usage Ping?
|
||||
|
||||
- The main purpose of Usage Ping is to build a better GitLab. Data about how GitLab is used is collected to better understand feature/stage adoption and usage, which helps us understand how GitLab is adding value and helps our team better understand the reasons why people use GitLab and with this knowledge we're able to make better product decisions.
|
||||
- As a benefit of having the usage ping active, GitLab lets you analyze the users’ activities over time of your GitLab installation.
|
||||
- As a benefit of having the usage ping active, GitLab provides you with The DevOps Report,which gives you an overview of your entire instance’s adoption of Concurrent DevOps from planning to monitoring.
|
||||
- As a benefit of having the usage ping active, GitLab lets you analyze the users' activities over time of your GitLab installation.
|
||||
- As a benefit of having the usage ping active, GitLab provides you with The DevOps Report,which gives you an overview of your entire instance's adoption of Concurrent DevOps from planning to monitoring.
|
||||
- You get better, more proactive support. (assuming that our TAMs and support organization used the data to deliver more value)
|
||||
- You get insight and advice into how to get the most value out of your investment in GitLab. Wouldn't you want to know that a number of features or values are not being adopted in your organization?
|
||||
- You get a report that illustrates how you compare against other similar organizations (anonymized), with specific advice and recommendations on how to improve your DevOps processes.
|
||||
|
@ -827,7 +827,7 @@ pry(main)> Gitlab::UsageData.count(User.active)
|
|||
Paste the SQL query into `#database-lab` to see how the query performs at scale.
|
||||
|
||||
- `#database-lab` is a Slack channel which uses a production-sized environment to test your queries.
|
||||
- GitLab.com’s production database has a 15 second timeout.
|
||||
- GitLab.com's production database has a 15 second timeout.
|
||||
- Any single query must stay below [1 second execution time](../query_performance.md#timing-guidelines-for-queries) with cold caches.
|
||||
- Add a specialized index on columns involved to reduce the execution time.
|
||||
|
||||
|
|
|
@ -33,9 +33,9 @@ The list below is not exhaustive, but contains many of the most commonly used co
|
|||
|--------------------------------|---------------------------------------------|
|
||||
| `cd NAME-OF-DIRECTORY` | Go into a directory to work in it |
|
||||
| `cd ..` | Go back one directory |
|
||||
| `ls` | List what’s in the current directory |
|
||||
| `ls a*` | List what’s in the current directory that starts with `a` |
|
||||
| `ls *.md` | List what’s in the current directory that ends with `.md` |
|
||||
| `ls` | List what's in the current directory |
|
||||
| `ls a*` | List what's in the current directory that starts with `a` |
|
||||
| `ls *.md` | List what's in the current directory that ends with `.md` |
|
||||
| `mkdir NAME-OF-YOUR-DIRECTORY` | Create a new directory |
|
||||
| `cat README.md` | Display the contents of a [text file you created previously](#create-a-text-file-in-the-current-directory) |
|
||||
| `pwd` | Show the current directory |
|
||||
|
|
|
@ -13,7 +13,7 @@ handle everything from small to very large projects with speed and efficiency. G
|
|||
on top of Git.
|
||||
|
||||
While GitLab has a powerful user interface from which you can do a great amount of Git operations
|
||||
directly in the browser, you’ll eventually need to use Git through the command line for advanced
|
||||
directly in the browser, you'll eventually need to use Git through the command line for advanced
|
||||
tasks.
|
||||
|
||||
For example, if you need to fix complex merge conflicts, rebase branches,
|
||||
|
@ -27,7 +27,7 @@ can download the GitLab [Git Cheat Sheet](https://about.gitlab.com/images/press/
|
|||
> For more information about the advantages of working with Git and GitLab:
|
||||
>
|
||||
> - <i class="fa fa-youtube-play youtube" aria-hidden="true"></i> Watch the [GitLab Source Code Management Walkthrough](https://www.youtube.com/watch?v=wTQ3aXJswtM) video.
|
||||
> - Learn how GitLab became the backbone of [Worldline](https://about.gitlab.com/customers/worldline/)’s development environment.
|
||||
> - Learn how GitLab became the backbone of [Worldline](https://about.gitlab.com/customers/worldline/)'s development environment.
|
||||
|
||||
NOTE:
|
||||
To help you visualize what you're doing locally, there are
|
||||
|
|
|
@ -413,7 +413,7 @@ If you do not want to maintain bastion hosts, you can set up [AWS Systems Manage
|
|||
1. Leave everything else as default and click **Add Storage**.
|
||||
1. For storage, we'll leave everything as default and only add an 8GB root volume. We won't store anything on this instance.
|
||||
1. Click **Add Tags** and on the next screen click **Add Tag**.
|
||||
1. We’ll only set `Key: Name` and `Value: Bastion Host A`.
|
||||
1. We'll only set `Key: Name` and `Value: Bastion Host A`.
|
||||
1. Click **Configure Security Group**.
|
||||
1. Select **Create a new security group**, enter a **Security group name** (we'll use `bastion-sec-group`), and add a description.
|
||||
1. We'll enable SSH access from anywhere (`0.0.0.0/0`). If you want stricter security, specify a single IP address or an IP address range in CIDR notation.
|
||||
|
@ -432,7 +432,7 @@ Confirm that you can SSH into the instance:
|
|||
|
||||
1. Create an EC2 instance following the same steps as above with the following changes:
|
||||
1. For the **Subnet**, select the second public subnet we created earlier (`gitlab-public-10.0.2.0`).
|
||||
1. Under the **Add Tags** section, we’ll set `Key: Name` and `Value: Bastion Host B` so that we can easily identify our two instances.
|
||||
1. Under the **Add Tags** section, we'll set `Key: Name` and `Value: Bastion Host B` so that we can easily identify our two instances.
|
||||
1. For the security group, select the existing `bastion-sec-group` we created above.
|
||||
|
||||
### Use SSH Agent Forwarding
|
||||
|
@ -456,10 +456,10 @@ From the EC2 dashboard:
|
|||
1. In the **Subnet** dropdown, select `gitlab-private-10.0.1.0` from the list of subnets we created earlier.
|
||||
1. Double check that **Auto-assign Public IP** is set to `Use subnet setting (Disable)`.
|
||||
1. Click **Add Storage**.
|
||||
1. The root volume is 8GiB by default and should be enough given that we won’t store any data there.
|
||||
1. The root volume is 8GiB by default and should be enough given that we won't store any data there.
|
||||
1. Click **Add Tags** and add any tags you may need. In our case, we'll only set `Key: Name` and `Value: GitLab`.
|
||||
1. Click **Configure Security Group**. Check **Select an existing security group** and select the `gitlab-loadbalancer-sec-group` we created earlier.
|
||||
1. Click **Review and launch** followed by **Launch** if you’re happy with your settings.
|
||||
1. Click **Review and launch** followed by **Launch** if you're happy with your settings.
|
||||
1. Finally, acknowledge that you have access to the selected private key file or create a new one. Click **Launch Instances**.
|
||||
|
||||
### Add custom configuration
|
||||
|
@ -683,7 +683,7 @@ From the EC2 dashboard:
|
|||
1. **Do not** check **Request Spot Instance**.
|
||||
1. From the **IAM Role** dropdown, pick the `GitLabAdmin` instance role we [created earlier](#create-an-iam-ec2-instance-role-and-profile).
|
||||
1. Leave the rest as defaults and click **Add Storage**.
|
||||
1. The root volume is 8GiB by default and should be enough given that we won’t store any data there. Click **Configure Security Group**.
|
||||
1. The root volume is 8GiB by default and should be enough given that we won't store any data there. Click **Configure Security Group**.
|
||||
1. Check **Select and existing security group** and select the `gitlab-loadbalancer-sec-group` we created earlier.
|
||||
1. Click **Review**, review your changes, and click **Create launch configuration**.
|
||||
1. Acknowledge that you have access to the private key or create a new one. Click **Create launch configuration**.
|
||||
|
|
|
@ -231,8 +231,8 @@ The following Elasticsearch settings are available:
|
|||
| `AWS Secret Access Key` | The AWS secret access key. |
|
||||
| `Maximum file size indexed` | See [the explanation in instance limits.](../administration/instance_limits.md#maximum-file-size-indexed). |
|
||||
| `Maximum field length` | See [the explanation in instance limits.](../administration/instance_limits.md#maximum-field-length). |
|
||||
| `Maximum bulk request size (MiB)` | The Maximum Bulk Request size is used by the GitLab Golang-based indexer processes and indicates how much data it ought to collect (and store in memory) in a given indexing process before submitting the payload to Elasticsearch’s Bulk API. This setting should be used with the Bulk request concurrency setting (see below) and needs to accommodate the resource constraints of both the Elasticsearch host(s) and the host(s) running the GitLab Golang-based indexer either from the `gitlab-rake` command or the Sidekiq tasks. |
|
||||
| `Bulk request concurrency` | The Bulk request concurrency indicates how many of the GitLab Golang-based indexer processes (or threads) can run in parallel to collect data to subsequently submit to Elasticsearch’s Bulk API. This increases indexing performance, but fills the Elasticsearch bulk requests queue faster. This setting should be used together with the Maximum bulk request size setting (see above) and needs to accommodate the resource constraints of both the Elasticsearch host(s) and the host(s) running the GitLab Golang-based indexer either from the `gitlab-rake` command or the Sidekiq tasks. |
|
||||
| `Maximum bulk request size (MiB)` | The Maximum Bulk Request size is used by the GitLab Golang-based indexer processes and indicates how much data it ought to collect (and store in memory) in a given indexing process before submitting the payload to Elasticsearch's Bulk API. This setting should be used with the Bulk request concurrency setting (see below) and needs to accommodate the resource constraints of both the Elasticsearch host(s) and the host(s) running the GitLab Golang-based indexer either from the `gitlab-rake` command or the Sidekiq tasks. |
|
||||
| `Bulk request concurrency` | The Bulk request concurrency indicates how many of the GitLab Golang-based indexer processes (or threads) can run in parallel to collect data to subsequently submit to Elasticsearch's Bulk API. This increases indexing performance, but fills the Elasticsearch bulk requests queue faster. This setting should be used together with the Maximum bulk request size setting (see above) and needs to accommodate the resource constraints of both the Elasticsearch host(s) and the host(s) running the GitLab Golang-based indexer either from the `gitlab-rake` command or the Sidekiq tasks. |
|
||||
| `Client request timeout` | Elasticsearch HTTP client request timeout value in seconds. `0` means using the system default timeout value, which depends on the libraries that GitLab application is built upon. |
|
||||
|
||||
WARNING:
|
||||
|
|
|
@ -87,7 +87,7 @@ authorize the connection to GitLab.
|
|||
1. On the Jenkins server, go to **Manage Jenkins > Manage Plugins**.
|
||||
1. Install the [Jenkins GitLab Plugin](https://wiki.jenkins.io/display/JENKINS/GitLab+Plugin).
|
||||
1. Go to **Manage Jenkins > Configure System**.
|
||||
1. In the **GitLab** section, check the **Enable authentication for ‘/project’ end-point** checkbox.
|
||||
1. In the **GitLab** section, check the **Enable authentication for '/project' end-point** checkbox.
|
||||
1. Click **Add**, then choose **Jenkins Credential Provider**.
|
||||
1. Choose **GitLab API token** as the token type.
|
||||
1. Enter the GitLab personal access token's value in the **API Token** field and click **Add**.
|
||||
|
|
|
@ -27,9 +27,9 @@ least Maintainer [permissions](../user/permissions.md) to enable the Sentry inte
|
|||
1. [Create](https://docs.sentry.io/product/sentry-basics/guides/integrate-frontend/create-new-project/) a new Sentry project. For each GitLab project that you want to integrate, we recommend that you create a new Sentry project.
|
||||
1. [Find or generate](https://docs.sentry.io/api/auth/) a Sentry auth token for your Sentry project.
|
||||
Make sure to give the token at least the following scopes: `event:read` and `project:read`.
|
||||
1. In GitLab, navigate to your project’s **Operations > Error Tracking** page, and
|
||||
1. In GitLab, navigate to your project's **Operations > Error Tracking** page, and
|
||||
click **Enable Error Tracking**.
|
||||
1. Navigate to your project’s **Settings > Operations**. In the **Error Tracking** section,
|
||||
1. Navigate to your project's **Settings > Operations**. In the **Error Tracking** section,
|
||||
ensure the **Active** checkbox is set.
|
||||
1. In the **Sentry API URL** field, enter your Sentry hostname. For example, enter `https://sentry.example.com` if this is the address at which your Sentry instance is available. For the SaaS version of Sentry, the hostname is `https://sentry.io`.
|
||||
1. In the **Auth Token** field, enter the token you previously generated.
|
||||
|
|
|
@ -22,7 +22,7 @@ they inherit permissions from the user who created them.
|
|||
|
||||
## OAuth2 tokens
|
||||
|
||||
GitLab can serve as an [OAuth2 provider](../api/oauth2.md) to allow other services to access the GitLab API on a user’s behalf.
|
||||
GitLab can serve as an [OAuth2 provider](../api/oauth2.md) to allow other services to access the GitLab API on a user's behalf.
|
||||
|
||||
You can limit the scope and lifetime of your OAuth2 tokens.
|
||||
|
||||
|
@ -57,7 +57,7 @@ Deploy tokens can be managed by project maintainers and owners.
|
|||
|
||||
[Deploy keys](../user/project/deploy_keys/index.md) allow read-only or read-write access to your repositories by importing an SSH public key into your GitLab instance. Deploy keys cannot be used with the GitLab API or the registry.
|
||||
|
||||
This is useful, for example, for cloning repositories to your Continuous Integration (CI) server. By using deploy keys, you don’t have to set up a fake user account.
|
||||
This is useful, for example, for cloning repositories to your Continuous Integration (CI) server. By using deploy keys, you don't have to set up a fake user account.
|
||||
|
||||
Project maintainers and owners can add or enable a deploy key for a project repository
|
||||
|
||||
|
@ -65,7 +65,7 @@ Project maintainers and owners can add or enable a deploy key for a project repo
|
|||
|
||||
Runner registration tokens are used to [register](https://docs.gitlab.com/runner/register/) a [runner](https://docs.gitlab.com/runner/) with GitLab. Group or project owners or instance admins can obtain them through the GitLab user interface. The registration token is limited to runner registration and has no further scope.
|
||||
|
||||
You can use the runner registration token to add runners that execute jobs in a project or group. The runner has access to the project’s code, so be careful when assigning project and group-level permissions.
|
||||
You can use the runner registration token to add runners that execute jobs in a project or group. The runner has access to the project's code, so be careful when assigning project and group-level permissions.
|
||||
|
||||
## Runner authentication tokens (also called runner tokens)
|
||||
|
||||
|
|
|
@ -190,7 +190,7 @@ We recommend following these steps during renewal:
|
|||
NOTE:
|
||||
If you need to change your [GitLab tier](https://about.gitlab.com/pricing/), contact our sales team via `renewals@gitlab.com` for assistance as this can't be done in the Customers Portal.
|
||||
|
||||
1. In the first box, enter the total number of user licenses you’ll need for the upcoming year. Be sure this number is at least **equal to, or greater than** the number of billable users in the system at the time of performing the renewal.
|
||||
1. In the first box, enter the total number of user licenses you'll need for the upcoming year. Be sure this number is at least **equal to, or greater than** the number of billable users in the system at the time of performing the renewal.
|
||||
1. Enter the number of [users over license](#users-over-license) in the second box for the user overage incurred in your previous subscription term.
|
||||
1. Review your renewal details and complete the payment process.
|
||||
1. A license for the renewal term is available for download on the [Manage Purchases](https://customers.gitlab.com/subscriptions) page on the relevant subscription card. Select **Copy license to clipboard** or **Download license** to get a copy.
|
||||
|
|
|
@ -91,7 +91,7 @@ To make full use of Auto DevOps with Kubernetes, you need:
|
|||
To enable HTTPS endpoints for your application, you must install cert-manager,
|
||||
a native Kubernetes certificate management controller that helps with issuing
|
||||
certificates. Installing cert-manager on your cluster issues a
|
||||
[Let’s Encrypt](https://letsencrypt.org/) certificate and ensures the
|
||||
[Let's Encrypt](https://letsencrypt.org/) certificate and ensures the
|
||||
certificates are valid and up-to-date. If you've configured the GitLab integration
|
||||
with Kubernetes, you can deploy it to your cluster by installing the
|
||||
[GitLab-managed app for cert-manager](../../user/clusters/applications.md#cert-manager).
|
||||
|
|
|
@ -39,7 +39,7 @@ Found errors in your .gitlab-ci.yml:
|
|||
jobs:test config key may not be used with `rules`: only
|
||||
```
|
||||
|
||||
This error appears when the included job’s rules configuration has been overridden with the `only` or `except` syntax.
|
||||
This error appears when the included job's rules configuration has been overridden with the `only` or `except` syntax.
|
||||
To fix this issue, you must either:
|
||||
|
||||
- Transition your `only/except` syntax to rules.
|
||||
|
|
|
@ -28,7 +28,7 @@ git checkout master
|
|||
git tag my_lightweight_tag
|
||||
|
||||
# Annotated tag
|
||||
git tag -a v1.0 -m ‘Version 1.0’
|
||||
git tag -a v1.0 -m 'Version 1.0'
|
||||
|
||||
# Show list of the existing tags
|
||||
git tag
|
||||
|
|
|
@ -55,7 +55,7 @@ Configuring both the client and the server is unnecessary.
|
|||
|
||||
**To configure SSH on the client side**:
|
||||
|
||||
- On UNIX, edit `~/.ssh/config` (create the file if it doesn’t exist) and
|
||||
- On UNIX, edit `~/.ssh/config` (create the file if it doesn't exist) and
|
||||
add or edit:
|
||||
|
||||
```plaintext
|
||||
|
|
|
@ -175,7 +175,7 @@ GIT_TRACE_PACKET=1 GIT_TRACE=2 GIT_CURL_VERBOSE=1 git clone <url>
|
|||
Git includes a complete set of [traces for debugging Git commands](https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables#_debugging), for example:
|
||||
|
||||
- `GIT_TRACE_PERFORMANCE=1`: enables tracing of performance data, showing how long each particular `git` invocation takes.
|
||||
- `GIT_TRACE_SETUP=1`: enables tracing of what `git` is discovering about the repository and environment it’s interacting with.
|
||||
- `GIT_TRACE_SETUP=1`: enables tracing of what `git` is discovering about the repository and environment it's interacting with.
|
||||
- `GIT_TRACE_PACKET=1`: enables packet-level tracing for network operations.
|
||||
|
||||
## Rebasing
|
||||
|
|
|
@ -187,7 +187,7 @@ git push origin squash_some_bugs
|
|||
## Merge requests
|
||||
|
||||
- When you want feedback create a merge request.
|
||||
- Target is the ‘default’ branch (usually master).
|
||||
- Target is the 'default' branch (usually master).
|
||||
- Assign or mention the person you would like to review.
|
||||
- Add `[Draft]` to the title if it's a work in progress.
|
||||
- When accepting, always delete the branch.
|
||||
|
@ -260,7 +260,7 @@ git checkout master
|
|||
git tag my_lightweight_tag
|
||||
|
||||
# Annotated tag
|
||||
git tag -a v1.0 -m ‘Version 1.0’
|
||||
git tag -a v1.0 -m 'Version 1.0'
|
||||
git tag
|
||||
|
||||
git push origin --tags
|
||||
|
|
|
@ -374,7 +374,7 @@ comment - content which is not included in the output document
|
|||
|
||||
### Colors
|
||||
|
||||
It’s possible to have color written in `HEX`, `RGB`, or `HSL` format rendered with a color indicator.
|
||||
It's possible to have color written in `HEX`, `RGB`, or `HSL` format rendered with a color indicator.
|
||||
Supported formats (named colors are not supported):
|
||||
|
||||
- HEX: `` `#RGB[A]` `` or `` `#RRGGBB[AA]` ``
|
||||
|
|
|
@ -86,7 +86,7 @@ your cluster, which can cause deployment jobs to fail.
|
|||
|
||||
To clear the cache:
|
||||
|
||||
1. Navigate to your group’s **Kubernetes** page,
|
||||
1. Navigate to your group's **Kubernetes** page,
|
||||
and select your cluster.
|
||||
1. Expand the **Advanced settings** section.
|
||||
1. Click **Clear cluster cache**.
|
||||
|
|
|
@ -481,7 +481,7 @@ Administrators and group owners are able to access the group regardless of the I
|
|||
|
||||
To restrict group access by IP address:
|
||||
|
||||
1. Go to the group’s **Settings > General** page.
|
||||
1. Go to the group's **Settings > General** page.
|
||||
1. Expand the **Permissions, LFS, 2FA** section.
|
||||
1. In the **Allow access to the following IP addresses** field, enter IP address ranges in CIDR notation.
|
||||
1. Select **Save changes**.
|
||||
|
|
|
@ -117,7 +117,7 @@ Follow the same process to create any subsequent groups.
|
|||
## Membership
|
||||
|
||||
When you add a member to a group, that member is also added to all subgroups.
|
||||
Permission level is inherited from the group’s parent. This model allows access to
|
||||
Permission level is inherited from the group's parent. This model allows access to
|
||||
subgroups if you have membership in one of its parents.
|
||||
|
||||
Jobs for pipelines in subgroups can use [runners](../../../ci/runners/README.md) registered to the parent group(s).
|
||||
|
|
|
@ -16,7 +16,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
WARNING:
|
||||
This feature might not be available to you. Check the **version history** note above for details.
|
||||
|
||||
Publish generic files, like release binaries, in your project’s Package Registry. Then, install the packages whenever you need to use them as a dependency.
|
||||
Publish generic files, like release binaries, in your project's Package Registry. Then, install the packages whenever you need to use them as a dependency.
|
||||
|
||||
## Authenticate to the Package Registry
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5811) in GitLab Premium 11.3.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
|
||||
Publish [Maven](https://maven.apache.org) artifacts in your project’s Package Registry.
|
||||
Publish [Maven](https://maven.apache.org) artifacts in your project's Package Registry.
|
||||
Then, install the packages whenever you need to use them as a dependency.
|
||||
|
||||
## Build a Maven package
|
||||
|
|
|
@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/20050) in GitLab Premium 12.8.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
|
||||
Publish NuGet packages in your project’s Package Registry. Then, install the
|
||||
Publish NuGet packages in your project's Package Registry. Then, install the
|
||||
packages whenever you need to use them as a dependency.
|
||||
|
||||
The Package Registry works with:
|
||||
|
@ -314,7 +314,7 @@ dotnet nuget push MyPackage.1.0.0.nupkg --source gitlab
|
|||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/36424) in GitLab 13.3.
|
||||
|
||||
If you’re using NuGet with GitLab CI/CD, a CI job token can be used instead of a
|
||||
If you're using NuGet with GitLab CI/CD, a CI job token can be used instead of a
|
||||
personal access token or deploy token. The token inherits the permissions of the
|
||||
user that generates the pipeline.
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/208747) in GitLab Premium 12.10.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
|
||||
Publish PyPI packages in your project’s Package Registry. Then install the
|
||||
Publish PyPI packages in your project's Package Registry. Then install the
|
||||
packages whenever you need to use them as a dependency.
|
||||
|
||||
The Package Registry works with:
|
||||
|
|
|
@ -50,16 +50,16 @@ These notification settings apply only to you. They do not affect the notificati
|
|||
|
||||
## Global notification settings
|
||||
|
||||
Your **Global notification settings** are the default settings unless you select different values for a project or a group.
|
||||
Your **Global notification settings** are the default settings unless you select
|
||||
different values for a project or a group.
|
||||
|
||||
- Notification email
|
||||
- This is the email address your notifications are sent to.
|
||||
- Global notification level
|
||||
- This is the default [notification level](#notification-levels) which applies to all your notifications.
|
||||
- Receive product marketing emails
|
||||
- Check this checkbox if you want to receive periodic emails related to GitLab features.
|
||||
- Receive notifications about your own activity.
|
||||
- Check this checkbox if you want to receive notification about your own activity. Default: Not checked.
|
||||
- **Notification email**: The email address your notifications are sent to.
|
||||
- **Global notification level**: The default [notification level](#notification-levels)
|
||||
which applies to all your notifications.
|
||||
- **Receive product marketing emails**: Select this check box to receive periodic
|
||||
emails about GitLab features.
|
||||
- **Receive notifications about your own activity**: Select this check box to receive
|
||||
notifications about your own activity. Not selected by default.
|
||||
|
||||
### Notification scope
|
||||
|
||||
|
@ -67,16 +67,16 @@ You can tune the scope of your notifications by selecting different notification
|
|||
|
||||
Notification scope is applied in order of precedence (highest to lowest):
|
||||
|
||||
- Project
|
||||
- For each project, you can select a notification level. Your project setting overrides the group setting.
|
||||
- Group
|
||||
- For each group, you can select a notification level. Your group setting overrides your default setting.
|
||||
- Global (default)
|
||||
- Your global, or _default_, notification level applies if you have not selected a notification level for the project or group in which the activity occurred.
|
||||
- **Project**: For each project, you can select a notification level. Your project
|
||||
setting overrides the group setting.
|
||||
- **Group**: For each group, you can select a notification level. Your group setting
|
||||
overrides your default setting.
|
||||
- **Global (default)**: Your global, or _default_, notification level applies if you
|
||||
have not selected a notification level for the project or group in which the activity occurred.
|
||||
|
||||
#### Project notifications
|
||||
|
||||
You can select a notification level for each project. This can be useful if you need to closely monitor activity in select projects.
|
||||
You can select a notification level for each project to help you closely monitor activity in select projects.
|
||||
|
||||
![notification settings](img/notification_project_settings_v12_8.png)
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ See the epic for:
|
|||
- A list of known issues.
|
||||
- Our planned direction and next steps.
|
||||
|
||||
If you find an issue that isn’t listed, please leave a comment on the epic or create a
|
||||
If you find an issue that isn't listed, please leave a comment on the epic or create a
|
||||
new issue.
|
||||
|
||||
Dark mode is available as a navigation theme, for MVC and compatibility reasons. In
|
||||
|
@ -124,7 +124,7 @@ You can include the following options for your default dashboard view:
|
|||
### Group overview content
|
||||
|
||||
The **Group overview content** dropdown allows you to choose what information is
|
||||
displayed on a group’s home page.
|
||||
displayed on a group's home page.
|
||||
|
||||
You can choose between 2 options:
|
||||
|
||||
|
@ -134,7 +134,7 @@ You can choose between 2 options:
|
|||
### Project overview content
|
||||
|
||||
The **Project overview content** setting allows you to choose what content you want to
|
||||
see on a project’s home page.
|
||||
see on a project's home page.
|
||||
|
||||
### Tab width
|
||||
|
||||
|
|
|
@ -189,7 +189,7 @@ your cluster. This can cause deployment jobs to fail.
|
|||
|
||||
To clear the cache:
|
||||
|
||||
1. Navigate to your project’s **Operations > Kubernetes** page, and select your cluster.
|
||||
1. Navigate to your project's **Operations > Kubernetes** page, and select your cluster.
|
||||
1. Expand the **Advanced settings** section.
|
||||
1. Click **Clear cluster cache**.
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ pre-written code blocks or database queries against a given environment.
|
|||
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/45912) in GitLab 11.4.
|
||||
|
||||
The JupyterHub app offered via the GitLab Kubernetes integration now ships
|
||||
with Nurtch’s Rubix library, providing a simple way to create DevOps
|
||||
with Nurtch's Rubix library, providing a simple way to create DevOps
|
||||
runbooks. A sample runbook is provided, showcasing common operations. While
|
||||
Rubix makes it simple to create common Kubernetes and AWS workflows, you can
|
||||
also create them manually without Rubix.
|
||||
|
|
|
@ -403,7 +403,7 @@ production:
|
|||
environment: production
|
||||
```
|
||||
|
||||
Let’s examine the configuration 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 since the sample application is written in Python.
|
||||
|
|
|
@ -562,7 +562,7 @@ over `https`, you must manually obtain and install TLS certificates.
|
|||
|
||||
The simplest way to accomplish this is to use Certbot to
|
||||
[manually obtain Let's Encrypt certificates](https://knative.dev/docs/serving/using-a-tls-cert/#using-certbot-to-manually-obtain-let-s-encrypt-certificates).
|
||||
Certbot is a free, open source software tool for automatically using Let’s Encrypt
|
||||
Certbot is a free, open source software tool for automatically using Let's Encrypt
|
||||
certificates on manually-administered websites to enable HTTPS.
|
||||
|
||||
The following instructions relate to installing and running Certbot on a Linux
|
||||
|
|
|
@ -117,7 +117,7 @@ must **lock the file** before [editing it](#edit-lockable-files).
|
|||
### Lock files
|
||||
|
||||
By locking a file, you verify that no one else is editing it, and
|
||||
prevent anyone else from editing the file until you’re done. On the other
|
||||
prevent anyone else from editing the file until you're done. On the other
|
||||
hand, when you unlock a file, you communicate that you've finished editing
|
||||
and allow other people to edit it.
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 48 KiB |
|
@ -242,19 +242,38 @@ with a link to the commit that resolved the issue.
|
|||
|
||||
> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/3622) in [GitLab Premium](https://about.gitlab.com/pricing/) 13.2.
|
||||
|
||||
You can browse and search issues from a selected Jira project directly in GitLab. This requires [configuration](#configure-gitlab) in GitLab by an administrator.
|
||||
You can browse, search, and view issues from a selected Jira project directly in GitLab,
|
||||
if your GitLab administrator [has configured it](#configure-gitlab):
|
||||
|
||||
![Jira issues integration enabled](img/jira/open_jira_issues_list_v13.2.png)
|
||||
1. In the left navigation bar, go to **Jira > Issues list**.
|
||||
1. The issue list sorts by **Created date** by default, with the newest issues listed at the top:
|
||||
|
||||
From the **Jira Issues** menu, click **Issues List**. The issue list defaults to sort by **Created date**, with the newest issues listed at the top. You can change this to **Last updated**.
|
||||
![Jira issues integration enabled](img/jira/open_jira_issues_list_v13.2.png)
|
||||
|
||||
Issues are grouped into tabs based on their [Jira status](https://confluence.atlassian.com/adminjiraserver070/defining-status-field-values-749382903.html).
|
||||
1. To display the most recently updated issues first, click **Last updated**.
|
||||
1. In GitLab versions 13.10 and later, you can view [individual Jira issues](#view-a-jira-issue).
|
||||
|
||||
Issues are grouped into tabs based on their [Jira status](https://confluence.atlassian.com/adminjiraserver070/defining-status-field-values-749382903.html):
|
||||
|
||||
- The **Open** tab displays all issues with a Jira status in any category other than Done.
|
||||
- The **Closed** tab displays all issues with a Jira status categorized as Done.
|
||||
- The **All** tab displays all issues of any status.
|
||||
|
||||
Click an issue title to open its original Jira issue page for full details.
|
||||
#### View a Jira issue
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/299832) in [GitLab Premium](https://about.gitlab.com/pricing/) 13.10.
|
||||
> - It's [deployed behind a feature flag](../../feature_flags.md), disabled by default.
|
||||
> - It's enabled on GitLab.com.
|
||||
> - It's recommended for production use.
|
||||
> - For GitLab self-managed instances, GitLab administrators can opt to [enable it](#enable-or-disable-jira-issue-detail-view). **(PREMIUM)**
|
||||
|
||||
WARNING:
|
||||
This feature might not be available to you. Check the **version history** note above for details.
|
||||
|
||||
When viewing the [Jira issues list](#view-jira-issues), select an issue from the
|
||||
list to open it in GitLab:
|
||||
|
||||
![Jira issue detail view](img/jira/jira_issue_detail_view_v13.10.png)
|
||||
|
||||
#### Search and filter the issues list
|
||||
|
||||
|
@ -304,3 +323,22 @@ which may lead to a `401 unauthorized` error when testing your Jira integration.
|
|||
If CAPTCHA has been triggered, you can't use Jira's REST API to
|
||||
authenticate with the Jira site. You need to log in to your Jira instance
|
||||
and complete the CAPTCHA.
|
||||
|
||||
## Enable or disable Jira issue detail view
|
||||
|
||||
Jira issue detail view is under development but ready for production use. It is
|
||||
deployed behind a feature flag that is **disabled by default**.
|
||||
[GitLab administrators with access to the GitLab Rails console](../../../administration/feature_flags.md)
|
||||
can enable it.
|
||||
|
||||
To enable it:
|
||||
|
||||
```ruby
|
||||
Feature.enable(:jira_issues_show_integration)
|
||||
```
|
||||
|
||||
To disable it:
|
||||
|
||||
```ruby
|
||||
Feature.disable(:jira_issues_show_integration)
|
||||
```
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue