Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
5de7e7c72a
commit
000087abd5
|
@ -13,11 +13,6 @@ import * as Emoji from '~/emoji';
|
|||
|
||||
const animationEndEventString = 'animationend webkitAnimationEnd MSAnimationEnd oAnimationEnd';
|
||||
const transitionEndEventString = 'transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd';
|
||||
const requestAnimationFrame =
|
||||
window.requestAnimationFrame ||
|
||||
window.webkitRequestAnimationFrame ||
|
||||
window.mozRequestAnimationFrame ||
|
||||
window.setTimeout;
|
||||
|
||||
const FROM_SENTENCE_REGEX = /(?:, and | and |, )/; // For separating lists produced by ruby's Array#toSentence
|
||||
|
||||
|
|
|
@ -51,6 +51,7 @@ export default {
|
|||
'scrollToDraft',
|
||||
'toggleResolveDiscussion',
|
||||
]),
|
||||
...mapActions(['setSelectedCommentPositionHover']),
|
||||
update(data) {
|
||||
this.updateDraft(data);
|
||||
},
|
||||
|
@ -67,7 +68,11 @@ export default {
|
|||
};
|
||||
</script>
|
||||
<template>
|
||||
<article class="draft-note-component note-wrapper">
|
||||
<article
|
||||
class="draft-note-component note-wrapper"
|
||||
@mouseenter="setSelectedCommentPositionHover(draft.position.line_range)"
|
||||
@mouseleave="setSelectedCommentPositionHover()"
|
||||
>
|
||||
<ul class="notes draft-notes">
|
||||
<noteable-note
|
||||
:note="draft"
|
||||
|
|
|
@ -148,10 +148,7 @@ export default {
|
|||
|
||||
<template>
|
||||
<div class="content discussion-form discussion-form-container discussion-notes">
|
||||
<div
|
||||
v-if="glFeatures.multilineComments"
|
||||
class="gl-mb-3 gl-text-gray-700 gl-border-gray-100 gl-border-b-solid gl-border-b-1 gl-pb-3"
|
||||
>
|
||||
<div v-if="glFeatures.multilineComments" class="gl-mb-3 gl-text-gray-700 gl-pb-3">
|
||||
<multiline-comment-form
|
||||
v-model="commentLineStart"
|
||||
:line="line"
|
||||
|
|
|
@ -37,6 +37,11 @@ export default {
|
|||
required: false,
|
||||
default: false,
|
||||
},
|
||||
isCommented: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -47,7 +52,10 @@ export default {
|
|||
...mapGetters('diffs', ['fileLineCoverage']),
|
||||
...mapState({
|
||||
isHighlighted(state) {
|
||||
return this.line.line_code !== null && this.line.line_code === state.diffs.highlightedRow;
|
||||
if (this.isCommented) return true;
|
||||
|
||||
const lineCode = this.line.line_code;
|
||||
return lineCode ? lineCode === state.diffs.highlightedRow : false;
|
||||
},
|
||||
}),
|
||||
isContextLine() {
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { mapGetters, mapState } from 'vuex';
|
||||
import draftCommentsMixin from '~/diffs/mixins/draft_comments';
|
||||
import InlineDraftCommentRow from '~/batch_comments/components/inline_draft_comment_row.vue';
|
||||
import inlineDiffTableRow from './inline_diff_table_row.vue';
|
||||
import inlineDiffCommentRow from './inline_diff_comment_row.vue';
|
||||
import inlineDiffExpansionRow from './inline_diff_expansion_row.vue';
|
||||
import { getCommentedLines } from '~/notes/components/multiline_comment_utils';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
@ -31,9 +32,19 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
...mapGetters('diffs', ['commitId']),
|
||||
...mapState({
|
||||
selectedCommentPosition: ({ notes }) => notes.selectedCommentPosition,
|
||||
selectedCommentPositionHover: ({ notes }) => notes.selectedCommentPositionHover,
|
||||
}),
|
||||
diffLinesLength() {
|
||||
return this.diffLines.length;
|
||||
},
|
||||
commentedLines() {
|
||||
return getCommentedLines(
|
||||
this.selectedCommentPosition || this.selectedCommentPositionHover,
|
||||
this.diffLines,
|
||||
);
|
||||
},
|
||||
},
|
||||
userColorScheme: window.gon.user_color_scheme,
|
||||
};
|
||||
|
@ -67,6 +78,7 @@ export default {
|
|||
:file-path="diffFile.file_path"
|
||||
:line="line"
|
||||
:is-bottom="index + 1 === diffLinesLength"
|
||||
:is-commented="index >= commentedLines.startLine && index <= commentedLines.endLine"
|
||||
/>
|
||||
<inline-diff-comment-row
|
||||
:key="`icr-${line.line_code || index}`"
|
||||
|
|
|
@ -40,6 +40,11 @@ export default {
|
|||
required: false,
|
||||
default: false,
|
||||
},
|
||||
isCommented: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -51,6 +56,8 @@ export default {
|
|||
...mapGetters('diffs', ['fileLineCoverage']),
|
||||
...mapState({
|
||||
isHighlighted(state) {
|
||||
if (this.isCommented) return true;
|
||||
|
||||
const lineCode =
|
||||
(this.line.left && this.line.left.line_code) ||
|
||||
(this.line.right && this.line.right.line_code);
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { mapGetters, mapState } from 'vuex';
|
||||
import draftCommentsMixin from '~/diffs/mixins/draft_comments';
|
||||
import ParallelDraftCommentRow from '~/batch_comments/components/parallel_draft_comment_row.vue';
|
||||
import parallelDiffTableRow from './parallel_diff_table_row.vue';
|
||||
import parallelDiffCommentRow from './parallel_diff_comment_row.vue';
|
||||
import parallelDiffExpansionRow from './parallel_diff_expansion_row.vue';
|
||||
import { getCommentedLines } from '~/notes/components/multiline_comment_utils';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
@ -31,9 +32,19 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
...mapGetters('diffs', ['commitId']),
|
||||
...mapState({
|
||||
selectedCommentPosition: ({ notes }) => notes.selectedCommentPosition,
|
||||
selectedCommentPositionHover: ({ notes }) => notes.selectedCommentPositionHover,
|
||||
}),
|
||||
diffLinesLength() {
|
||||
return this.diffLines.length;
|
||||
},
|
||||
commentedLines() {
|
||||
return getCommentedLines(
|
||||
this.selectedCommentPosition || this.selectedCommentPositionHover,
|
||||
this.diffLines,
|
||||
);
|
||||
},
|
||||
},
|
||||
userColorScheme: window.gon.user_color_scheme,
|
||||
};
|
||||
|
@ -69,6 +80,7 @@ export default {
|
|||
:file-path="diffFile.file_path"
|
||||
:line="line"
|
||||
:is-bottom="index + 1 === diffLinesLength"
|
||||
:is-commented="index >= commentedLines.startLine && index <= commentedLines.endLine"
|
||||
/>
|
||||
<parallel-diff-comment-row
|
||||
:key="`dcr-${line.line_code || index}`"
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
fragment User on User {
|
||||
id
|
||||
avatarUrl
|
||||
name
|
||||
username
|
||||
webUrl
|
||||
}
|
|
@ -74,7 +74,7 @@ export default {
|
|||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['toggleDiscussion']),
|
||||
...mapActions(['toggleDiscussion', 'setSelectedCommentPositionHover']),
|
||||
componentName(note) {
|
||||
if (note.isPlaceholderNote) {
|
||||
if (note.placeholderType === SYSTEM_NOTE) {
|
||||
|
@ -99,7 +99,11 @@ export default {
|
|||
|
||||
<template>
|
||||
<div class="discussion-notes">
|
||||
<ul class="notes">
|
||||
<ul
|
||||
class="notes"
|
||||
@mouseenter="setSelectedCommentPositionHover(discussion.position.line_range)"
|
||||
@mouseleave="setSelectedCommentPositionHover()"
|
||||
>
|
||||
<template v-if="shouldGroupReplies">
|
||||
<component
|
||||
:is="componentName(firstNote)"
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<script>
|
||||
import { mapActions } from 'vuex';
|
||||
import { GlFormSelect, GlSprintf } from '@gitlab/ui';
|
||||
import { getSymbol, getLineClasses } from './multiline_comment_utils';
|
||||
|
||||
|
@ -39,8 +40,13 @@ export default {
|
|||
old_line: line.old_line,
|
||||
new_line: line.new_line,
|
||||
};
|
||||
this.highlightSelection();
|
||||
},
|
||||
destroyed() {
|
||||
this.setSelectedCommentPosition();
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['setSelectedCommentPosition']),
|
||||
getSymbol({ type }) {
|
||||
return getSymbol(type);
|
||||
},
|
||||
|
@ -50,6 +56,16 @@ export default {
|
|||
updateCommentLineStart(value) {
|
||||
this.commentLineStart = value;
|
||||
this.$emit('input', value);
|
||||
this.highlightSelection();
|
||||
},
|
||||
highlightSelection() {
|
||||
const { line_code, new_line, old_line, type } = this.line;
|
||||
const updatedLineRange = {
|
||||
start: { ...this.commentLineStart },
|
||||
end: { line_code, new_line, old_line, type },
|
||||
};
|
||||
|
||||
this.setSelectedCommentPosition(updatedLineRange);
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
|
@ -90,3 +90,22 @@ export function formatLineRange(start, end) {
|
|||
end: extractProps(end),
|
||||
};
|
||||
}
|
||||
|
||||
export function getCommentedLines(selectedCommentPosition, diffLines) {
|
||||
if (!selectedCommentPosition) {
|
||||
// This structure simplifies the logic that consumes this result
|
||||
// by keeping the returned shape the same and adjusting the bounds
|
||||
// to something unreachable. This way our component logic stays:
|
||||
// "if index between start and end"
|
||||
return {
|
||||
startLine: diffLines.length + 1,
|
||||
endLine: diffLines.length + 1,
|
||||
};
|
||||
}
|
||||
|
||||
const { start, end } = selectedCommentPosition;
|
||||
const startLine = diffLines.findIndex(l => l.line_code === start.line_code);
|
||||
const endLine = diffLines.findIndex(l => l.line_code === end.line_code);
|
||||
|
||||
return { startLine, endLine };
|
||||
}
|
||||
|
|
|
@ -186,6 +186,7 @@ export default {
|
|||
eventHub.$on('enterEditMode', ({ noteId }) => {
|
||||
if (noteId === this.note.id) {
|
||||
this.isEditing = true;
|
||||
this.setSelectedCommentPositionHover();
|
||||
this.scrollToNoteIfNeeded($(this.$el));
|
||||
}
|
||||
});
|
||||
|
@ -205,9 +206,11 @@ export default {
|
|||
'toggleResolveNote',
|
||||
'scrollToNoteIfNeeded',
|
||||
'updateAssignees',
|
||||
'setSelectedCommentPositionHover',
|
||||
]),
|
||||
editHandler() {
|
||||
this.isEditing = true;
|
||||
this.setSelectedCommentPositionHover();
|
||||
this.$emit('handleEdit');
|
||||
},
|
||||
deleteHandler() {
|
||||
|
@ -284,6 +287,7 @@ export default {
|
|||
} else {
|
||||
this.isRequesting = false;
|
||||
this.isEditing = true;
|
||||
this.setSelectedCommentPositionHover();
|
||||
this.$nextTick(() => {
|
||||
const msg = __('Something went wrong while editing your comment. Please try again.');
|
||||
Flash(msg, 'alert', this.$el);
|
||||
|
@ -340,7 +344,7 @@ export default {
|
|||
:line="line"
|
||||
:comment-line-options="commentLineOptions"
|
||||
:line-range="note.position.line_range"
|
||||
class="gl-mb-3 gl-text-gray-700 gl-border-gray-100 gl-border-b-solid gl-border-b-1 gl-pb-3"
|
||||
class="gl-mb-3 gl-text-gray-700 gl-pb-3"
|
||||
/>
|
||||
<div
|
||||
v-else
|
||||
|
|
|
@ -99,6 +99,14 @@ export const setDiscussionSortDirection = ({ commit }, direction) => {
|
|||
commit(types.SET_DISCUSSIONS_SORT, direction);
|
||||
};
|
||||
|
||||
export const setSelectedCommentPosition = ({ commit }, position) => {
|
||||
commit(types.SET_SELECTED_COMMENT_POSITION, position);
|
||||
};
|
||||
|
||||
export const setSelectedCommentPositionHover = ({ commit }, position) => {
|
||||
commit(types.SET_SELECTED_COMMENT_POSITION_HOVER, position);
|
||||
};
|
||||
|
||||
export const removeNote = ({ commit, dispatch, state }, note) => {
|
||||
const discussion = state.discussions.find(({ id }) => id === note.discussion_id);
|
||||
|
||||
|
|
|
@ -12,6 +12,15 @@ export default () => ({
|
|||
lastFetchedAt: null,
|
||||
currentDiscussionId: null,
|
||||
batchSuggestionsInfo: [],
|
||||
/**
|
||||
* selectedCommentPosition & selectedCommentPosition structures are the same as `position.line_range`:
|
||||
* {
|
||||
* start: { line_code: string, new_line: number, old_line:number, type: string },
|
||||
* end: { line_code: string, new_line: number, old_line:number, type: string },
|
||||
* }
|
||||
*/
|
||||
selectedCommentPosition: null,
|
||||
selectedCommentPositionHover: null,
|
||||
|
||||
// View layer
|
||||
isToggleStateButtonLoading: false,
|
||||
|
|
|
@ -33,6 +33,8 @@ export const SET_EXPAND_DISCUSSIONS = 'SET_EXPAND_DISCUSSIONS';
|
|||
export const UPDATE_RESOLVABLE_DISCUSSIONS_COUNTS = 'UPDATE_RESOLVABLE_DISCUSSIONS_COUNTS';
|
||||
export const SET_CURRENT_DISCUSSION_ID = 'SET_CURRENT_DISCUSSION_ID';
|
||||
export const SET_DISCUSSIONS_SORT = 'SET_DISCUSSIONS_SORT';
|
||||
export const SET_SELECTED_COMMENT_POSITION = 'SET_SELECTED_COMMENT_POSITION';
|
||||
export const SET_SELECTED_COMMENT_POSITION_HOVER = 'SET_SELECTED_COMMENT_POSITION_HOVER';
|
||||
|
||||
// Issue
|
||||
export const CLOSE_ISSUE = 'CLOSE_ISSUE';
|
||||
|
|
|
@ -308,6 +308,14 @@ export default {
|
|||
state.discussionSortOrder = sort;
|
||||
},
|
||||
|
||||
[types.SET_SELECTED_COMMENT_POSITION](state, position) {
|
||||
state.selectedCommentPosition = position;
|
||||
},
|
||||
|
||||
[types.SET_SELECTED_COMMENT_POSITION_HOVER](state, position) {
|
||||
state.selectedCommentPositionHover = position;
|
||||
},
|
||||
|
||||
[types.DISABLE_COMMENTS](state, value) {
|
||||
state.commentsDisabled = value;
|
||||
},
|
||||
|
|
|
@ -97,6 +97,7 @@ export default {
|
|||
:path="entry.flatPath"
|
||||
:type="entry.type"
|
||||
:url="entry.webUrl"
|
||||
:mode="entry.mode"
|
||||
:submodule-tree-url="entry.treeUrl"
|
||||
:lfs-oid="entry.lfsOid"
|
||||
:loading-path="loadingPath"
|
||||
|
|
|
@ -66,6 +66,11 @@ export default {
|
|||
type: String,
|
||||
required: true,
|
||||
},
|
||||
mode: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
required: true,
|
||||
|
@ -140,6 +145,7 @@ export default {
|
|||
>
|
||||
<file-icon
|
||||
:file-name="fullPath"
|
||||
:file-mode="mode"
|
||||
:folder="isFolder"
|
||||
:submodule="isSubmodule"
|
||||
:loading="path === loadingPath"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<script>
|
||||
import { GlLoadingIcon, GlIcon } from '@gitlab/ui';
|
||||
import getIconForFile from './file_icon/file_icon_map';
|
||||
import { FILE_SYMLINK_MODE } from '../constants';
|
||||
|
||||
/* This is a re-usable vue component for rendering a svg sprite
|
||||
icon
|
||||
|
@ -24,6 +25,11 @@ export default {
|
|||
type: String,
|
||||
required: true,
|
||||
},
|
||||
fileMode: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
|
||||
folder: {
|
||||
type: Boolean,
|
||||
|
@ -60,8 +66,12 @@ export default {
|
|||
},
|
||||
},
|
||||
computed: {
|
||||
isSymlink() {
|
||||
return this.fileMode === FILE_SYMLINK_MODE;
|
||||
},
|
||||
spriteHref() {
|
||||
const iconName = this.submodule ? 'folder-git' : getIconForFile(this.fileName) || 'file';
|
||||
|
||||
return `${gon.sprite_file_icons}#${iconName}`;
|
||||
},
|
||||
folderIconName() {
|
||||
|
@ -75,13 +85,11 @@ export default {
|
|||
</script>
|
||||
<template>
|
||||
<span>
|
||||
<svg v-if="!loading && !folder" :class="[iconSizeClass, cssClasses]">
|
||||
<use v-bind="{ 'xlink:href': spriteHref }" /></svg
|
||||
><gl-icon
|
||||
v-if="!loading && folder"
|
||||
:name="folderIconName"
|
||||
:size="size"
|
||||
class="folder-icon"
|
||||
/><gl-loading-icon v-if="loading" :inline="true" />
|
||||
<gl-loading-icon v-if="loading" :inline="true" />
|
||||
<gl-icon v-else-if="isSymlink" name="symlink" :size="size" />
|
||||
<svg v-else-if="!folder" :class="[iconSizeClass, cssClasses]">
|
||||
<use v-bind="{ 'xlink:href': spriteHref }" />
|
||||
</svg>
|
||||
<gl-icon v-else :name="folderIconName" :size="size" class="folder-icon" />
|
||||
</span>
|
||||
</template>
|
||||
|
|
|
@ -6,6 +6,8 @@ const INTERVALS = {
|
|||
day: 'day',
|
||||
};
|
||||
|
||||
export const FILE_SYMLINK_MODE = '120000';
|
||||
|
||||
export const timeRanges = [
|
||||
{
|
||||
label: __('30 minutes'),
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
}
|
||||
|
||||
.design-pin {
|
||||
transition: opacity 0.5s ease;
|
||||
transition: opacity $gl-transition-duration-medium $general-hover-transition-curve;
|
||||
|
||||
&.inactive {
|
||||
@include gl-opacity-5;
|
||||
|
@ -108,6 +108,7 @@
|
|||
.design-note {
|
||||
padding: $gl-padding;
|
||||
list-style: none;
|
||||
transition: background $gl-transition-duration-medium $general-hover-transition-curve;
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
|
@ -150,7 +151,7 @@
|
|||
}
|
||||
|
||||
.design-dropzone-card {
|
||||
transition: border $general-hover-transition-duration $general-hover-transition-curve;
|
||||
transition: border $gl-transition-duration-medium $general-hover-transition-curve;
|
||||
color: $gl-text-color;
|
||||
|
||||
&:focus,
|
||||
|
|
|
@ -92,3 +92,5 @@ module Resolvers
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
Resolvers::IssuesResolver.prepend_if_ee('::EE::Resolvers::IssuesResolver')
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Types
|
||||
# rubocop: disable Graphql/AuthorizeTypes
|
||||
class IssueConnectionType < GraphQL::Types::Relay::BaseConnection
|
||||
field :count, Integer, null: false,
|
||||
description: 'Total count of collection'
|
||||
|
||||
def count
|
||||
object.items.size
|
||||
end
|
||||
end
|
||||
end
|
|
@ -4,6 +4,8 @@ module Types
|
|||
class IssueType < BaseObject
|
||||
graphql_name 'Issue'
|
||||
|
||||
connection_type_class(Types::IssueConnectionType)
|
||||
|
||||
implements(Types::Notes::NoteableType)
|
||||
|
||||
authorize :read_issue
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- type = local_assigns.fetch(:type)
|
||||
- bulk_issue_health_status_flag = Feature.enabled?(:bulk_update_health_status, @project&.group) && type == :issues && @project&.group&.feature_available?(:issuable_health_status)
|
||||
- bulk_issue_health_status_flag = Feature.enabled?(:bulk_update_health_status, @project&.group, default_enabled: true) && type == :issues && @project&.group&.feature_available?(:issuable_health_status)
|
||||
- epic_bulk_edit_flag = @project&.group&.feature_available?(:epics) && type == :issues
|
||||
|
||||
%aside.issues-bulk-update.js-right-sidebar.right-sidebar{ "aria-live" => "polite", data: { 'signed-in': current_user.present? } }
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Improve animations of design note selection in design management
|
||||
merge_request: 36927
|
||||
author:
|
||||
type: changed
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Highlight commented rows
|
||||
merge_request: 34432
|
||||
author:
|
||||
type: added
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Show symlink icon in repository browser
|
||||
merge_request: 36524
|
||||
author:
|
||||
type: fixed
|
|
@ -10,4 +10,7 @@ link: https://docs.gitlab.com/ee/development/documentation/styleguide.html#alert
|
|||
level: error
|
||||
scope: raw
|
||||
raw:
|
||||
- 'NOTE: \*\*[^:]*\*\*'
|
||||
- '((NOTE|TIP|CAUTION|DANGER): \*\*[^:]*\*\*)|'
|
||||
- '((NOTE: \*\*NOTE:\*\*)|(TIP: \*\*TIP:\*\*)|(CAUTION: \*\*CAUTION:\*\*)|(DANGER: \*\*DANGER:\*\*))|'
|
||||
- '((NOTE: \*\*note:\*\*)|(TIP: \*\*tip:\*\*)|(CAUTION: \*\*caution:\*\*)|(DANGER: \*\*danger:\*\*))|'
|
||||
- '((NOTE|TIP|CAUTION|DANGER): \*\*.*\*\*.+)'
|
||||
|
|
|
@ -62,7 +62,8 @@ JWT will provide you with a secret key for you to use.
|
|||
}
|
||||
```
|
||||
|
||||
NOTE: **Note:** For more information on each configuration option refer to
|
||||
NOTE: **Note:**
|
||||
For more information on each configuration option refer to
|
||||
the [OmniAuth JWT usage documentation](https://github.com/mbleigh/omniauth-jwt#usage).
|
||||
|
||||
1. Change `YOUR_APP_SECRET` to the client secret and set `auth_url` to your redirect URL.
|
||||
|
|
|
@ -34,7 +34,8 @@ The steps below cover:
|
|||
'Entire domain (GitLab)' or 'Selected organizational units' for both 'Verify user
|
||||
credentials' and 'Read user information'. Select 'Add LDAP Client'
|
||||
|
||||
TIP: **Tip:** If you plan to use GitLab [LDAP Group Sync](index.md#group-sync-starter-only)
|
||||
TIP: **Tip:**
|
||||
If you plan to use GitLab [LDAP Group Sync](index.md#group-sync-starter-only)
|
||||
, turn on 'Read group information'.
|
||||
|
||||
![Add LDAP Client Step 2](img/google_secure_ldap_add_step_2.png)
|
||||
|
|
|
@ -357,7 +357,7 @@ GitLab syncs the `admin_group`.
|
|||
|
||||
#### Sync all groups **(STARTER ONLY)**
|
||||
|
||||
NOTE: **NOTE:**
|
||||
NOTE: **Note:**
|
||||
To sync all groups manually when debugging is unnecessary, [use the Rake
|
||||
task](../../raketasks/ldap.md#run-a-group-sync-starter-only) instead.
|
||||
|
||||
|
@ -653,7 +653,7 @@ adfind -h ad.example.org:636 -ssl -u "CN=GitLabSRV,CN=Users,DC=GitLab,DC=org" -u
|
|||
|
||||
### Rails console
|
||||
|
||||
CAUTION: **CAUTION:**
|
||||
CAUTION: **Caution:**
|
||||
Please note that it is very easy to create, read, modify, and destroy data on the
|
||||
rails console, so please be sure to run commands exactly as listed.
|
||||
|
||||
|
|
|
@ -32,13 +32,15 @@ To bring the former **primary** node up to date:
|
|||
sudo gitlab-ctl start
|
||||
```
|
||||
|
||||
NOTE: **Note:** If you [disabled the **primary** node permanently](index.md#step-2-permanently-disable-the-primary-node),
|
||||
NOTE: **Note:**
|
||||
If you [disabled the **primary** node permanently](index.md#step-2-permanently-disable-the-primary-node),
|
||||
you need to undo those steps now. For Debian/Ubuntu you just need to run
|
||||
`sudo systemctl enable gitlab-runsvdir`. For CentOS 6, you need to install
|
||||
the GitLab instance from scratch and set it up as a **secondary** node by
|
||||
following [Setup instructions](../replication/index.md#setup-instructions). In this case, you don't need to follow the next step.
|
||||
|
||||
NOTE: **Note:** If you [changed the DNS records](index.md#step-4-optional-updating-the-primary-domain-dns-record)
|
||||
NOTE: **Note:**
|
||||
If you [changed the DNS records](index.md#step-4-optional-updating-the-primary-domain-dns-record)
|
||||
for this node during disaster recovery procedure you may need to [block
|
||||
all the writes to this node](planned_failover.md#prevent-updates-to-the-primary-node)
|
||||
during this procedure.
|
||||
|
|
|
@ -130,7 +130,8 @@ There is an [issue where support is being discussed](https://gitlab.com/gitlab-o
|
|||
connect to the **primary** node's database. For this reason, we need the address of
|
||||
each node.
|
||||
|
||||
NOTE: **Note:** For external PostgreSQL instances, see [additional instructions](external_database.md).
|
||||
NOTE: **Note:**
|
||||
For external PostgreSQL instances, see [additional instructions](external_database.md).
|
||||
|
||||
If you are using a cloud provider, you can lookup the addresses for each
|
||||
Geo node through your cloud provider's management console.
|
||||
|
@ -419,7 +420,8 @@ data before running `pg_basebackup`.
|
|||
|
||||
1. Execute the command below to start a backup/restore and begin the replication
|
||||
|
||||
CAUTION: **Warning:** Each Geo **secondary** node must have its own unique replication slot name.
|
||||
CAUTION: **Warning:**
|
||||
Each Geo **secondary** node must have its own unique replication slot name.
|
||||
Using the same slot name between two secondaries will break PostgreSQL replication.
|
||||
|
||||
```shell
|
||||
|
|
|
@ -126,7 +126,7 @@ these epics/issues:
|
|||
- [Unreplicated Data Types](https://gitlab.com/groups/gitlab-org/-/epics/893)
|
||||
- [Verify all replicated data](https://gitlab.com/groups/gitlab-org/-/epics/1430)
|
||||
|
||||
DANGER: **DANGER**
|
||||
DANGER: **Danger:**
|
||||
Features not on this list, or with **No** in the **Replicated** column,
|
||||
are not replicated on the **secondary** node. Failing over without manually
|
||||
replicating data from those features will cause the data to be **lost**.
|
||||
|
|
|
@ -270,7 +270,8 @@ the tracking database on port 5432.
|
|||
query_exec "GRANT USAGE ON FOREIGN SERVER gitlab_secondary TO ${GEO_DB_USER};"
|
||||
```
|
||||
|
||||
NOTE: **Note:** The script template above uses `gitlab-psql` as it's intended to be executed from the Geo machine,
|
||||
NOTE: **Note:**
|
||||
The script template above uses `gitlab-psql` as it's intended to be executed from the Geo machine,
|
||||
but you can change it to `psql` and run it from any machine that has access to the database. We also recommend using
|
||||
`psql` for AWS RDS.
|
||||
|
||||
|
|
|
@ -90,7 +90,8 @@ The following steps enable a GitLab cluster to serve as the **primary** node.
|
|||
|
||||
After making these changes, [reconfigure GitLab](../../restart_gitlab.md#omnibus-gitlab-reconfigure) so the changes take effect.
|
||||
|
||||
NOTE: **Note:** PostgreSQL and Redis should have already been disabled on the
|
||||
NOTE: **Note:**
|
||||
PostgreSQL and Redis should have already been disabled on the
|
||||
application servers, and connections from the application servers to those
|
||||
services on the backend servers configured, during normal GitLab multi-node set up. See
|
||||
multi-node configuration documentation for
|
||||
|
@ -141,7 +142,8 @@ recommended.
|
|||
|
||||
### Step 2: Configure the main read-only replica PostgreSQL database on the **secondary** node
|
||||
|
||||
NOTE: **Note:** The following documentation assumes the database will be run on
|
||||
NOTE: **Note:**
|
||||
The following documentation assumes the database will be run on
|
||||
a single node only. Multi-node PostgreSQL on **secondary** nodes is
|
||||
[not currently supported](https://gitlab.com/groups/gitlab-org/-/epics/2536).
|
||||
|
||||
|
@ -206,7 +208,8 @@ If using an external PostgreSQL instance, refer also to
|
|||
|
||||
### Step 3: Configure the tracking database on the **secondary** node
|
||||
|
||||
NOTE: **Note:** This documentation assumes the tracking database will be run on
|
||||
NOTE: **Note:**
|
||||
This documentation assumes the tracking database will be run on
|
||||
only a single machine, rather than as a PostgreSQL cluster.
|
||||
|
||||
Configure the tracking database.
|
||||
|
|
|
@ -452,13 +452,13 @@ to start again from scratch, there are a few steps that can help you:
|
|||
chown git:git /var/opt/gitlab/git-data/repositories
|
||||
```
|
||||
|
||||
TIP: **Tip**
|
||||
TIP: **Tip:**
|
||||
You may want to remove the `/var/opt/gitlab/git-data/repositories.old` in the future
|
||||
as soon as you confirmed that you don't need it anymore, to save disk space.
|
||||
|
||||
1. _(Optional)_ Rename other data folders and create new ones
|
||||
|
||||
CAUTION: **Caution**:
|
||||
CAUTION: **Caution:**
|
||||
You may still have files on the **secondary** node that have been removed from **primary** node but
|
||||
removal have not been reflected. If you skip this step, they will never be removed
|
||||
from this Geo node.
|
||||
|
@ -701,7 +701,8 @@ To check the configuration:
|
|||
Description |
|
||||
```
|
||||
|
||||
NOTE: **Note:** Pay particular attention to the host and port under
|
||||
NOTE: **Note:**
|
||||
Pay particular attention to the host and port under
|
||||
FDW options. That configuration should point to the Geo secondary
|
||||
database.
|
||||
|
||||
|
|
|
@ -36,7 +36,8 @@ different steps.
|
|||
|
||||
## General update steps
|
||||
|
||||
NOTE: **Note:** These general update steps are not intended for [high-availability deployments](https://docs.gitlab.com/omnibus/update/README.html#multi-node--ha-deployment), and will cause downtime. If you want to avoid downtime, consider using [zero downtime updates](https://docs.gitlab.com/omnibus/update/README.html#zero-downtime-updates).
|
||||
NOTE: **Note:**
|
||||
These general update steps are not intended for [high-availability deployments](https://docs.gitlab.com/omnibus/update/README.html#multi-node--ha-deployment), and will cause downtime. If you want to avoid downtime, consider using [zero downtime updates](https://docs.gitlab.com/omnibus/update/README.html#zero-downtime-updates).
|
||||
|
||||
To update the Geo nodes when a new GitLab version is released, update **primary**
|
||||
and all **secondary** nodes:
|
||||
|
|
|
@ -136,7 +136,8 @@ We will note in the instructions below where these secrets are required.
|
|||
|
||||
### PostgreSQL
|
||||
|
||||
NOTE: **Note:** do not store the GitLab application database and the Praefect
|
||||
NOTE: **Note:**
|
||||
do not store the GitLab application database and the Praefect
|
||||
database on the same PostgreSQL server if using
|
||||
[Geo](../geo/replication/index.md). The replication state is internal to each instance
|
||||
of GitLab and should not be replicated.
|
||||
|
@ -286,7 +287,8 @@ application server, or a Gitaly node.
|
|||
so we use `default` here as well. This cluster has three Gitaly nodes `gitaly-1`,
|
||||
`gitaly-2`, and `gitaly-3`, which will be replicas of each other.
|
||||
|
||||
CAUTION: **CAUTION:** If you have data on an already existing storage called
|
||||
CAUTION: **Caution:**
|
||||
If you have data on an already existing storage called
|
||||
`default`, you should configure the virtual storage with another name and
|
||||
[migrate the data to the Praefect storage](#migrating-existing-repositories-to-praefect)
|
||||
afterwards.
|
||||
|
@ -300,7 +302,8 @@ application server, or a Gitaly node.
|
|||
More Gitaly nodes can be added to the cluster to increase the number of
|
||||
replicas. More clusters can also be added for very large GitLab instances.
|
||||
|
||||
NOTE: **Note:** The `gitaly-1` node is currently denoted the primary. This
|
||||
NOTE: **Note:**
|
||||
The `gitaly-1` node is currently denoted the primary. This
|
||||
can be used to manually fail from one node to another. This will be removed
|
||||
in the [future](https://gitlab.com/gitlab-org/gitaly/-/issues/2634).
|
||||
|
||||
|
@ -493,7 +496,8 @@ To configure Praefect with TLS:
|
|||
|
||||
### Gitaly
|
||||
|
||||
NOTE: **Note:** Complete these steps for **each** Gitaly node.
|
||||
NOTE: **Note:**
|
||||
Complete these steps for **each** Gitaly node.
|
||||
|
||||
To complete this section you will need:
|
||||
|
||||
|
@ -700,7 +704,8 @@ Particular attention should be shown to:
|
|||
1. Disable the default Gitaly service running on the GitLab host. It won't be needed
|
||||
as GitLab will connect to the configured cluster.
|
||||
|
||||
CAUTION: **CAUTION** If you have existing data stored on the default Gitaly storage,
|
||||
CAUTION: **Caution:**
|
||||
If you have existing data stored on the default Gitaly storage,
|
||||
you should [migrate the data your Praefect storage first](#migrating-existing-repositories-to-praefect).
|
||||
|
||||
```ruby
|
||||
|
@ -966,7 +971,8 @@ Virtual storage: default
|
|||
|
||||
Currently `dataloss` only considers a repository up to date if it has been directly replicated to from the previous write-enabled primary. While reconciling from an up to date secondary can recover the data, this is not visible in the data loss report. This is due for improvement via [Gitaly#2866](https://gitlab.com/gitlab-org/gitaly/-/issues/2866).
|
||||
|
||||
NOTE: **Note:** `dataloss` is still in beta and the output format is subject to change.
|
||||
NOTE: **Note:**
|
||||
`dataloss` is still in beta and the output format is subject to change.
|
||||
|
||||
### Checking repository checksums
|
||||
|
||||
|
|
|
@ -113,14 +113,14 @@ Nodes running GitLab-bundled Consul should be:
|
|||
- Members of a healthy cluster prior to upgrading the Omnibus GitLab package.
|
||||
- Upgraded one node at a time.
|
||||
|
||||
NOTE: **NOTE:**
|
||||
NOTE: **Note:**
|
||||
Running `curl http://127.0.0.1:8500/v1/health/state/critical` from any Consul node will identify existing health issues in the cluster. The command will return an empty array if the cluster is healthy.
|
||||
|
||||
Consul clusters communicate using the raft protocol. If the current leader goes offline, there needs to be a leader election. A leader node must exist to facilitate synchronization across the cluster. If too many nodes go offline at the same time, the cluster will lose quorum and not elect a leader due to [broken consensus](https://www.consul.io/docs/internals/consensus.html).
|
||||
|
||||
Consult the [troubleshooting section](#troubleshooting) if the cluster is not able to recover after the upgrade. The [outage recovery](#outage-recovery) may be of particular interest.
|
||||
|
||||
NOTE: **NOTE:**
|
||||
NOTE: **Note:**
|
||||
GitLab only uses Consul to store transient data that is easily regenerated. If the bundled Consul was not used by any process other than GitLab itself, then [rebuilding the cluster from scratch](#recreate-from-scratch) is fine.
|
||||
|
||||
## Troubleshooting
|
||||
|
|
|
@ -6,11 +6,13 @@ type: reference
|
|||
|
||||
This section describes how to configure the GitLab application (Rails) component.
|
||||
|
||||
NOTE: **Note:** There is some additional configuration near the bottom for
|
||||
NOTE: **Note:**
|
||||
There is some additional configuration near the bottom for
|
||||
additional GitLab application servers. It's important to read and understand
|
||||
these additional steps before proceeding with GitLab installation.
|
||||
|
||||
NOTE: **Note:** [Cloud Object Storage service](object_storage.md) with [Gitaly](gitaly.md)
|
||||
NOTE: **Note:**
|
||||
[Cloud Object Storage service](object_storage.md) with [Gitaly](gitaly.md)
|
||||
is recommended over [NFS](nfs.md) wherever possible for improved performance.
|
||||
|
||||
1. If necessary, install the NFS client utility packages using the following
|
||||
|
@ -79,19 +81,22 @@ is recommended over [NFS](nfs.md) wherever possible for improved performance.
|
|||
|
||||
1. [Enable monitoring](#enable-monitoring)
|
||||
|
||||
NOTE: **Note:** To maintain uniformity of links across HA clusters, the `external_url`
|
||||
NOTE: **Note:**
|
||||
To maintain uniformity of links across HA clusters, the `external_url`
|
||||
on the first application server as well as the additional application
|
||||
servers should point to the external URL that users will use to access GitLab.
|
||||
In a typical HA setup, this will be the URL of the load balancer which will
|
||||
route traffic to all GitLab application servers in the HA cluster.
|
||||
|
||||
NOTE: **Note:** When you specify `https` in the `external_url`, as in the example
|
||||
NOTE: **Note:**
|
||||
When you specify `https` in the `external_url`, as in the example
|
||||
above, GitLab assumes you have SSL certificates in `/etc/gitlab/ssl/`. If
|
||||
certificates are not present, NGINX will fail to start. See
|
||||
[NGINX documentation](https://docs.gitlab.com/omnibus/settings/nginx.html#enable-https)
|
||||
for more information.
|
||||
|
||||
NOTE: **Note:** It is best to set the `uid` and `gid`s prior to the initial reconfigure
|
||||
NOTE: **Note:**
|
||||
It is best to set the `uid` and `gid`s prior to the initial reconfigure
|
||||
of GitLab. Omnibus will not recursively `chown` directories if set after the initial reconfigure.
|
||||
|
||||
## First GitLab application server
|
||||
|
@ -133,7 +138,8 @@ need some extra configuration.
|
|||
|
||||
1. Run `sudo gitlab-ctl reconfigure` to compile the configuration.
|
||||
|
||||
NOTE: **Note:** You will need to restart the GitLab applications nodes after an update has occurred and database
|
||||
NOTE: **Note:**
|
||||
You will need to restart the GitLab applications nodes after an update has occurred and database
|
||||
migrations performed.
|
||||
|
||||
## Enable Monitoring
|
||||
|
|
|
@ -12,7 +12,8 @@ From GitLab 13.0, using NFS for Git repositories is deprecated. In GitLab 14.0,
|
|||
support for NFS for Git repositories is scheduled to be removed. Upgrade to
|
||||
[Gitaly Cluster](../gitaly/praefect.md) as soon as possible.
|
||||
|
||||
NOTE: **Note:** Filesystem performance has a big impact on overall GitLab
|
||||
NOTE: **Note:**
|
||||
Filesystem performance has a big impact on overall GitLab
|
||||
performance, especially for actions that read or write to Git repositories. See
|
||||
[Filesystem Performance Benchmarking](../operations/filesystem_benchmarking.md)
|
||||
for steps to test filesystem performance.
|
||||
|
@ -105,7 +106,8 @@ administrators to keep NFS server delegation disabled.
|
|||
|
||||
#### Improving NFS performance with Unicorn
|
||||
|
||||
NOTE: **Note:** From GitLab 12.1, it will automatically be detected if Rugged can and should be used per storage.
|
||||
NOTE: **Note:**
|
||||
From GitLab 12.1, it will automatically be detected if Rugged can and should be used per storage.
|
||||
|
||||
If you previously enabled Rugged using the feature flag, you will need to unset the feature flag by using:
|
||||
|
||||
|
@ -117,7 +119,8 @@ If the Rugged feature flag is explicitly set to either true or false, GitLab wil
|
|||
|
||||
#### Improving NFS performance with Puma
|
||||
|
||||
NOTE: **Note:** From GitLab 12.7, Rugged auto-detection is disabled if Puma thread count is greater than 1.
|
||||
NOTE: **Note:**
|
||||
From GitLab 12.7, Rugged auto-detection is disabled if Puma thread count is greater than 1.
|
||||
|
||||
If you want to use Rugged with Puma, it is recommended to [set Puma thread count to 1](https://docs.gitlab.com/omnibus/settings/puma.html#puma-settings).
|
||||
|
||||
|
|
|
@ -94,7 +94,8 @@ you want using steps 1 and 2 from the GitLab downloads page.
|
|||
|
||||
1. Run `gitlab-ctl reconfigure`.
|
||||
|
||||
NOTE: **Note:** You will need to restart the Sidekiq nodes after an update has occurred and database
|
||||
NOTE: **Note:**
|
||||
You will need to restart the Sidekiq nodes after an update has occurred and database
|
||||
migrations performed.
|
||||
|
||||
## Example configuration
|
||||
|
|
|
@ -83,7 +83,8 @@ Plan.default.actual_limits.update!(project_hooks: 100)
|
|||
Plan.default.actual_limits.update!(group_hooks: 100)
|
||||
```
|
||||
|
||||
NOTE: **Note:** Set the limit to `0` to disable it.
|
||||
NOTE: **Note:**
|
||||
Set the limit to `0` to disable it.
|
||||
|
||||
## Incoming emails from auto-responders
|
||||
|
||||
|
@ -120,7 +121,8 @@ Plan.default.actual_limits.update!(offset_pagination_limit: 10000)
|
|||
|
||||
- **Default offset pagination limit:** 50000
|
||||
|
||||
NOTE: **Note:** Set the limit to `0` to disable it.
|
||||
NOTE: **Note:**
|
||||
Set the limit to `0` to disable it.
|
||||
|
||||
## CI/CD limits
|
||||
|
||||
|
@ -152,7 +154,8 @@ To set this limit on a self-managed installation, run the following in the
|
|||
Plan.default.actual_limits.update!(ci_active_jobs: 500)
|
||||
```
|
||||
|
||||
NOTE: **Note:** Set the limit to `0` to disable it.
|
||||
NOTE: **Note:**
|
||||
Set the limit to `0` to disable it.
|
||||
|
||||
### Number of CI/CD subscriptions to a project
|
||||
|
||||
|
@ -174,7 +177,8 @@ To set this limit on a self-managed installation, run the following in the
|
|||
Plan.default.actual_limits.update!(ci_project_subscriptions: 500)
|
||||
```
|
||||
|
||||
NOTE: **Note:** Set the limit to `0` to disable it.
|
||||
NOTE: **Note:**
|
||||
Set the limit to `0` to disable it.
|
||||
|
||||
### Number of pipeline schedules
|
||||
|
||||
|
@ -306,7 +310,8 @@ characters and the rest will not be indexed and hence will not be searchable.
|
|||
This limit can be configured for self-managed installations when [enabling
|
||||
Elasticsearch](../integration/elasticsearch.md#enabling-elasticsearch).
|
||||
|
||||
NOTE: **Note:** Set the limit to `0` to disable it.
|
||||
NOTE: **Note:**
|
||||
Set the limit to `0` to disable it.
|
||||
|
||||
## Wiki limits
|
||||
|
||||
|
|
|
@ -130,7 +130,8 @@ that, login with an Admin account and do following:
|
|||
- Check **Enable PlantUML** checkbox.
|
||||
- Set the PlantUML instance as `https://gitlab.example.com/-/plantuml/`.
|
||||
|
||||
NOTE: **Note:** If you are using a PlantUML server running v1.2020.9 and
|
||||
NOTE: **Note:**
|
||||
If you are using a PlantUML server running v1.2020.9 and
|
||||
above (for example, [plantuml.com](https://plantuml.com)), set the `PLANTUML_ENCODING`
|
||||
environment variable to enable the `deflate` compression. On Omnibus,
|
||||
this can be done set in `/etc/gitlab.rb`:
|
||||
|
|
|
@ -45,7 +45,8 @@ detail below.
|
|||
|
||||
## Enabling and disabling terminal support
|
||||
|
||||
NOTE: **Note:** AWS Elastic Load Balancers (ELBs) do not support web sockets.
|
||||
NOTE: **Note:**
|
||||
AWS Elastic Load Balancers (ELBs) do not support web sockets.
|
||||
AWS Application Load Balancers (ALBs) must be used if you want web terminals
|
||||
to work. See [AWS Elastic Load Balancing Product Comparison](https://aws.amazon.com/elasticloadbalancing/features/#compare)
|
||||
for more information.
|
||||
|
|
|
@ -106,7 +106,8 @@ If you configure GitLab to store CI logs and artifacts on object storage, you mu
|
|||
|
||||
#### Object Storage Settings
|
||||
|
||||
NOTE: **Note:** In GitLab 13.2 and later, we recommend using the
|
||||
NOTE: **Note:**
|
||||
In GitLab 13.2 and later, we recommend using the
|
||||
[consolidated object storage settings](object_storage.md#consolidated-object-storage-configuration).
|
||||
This section describes the earlier configuration format.
|
||||
|
||||
|
@ -163,7 +164,7 @@ _The artifacts are stored by default in
|
|||
gitlab-rake gitlab:artifacts:migrate
|
||||
```
|
||||
|
||||
CAUTION: **CAUTION:**
|
||||
CAUTION: **Caution:**
|
||||
JUnit test report artifact (`junit.xml.gz`) migration
|
||||
[is not supported](https://gitlab.com/gitlab-org/gitlab/-/issues/27698)
|
||||
by the `gitlab:artifacts:migrate` script.
|
||||
|
@ -196,7 +197,7 @@ _The artifacts are stored by default in
|
|||
sudo -u git -H bundle exec rake gitlab:artifacts:migrate RAILS_ENV=production
|
||||
```
|
||||
|
||||
CAUTION: **CAUTION:**
|
||||
CAUTION: **Caution:**
|
||||
JUnit test report artifact (`junit.xml.gz`) migration
|
||||
[is not supported](https://gitlab.com/gitlab-org/gitlab/-/issues/27698)
|
||||
by the `gitlab:artifacts:migrate` script.
|
||||
|
@ -434,7 +435,7 @@ the number you want.
|
|||
|
||||
#### Delete job artifacts from jobs completed before a specific date
|
||||
|
||||
CAUTION: **CAUTION:**
|
||||
CAUTION: **Caution:**
|
||||
These commands remove data permanently from the database and from disk. We
|
||||
highly recommend running them only under the guidance of a Support Engineer, or
|
||||
running them in a test environment with a backup of the instance ready to be
|
||||
|
@ -460,7 +461,7 @@ If you need to manually remove job artifacts associated with multiple jobs while
|
|||
|
||||
1. Delete job artifacts older than a specific date:
|
||||
|
||||
NOTE: **NOTE:**
|
||||
NOTE: **Note:**
|
||||
This step will also erase artifacts that users have chosen to
|
||||
["keep"](../ci/pipelines/job_artifacts.md#browsing-artifacts).
|
||||
|
||||
|
@ -481,7 +482,7 @@ If you need to manually remove job artifacts associated with multiple jobs while
|
|||
|
||||
#### Delete job artifacts and logs from jobs completed before a specific date
|
||||
|
||||
CAUTION: **CAUTION:**
|
||||
CAUTION: **Caution:**
|
||||
These commands remove data permanently from the database and from disk. We
|
||||
highly recommend running them only under the guidance of a Support Engineer, or
|
||||
running them in a test environment with a backup of the instance ready to be
|
||||
|
|
|
@ -73,7 +73,7 @@ job output in the UI will be empty.
|
|||
|
||||
For example, to delete all job logs older than 60 days, run the following from a shell in your GitLab instance:
|
||||
|
||||
DANGER: **Warning:**
|
||||
DANGER: **Danger:**
|
||||
This command will permanently delete the log files and is irreversible.
|
||||
|
||||
```shell
|
||||
|
|
|
@ -63,7 +63,8 @@ GitLab provides two different options for the uploading mechanism: "Direct uploa
|
|||
|
||||
[Read more about using object storage with GitLab](../object_storage.md).
|
||||
|
||||
NOTE: **Note:** In GitLab 13.2 and later, we recommend using the
|
||||
NOTE: **Note:**
|
||||
In GitLab 13.2 and later, we recommend using the
|
||||
[consolidated object storage settings](../object_storage.md#consolidated-object-storage-configuration).
|
||||
This section describes the earlier configuration format.
|
||||
|
||||
|
|
|
@ -112,7 +112,8 @@ The ActionCable connection or channel class is used as the `controller`.
|
|||
}
|
||||
```
|
||||
|
||||
NOTE: **Note:** Starting with GitLab 12.5, if an error occurs, an
|
||||
NOTE: **Note:**
|
||||
Starting with GitLab 12.5, if an error occurs, an
|
||||
`exception` field is included with `class`, `message`, and
|
||||
`backtrace`. Previous versions included an `error` field instead of
|
||||
`exception.class` and `exception.message`. For example:
|
||||
|
|
|
@ -72,7 +72,8 @@ be configured already.
|
|||
|
||||
## Object Storage Settings
|
||||
|
||||
NOTE: **Note:** In GitLab 13.2 and later, we recommend using the
|
||||
NOTE: **Note:**
|
||||
In GitLab 13.2 and later, we recommend using the
|
||||
[consolidated object storage settings](object_storage.md#consolidated-object-storage-configuration).
|
||||
This section describes the earlier configuration format.
|
||||
|
||||
|
|
|
@ -44,13 +44,15 @@ Using the consolidated object storage configuration has a number of advantages:
|
|||
- It enables the use of [encrypted S3 buckets](#encrypted-s3-buckets).
|
||||
- It [uploads files to S3 with proper `Content-MD5` headers](https://gitlab.com/gitlab-org/gitlab-workhorse/-/issues/222).
|
||||
|
||||
NOTE: **Note:** Only AWS S3-compatible providers and Google are
|
||||
NOTE: **Note:**
|
||||
Only AWS S3-compatible providers and Google are
|
||||
supported at the moment since [direct upload
|
||||
mode](../development/uploads.md#direct-upload) must be used. Background
|
||||
upload is not supported in this mode. We recommend direct upload mode because
|
||||
it does not require a shared folder, and [this setting may become the default](https://gitlab.com/gitlab-org/gitlab/-/issues/27331).
|
||||
|
||||
NOTE: **Note:** Consolidated object storage configuration cannot be used for
|
||||
NOTE: **Note:**
|
||||
Consolidated object storage configuration cannot be used for
|
||||
backups or Mattermost. See [the full table for a complete list](#storage-specific-configuration).
|
||||
|
||||
Most types of objects, such as CI artifacts, LFS files, upload
|
||||
|
@ -253,7 +255,8 @@ gitlab_rails['object_store']['connection'] = {
|
|||
|
||||
#### OpenStack-compatible connection settings
|
||||
|
||||
NOTE: **Note:** This is not compatible with the consolidated object storage form.
|
||||
NOTE: **Note:**
|
||||
This is not compatible with the consolidated object storage form.
|
||||
OpenStack Swift is only supported with the storage-specific form. See the
|
||||
[S3 settings](#s3-compatible-connection-settings) if you want to use the consolidated form.
|
||||
|
||||
|
@ -274,7 +277,8 @@ Here are the valid connection settings below for the Swift API, provided by
|
|||
|
||||
#### Rackspace Cloud Files
|
||||
|
||||
NOTE: **Note:** This is not compatible with the consolidated object
|
||||
NOTE: **Note:**
|
||||
This is not compatible with the consolidated object
|
||||
storage form. Rackspace Cloud is only supported with the storage-specific form.
|
||||
|
||||
Here are the valid connection parameters for Rackspace Cloud, provided by
|
||||
|
@ -408,7 +412,8 @@ additional complexity and unnecessary redundancy. Since both GitLab
|
|||
Rails and Workhorse components need access to object storage, the
|
||||
consolidated form avoids excessive duplication of credentials.
|
||||
|
||||
NOTE: **Note:** The consolidated object storage configuration is **only** used if all
|
||||
NOTE: **Note:**
|
||||
The consolidated object storage configuration is **only** used if all
|
||||
lines from the original form is omitted. To move to the consolidated form, remove the original configuration (for example, `artifacts_object_store_enabled`, `uploads_object_store_connection`, and so on.)
|
||||
|
||||
## Storage-specific configuration
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/1631) in [GitLab Starter](https://about.gitlab.com/pricing/) 9.3.
|
||||
> - [Available in](https://gitlab.com/gitlab-org/gitlab/-/issues/3953) GitLab Community Edition 10.4.
|
||||
|
||||
NOTE: **Note:** This document describes a drop-in replacement for the
|
||||
NOTE: **Note:**
|
||||
This document describes a drop-in replacement for the
|
||||
`authorized_keys` file. For normal (non-deploy key) users, consider using
|
||||
[SSH certificates](ssh_certificates.md). They are even faster, but are not a
|
||||
drop-in replacement.
|
||||
|
@ -73,16 +74,19 @@ Confirm that SSH is working by commenting out your user's key in the `authorized
|
|||
A successful pull would mean that GitLab was able to find the key in the database,
|
||||
since it is not present in the file anymore.
|
||||
|
||||
NOTE: **Note:** For Omnibus Docker, `AuthorizedKeysCommand` is setup by default in
|
||||
NOTE: **Note:**
|
||||
For Omnibus Docker, `AuthorizedKeysCommand` is setup by default in
|
||||
GitLab 11.11 and later.
|
||||
|
||||
NOTE: **Note:** For Installations from source, the command would be located at
|
||||
NOTE: **Note:**
|
||||
For Installations from source, the command would be located at
|
||||
`/home/git/gitlab-shell/bin/gitlab-shell-authorized-keys-check` if [the install from source](../../install/installation.md#install-gitlab-shell) instructions were followed.
|
||||
You might want to consider creating a wrapper script somewhere else since this command needs to be
|
||||
owned by `root` and not be writable by group or others. You could also consider changing the ownership of this command
|
||||
as required, but that might require temporary ownership changes during `gitlab-shell` upgrades.
|
||||
|
||||
CAUTION: **Caution:** Do not disable writes until SSH is confirmed to be working
|
||||
CAUTION: **Caution:**
|
||||
Do not disable writes until SSH is confirmed to be working
|
||||
perfectly, because the file will quickly become out-of-date.
|
||||
|
||||
In the case of lookup failures (which are common), the `authorized_keys`
|
||||
|
|
|
@ -65,7 +65,8 @@ operations per second.
|
|||
|
||||
### Simple benchmarking
|
||||
|
||||
NOTE: **Note:** This test is naive but may be useful if `fio` is not
|
||||
NOTE: **Note:**
|
||||
This test is naive but may be useful if `fio` is not
|
||||
available on the system. It's possible to receive good results on this
|
||||
test but still have poor performance due to read speed and various other
|
||||
factors.
|
||||
|
|
|
@ -344,7 +344,8 @@ This path is accessible to:
|
|||
- The user running the Container Registry daemon.
|
||||
- The user running GitLab.
|
||||
|
||||
CAUTION: **Warning:** You should confirm that all GitLab, Registry and web server users
|
||||
CAUTION: **Warning:**
|
||||
You should confirm that all GitLab, Registry and web server users
|
||||
have access to this directory.
|
||||
|
||||
**Omnibus GitLab installations**
|
||||
|
@ -382,7 +383,8 @@ driver for the Container Registry.
|
|||
|
||||
[Read more about using object storage with GitLab](../object_storage.md).
|
||||
|
||||
CAUTION: **Warning:** GitLab will not backup Docker images that are not stored on the
|
||||
CAUTION: **Warning:**
|
||||
GitLab will not backup Docker images that are not stored on the
|
||||
filesystem. Remember to enable backups with your object storage provider if
|
||||
desired.
|
||||
|
||||
|
|
|
@ -87,7 +87,8 @@ store the blobs of the dependency proxy.
|
|||
|
||||
[Read more about using object storage with GitLab](../object_storage.md).
|
||||
|
||||
NOTE: **Note:** In GitLab 13.2 and later, we recommend using the
|
||||
NOTE: **Note:**
|
||||
In GitLab 13.2 and later, we recommend using the
|
||||
[consolidated object storage settings](../object_storage.md#consolidated-object-storage-configuration).
|
||||
This section describes the earlier configuration format.
|
||||
|
||||
|
|
|
@ -99,7 +99,8 @@ store packages.
|
|||
|
||||
[Read more about using object storage with GitLab](../object_storage.md).
|
||||
|
||||
NOTE: **Note:** We recommend using the [consolidated object storage settings](../object_storage.md#consolidated-object-storage-configuration). The following instructions apply to the original config format.
|
||||
NOTE: **Note:**
|
||||
We recommend using the [consolidated object storage settings](../object_storage.md#consolidated-object-storage-configuration). The following instructions apply to the original config format.
|
||||
|
||||
**Omnibus GitLab installations**
|
||||
|
||||
|
|
|
@ -966,7 +966,8 @@ after it has been restored to service.
|
|||
gitlab-ctl restart repmgrd
|
||||
```
|
||||
|
||||
CAUTION: **Warning:** When the server is brought back online, and before
|
||||
CAUTION: **Warning:**
|
||||
When the server is brought back online, and before
|
||||
you switch it to a standby node, repmgr will report that there are two masters.
|
||||
If there are any clients that are still attempting to write to the old master,
|
||||
this will cause a split, and the old master will need to be resynced from
|
||||
|
@ -1129,7 +1130,8 @@ If you're running into an issue with a component not outlined here, be sure to c
|
|||
|
||||
## Patroni
|
||||
|
||||
NOTE: **Note:** Starting from GitLab 13.1, Patroni is available for **experimental** use to replace repmgr. Due to its
|
||||
NOTE: **Note:**
|
||||
Starting from GitLab 13.1, Patroni is available for **experimental** use to replace repmgr. Due to its
|
||||
experimental nature, Patroni support is **subject to change without notice.**
|
||||
|
||||
Patroni is an opinionated solution for PostgreSQL high-availability. It takes the control of PostgreSQL, overrides its
|
||||
|
@ -1320,7 +1322,8 @@ You can switch an exiting database cluster to use Patroni instead of repmgr with
|
|||
sudo gitlab-ctl stop postgresql
|
||||
```
|
||||
|
||||
NOTE: **Note:** Ensure that there is no `walsender` process running on the primary node.
|
||||
NOTE: **Note:**
|
||||
Ensure that there is no `walsender` process running on the primary node.
|
||||
`ps aux | grep walsender` must not show any running process.
|
||||
|
||||
1. On the primary node, [configure Patroni](#configuring-patroni-cluster). Remove `repmgr` and any other
|
||||
|
|
|
@ -53,7 +53,8 @@ together with Omnibus GitLab. This is recommended as part of our
|
|||
gitlab_rails['auto_migrate'] = false
|
||||
```
|
||||
|
||||
NOTE: **Note:** The role `postgres_role` was introduced with GitLab 10.3
|
||||
NOTE: **Note:**
|
||||
The role `postgres_role` was introduced with GitLab 10.3
|
||||
|
||||
1. [Reconfigure GitLab](../restart_gitlab.md#omnibus-gitlab-reconfigure) for the changes to take effect.
|
||||
1. Note the PostgreSQL node's IP address or hostname, port, and
|
||||
|
|
|
@ -36,7 +36,7 @@ The following task will run a [group sync](../auth/ldap/index.md#group-sync-star
|
|||
when you'd like to update all configured group memberships against LDAP without
|
||||
waiting for the next scheduled group sync to be run.
|
||||
|
||||
NOTE: **NOTE:**
|
||||
NOTE: **Note:**
|
||||
If you'd like to change the frequency at which a group sync is performed,
|
||||
[adjust the cron schedule](../auth/ldap/index.md#adjusting-ldap-group-sync-schedule-starter-only)
|
||||
instead.
|
||||
|
|
|
@ -260,7 +260,7 @@ clear it.
|
|||
|
||||
To clear all exclusive leases:
|
||||
|
||||
DANGER: **DANGER**:
|
||||
DANGER: **Danger:**
|
||||
Don't run it while GitLab or Sidekiq is running
|
||||
|
||||
```shell
|
||||
|
|
|
@ -339,7 +339,8 @@ the same Sentinels.
|
|||
|
||||
### Step 3. Configuring the Redis Sentinel instances
|
||||
|
||||
NOTE: **Note:** If you are using an external Redis Sentinel instance, be sure
|
||||
NOTE: **Note:**
|
||||
If you are using an external Redis Sentinel instance, be sure
|
||||
to exclude the `requirepass` parameter from the Sentinel
|
||||
configuration. This parameter will cause clients to report `NOAUTH
|
||||
Authentication required.`. [Redis Sentinel 3.2.x does not support
|
||||
|
|
|
@ -658,7 +658,8 @@ On each node perform the following:
|
|||
sudo gitlab-ctl tail gitaly
|
||||
```
|
||||
|
||||
NOTE: **Note:** When you specify `https` in the `external_url`, as in the example
|
||||
NOTE: **Note:**
|
||||
When you specify `https` in the `external_url`, as in the example
|
||||
above, GitLab assumes you have SSL certificates in `/etc/gitlab/ssl/`. If
|
||||
certificates are not present, NGINX will fail to start. See the
|
||||
[NGINX documentation](https://docs.gitlab.com/omnibus/settings/nginx.html#enable-https)
|
||||
|
|
|
@ -4,7 +4,8 @@ This page describes GitLab reference architecture for up to 3,000 users.
|
|||
For a full list of reference architectures, see
|
||||
[Available reference architectures](index.md#available-reference-architectures).
|
||||
|
||||
NOTE: **Note:** The 3,000-user reference architecture documented below is
|
||||
NOTE: **Note:**
|
||||
The 3,000-user reference architecture documented below is
|
||||
designed to help your organization achieve a highly-available GitLab deployment.
|
||||
If you do not have the expertise or need to maintain a highly-available
|
||||
environment, you can have a simpler and less costly-to-operate environment by
|
||||
|
|
|
@ -38,7 +38,8 @@ When scaling GitLab, there are several factors to consider:
|
|||
- A load balancer is added in front to distribute traffic across the application nodes.
|
||||
- The application nodes connects to a shared file server and PostgreSQL and Redis services on the backend.
|
||||
|
||||
NOTE: **Note:** Depending on your workflow, the following recommended
|
||||
NOTE: **Note:**
|
||||
Depending on your workflow, the following recommended
|
||||
reference architectures may need to be adapted accordingly. Your workload
|
||||
is influenced by factors including how active your users are,
|
||||
how much automation you use, mirroring, and repository/change size. Additionally the
|
||||
|
|
|
@ -60,7 +60,8 @@ files and add the full paths of the alternative repository storage paths. In
|
|||
the example below, we add two more mount points that are named `nfs_1` and `nfs_2`
|
||||
respectively.
|
||||
|
||||
NOTE: **Note:** This example uses NFS. We do not recommend using EFS for storage as it may impact GitLab's performance. See the [relevant documentation](high_availability/nfs.md#avoid-using-awss-elastic-file-system-efs) for more details.
|
||||
NOTE: **Note:**
|
||||
This example uses NFS. We do not recommend using EFS for storage as it may impact GitLab's performance. See the [relevant documentation](high_availability/nfs.md#avoid-using-awss-elastic-file-system-efs) for more details.
|
||||
|
||||
**For installations from source**
|
||||
|
||||
|
|
|
@ -21,7 +21,8 @@ files must be provided:
|
|||
Optionally, you can also provide a bundle of CA certs (PEM-encoded) to be
|
||||
included on each signature. This will typically be an intermediate CA.
|
||||
|
||||
NOTE: **Note:** Be mindful of the access levels for your private keys and visibility to
|
||||
NOTE: **Note:**
|
||||
Be mindful of the access levels for your private keys and visibility to
|
||||
third parties.
|
||||
|
||||
**For Omnibus installations:**
|
||||
|
@ -38,7 +39,8 @@ third parties.
|
|||
|
||||
1. Save the file and [reconfigure GitLab](restart_gitlab.md#omnibus-gitlab-reconfigure) for the changes to take effect.
|
||||
|
||||
NOTE: **Note:** The key needs to be readable by the GitLab system user (`git` by default).
|
||||
NOTE: **Note:**
|
||||
The key needs to be readable by the GitLab system user (`git` by default).
|
||||
|
||||
**For installations from source:**
|
||||
|
||||
|
@ -61,7 +63,8 @@ NOTE: **Note:** The key needs to be readable by the GitLab system user (`git` by
|
|||
|
||||
1. Save the file and [restart GitLab](restart_gitlab.md#installations-from-source) for the changes to take effect.
|
||||
|
||||
NOTE: **Note:** The key needs to be readable by the GitLab system user (`git` by default).
|
||||
NOTE: **Note:**
|
||||
The key needs to be readable by the GitLab system user (`git` by default).
|
||||
|
||||
### How to convert S/MIME PKCS#12 / PFX format to PEM encoding
|
||||
|
||||
|
|
|
@ -11,13 +11,13 @@ having an issue with GitLab, it is highly recommended that you check your
|
|||
[support options](https://about.gitlab.com/support/) first, before attempting to use
|
||||
this information.
|
||||
|
||||
CAUTION: **CAUTION:**
|
||||
CAUTION: **Caution:**
|
||||
Please note that some of these scripts could be damaging if not run correctly,
|
||||
or under the right conditions. We highly recommend running them under the
|
||||
guidance of a Support Engineer, or running them in a test environment with a
|
||||
backup of the instance ready to be restored, just in case.
|
||||
|
||||
CAUTION: **CAUTION:**
|
||||
CAUTION: **Caution:**
|
||||
Please also note that as GitLab changes, changes to the code are inevitable,
|
||||
and so some scripts may not work as they once used to. These are not kept
|
||||
up-to-date as these scripts/commands were added as they were found/needed. As
|
||||
|
|
|
@ -10,7 +10,7 @@ and it may be useful for users with experience with Linux. If you are currently
|
|||
having an issue with GitLab, you may want to check your [support options](https://about.gitlab.com/support/)
|
||||
first, before attempting to use this information.
|
||||
|
||||
CAUTION: **CAUTION:**
|
||||
CAUTION: **Caution:**
|
||||
If you are administering GitLab you are expected to know these commands for your distribution
|
||||
of choice. If you are a GitLab Support Engineer, consider this a cross-reference to
|
||||
translate `yum` -> `apt-get` and the like.
|
||||
|
|
|
@ -6,7 +6,7 @@ Thanks to this, we also get access to the amazing tools built right into Rails.
|
|||
In this guide, we'll introduce the [Rails console](debug.md#starting-a-rails-console-session)
|
||||
and the basics of interacting with your GitLab instance from the command line.
|
||||
|
||||
CAUTION: **CAUTION:**
|
||||
CAUTION: **Caution:**
|
||||
The Rails console interacts directly with your GitLab instance. In many cases,
|
||||
there are no handrails to prevent you from permanently modifying, corrupting
|
||||
or destroying production data. If you would like to explore the Rails console
|
||||
|
|
|
@ -8,7 +8,8 @@ This page is useful information about PostgreSQL that the GitLab Support
|
|||
Team sometimes uses while troubleshooting. GitLab is making this public, so that anyone
|
||||
can make use of the Support team's collected knowledge.
|
||||
|
||||
CAUTION: **Caution:** Some procedures documented here may break your GitLab instance. Use at your own risk.
|
||||
CAUTION: **Caution:**
|
||||
Some procedures documented here may break your GitLab instance. Use at your own risk.
|
||||
|
||||
If you are on a [paid tier](https://about.gitlab.com/pricing/) and are not sure how
|
||||
to use these commands, it is best to [contact Support](https://about.gitlab.com/support/)
|
||||
|
@ -115,7 +116,8 @@ Quoting from issue [#1](https://gitlab.com/gitlab-org/gitlab/-/issues/30528):
|
|||
|
||||
> "If a deadlock is hit, and we resolve it through aborting the transaction after a short period, then the retry mechanisms we already have will make the deadlocked piece of work try again, and it's unlikely we'll deadlock multiple times in a row."
|
||||
|
||||
TIP: **Tip:** In support, our general approach to reconfiguring timeouts (applies also to the HTTP stack as well) is that it's acceptable to do it temporarily as a workaround. If it makes GitLab usable for the customer, then it buys time to understand the problem more completely, implement a hot fix, or make some other change that addresses the root cause. Generally, the timeouts should be put back to reasonable defaults once the root cause is resolved.
|
||||
TIP: **Tip:**
|
||||
In support, our general approach to reconfiguring timeouts (applies also to the HTTP stack as well) is that it's acceptable to do it temporarily as a workaround. If it makes GitLab usable for the customer, then it buys time to understand the problem more completely, implement a hot fix, or make some other change that addresses the root cause. Generally, the timeouts should be put back to reasonable defaults once the root cause is resolved.
|
||||
|
||||
In this case, the guidance we had from development was to drop deadlock_timeout and/or statement_timeout but to leave the third setting at 60s. Setting idle_in_transaction protects the database from sessions potentially hanging for days. There's more discussion in [the issue relating to introducing this timeout on GitLab.com](https://gitlab.com/gitlab-com/gl-infra/production/-/issues/1053).
|
||||
|
||||
|
|
|
@ -283,7 +283,8 @@ queue = Sidekiq::Queue.new('<queue name>')
|
|||
queue.each { |job| job.delete if <condition>}
|
||||
```
|
||||
|
||||
NOTE: **Note:** This will remove jobs that are queued but not started, running jobs will not be killed. Have a look at the section below for cancelling running jobs.
|
||||
NOTE: **Note:**
|
||||
This will remove jobs that are queued but not started, running jobs will not be killed. Have a look at the section below for cancelling running jobs.
|
||||
|
||||
In the method above, `<queue-name>` is the name of the queue that contains the job(s) you want to delete and `<condition>` will decide which jobs get deleted.
|
||||
|
||||
|
|
|
@ -57,7 +57,8 @@ This configuration relies on valid AWS credentials to be configured already.
|
|||
|
||||
[Read more about using object storage with GitLab](object_storage.md).
|
||||
|
||||
NOTE: **Note:** We recommend using the [consolidated object storage settings](object_storage.md#consolidated-object-storage-configuration). The following instructions apply to the original config format.
|
||||
NOTE: **Note:**
|
||||
We recommend using the [consolidated object storage settings](object_storage.md#consolidated-object-storage-configuration). The following instructions apply to the original config format.
|
||||
|
||||
## Object Storage Settings
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ are paginated.
|
|||
|
||||
Read more on [pagination](README.md#pagination).
|
||||
|
||||
CAUTION: **Deprecation**
|
||||
CAUTION: **Deprecation:**
|
||||
> `reference` attribute in response is deprecated in favour of `references`.
|
||||
> Introduced [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354)
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9566) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.5.
|
||||
|
||||
CAUTION: **Deprecation**
|
||||
CAUTION: **Deprecation:**
|
||||
This API is deprecated and [scheduled for removal in GitLab 14.0](https://gitlab.com/gitlab-org/gitlab/-/issues/213369).
|
||||
|
||||
The API for creating, updating, reading and deleting Feature Flag Specs.
|
||||
|
|
|
@ -8,7 +8,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9566) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.5.
|
||||
|
||||
CAUTION: **Deprecation**
|
||||
CAUTION: **Deprecation:**
|
||||
This API is deprecated and [scheduled for removal in GitLab 14.0](https://gitlab.com/gitlab-org/gitlab/-/issues/213369). Use [this API](feature_flags.md) instead.
|
||||
|
||||
API for accessing resources of [GitLab Feature Flags](../operations/feature_flags.md).
|
||||
|
|
|
@ -4370,6 +4370,11 @@ type EpicIssue implements Noteable {
|
|||
The connection type for EpicIssue.
|
||||
"""
|
||||
type EpicIssueConnection {
|
||||
"""
|
||||
Total count of collection
|
||||
"""
|
||||
count: Int!
|
||||
|
||||
"""
|
||||
A list of edges.
|
||||
"""
|
||||
|
@ -5043,6 +5048,11 @@ type Group {
|
|||
"""
|
||||
iids: [String!]
|
||||
|
||||
"""
|
||||
Iterations applied to the issue
|
||||
"""
|
||||
iterationId: [ID]
|
||||
|
||||
"""
|
||||
Labels applied to this issue
|
||||
"""
|
||||
|
@ -5967,6 +5977,11 @@ type Issue implements Noteable {
|
|||
The connection type for Issue.
|
||||
"""
|
||||
type IssueConnection {
|
||||
"""
|
||||
Total count of collection
|
||||
"""
|
||||
count: Int!
|
||||
|
||||
"""
|
||||
A list of edges.
|
||||
"""
|
||||
|
@ -9199,6 +9214,11 @@ type Project {
|
|||
"""
|
||||
iids: [String!]
|
||||
|
||||
"""
|
||||
Iterations applied to the issue
|
||||
"""
|
||||
iterationId: [ID]
|
||||
|
||||
"""
|
||||
Labels applied to this issue
|
||||
"""
|
||||
|
@ -9294,6 +9314,11 @@ type Project {
|
|||
"""
|
||||
iids: [String!]
|
||||
|
||||
"""
|
||||
Iterations applied to the issue
|
||||
"""
|
||||
iterationId: [ID]
|
||||
|
||||
"""
|
||||
Labels applied to this issue
|
||||
"""
|
||||
|
|
|
@ -12216,6 +12216,24 @@
|
|||
"name": "EpicIssueConnection",
|
||||
"description": "The connection type for EpicIssue.",
|
||||
"fields": [
|
||||
{
|
||||
"name": "count",
|
||||
"description": "Total count of collection",
|
||||
"args": [
|
||||
|
||||
],
|
||||
"type": {
|
||||
"kind": "NON_NULL",
|
||||
"name": null,
|
||||
"ofType": {
|
||||
"kind": "SCALAR",
|
||||
"name": "Int",
|
||||
"ofType": null
|
||||
}
|
||||
},
|
||||
"isDeprecated": false,
|
||||
"deprecationReason": null
|
||||
},
|
||||
{
|
||||
"name": "edges",
|
||||
"description": "A list of edges.",
|
||||
|
@ -14041,6 +14059,20 @@
|
|||
},
|
||||
"defaultValue": "created_desc"
|
||||
},
|
||||
{
|
||||
"name": "iterationId",
|
||||
"description": "Iterations applied to the issue",
|
||||
"type": {
|
||||
"kind": "LIST",
|
||||
"name": null,
|
||||
"ofType": {
|
||||
"kind": "SCALAR",
|
||||
"name": "ID",
|
||||
"ofType": null
|
||||
}
|
||||
},
|
||||
"defaultValue": null
|
||||
},
|
||||
{
|
||||
"name": "after",
|
||||
"description": "Returns the elements in the list that come after the specified cursor.",
|
||||
|
@ -16428,6 +16460,24 @@
|
|||
"name": "IssueConnection",
|
||||
"description": "The connection type for Issue.",
|
||||
"fields": [
|
||||
{
|
||||
"name": "count",
|
||||
"description": "Total count of collection",
|
||||
"args": [
|
||||
|
||||
],
|
||||
"type": {
|
||||
"kind": "NON_NULL",
|
||||
"name": null,
|
||||
"ofType": {
|
||||
"kind": "SCALAR",
|
||||
"name": "Int",
|
||||
"ofType": null
|
||||
}
|
||||
},
|
||||
"isDeprecated": false,
|
||||
"deprecationReason": null
|
||||
},
|
||||
{
|
||||
"name": "edges",
|
||||
"description": "A list of edges.",
|
||||
|
@ -27439,6 +27489,20 @@
|
|||
"ofType": null
|
||||
},
|
||||
"defaultValue": "created_desc"
|
||||
},
|
||||
{
|
||||
"name": "iterationId",
|
||||
"description": "Iterations applied to the issue",
|
||||
"type": {
|
||||
"kind": "LIST",
|
||||
"name": null,
|
||||
"ofType": {
|
||||
"kind": "SCALAR",
|
||||
"name": "ID",
|
||||
"ofType": null
|
||||
}
|
||||
},
|
||||
"defaultValue": null
|
||||
}
|
||||
],
|
||||
"type": {
|
||||
|
@ -27619,6 +27683,20 @@
|
|||
},
|
||||
"defaultValue": "created_desc"
|
||||
},
|
||||
{
|
||||
"name": "iterationId",
|
||||
"description": "Iterations applied to the issue",
|
||||
"type": {
|
||||
"kind": "LIST",
|
||||
"name": null,
|
||||
"ofType": {
|
||||
"kind": "SCALAR",
|
||||
"name": "ID",
|
||||
"ofType": null
|
||||
}
|
||||
},
|
||||
"defaultValue": null
|
||||
},
|
||||
{
|
||||
"name": "after",
|
||||
"description": "Returns the elements in the list that come after the specified cursor.",
|
||||
|
|
|
@ -170,7 +170,8 @@ Example response:
|
|||
}
|
||||
```
|
||||
|
||||
NOTE: **Note:** An older endpoint `PUT /groups/:id/labels` with `name` in the parameters is still available, but deprecated.
|
||||
NOTE: **Note:**
|
||||
An older endpoint `PUT /groups/:id/labels` with `name` in the parameters is still available, but deprecated.
|
||||
|
||||
## Delete a group label
|
||||
|
||||
|
@ -189,7 +190,8 @@ DELETE /groups/:id/labels/:label_id
|
|||
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/labels/bug"
|
||||
```
|
||||
|
||||
NOTE: **Note:** An older endpoint `DELETE /groups/:id/labels` with `name` in the parameters is still available, but deprecated.
|
||||
NOTE: **Note:**
|
||||
An older endpoint `DELETE /groups/:id/labels` with `name` in the parameters is still available, but deprecated.
|
||||
|
||||
## Subscribe to a group label
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ are paginated.
|
|||
|
||||
Read more on [pagination](README.md#pagination).
|
||||
|
||||
CAUTION: **Deprecation**
|
||||
CAUTION: **Deprecation:**
|
||||
> `reference` attribute in response is deprecated in favour of `references`.
|
||||
> Introduced [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354)
|
||||
|
||||
|
|
|
@ -199,7 +199,8 @@ DELETE /projects/:id/labels/:label_id
|
|||
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/labels/bug"
|
||||
```
|
||||
|
||||
NOTE: **Note:** An older endpoint `DELETE /projects/:id/labels` with `name` in the parameters is still available, but deprecated.
|
||||
NOTE: **Note:**
|
||||
An older endpoint `DELETE /projects/:id/labels` with `name` in the parameters is still available, but deprecated.
|
||||
|
||||
## Edit an existing label
|
||||
|
||||
|
@ -242,7 +243,8 @@ Example response:
|
|||
}
|
||||
```
|
||||
|
||||
NOTE: **Note:** An older endpoint `PUT /projects/:id/labels` with `name` or `label_id` in the parameters is still available, but deprecated.
|
||||
NOTE: **Note:**
|
||||
An older endpoint `PUT /projects/:id/labels` with `name` or `label_id` in the parameters is still available, but deprecated.
|
||||
|
||||
## Promote a project label to a group label
|
||||
|
||||
|
@ -279,7 +281,8 @@ Example response:
|
|||
}
|
||||
```
|
||||
|
||||
NOTE: **Note:** An older endpoint `PUT /projects/:id/labels/promote` with `name` in the parameters is still available, but deprecated.
|
||||
NOTE: **Note:**
|
||||
An older endpoint `PUT /projects/:id/labels/promote` with `name` in the parameters is still available, but deprecated.
|
||||
|
||||
## Subscribe to a label
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Every API call to merge requests must be authenticated.
|
||||
|
||||
CAUTION: **Deprecation**
|
||||
CAUTION: **Deprecation:**
|
||||
> `reference` attribute in response is deprecated in favour of `references`.
|
||||
> Introduced [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354)
|
||||
|
||||
|
|
|
@ -68,7 +68,8 @@ the `plan` parameter associated with a namespace:
|
|||
]
|
||||
```
|
||||
|
||||
NOTE: **Note:** Only group maintainers/owners are presented with `members_count_with_descendants`, as well as `plan` **(BRONZE ONLY)**.
|
||||
NOTE: **Note:**
|
||||
Only group maintainers/owners are presented with `members_count_with_descendants`, as well as `plan` **(BRONZE ONLY)**.
|
||||
|
||||
## Search for namespace
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ GET /groups/:id/packages
|
|||
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/packages?exclude_subgroups=true"
|
||||
```
|
||||
|
||||
CAUTION: **Deprecation**
|
||||
CAUTION: **Deprecation:**
|
||||
> The `build_info` attribute in the response is deprecated in favour of `pipeline`.
|
||||
> Introduced [GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28040).
|
||||
|
||||
|
@ -165,7 +165,7 @@ GET /projects/:id/packages/:package_id
|
|||
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id"
|
||||
```
|
||||
|
||||
CAUTION: **Deprecation**
|
||||
CAUTION: **Deprecation:**
|
||||
> The `build_info` attribute in the response is deprecated in favour of `pipeline`.
|
||||
> Introduced [GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28040).
|
||||
|
||||
|
|
|
@ -1087,7 +1087,8 @@ POST /projects
|
|||
| `group_with_project_templates_id` | integer | no | **(PREMIUM)** For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires `use_custom_template` to be true |
|
||||
| `packages_enabled` | boolean | no | **(PREMIUM ONLY)** Enable or disable packages repository feature |
|
||||
|
||||
NOTE: **Note:** If your HTTP repository is not publicly accessible,
|
||||
NOTE: **Note:**
|
||||
If your HTTP repository is not publicly accessible,
|
||||
add authentication information to the URL: `https://username:password@gitlab.company.com/group/project.git`
|
||||
where `password` is a public access key with the `api` scope enabled.
|
||||
|
||||
|
@ -1157,7 +1158,8 @@ POST /projects/user/:user_id
|
|||
| `group_with_project_templates_id` | integer | no | **(PREMIUM)** For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires `use_custom_template` to be true |
|
||||
| `packages_enabled` | boolean | no | **(PREMIUM ONLY)** Enable or disable packages repository feature |
|
||||
|
||||
NOTE: **Note:** If your HTTP repository is not publicly accessible,
|
||||
NOTE: **Note:**
|
||||
If your HTTP repository is not publicly accessible,
|
||||
add authentication information to the URL: `https://username:password@gitlab.company.com/group/project.git`
|
||||
where `password` is a public access key with the `api` scope enabled.
|
||||
|
||||
|
@ -1228,7 +1230,8 @@ PUT /projects/:id
|
|||
| `packages_enabled` | boolean | no | **(PREMIUM ONLY)** Enable or disable packages repository feature |
|
||||
| `service_desk_enabled` | boolean | no | **(PREMIUM ONLY)** Enable or disable service desk feature |
|
||||
|
||||
NOTE: **Note:** If your HTTP repository is not publicly accessible,
|
||||
NOTE: **Note:**
|
||||
If your HTTP repository is not publicly accessible,
|
||||
add authentication information to the URL: `https://username:password@gitlab.company.com/group/project.git`
|
||||
where `password` is a public access key with the `api` scope enabled.
|
||||
|
||||
|
|
|
@ -318,7 +318,8 @@ Example Responses:
|
|||
}
|
||||
```
|
||||
|
||||
NOTE: **Note:** The `plan` and `trial` parameters are only available on GitLab Enterprise Edition.
|
||||
NOTE: **Note:**
|
||||
The `plan` and `trial` parameters are only available on GitLab Enterprise Edition.
|
||||
|
||||
Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) will also see
|
||||
the `shared_runners_minutes_limit`, and `extra_shared_runners_minutes_limit` parameters.
|
||||
|
@ -1412,7 +1413,8 @@ Parameters:
|
|||
|
||||
### Get user activities (admin only)
|
||||
|
||||
NOTE: **Note:** This API endpoint is only available on 8.15 (EE) and 9.1 (CE) and above.
|
||||
NOTE: **Note:**
|
||||
This API endpoint is only available on 8.15 (EE) and 9.1 (CE) and above.
|
||||
|
||||
Get the last activity date for all users, sorted from oldest to newest.
|
||||
|
||||
|
|
|
@ -681,11 +681,13 @@ To add `DOCKER_AUTH_CONFIG` to a Runner:
|
|||
|
||||
1. Restart the Runner service.
|
||||
|
||||
NOTE: **Note:** The double quotes included in the `DOCKER_AUTH_CONFIG`
|
||||
NOTE: **Note:**
|
||||
The double quotes included in the `DOCKER_AUTH_CONFIG`
|
||||
data must be escaped with backslashes. This prevents them from being
|
||||
interpreted as TOML.
|
||||
|
||||
NOTE: **Note:** The `environment` option is a list. So your Runner may
|
||||
NOTE: **Note:**
|
||||
The `environment` option is a list. So your Runner may
|
||||
have existing entries and you should add this to the list, not replace
|
||||
it.
|
||||
|
||||
|
@ -715,7 +717,8 @@ To configure credentials store, follow these steps:
|
|||
`${GITLAB_RUNNER_HOME}/.docker/config.json`. GitLab Runner will read this configuration file
|
||||
and will use the needed helper for this specific repository.
|
||||
|
||||
NOTE: **Note:** `credsStore` is used to access ALL the registries.
|
||||
NOTE: **Note:**
|
||||
`credsStore` is used to access ALL the registries.
|
||||
If you will want to use both images from private registry and public images from DockerHub,
|
||||
pulling from DockerHub will fail, because Docker daemon will try to use the same credentials for **ALL** the registries.
|
||||
|
||||
|
|
|
@ -124,7 +124,7 @@ The environment `name` and `url` is exposed in various places
|
|||
within GitLab. Each time a job that has an environment specified
|
||||
succeeds, a deployment is recorded, along with the Git SHA, and environment name.
|
||||
|
||||
CAUTION: **Caution**:
|
||||
CAUTION: **Caution:**
|
||||
Some characters are not allowed in environment names. Use only letters,
|
||||
numbers, spaces, and `-`, `_`, `/`, `{`, `}`, or `.`. Also, it must not start nor end with `/`.
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ To communicate with Vault, you can use either its CLI client or perform API requ
|
|||
|
||||
## Example
|
||||
|
||||
CAUTION: **Caution**:
|
||||
CAUTION: **Caution:**
|
||||
JWTs are credentials, which can grant access to resources. Be careful where you paste them!
|
||||
|
||||
Let's say you have the passwords for your staging and production databases stored in a Vault server that is running on `http://vault.example.com:8200`. Your staging password is `pa$$w0rd` and your production password is `real-pa$$w0rd`.
|
||||
|
@ -156,7 +156,7 @@ Combined with GitLab's [protected branches](../../../user/project/protected_bran
|
|||
|
||||
For the full list of options, see Vault's [Create Role documentation](https://www.vaultproject.io/api/auth/jwt#create-role).
|
||||
|
||||
CAUTION: **Caution**:
|
||||
CAUTION: **Caution:**
|
||||
Always restrict your roles to project or namespace by using one of the provided claims (e.g. `project_id` or `namespace_id`). Otherwise any JWT generated by this instance may be allowed to authenticate using this role.
|
||||
|
||||
Now, configure the JWT Authentication method:
|
||||
|
|
|
@ -38,10 +38,12 @@ but support [is planned](https://gitlab.com/gitlab-org/charts/gitlab-runner/-/is
|
|||
|
||||
## Debugging a running job
|
||||
|
||||
NOTE: **Note:** Not all executors are
|
||||
NOTE: **Note:**
|
||||
Not all executors are
|
||||
[supported](https://docs.gitlab.com/runner/executors/#compatibility-chart).
|
||||
|
||||
NOTE: **Note:** The `docker` executor does not keep running
|
||||
NOTE: **Note:**
|
||||
The `docker` executor does not keep running
|
||||
after the build script is finished. At that point, the terminal will automatically
|
||||
disconnect and will not wait for the user to finish. Please follow [this
|
||||
issue](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/3605) for updates on
|
||||
|
|
|
@ -419,7 +419,7 @@ information in the UI.
|
|||
|
||||
## Erasing artifacts
|
||||
|
||||
DANGER: **Warning:**
|
||||
DANGER: **Danger:**
|
||||
This is a destructive action that leads to data loss. Use with caution.
|
||||
|
||||
You can erase a single job via the UI, which will also remove the job's
|
||||
|
|
|
@ -1181,7 +1181,7 @@ job:
|
|||
- If the pipeline is a scheduled pipeline, the job is **not** be added to the pipeline.
|
||||
- In **all other cases**, the job is added to the pipeline, with `when: on_success`.
|
||||
|
||||
CAUTION: **Caution**
|
||||
CAUTION: **Caution:**
|
||||
If you use `when: on_success`, `always`, or `delayed` as the final rule, two
|
||||
simultaneous pipelines may start. Both push pipelines and merge request pipelines can
|
||||
be triggered by the same event (a push to the source branch for an open merge request).
|
||||
|
@ -1569,7 +1569,7 @@ and must be surrounded by `/`.
|
|||
So `issue-/.*/` won't work to match all tag names or branch names
|
||||
that begin with `issue-`.
|
||||
|
||||
TIP: **Tip**
|
||||
TIP: **Tip:**
|
||||
Use anchors `^` and `$` to avoid the regular expression
|
||||
matching only a substring of the tag name or branch name.
|
||||
For example, `/^issue-.*$/` is equivalent to `/^issue-/`,
|
||||
|
@ -3921,7 +3921,8 @@ variables:
|
|||
GIT_STRATEGY: none
|
||||
```
|
||||
|
||||
NOTE: **Note:** `GIT_STRATEGY` is not supported for
|
||||
NOTE: **Note:**
|
||||
`GIT_STRATEGY` is not supported for
|
||||
[Kubernetes executor](https://docs.gitlab.com/runner/executors/kubernetes.html),
|
||||
but may be in the future. See the [support Git strategy with Kubernetes executor feature proposal](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/3847)
|
||||
for updates.
|
||||
|
|
|
@ -571,7 +571,8 @@ module Types
|
|||
end
|
||||
```
|
||||
|
||||
NOTE: **Note:** If the field's type already [has a particular
|
||||
NOTE: **Note:**
|
||||
If the field's type already [has a particular
|
||||
authorization](#type-authorization) then there is no need to add that
|
||||
same authorization to the field.
|
||||
|
||||
|
|
|
@ -27,7 +27,8 @@ limit values. It's recommended to create separate migration script files.
|
|||
add_column(:plan_limits, :project_hooks, :integer, default: 100, null: false)
|
||||
```
|
||||
|
||||
NOTE: **Note:** Plan limits entries set to `0` mean that limits are not
|
||||
NOTE: **Note:**
|
||||
Plan limits entries set to `0` mean that limits are not
|
||||
enabled. You should use this setting only in special and documented circumstances.
|
||||
|
||||
1. (Optionally) Create the database migration that fine-tunes each level with
|
||||
|
@ -57,7 +58,8 @@ limit values. It's recommended to create separate migration script files.
|
|||
end
|
||||
```
|
||||
|
||||
NOTE: **Note:** Some plans exist only on GitLab.com. This will be no-op
|
||||
NOTE: **Note:**
|
||||
Some plans exist only on GitLab.com. This will be no-op
|
||||
for plans that do not exist.
|
||||
|
||||
### Plan limits validation
|
||||
|
@ -95,7 +97,8 @@ can be used to validate that a model does not exceed the limits. It ensures
|
|||
that the count of the records for the current model does not exceed the defined
|
||||
limit.
|
||||
|
||||
NOTE: **Note:** You must specify the limit scope of the object being validated
|
||||
NOTE: **Note:**
|
||||
You must specify the limit scope of the object being validated
|
||||
and the limit name if it's different from the pluralized model name.
|
||||
|
||||
```ruby
|
||||
|
@ -143,4 +146,5 @@ GitLab.com:
|
|||
- `silver` - Namespaces and projects with a Silver subscription
|
||||
- `gold` - Namespaces and projects with a Gold subscription
|
||||
|
||||
NOTE: **Note:** The test environment doesn't have any plans.
|
||||
NOTE: **Note:**
|
||||
The test environment doesn't have any plans.
|
||||
|
|
|
@ -17,7 +17,8 @@ To request access to Chatops on GitLab.com:
|
|||
1. You could also use the "Sign in with" Google button to sign in, with your GitLab.com email address.
|
||||
1. Ask in the [#production](https://gitlab.slack.com/messages/production) channel for an existing member to add you to the `chatops` project in Ops. They can do it by running `/chatops run member add <username> gitlab-com/chatops --ops` command in that channel.
|
||||
|
||||
NOTE: **Note:** If you had to change your username for GitLab.com on the first step, make sure [to reflect this information](https://gitlab.com/gitlab-com/www-gitlab-com#adding-yourself-to-the-team-page) on [the team page](https://about.gitlab.com/company/team/).
|
||||
NOTE: **Note:**
|
||||
If you had to change your username for GitLab.com on the first step, make sure [to reflect this information](https://gitlab.com/gitlab-com/www-gitlab-com#adding-yourself-to-the-team-page) on [the team page](https://about.gitlab.com/company/team/).
|
||||
|
||||
## See also
|
||||
|
||||
|
|
|
@ -92,7 +92,8 @@ A job with the `created` state won't be seen by the Runner yet. To make it possi
|
|||
|
||||
When the Runner is connected, it requests the next `pending` job to run by polling the server continuously.
|
||||
|
||||
NOTE: **Note:** API endpoints used by the Runner to interact with GitLab are defined in [`lib/api/runner.rb`](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/api/runner.rb)
|
||||
NOTE: **Note:**
|
||||
API endpoints used by the Runner to interact with GitLab are defined in [`lib/api/runner.rb`](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/api/runner.rb)
|
||||
|
||||
After the server receives the request it selects a `pending` job based on the [`Ci::RegisterJobService` algorithm](#ciregisterjobservice), then assigns and sends the job to the Runner.
|
||||
|
||||
|
@ -126,7 +127,8 @@ There are 3 top level queries that this service uses to gather the majority of t
|
|||
|
||||
This list of jobs is then filtered further by matching tags between job and Runner tags.
|
||||
|
||||
NOTE: **Note:** If a job contains tags, the Runner will not pick the job if it does not match **all** the tags.
|
||||
NOTE: **Note:**
|
||||
If a job contains tags, the Runner will not pick the job if it does not match **all** the tags.
|
||||
The Runner may have more tags than defined for the job, but not vice-versa.
|
||||
|
||||
Finally if the Runner can only pick jobs that are tagged, all untagged jobs are filtered out.
|
||||
|
|
|
@ -113,7 +113,8 @@ end
|
|||
|
||||
Validating the foreign key will scan the whole table and make sure that each relation is correct.
|
||||
|
||||
NOTE: **Note:** When using [background migrations](../background_migrations.md), foreign key validation should happen in the next GitLab release.
|
||||
NOTE: **Note:**
|
||||
When using [background migrations](../background_migrations.md), foreign key validation should happen in the next GitLab release.
|
||||
|
||||
Migration file for validating the foreign key:
|
||||
|
||||
|
|
|
@ -190,7 +190,8 @@ In general, migrations for a single deploy shouldn't take longer than
|
|||
1 hour for GitLab.com. The following guidelines are not hard rules, they were
|
||||
estimated to keep migration timing to a minimum.
|
||||
|
||||
NOTE: **Note:** Keep in mind that all runtimes should be measured against GitLab.com.
|
||||
NOTE: **Note:**
|
||||
Keep in mind that all runtimes should be measured against GitLab.com.
|
||||
|
||||
| Migration Type | Execution Time Recommended | Notes |
|
||||
|----|----|---|
|
||||
|
|
|
@ -98,7 +98,7 @@ for clarity.
|
|||
To see the improvements planned, check the
|
||||
[global nav epic](https://gitlab.com/groups/gitlab-com/-/epics/21).
|
||||
|
||||
CAUTION: **Attention!**
|
||||
NOTE: **Note:**
|
||||
**Do not** [add items](#adding-new-items) to the global nav without
|
||||
the consent of one of the technical writers.
|
||||
|
||||
|
@ -275,7 +275,7 @@ and the following syntax rules.
|
|||
an "information" icon on the nav to make the user aware that the feature is
|
||||
EE-only.
|
||||
|
||||
DANGER: **Important!**
|
||||
CAUTION: **Caution:**
|
||||
All links present on the data file must end in `.html`, not `.md`. Do not
|
||||
start any relative link with a forward slash `/`.
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue