diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-18 14:02:45 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-18 14:02:45 +0000 |
commit | 80f61b4035607d7cd87de993b8f5e996bde3481f (patch) | |
tree | 06b12f51e97d87192e3dd0e05edf55143645b894 | |
parent | 4ab54c2233e91f60a80e5b6fa2181e6899fdcc3e (diff) | |
download | gitlab-ce-80f61b4035607d7cd87de993b8f5e996bde3481f.tar.gz |
Add latest changes from gitlab-org/gitlab@master
881 files changed, 4949 insertions, 3236 deletions
diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index f72396e4edf..2f53c6e3fcf 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -230,6 +230,7 @@ webpack-dev-server: - .default-tags - .default-retry - .default-cache + - .default-only - .only-code-changes dependencies: ["setup-test-env", "compile-assets", "compile-assets pull-cache"] variables: diff --git a/.gitlab/ci/pages.gitlab-ci.yml b/.gitlab/ci/pages.gitlab-ci.yml index 47f4117e34a..a59b84fe1cf 100644 --- a/.gitlab/ci/pages.gitlab-ci.yml +++ b/.gitlab/ci/pages.gitlab-ci.yml @@ -4,6 +4,7 @@ pages: - .default-retry - .default-cache - .default-only + - .only-code-qa-changes only: refs: - master diff --git a/.gitlab/ci/qa.gitlab-ci.yml b/.gitlab/ci/qa.gitlab-ci.yml index e7362f913a9..013af3d61a4 100644 --- a/.gitlab/ci/qa.gitlab-ci.yml +++ b/.gitlab/ci/qa.gitlab-ci.yml @@ -25,7 +25,9 @@ package-and-qa-manual: needs: ["build-qa-image", "gitlab:assets:compile pull-cache"] package-and-qa-manual:master: - extends: .package-and-qa-base + extends: + - .package-and-qa-base + - .only-code-qa-changes only: refs: - master@gitlab-org/gitlab-foss diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml index e673eb9c7f3..129913a9f2d 100644 --- a/.gitlab/ci/setup.gitlab-ci.yml +++ b/.gitlab/ci/setup.gitlab-ci.yml @@ -6,6 +6,7 @@ cache gems: - .default-retry - .default-cache - .default-before_script + - .only-code-qa-changes stage: test dependencies: ["setup-test-env"] needs: ["setup-test-env"] diff --git a/.gitlab/ci/test-metadata.gitlab-ci.yml b/.gitlab/ci/test-metadata.gitlab-ci.yml index fe3cde2bb16..5e2523e8a9c 100644 --- a/.gitlab/ci/test-metadata.gitlab-ci.yml +++ b/.gitlab/ci/test-metadata.gitlab-ci.yml @@ -1,5 +1,6 @@ .tests-metadata-state: - extends: .default-only + extends: + - .default-only variables: TESTS_METADATA_S3_BUCKET: "gitlab-ce-cache" before_script: @@ -31,7 +32,9 @@ retrieve-tests-metadata: - '[[ ! -d "ee/" ]] || [[ -f $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH}' update-tests-metadata: - extends: .tests-metadata-state + extends: + - .tests-metadata-state + - .only-code-changes stage: post-test cache: key: tests_metadata diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index 76d05362056..9405730420f 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -1.62.0 +1.64.0 diff --git a/app/assets/javascripts/behaviors/markdown/render_metrics.js b/app/assets/javascripts/behaviors/markdown/render_metrics.js index 252b98610b6..8050604e6e7 100644 --- a/app/assets/javascripts/behaviors/markdown/render_metrics.js +++ b/app/assets/javascripts/behaviors/markdown/render_metrics.js @@ -2,7 +2,7 @@ import Vue from 'vue'; import Metrics from '~/monitoring/components/embed.vue'; import { createStore } from '~/monitoring/stores'; -// TODO: Handle copy-pasting - https://gitlab.com/gitlab-org/gitlab-ce/issues/64369. +// TODO: Handle copy-pasting - https://gitlab.com/gitlab-org/gitlab-foss/issues/64369. export default function renderMetrics(elements) { if (!elements.length) { return; diff --git a/app/assets/javascripts/behaviors/preview_markdown.js b/app/assets/javascripts/behaviors/preview_markdown.js index b2571fb840c..1909830e9ed 100644 --- a/app/assets/javascripts/behaviors/preview_markdown.js +++ b/app/assets/javascripts/behaviors/preview_markdown.js @@ -1,4 +1,4 @@ -/* eslint-disable func-names, no-var, object-shorthand, prefer-arrow-callback */ +/* eslint-disable func-names, no-var, prefer-arrow-callback */ import $ from 'jquery'; import axios from '~/lib/utils/axios_utils'; @@ -82,7 +82,7 @@ MarkdownPreview.prototype.fetchMarkdownPreview = function(text, url, success) { }) .then(({ data }) => { this.ajaxCache = { - text: text, + text, response: data, }; success(data); diff --git a/app/assets/javascripts/blob/blob_file_dropzone.js b/app/assets/javascripts/blob/blob_file_dropzone.js index 9010cd0c3c1..9f0680cc6a7 100644 --- a/app/assets/javascripts/blob/blob_file_dropzone.js +++ b/app/assets/javascripts/blob/blob_file_dropzone.js @@ -1,4 +1,4 @@ -/* eslint-disable func-names, object-shorthand, prefer-arrow-callback */ +/* eslint-disable func-names, prefer-arrow-callback */ import $ from 'jquery'; import Dropzone from 'dropzone'; @@ -32,7 +32,7 @@ export default class BlobFileDropzone { url: form.attr('action'), // Rails uses a hidden input field for PUT // http://stackoverflow.com/questions/21056482/how-to-set-method-put-in-form-tag-in-rails - method: method, + method, clickable: true, uploadMultiple: false, paramName: 'file', @@ -42,7 +42,7 @@ export default class BlobFileDropzone { addRemoveLinks: true, previewsContainer: '.dropzone-previews', headers: csrf.headers, - init: function() { + init() { this.on('addedfile', function() { toggleLoading(submitButton, submitButtonLoadingIcon, false); dropzoneMessage.addClass(HIDDEN_CLASS); @@ -69,7 +69,7 @@ export default class BlobFileDropzone { }); }, // Override behavior of adding error underneath preview - error: function(file, errorMessage) { + error(file, errorMessage) { const stripped = $('<div/>') .html(errorMessage) .text(); diff --git a/app/assets/javascripts/boards/components/board.js b/app/assets/javascripts/boards/components/board.js index c6122fbc686..58759fd1efe 100644 --- a/app/assets/javascripts/boards/components/board.js +++ b/app/assets/javascripts/boards/components/board.js @@ -50,6 +50,9 @@ export default Vue.extend({ }; }, computed: { + isLoggedIn() { + return Boolean(gon.current_user_id); + }, counterTooltip() { const { issuesSize } = this.list; return `${n__('%d issue', '%d issues', issuesSize)}`; @@ -106,7 +109,11 @@ export default Vue.extend({ Sortable.create(this.$el.parentNode, sortableOptions); }, created() { - if (this.list.isExpandable && AccessorUtilities.isLocalStorageAccessSafe()) { + if ( + this.list.isExpandable && + AccessorUtilities.isLocalStorageAccessSafe() && + !this.isLoggedIn + ) { const isCollapsed = localStorage.getItem(`${this.uniqueKey}.expanded`) === 'false'; this.list.isExpanded = !isCollapsed; @@ -120,10 +127,14 @@ export default Vue.extend({ if (this.list.isExpandable) { this.list.isExpanded = !this.list.isExpanded; - if (AccessorUtilities.isLocalStorageAccessSafe()) { + if (AccessorUtilities.isLocalStorageAccessSafe() && !this.isLoggedIn) { localStorage.setItem(`${this.uniqueKey}.expanded`, this.list.isExpanded); } + if (this.isLoggedIn) { + this.list.update(); + } + // When expanding/collapsing, the tooltip on the caret button sometimes stays open. // Close all tooltips manually to prevent dangling tooltips. $('.tooltip').tooltip('hide'); diff --git a/app/assets/javascripts/boards/components/new_list_dropdown.js b/app/assets/javascripts/boards/components/new_list_dropdown.js index c8a9cb1c296..229bb82152b 100644 --- a/app/assets/javascripts/boards/components/new_list_dropdown.js +++ b/app/assets/javascripts/boards/components/new_list_dropdown.js @@ -1,7 +1,9 @@ -/* eslint-disable func-names, no-new, promise/catch-or-return */ +/* eslint-disable func-names, no-new */ import $ from 'jquery'; +import { __ } from '~/locale'; import axios from '~/lib/utils/axios_utils'; +import flash from '~/flash'; import CreateLabelDropdown from '../../create_label'; import boardsStore from '../stores/boards_store'; @@ -26,18 +28,23 @@ $(document) export default function initNewListDropdown() { $('.js-new-board-list').each(function() { - const $this = $(this); + const $dropdownToggle = $(this); + const $dropdown = $dropdownToggle.closest('.dropdown'); new CreateLabelDropdown( - $this.closest('.dropdown').find('.dropdown-new-label'), - $this.data('namespacePath'), - $this.data('projectPath'), + $dropdown.find('.dropdown-new-label'), + $dropdownToggle.data('namespacePath'), + $dropdownToggle.data('projectPath'), ); - $this.glDropdown({ + $dropdownToggle.glDropdown({ data(term, callback) { - axios.get($this.attr('data-list-labels-path')).then(({ data }) => { - callback(data); - }); + axios + .get($dropdownToggle.attr('data-list-labels-path')) + .then(({ data }) => callback(data)) + .catch(() => { + $dropdownToggle.data('bs.dropdown').hide(); + flash(__('Error fetching labels.')); + }); }, renderRow(label) { const active = boardsStore.findListByLabelId(label.id); diff --git a/app/assets/javascripts/boards/models/issue.js b/app/assets/javascripts/boards/models/issue.js index 086340105b7..1cee9e5725a 100644 --- a/app/assets/javascripts/boards/models/issue.js +++ b/app/assets/javascripts/boards/models/issue.js @@ -11,11 +11,6 @@ import boardsStore from '../stores/boards_store'; class ListIssue { constructor(obj, defaultAvatar) { - this.id = obj.id; - this.iid = obj.iid; - this.title = obj.title; - this.confidential = obj.confidential; - this.dueDate = obj.due_date; this.subscribed = obj.subscribed; this.labels = []; this.assignees = []; @@ -25,6 +20,16 @@ class ListIssue { subscriptions: true, }; this.isLoading = {}; + + this.refreshData(obj, defaultAvatar); + } + + refreshData(obj, defaultAvatar) { + this.id = obj.id; + this.iid = obj.iid; + this.title = obj.title; + this.confidential = obj.confidential; + this.dueDate = obj.due_date; this.sidebarInfoEndpoint = obj.issue_sidebar_endpoint; this.referencePath = obj.reference_path; this.path = obj.real_path; @@ -42,11 +47,13 @@ class ListIssue { this.milestone_id = obj.milestone.id; } - obj.labels.forEach(label => { - this.labels.push(new ListLabel(label)); - }); + if (obj.labels) { + this.labels = obj.labels.map(label => new ListLabel(label)); + } - this.assignees = obj.assignees.map(a => new ListAssignee(a, defaultAvatar)); + if (obj.assignees) { + this.assignees = obj.assignees.map(a => new ListAssignee(a, defaultAvatar)); + } } addLabel(label) { diff --git a/app/assets/javascripts/boards/models/list.js b/app/assets/javascripts/boards/models/list.js index 1edaf971afd..b3e56a34c28 100644 --- a/app/assets/javascripts/boards/models/list.js +++ b/app/assets/javascripts/boards/models/list.js @@ -1,4 +1,4 @@ -/* eslint-disable no-underscore-dangle, class-methods-use-this, consistent-return, no-shadow, no-param-reassign */ +/* eslint-disable no-underscore-dangle, class-methods-use-this, consistent-return, no-shadow */ import { __ } from '~/locale'; import ListLabel from './label'; @@ -45,7 +45,7 @@ class List { const typeInfo = this.getTypeInfo(this.type); this.preset = Boolean(typeInfo.isPreset); this.isExpandable = Boolean(typeInfo.isExpandable); - this.isExpanded = true; + this.isExpanded = !obj.collapsed; this.page = 1; this.loading = true; this.loadingMore = false; @@ -113,7 +113,8 @@ class List { } update() { - gl.boardService.updateList(this.id, this.position).catch(() => { + const collapsed = !this.isExpanded; + return gl.boardService.updateList(this.id, this.position, collapsed).catch(() => { // TODO: handle request error }); } @@ -259,12 +260,7 @@ class List { } onNewIssueResponse(issue, data) { - issue.id = data.id; - issue.iid = data.iid; - issue.project = data.project; - issue.path = data.real_path; - issue.referencePath = data.reference_path; - issue.assignableLabelsEndpoint = data.assignable_labels_endpoint; + issue.refreshData(data); if (this.issuesSize > 1) { const moveBeforeId = this.issues[1].id; diff --git a/app/assets/javascripts/boards/services/board_service.js b/app/assets/javascripts/boards/services/board_service.js index 56a6cab6c73..0d11db89511 100644 --- a/app/assets/javascripts/boards/services/board_service.js +++ b/app/assets/javascripts/boards/services/board_service.js @@ -2,7 +2,7 @@ /** * This file is intended to be deleted. * The existing functions will removed one by one in favor of using the board store directly. - * see https://gitlab.com/gitlab-org/gitlab-ce/issues/61621 + * see https://gitlab.com/gitlab-org/gitlab-foss/issues/61621 */ import boardsStore from '~/boards/stores/boards_store'; @@ -32,8 +32,8 @@ export default class BoardService { return boardsStore.createList(entityId, entityType); } - updateList(id, position) { - return boardsStore.updateList(id, position); + updateList(id, position, collapsed) { + return boardsStore.updateList(id, position, collapsed); } destroyList(id) { diff --git a/app/assets/javascripts/boards/stores/boards_store.js b/app/assets/javascripts/boards/stores/boards_store.js index f57c684691c..6da1cca9628 100644 --- a/app/assets/javascripts/boards/stores/boards_store.js +++ b/app/assets/javascripts/boards/stores/boards_store.js @@ -82,7 +82,7 @@ const boardsStore = { this.state.lists = _.sortBy(this.state.lists, 'position'); }) .catch(() => { - // https://gitlab.com/gitlab-org/gitlab-ce/issues/30821 + // https://gitlab.com/gitlab-org/gitlab-foss/issues/30821 }); this.removeBlankState(); }, @@ -278,10 +278,11 @@ const boardsStore = { }); }, - updateList(id, position) { + updateList(id, position, collapsed) { return axios.put(`${this.state.endpoints.listsEndpoint}/${id}`, { list: { position, + collapsed, }, }); }, diff --git a/app/assets/javascripts/boards/stores/boards_store_ee.js b/app/assets/javascripts/boards/stores/boards_store_ee.js index 09e3a938fbe..2a289ce5d0a 100644 --- a/app/assets/javascripts/boards/stores/boards_store_ee.js +++ b/app/assets/javascripts/boards/stores/boards_store_ee.js @@ -1,4 +1,4 @@ -// this is just to make ee_else_ce happy and will be cleaned up in https://gitlab.com/gitlab-org/gitlab-ce/issues/59807 +// this is just to make ee_else_ce happy and will be cleaned up in https://gitlab.com/gitlab-org/gitlab-foss/issues/59807 export default { initEESpecific() {}, diff --git a/app/assets/javascripts/ci_variable_list/ci_variable_list.js b/app/assets/javascripts/ci_variable_list/ci_variable_list.js index 0303e4e51dd..5c79f245f6d 100644 --- a/app/assets/javascripts/ci_variable_list/ci_variable_list.js +++ b/app/assets/javascripts/ci_variable_list/ci_variable_list.js @@ -54,7 +54,7 @@ export default class VariableList { environment_scope: { // We can't use a `.js-` class here because // gl_dropdown replaces the <input> and doesn't copy over the class - // See https://gitlab.com/gitlab-org/gitlab-ce/issues/42458 + // See https://gitlab.com/gitlab-org/gitlab-foss/issues/42458 selector: `input[name="${this.formField}[variables_attributes][][environment_scope]"]`, default: '*', }, diff --git a/app/assets/javascripts/clusters/clusters_bundle.js b/app/assets/javascripts/clusters/clusters_bundle.js index 28850710f80..d386960f3b6 100644 --- a/app/assets/javascripts/clusters/clusters_bundle.js +++ b/app/assets/javascripts/clusters/clusters_bundle.js @@ -111,15 +111,25 @@ export default class Clusters { this.initApplications(clusterType); this.initEnvironments(); - if (clusterEnvironmentsPath) { - this.fetchEnvironments(); + if (clusterEnvironmentsPath && this.environments) { + this.store.toggleFetchEnvironments(true); + + this.initPolling( + 'fetchClusterEnvironments', + data => this.handleClusterEnvironmentsSuccess(data), + () => this.handleEnvironmentsPollError(), + ); } this.updateContainer(null, this.store.state.status, this.store.state.statusReason); this.addListeners(); if (statusPath && !this.environments) { - this.initPolling(); + this.initPolling( + 'fetchClusterStatus', + data => this.handleClusterStatusSuccess(data), + () => this.handlePollError(), + ); } } @@ -179,16 +189,9 @@ export default class Clusters { }); } - fetchEnvironments() { - this.store.toggleFetchEnvironments(true); - - this.service - .fetchClusterEnvironments() - .then(data => { - this.store.toggleFetchEnvironments(false); - this.store.updateEnvironments(data.data); - }) - .catch(() => Clusters.handleError()); + handleClusterEnvironmentsSuccess(data) { + this.store.toggleFetchEnvironments(false); + this.store.updateEnvironments(data.data); } static initDismissableCallout() { @@ -224,21 +227,16 @@ export default class Clusters { eventHub.$off('uninstallApplication'); } - initPolling() { + initPolling(method, successCallback, errorCallback) { this.poll = new Poll({ resource: this.service, - method: 'fetchData', - successCallback: data => this.handleSuccess(data), - errorCallback: () => Clusters.handleError(), + method, + successCallback, + errorCallback, }); if (!Visibility.hidden()) { this.poll.makeRequest(); - } else { - this.service - .fetchData() - .then(data => this.handleSuccess(data)) - .catch(() => Clusters.handleError()); } Visibility.change(() => { @@ -250,11 +248,21 @@ export default class Clusters { }); } + handlePollError() { + this.constructor.handleError(); + } + + handleEnvironmentsPollError() { + this.store.toggleFetchEnvironments(false); + + this.handlePollError(); + } + static handleError() { Flash(s__('ClusterIntegration|Something went wrong on our end.')); } - handleSuccess(data) { + handleClusterStatusSuccess(data) { const prevStatus = this.store.state.status; const prevApplicationMap = Object.assign({}, this.store.state.applications); diff --git a/app/assets/javascripts/clusters/services/clusters_service.js b/app/assets/javascripts/clusters/services/clusters_service.js index 9139e0beafb..fa12802b3de 100644 --- a/app/assets/javascripts/clusters/services/clusters_service.js +++ b/app/assets/javascripts/clusters/services/clusters_service.js @@ -17,7 +17,7 @@ export default class ClusterService { }; } - fetchData() { + fetchClusterStatus() { return axios.get(this.options.endpoint); } diff --git a/app/assets/javascripts/clusters/stores/clusters_store.js b/app/assets/javascripts/clusters/stores/clusters_store.js index a032f589ee4..5cddb4cc098 100644 --- a/app/assets/javascripts/clusters/stores/clusters_store.js +++ b/app/assets/javascripts/clusters/stores/clusters_store.js @@ -218,6 +218,7 @@ export default class ClusterStore { environmentPath: environment.environment_path, lastDeployment: environment.last_deployment, rolloutStatus: { + status: environment.rollout_status ? environment.rollout_status.status : null, instances: environment.rollout_status ? environment.rollout_status.instances : [], }, updatedAt: environment.updated_at, diff --git a/app/assets/javascripts/compare_autocomplete.js b/app/assets/javascripts/compare_autocomplete.js index 5bfe158ceda..81ba15577fb 100644 --- a/app/assets/javascripts/compare_autocomplete.js +++ b/app/assets/javascripts/compare_autocomplete.js @@ -1,4 +1,4 @@ -/* eslint-disable func-names, one-var, no-var, object-shorthand, no-else-return */ +/* eslint-disable func-names, one-var, no-var, no-else-return */ import $ from 'jquery'; import { __ } from './locale'; @@ -15,7 +15,7 @@ export default function initCompareAutocomplete(limitTo = null, clickHandler = ( const $fieldInput = $(`input[name="${$dropdown.data('fieldName')}"]`, $dropdownContainer); const $filterInput = $('input[type="search"]', $dropdownContainer); $dropdown.glDropdown({ - data: function(term, callback) { + data(term, callback) { const params = { ref: $dropdown.data('ref'), search: term, @@ -43,7 +43,7 @@ export default function initCompareAutocomplete(limitTo = null, clickHandler = ( filterRemote: Boolean($dropdown.data('refsUrl')), fieldName: $dropdown.data('fieldName'), filterInput: 'input[type="search"]', - renderRow: function(ref) { + renderRow(ref) { var link; if (ref.header != null) { return $('<li />') @@ -58,10 +58,10 @@ export default function initCompareAutocomplete(limitTo = null, clickHandler = ( return $('<li />').append(link); } }, - id: function(obj, $el) { + id(obj, $el) { return $el.attr('data-ref'); }, - toggleLabel: function(obj, $el) { + toggleLabel(obj, $el) { return $el.text().trim(); }, clicked: () => clickHandler($dropdown), diff --git a/app/assets/javascripts/contextual_sidebar.js b/app/assets/javascripts/contextual_sidebar.js index 9263e9b27e4..f43b6f3d777 100644 --- a/app/assets/javascripts/contextual_sidebar.js +++ b/app/assets/javascripts/contextual_sidebar.js @@ -5,7 +5,7 @@ import bp from './breakpoints'; import { parseBoolean } from '~/lib/utils/common_utils'; // NOTE: at 1200px nav sidebar should not overlap the content -// https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24555#note_134136110 +// https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/24555#note_134136110 const NAV_SIDEBAR_BREAKPOINT = 1200; export const SIDEBAR_COLLAPSED_CLASS = 'js-sidebar-collapsed'; diff --git a/app/assets/javascripts/cycle_analytics/components/stage_code_component.vue b/app/assets/javascripts/cycle_analytics/components/stage_code_component.vue index 333ea111cd6..55e5f4ffad2 100644 --- a/app/assets/javascripts/cycle_analytics/components/stage_code_component.vue +++ b/app/assets/javascripts/cycle_analytics/components/stage_code_component.vue @@ -32,7 +32,7 @@ export default { <div class="item-details"> <!-- FIXME: Pass an alt attribute here for accessibility --> <user-avatar-image :img-src="mergeRequest.author.avatarUrl" /> - <h5 class="item-title merge-merquest-title"> + <h5 class="item-title merge-request-title"> <a :href="mergeRequest.url"> {{ mergeRequest.title }} </a> </h5> <a :href="mergeRequest.url" class="issue-link"> !{{ mergeRequest.iid }} </a> · diff --git a/app/assets/javascripts/cycle_analytics/components/stage_review_component.vue b/app/assets/javascripts/cycle_analytics/components/stage_review_component.vue index f874f11aff0..a295c8b496b 100644 --- a/app/assets/javascripts/cycle_analytics/components/stage_review_component.vue +++ b/app/assets/javascripts/cycle_analytics/components/stage_review_component.vue @@ -34,7 +34,7 @@ export default { <div class="item-details"> <!-- FIXME: Pass an alt attribute here for accessibility --> <user-avatar-image :img-src="mergeRequest.author.avatarUrl" /> - <h5 class="item-title merge-merquest-title"> + <h5 class="item-title merge-request-title"> <a :href="mergeRequest.url"> {{ mergeRequest.title }} </a> </h5> <a :href="mergeRequest.url" class="issue-link">!{{ mergeRequest.iid }}</a> · diff --git a/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js b/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js index c9a6b10b2f3..7744984edfc 100644 --- a/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js +++ b/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js @@ -74,7 +74,7 @@ export default () => { // after a group is selected the cycle analyitcs data will be fetched). Once the // old (current) page has been removed this entire created method as well as the // variable itself can be completely removed. - // Follow up issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/64490 + // Follow up issue: https://gitlab.com/gitlab-org/gitlab-foss/issues/64490 if (cycleAnalyticsEl.dataset.requestPath) this.fetchCycleAnalyticsData(); }, methods: { diff --git a/app/assets/javascripts/diff.js b/app/assets/javascripts/diff.js index 245f1a7c558..a343138a9e1 100644 --- a/app/assets/javascripts/diff.js +++ b/app/assets/javascripts/diff.js @@ -5,7 +5,7 @@ import { __ } from '~/locale'; import { getLocationHash } from './lib/utils/url_utility'; import FilesCommentButton from './files_comment_button'; import SingleFileDiff from './single_file_diff'; -import imageDiffHelper from './image_diff/helpers/index'; +import initImageDiffHelper from './image_diff/helpers/init_image_diff'; const UNFOLD_COUNT = 20; let isBound = false; @@ -28,7 +28,7 @@ export default class Diff { .first() .get(0); const canCreateNote = firstFile && firstFile.hasAttribute('data-can-create-note'); - $diffFile.each((index, file) => imageDiffHelper.initImageDiff(file, canCreateNote)); + $diffFile.each((index, file) => initImageDiffHelper.initImageDiff(file, canCreateNote)); if (!isBound) { $(document) diff --git a/app/assets/javascripts/diff_notes/components/comment_resolve_btn.js b/app/assets/javascripts/diff_notes/components/comment_resolve_btn.js index 7817b41514d..84e07598fed 100644 --- a/app/assets/javascripts/diff_notes/components/comment_resolve_btn.js +++ b/app/assets/javascripts/diff_notes/components/comment_resolve_btn.js @@ -1,4 +1,4 @@ -/* eslint-disable object-shorthand, func-names, no-else-return, no-lonely-if */ +/* eslint-disable no-else-return, no-lonely-if */ /* global CommentsStore */ import $ from 'jquery'; @@ -19,17 +19,17 @@ const CommentAndResolveBtn = Vue.extend({ }; }, computed: { - showButton: function() { + showButton() { if (this.discussion) { return this.discussion.isResolvable(); } else { return false; } }, - isDiscussionResolved: function() { + isDiscussionResolved() { return this.discussion.isResolved(); }, - buttonText: function() { + buttonText() { if (this.isDiscussionResolved) { if (this.textareaIsEmpty) { return __('Unresolve thread'); @@ -50,7 +50,7 @@ const CommentAndResolveBtn = Vue.extend({ this.discussion = CommentsStore.state[this.discussionId]; } }, - mounted: function() { + mounted() { if (!this.discussionId) return; const $textarea = $( @@ -62,7 +62,7 @@ const CommentAndResolveBtn = Vue.extend({ this.textareaIsEmpty = $textarea.val() === ''; }); }, - destroyed: function() { + destroyed() { if (!this.discussionId) return; $(`.js-discussion-note-form[data-discussion-id=${this.discussionId}] .note-textarea`).off( diff --git a/app/assets/javascripts/diff_notes/components/jump_to_discussion.js b/app/assets/javascripts/diff_notes/components/jump_to_discussion.js index fe4088cadda..092c69a01d3 100644 --- a/app/assets/javascripts/diff_notes/components/jump_to_discussion.js +++ b/app/assets/javascripts/diff_notes/components/jump_to_discussion.js @@ -1,4 +1,4 @@ -/* eslint-disable object-shorthand, func-names, no-else-return, guard-for-in, no-restricted-syntax, no-lonely-if, no-continue */ +/* eslint-disable func-names, no-else-return, guard-for-in, no-restricted-syntax, no-lonely-if, no-continue */ /* global CommentsStore */ import $ from 'jquery'; @@ -15,24 +15,24 @@ const JumpToDiscussion = Vue.extend({ required: true, }, }, - data: function() { + data() { return { discussions: CommentsStore.state, discussion: {}, }; }, computed: { - buttonText: function() { + buttonText() { if (this.discussionId) { return __('Jump to next unresolved discussion'); } else { return __('Jump to first unresolved discussion'); } }, - allResolved: function() { + allResolved() { return this.unresolvedDiscussionCount === 0; }, - showButton: function() { + showButton() { if (this.discussionId) { if (this.unresolvedDiscussionCount > 1) { return true; @@ -43,7 +43,7 @@ const JumpToDiscussion = Vue.extend({ return this.unresolvedDiscussionCount >= 1; } }, - lastResolvedId: function() { + lastResolvedId() { let lastId; for (const discussionId in this.discussions) { const discussion = this.discussions[discussionId]; @@ -59,7 +59,7 @@ const JumpToDiscussion = Vue.extend({ this.discussion = this.discussions[this.discussionId]; }, methods: { - jumpToNextUnresolvedDiscussion: function() { + jumpToNextUnresolvedDiscussion() { let discussionsSelector; let discussionIdsInScope; let firstUnresolvedDiscussionId; diff --git a/app/assets/javascripts/diff_notes/components/resolve_count.js b/app/assets/javascripts/diff_notes/components/resolve_count.js index d8b056096f4..f960853b25b 100644 --- a/app/assets/javascripts/diff_notes/components/resolve_count.js +++ b/app/assets/javascripts/diff_notes/components/resolve_count.js @@ -1,4 +1,3 @@ -/* eslint-disable object-shorthand, func-names */ /* global CommentsStore */ import Vue from 'vue'; @@ -13,13 +12,13 @@ window.ResolveCount = Vue.extend({ required: true, }, }, - data: function() { + data() { return { discussions: CommentsStore.state, }; }, computed: { - allResolved: function() { + allResolved() { return this.resolvedDiscussionCount === this.discussionCount; }, resolvedCountText() { diff --git a/app/assets/javascripts/diff_notes/components/resolve_discussion_btn.js b/app/assets/javascripts/diff_notes/components/resolve_discussion_btn.js index 4b204fdfeb0..5f2a17da630 100644 --- a/app/assets/javascripts/diff_notes/components/resolve_discussion_btn.js +++ b/app/assets/javascripts/diff_notes/components/resolve_discussion_btn.js @@ -1,4 +1,4 @@ -/* eslint-disable object-shorthand, func-names, no-else-return */ +/* eslint-disable no-else-return */ /* global CommentsStore */ /* global ResolveService */ @@ -20,34 +20,34 @@ const ResolveDiscussionBtn = Vue.extend({ required: true, }, }, - data: function() { + data() { return { discussion: {}, }; }, computed: { - showButton: function() { + showButton() { if (this.discussion) { return this.discussion.isResolvable(); } else { return false; } }, - isDiscussionResolved: function() { + isDiscussionResolved() { if (this.discussion) { return this.discussion.isResolved(); } else { return false; } }, - buttonText: function() { + buttonText() { if (this.isDiscussionResolved) { return __('Unresolve discussion'); } else { return __('Resolve discussion'); } }, - loading: function() { + loading() { if (this.discussion) { return this.discussion.loading; } else { @@ -55,13 +55,13 @@ const ResolveDiscussionBtn = Vue.extend({ } }, }, - created: function() { + created() { CommentsStore.createDiscussion(this.discussionId, this.canResolve); this.discussion = CommentsStore.state[this.discussionId]; }, methods: { - resolve: function() { + resolve() { ResolveService.toggleResolveForDiscussion(this.mergeRequestId, this.discussionId); }, }, diff --git a/app/assets/javascripts/diff_notes/mixins/discussion.js b/app/assets/javascripts/diff_notes/mixins/discussion.js index dea64dca132..ef3001393cf 100644 --- a/app/assets/javascripts/diff_notes/mixins/discussion.js +++ b/app/assets/javascripts/diff_notes/mixins/discussion.js @@ -1,11 +1,11 @@ -/* eslint-disable object-shorthand, func-names, guard-for-in, no-restricted-syntax, */ +/* eslint-disable guard-for-in, no-restricted-syntax, */ const DiscussionMixins = { computed: { - discussionCount: function() { + discussionCount() { return Object.keys(this.discussions).length; }, - resolvedDiscussionCount: function() { + resolvedDiscussionCount() { let resolvedCount = 0; for (const discussionId in this.discussions) { @@ -18,7 +18,7 @@ const DiscussionMixins = { return resolvedCount; }, - unresolvedDiscussionCount: function() { + unresolvedDiscussionCount() { let unresolvedCount = 0; for (const discussionId in this.discussions) { diff --git a/app/assets/javascripts/diff_notes/stores/comments.js b/app/assets/javascripts/diff_notes/stores/comments.js index 060bb044f78..69a972f644d 100644 --- a/app/assets/javascripts/diff_notes/stores/comments.js +++ b/app/assets/javascripts/diff_notes/stores/comments.js @@ -1,14 +1,14 @@ -/* eslint-disable object-shorthand, func-names, camelcase, no-restricted-syntax, guard-for-in */ +/* eslint-disable camelcase, no-restricted-syntax, guard-for-in */ /* global DiscussionModel */ import Vue from 'vue'; window.CommentsStore = { state: {}, - get: function(discussionId, noteId) { + get(discussionId, noteId) { return this.state[discussionId].getNote(noteId); }, - createDiscussion: function(discussionId, canResolve) { + createDiscussion(discussionId, canResolve) { let discussion = this.state[discussionId]; if (!this.state[discussionId]) { discussion = new DiscussionModel(discussionId); @@ -21,18 +21,18 @@ window.CommentsStore = { return discussion; }, - create: function(noteObj) { + create(noteObj) { const discussion = this.createDiscussion(noteObj.discussionId); discussion.createNote(noteObj); }, - update: function(discussionId, noteId, resolved, resolved_by) { + update(discussionId, noteId, resolved, resolved_by) { const discussion = this.state[discussionId]; const note = discussion.getNote(noteId); note.resolved = resolved; note.resolved_by = resolved_by; }, - delete: function(discussionId, noteId) { + delete(discussionId, noteId) { const discussion = this.state[discussionId]; discussion.deleteNote(noteId); @@ -40,7 +40,7 @@ window.CommentsStore = { Vue.delete(this.state, discussionId); } }, - unresolvedDiscussionIds: function() { + unresolvedDiscussionIds() { const ids = []; for (const discussionId in this.state) { diff --git a/app/assets/javascripts/diffs/components/commit_item.vue b/app/assets/javascripts/diffs/components/commit_item.vue index c82b4a7abc6..761fd1583ed 100644 --- a/app/assets/javascripts/diffs/components/commit_item.vue +++ b/app/assets/javascripts/diffs/components/commit_item.vue @@ -17,7 +17,7 @@ import initUserPopovers from '../../user_popovers'; * * This Component was cloned from a HAML view. For the time being they * coexist, but there is an issue to remove the duplication. - * https://gitlab.com/gitlab-org/gitlab-ce/issues/51613 + * https://gitlab.com/gitlab-org/gitlab-foss/issues/51613 * */ export default { diff --git a/app/assets/javascripts/diffs/components/commit_widget.vue b/app/assets/javascripts/diffs/components/commit_widget.vue index d45f91c7023..31ed003cc0f 100644 --- a/app/assets/javascripts/diffs/components/commit_widget.vue +++ b/app/assets/javascripts/diffs/components/commit_widget.vue @@ -11,7 +11,7 @@ import CommitItem from './commit_item.vue'; * * This Component was cloned from a HAML view. For the time being, * they coexist, but there is an issue to remove the duplication. - * https://gitlab.com/gitlab-org/gitlab-ce/issues/51613 + * https://gitlab.com/gitlab-org/gitlab-foss/issues/51613 * */ export default { diff --git a/app/assets/javascripts/diffs/components/diff_content.vue b/app/assets/javascripts/diffs/components/diff_content.vue index d59b1136677..9a1e59ec045 100644 --- a/app/assets/javascripts/diffs/components/diff_content.vue +++ b/app/assets/javascripts/diffs/components/diff_content.vue @@ -45,7 +45,6 @@ export default { computed: { ...mapState({ projectPath: state => state.diffs.projectPath, - endpoint: state => state.diffs.endpoint, }), ...mapGetters('diffs', ['isInlineView', 'isParallelView']), ...mapGetters('diffs', ['getCommentFormForDiffFile']), diff --git a/app/assets/javascripts/environments/components/environment_actions.vue b/app/assets/javascripts/environments/components/environment_actions.vue index 21244c14977..22bba21526c 100644 --- a/app/assets/javascripts/environments/components/environment_actions.vue +++ b/app/assets/javascripts/environments/components/environment_actions.vue @@ -40,7 +40,7 @@ export default { ), { jobName: action.name }, ); - // https://gitlab.com/gitlab-org/gitlab-ce/issues/52156 + // https://gitlab.com/gitlab-org/gitlab-foss/issues/52156 // eslint-disable-next-line no-alert if (!window.confirm(confirmationMessage)) { return; diff --git a/app/assets/javascripts/environments/components/environment_item.vue b/app/assets/javascripts/environments/components/environment_item.vue index 1d4a6e64f9d..c94039326aa 100644 --- a/app/assets/javascripts/environments/components/environment_item.vue +++ b/app/assets/javascripts/environments/components/environment_item.vue @@ -278,7 +278,7 @@ export default { */ isLastDeployment() { // name: 'last?' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives - // Vue i18n ESLint rules issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/63560 + // Vue i18n ESLint rules issue: https://gitlab.com/gitlab-org/gitlab-foss/issues/63560 // eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings return this.model && this.model.last_deployment && this.model.last_deployment['last?']; }, diff --git a/app/assets/javascripts/filtered_search/filtered_search_manager.js b/app/assets/javascripts/filtered_search/filtered_search_manager.js index d1f52b91d9e..fd335362e5b 100644 --- a/app/assets/javascripts/filtered_search/filtered_search_manager.js +++ b/app/assets/javascripts/filtered_search/filtered_search_manager.js @@ -474,7 +474,7 @@ export default class FilteredSearchManager { } }) .catch(() => { - // https://gitlab.com/gitlab-org/gitlab-ce/issues/30821 + // https://gitlab.com/gitlab-org/gitlab-foss/issues/30821 }); } diff --git a/app/assets/javascripts/image_diff/helpers/badge_helper.js b/app/assets/javascripts/image_diff/helpers/badge_helper.js index 000157efad0..7921650e8a0 100644 --- a/app/assets/javascripts/image_diff/helpers/badge_helper.js +++ b/app/assets/javascripts/image_diff/helpers/badge_helper.js @@ -1,3 +1,5 @@ +import { spriteIcon } from '~/lib/utils/common_utils'; + export function createImageBadge(noteId, { x, y }, classNames = []) { const buttonEl = document.createElement('button'); const classList = classNames.concat(['js-image-badge']); @@ -20,7 +22,7 @@ export function addImageBadge(containerEl, { coordinate, badgeText, noteId }) { export function addImageCommentBadge(containerEl, { coordinate, noteId }) { const buttonEl = createImageBadge(noteId, coordinate, ['image-comment-badge']); - buttonEl.innerHTML = gl.utils.spriteIcon('image-comment-dark'); + buttonEl.innerHTML = spriteIcon('image-comment-dark'); containerEl.appendChild(buttonEl); } diff --git a/app/assets/javascripts/image_diff/helpers/comment_indicator_helper.js b/app/assets/javascripts/image_diff/helpers/comment_indicator_helper.js index 7051a968dac..df3d90cff68 100644 --- a/app/assets/javascripts/image_diff/helpers/comment_indicator_helper.js +++ b/app/assets/javascripts/image_diff/helpers/comment_indicator_helper.js @@ -1,3 +1,5 @@ +import { spriteIcon } from '~/lib/utils/common_utils'; + export function addCommentIndicator(containerEl, { x, y }) { const buttonEl = document.createElement('button'); buttonEl.classList.add('btn-transparent'); @@ -6,7 +8,7 @@ export function addCommentIndicator(containerEl, { x, y }) { buttonEl.style.left = `${x}px`; buttonEl.style.top = `${y}px`; - buttonEl.innerHTML = gl.utils.spriteIcon('image-comment-dark'); + buttonEl.innerHTML = spriteIcon('image-comment-dark'); containerEl.appendChild(buttonEl); } diff --git a/app/assets/javascripts/image_diff/helpers/index.js b/app/assets/javascripts/image_diff/helpers/index.js index 4a100631003..feeb0e8fa16 100644 --- a/app/assets/javascripts/image_diff/helpers/index.js +++ b/app/assets/javascripts/image_diff/helpers/index.js @@ -21,5 +21,4 @@ export default { resizeCoordinatesToImageElement: utilsHelper.resizeCoordinatesToImageElement, generateBadgeFromDiscussionDOM: utilsHelper.generateBadgeFromDiscussionDOM, getTargetSelection: utilsHelper.getTargetSelection, - initImageDiff: utilsHelper.initImageDiff, }; diff --git a/app/assets/javascripts/image_diff/helpers/init_image_diff.js b/app/assets/javascripts/image_diff/helpers/init_image_diff.js new file mode 100644 index 00000000000..8eef930c372 --- /dev/null +++ b/app/assets/javascripts/image_diff/helpers/init_image_diff.js @@ -0,0 +1,27 @@ +import ImageDiff from '../image_diff'; +import ReplacedImageDiff from '../replaced_image_diff'; +import ImageFile from '../../commit/image_file'; + +function initImageDiff(fileEl, canCreateNote, renderCommentBadge) { + const options = { + canCreateNote, + renderCommentBadge, + }; + let diff; + + // ImageFile needs to be invoked before initImageDiff so that badges + // can mount to the correct location + new ImageFile(fileEl); // eslint-disable-line no-new + + if (fileEl.querySelector('.diff-file .js-single-image')) { + diff = new ImageDiff(fileEl, options); + diff.init(); + } else if (fileEl.querySelector('.diff-file .js-replaced-image')) { + diff = new ReplacedImageDiff(fileEl, options); + diff.init(); + } + + return diff; +} + +export default { initImageDiff }; diff --git a/app/assets/javascripts/image_diff/helpers/utils_helper.js b/app/assets/javascripts/image_diff/helpers/utils_helper.js index beec99e6934..4b383b42dff 100644 --- a/app/assets/javascripts/image_diff/helpers/utils_helper.js +++ b/app/assets/javascripts/image_diff/helpers/utils_helper.js @@ -1,7 +1,4 @@ import ImageBadge from '../image_badge'; -import ImageDiff from '../image_diff'; -import ReplacedImageDiff from '../replaced_image_diff'; -import ImageFile from '../../commit/image_file'; export function resizeCoordinatesToImageElement(imageEl, meta) { const { x, y, width, height } = meta; @@ -70,25 +67,3 @@ export function getTargetSelection(event) { }, }; } - -export function initImageDiff(fileEl, canCreateNote, renderCommentBadge) { - const options = { - canCreateNote, - renderCommentBadge, - }; - let diff; - - // ImageFile needs to be invoked before initImageDiff so that badges - // can mount to the correct location - new ImageFile(fileEl); // eslint-disable-line no-new - - if (fileEl.querySelector('.diff-file .js-single-image')) { - diff = new ImageDiff(fileEl, options); - diff.init(); - } else if (fileEl.querySelector('.diff-file .js-replaced-image')) { - diff = new ReplacedImageDiff(fileEl, options); - diff.init(); - } - - return diff; -} diff --git a/app/assets/javascripts/image_diff/init_discussion_tab.js b/app/assets/javascripts/image_diff/init_discussion_tab.js index dbe4c06a4e9..54ff2858206 100644 --- a/app/assets/javascripts/image_diff/init_discussion_tab.js +++ b/app/assets/javascripts/image_diff/init_discussion_tab.js @@ -1,4 +1,4 @@ -import imageDiffHelper from './helpers/index'; +import initImageDiffHelper from './helpers/init_image_diff'; export default () => { // Always pass can-create-note as false because a user @@ -8,6 +8,6 @@ export default () => { const diffFileEls = document.querySelectorAll('.timeline-content .diff-file.js-image-file'); [...diffFileEls].forEach(diffFileEl => - imageDiffHelper.initImageDiff(diffFileEl, canCreateNote, renderCommentBadge), + initImageDiffHelper.initImageDiff(diffFileEl, canCreateNote, renderCommentBadge), ); }; diff --git a/app/assets/javascripts/issue_show/components/app.vue b/app/assets/javascripts/issue_show/components/app.vue index 88975c2cc73..b8b3a4f44fd 100644 --- a/app/assets/javascripts/issue_show/components/app.vue +++ b/app/assets/javascripts/issue_show/components/app.vue @@ -102,10 +102,10 @@ export default { required: false, default: '', }, - issuableTemplates: { - type: Array, + issuableTemplateNamesPath: { + type: String, required: false, - default: () => [], + default: '', }, markdownPreviewPath: { type: String, @@ -156,9 +156,13 @@ export default { store, state: store.state, showForm: false, + templatesRequested: false, }; }, computed: { + issuableTemplates() { + return this.store.formState.issuableTemplates; + }, formState() { return this.store.formState; }, @@ -233,6 +237,7 @@ export default { } return undefined; }, + updateStoreState() { return this.service .getData() @@ -245,7 +250,7 @@ export default { }); }, - openForm() { + updateAndShowForm(templates = []) { if (!this.showForm) { this.showForm = true; this.store.setFormState({ @@ -254,9 +259,32 @@ export default { lock_version: this.state.lock_version, lockedWarningVisible: false, updateLoading: false, + issuableTemplates: templates, + }); + } + }, + + requestTemplatesAndShowForm() { + return this.service + .loadTemplates(this.issuableTemplateNamesPath) + .then(res => { + this.updateAndShowForm(res.data); + }) + .catch(() => { + createFlash(this.defaultErrorMessage); + this.updateAndShowForm(); }); + }, + + openForm() { + if (!this.templatesRequested) { + this.templatesRequested = true; + this.requestTemplatesAndShowForm(); + } else { + this.updateAndShowForm(this.issuableTemplates); } }, + closeForm() { this.showForm = false; }, diff --git a/app/assets/javascripts/issue_show/services/index.js b/app/assets/javascripts/issue_show/services/index.js index 3c8334bee50..b1deeaae0fc 100644 --- a/app/assets/javascripts/issue_show/services/index.js +++ b/app/assets/javascripts/issue_show/services/index.js @@ -17,4 +17,13 @@ export default class Service { updateIssuable(data) { return axios.put(this.endpoint, data); } + + // eslint-disable-next-line class-methods-use-this + loadTemplates(templateNamesEndpoint) { + if (!templateNamesEndpoint) { + return Promise.resolve([]); + } + + return axios.get(templateNamesEndpoint); + } } diff --git a/app/assets/javascripts/issue_show/stores/index.js b/app/assets/javascripts/issue_show/stores/index.js index 3c17e73ccec..d32747b5053 100644 --- a/app/assets/javascripts/issue_show/stores/index.js +++ b/app/assets/javascripts/issue_show/stores/index.js @@ -9,6 +9,7 @@ export default class Store { lockedWarningVisible: false, updateLoading: false, lock_version: 0, + issuableTemplates: [], }; } diff --git a/app/assets/javascripts/labels_select.js b/app/assets/javascripts/labels_select.js index 8cc3bc8373f..b028e9564c9 100644 --- a/app/assets/javascripts/labels_select.js +++ b/app/assets/javascripts/labels_select.js @@ -1,4 +1,4 @@ -/* eslint-disable no-useless-return, func-names, no-var, no-underscore-dangle, prefer-arrow-callback, one-var, prefer-template, no-new, consistent-return, object-shorthand, no-shadow, no-param-reassign, vars-on-top, no-lonely-if, no-else-return, dot-notation, no-empty */ +/* eslint-disable no-useless-return, func-names, no-var, no-underscore-dangle, prefer-arrow-callback, one-var, prefer-template, no-new, consistent-return, no-shadow, no-param-reassign, vars-on-top, no-lonely-if, no-else-return, dot-notation, no-empty */ /* global Issuable */ /* global ListLabel */ @@ -197,8 +197,8 @@ export default class LabelsSelect { .catch(() => flash(__('Error saving label update.'))); }; $dropdown.glDropdown({ - showMenuAbove: showMenuAbove, - data: function(term, callback) { + showMenuAbove, + data(term, callback) { labelUrl = $dropdown.attr('data-labels'); axios .get(labelUrl) @@ -231,7 +231,7 @@ export default class LabelsSelect { }) .catch(() => flash(__('Error fetching labels.'))); }, - renderRow: function(label) { + renderRow(label) { var linkEl, listItemEl, colorEl, @@ -316,7 +316,7 @@ export default class LabelsSelect { selectable: true, filterable: true, selected: $dropdown.data('selected') || [], - toggleLabel: function(selected, el) { + toggleLabel(selected, el) { var $dropdownParent = $dropdown.parent(); var $dropdownInputField = $dropdownParent.find('.dropdown-input-field'); var isSelected = el !== null ? el.hasClass('is-active') : false; @@ -350,7 +350,7 @@ export default class LabelsSelect { } }, fieldName: $dropdown.data('fieldName'), - id: function(label) { + id(label) { if (label.id <= 0) return label.title; if ($dropdown.hasClass('js-issuable-form-dropdown')) { @@ -363,7 +363,7 @@ export default class LabelsSelect { return label.id; } }, - hidden: function() { + hidden() { var isIssueIndex, isMRIndex, page; page = $('body').attr('data-page'); isIssueIndex = page === 'projects:issues:index'; @@ -394,7 +394,7 @@ export default class LabelsSelect { }, multiSelect: $dropdown.hasClass('js-multiselect'), vue: $dropdown.hasClass('js-issue-board-sidebar'), - clicked: function(clickEvent) { + clicked(clickEvent) { const { $el, e, isMarking } = clickEvent; const label = clickEvent.selectedObj; @@ -478,7 +478,7 @@ export default class LabelsSelect { } } }, - opened: function() { + opened() { if ($dropdown.hasClass('js-issue-board-sidebar')) { const previousSelection = $dropdown.attr('data-selected'); this.selected = previousSelection ? previousSelection.split(',') : []; diff --git a/app/assets/javascripts/lazy_loader.js b/app/assets/javascripts/lazy_loader.js index 66f25b622e0..9e8edd05b88 100644 --- a/app/assets/javascripts/lazy_loader.js +++ b/app/assets/javascripts/lazy_loader.js @@ -92,7 +92,7 @@ export default class LazyLoader { onIntersection = entries => { entries.forEach(entry => { // We are using `intersectionRatio > 0` over `isIntersecting`, as some browsers did not ship the latter - // See: https://gitlab.com/gitlab-org/gitlab-ce/issues/54407 + // See: https://gitlab.com/gitlab-org/gitlab-foss/issues/54407 if (entry.intersectionRatio > 0) { this.intersectionObserver.unobserve(entry.target); this.lazyImages.push(entry.target); diff --git a/app/assets/javascripts/lib/utils/notify.js b/app/assets/javascripts/lib/utils/notify.js index e7f6255e5f1..3439db1e326 100644 --- a/app/assets/javascripts/lib/utils/notify.js +++ b/app/assets/javascripts/lib/utils/notify.js @@ -1,4 +1,4 @@ -/* eslint-disable func-names, no-var, consistent-return, prefer-arrow-callback, no-return-assign, object-shorthand */ +/* eslint-disable func-names, no-var, consistent-return, prefer-arrow-callback, no-return-assign */ function notificationGranted(message, opts, onclick) { var notification; @@ -21,8 +21,8 @@ function notifyPermissions() { function notifyMe(message, body, icon, onclick) { var opts; opts = { - body: body, - icon: icon, + body, + icon, }; // Let's check if the browser supports notifications /* eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings */ diff --git a/app/assets/javascripts/locale/sprintf.js b/app/assets/javascripts/locale/sprintf.js index 68b64a3a16a..a3557fbf3fb 100644 --- a/app/assets/javascripts/locale/sprintf.js +++ b/app/assets/javascripts/locale/sprintf.js @@ -9,7 +9,7 @@ import _ from 'underscore'; @returns {String} the text with parameters replaces (e.g. '5 users use us') @see https://ruby-doc.org/core-2.3.3/Kernel.html#method-i-sprintf - @see https://gitlab.com/gitlab-org/gitlab-ce/issues/37992 + @see https://gitlab.com/gitlab-org/gitlab-foss/issues/37992 */ export default (input, parameters, escapeParameters = true) => { let output = input; diff --git a/app/assets/javascripts/main.js b/app/assets/javascripts/main.js index 0ddf40b0405..49be11d466d 100644 --- a/app/assets/javascripts/main.js +++ b/app/assets/javascripts/main.js @@ -37,6 +37,7 @@ import GlFieldErrors from './gl_field_errors'; import initUserPopovers from './user_popovers'; import { initUserTracking } from './tracking'; import { __ } from './locale'; +import initPrivacyPolicyUpdateCallout from './privacy_policy_update_callout'; import 'ee_else_ce/main_ee'; @@ -96,6 +97,7 @@ function deferredInitialisation() { initUsagePingConsent(); initUserPopovers(); initUserTracking(); + initPrivacyPolicyUpdateCallout(); if (document.querySelector('.search')) initSearchAutocomplete(); diff --git a/app/assets/javascripts/merge_conflicts/components/diff_file_editor.js b/app/assets/javascripts/merge_conflicts/components/diff_file_editor.js index a62ebe23646..70b18d9728d 100644 --- a/app/assets/javascripts/merge_conflicts/components/diff_file_editor.js +++ b/app/assets/javascripts/merge_conflicts/components/diff_file_editor.js @@ -1,4 +1,4 @@ -/* eslint-disable no-useless-computed-key, object-shorthand, no-param-reassign */ +/* eslint-disable no-param-reassign */ /* global ace */ import Vue from 'vue'; @@ -42,7 +42,7 @@ import getModeByFileExtension from '~/lib/utils/ace_utils'; }, }, watch: { - ['file.showEditor'](val) { + 'file.showEditor': function showEditorWatcher(val) { this.resetEditorContent(); if (!val || this.fileLoaded || this.loading) { diff --git a/app/assets/javascripts/merge_conflicts/merge_conflict_store.js b/app/assets/javascripts/merge_conflicts/merge_conflict_store.js index 88bc0940741..e7fcc183715 100644 --- a/app/assets/javascripts/merge_conflicts/merge_conflict_store.js +++ b/app/assets/javascripts/merge_conflicts/merge_conflict_store.js @@ -1,4 +1,4 @@ -/* eslint-disable object-shorthand, no-param-reassign, camelcase, no-nested-ternary, no-continue */ +/* eslint-disable no-param-reassign, camelcase, no-nested-ternary, no-continue */ import $ from 'jquery'; import Vue from 'vue'; @@ -31,7 +31,7 @@ import { s__ } from '~/locale'; hasError: false, isSubmitting: false, isParallel: diffViewType === VIEW_TYPES.PARALLEL, - diffViewType: diffViewType, + diffViewType, conflictsData: {}, }, @@ -188,7 +188,7 @@ import { s__ } from '~/locale'; getHeadHeaderLine(id) { return { - id: id, + id, richText: HEAD_HEADER_TEXT, buttonTitle: HEAD_BUTTON_TITLE, type: 'new', @@ -233,7 +233,7 @@ import { s__ } from '~/locale'; getOriginHeaderLine(id) { return { - id: id, + id, richText: ORIGIN_HEADER_TEXT, buttonTitle: ORIGIN_BUTTON_TITLE, type: 'old', diff --git a/app/assets/javascripts/milestone_select.js b/app/assets/javascripts/milestone_select.js index 9c0d55326ee..1738dbe439c 100644 --- a/app/assets/javascripts/milestone_select.js +++ b/app/assets/javascripts/milestone_select.js @@ -1,4 +1,4 @@ -/* eslint-disable one-var, object-shorthand, no-else-return, no-self-compare, consistent-return, no-param-reassign, no-shadow */ +/* eslint-disable one-var, no-else-return, no-self-compare, consistent-return, no-param-reassign, no-shadow */ /* global Issuable */ /* global ListMilestone */ @@ -65,7 +65,7 @@ export default class MilestoneSelect { milestoneLinkNoneTemplate = `<span class="no-value">${__('None')}</span>`; } return $dropdown.glDropdown({ - showMenuAbove: showMenuAbove, + showMenuAbove, data: (term, callback) => axios.get(milestonesUrl).then(({ data }) => { const extraOptions = []; @@ -126,7 +126,7 @@ export default class MilestoneSelect { return defaultLabel; } }, - defaultLabel: defaultLabel, + defaultLabel, fieldName: $dropdown.data('fieldName'), text: milestone => _.escape(milestone.title), id: milestone => { diff --git a/app/assets/javascripts/monitoring/components/charts/time_series.vue b/app/assets/javascripts/monitoring/components/charts/time_series.vue index 5f1d742d952..f3f3bf15295 100644 --- a/app/assets/javascripts/monitoring/components/charts/time_series.vue +++ b/app/assets/javascripts/monitoring/components/charts/time_series.vue @@ -1,6 +1,5 @@ <script> import { __ } from '~/locale'; -import { mapState } from 'vuex'; import { GlLink, GlButton } from '@gitlab/ui'; import { GlAreaChart, GlLineChart, GlChartSeriesLabel } from '@gitlab/ui/dist/charts'; import dateFormat from 'dateformat'; @@ -70,7 +69,6 @@ export default { }; }, computed: { - ...mapState('monitoringDashboard', ['exportMetricsToCsvEnabled']), chartData() { // Transforms & supplements query data to render appropriate labels & styles // Input: [{ queryAttributes1 }, { queryAttributes2 }] @@ -190,18 +188,6 @@ export default { yAxisLabel() { return `${this.graphData.y_label}`; }, - csvText() { - const chartData = this.chartData[0].data; - const header = `timestamp,${this.graphData.y_label}\r\n`; // eslint-disable-line @gitlab/i18n/no-non-i18n-strings - return chartData.reduce((csv, data) => { - const row = data.join(','); - return `${csv}${row}\r\n`; - }, header); - }, - downloadLink() { - const data = new Blob([this.csvText], { type: 'text/plain' }); - return window.URL.createObjectURL(data); - }, }, watch: { containerWidth: 'onResize', @@ -270,16 +256,6 @@ export default { <div class="prometheus-graph"> <div class="prometheus-graph-header"> <h5 class="prometheus-graph-title js-graph-title">{{ graphData.title }}</h5> - <gl-button - v-if="exportMetricsToCsvEnabled" - :href="downloadLink" - :title="__('Download CSV')" - :aria-label="__('Download CSV')" - style="margin-left: 200px;" - download="chart_metrics.csv" - > - {{ __('Download CSV') }} - </gl-button> <div class="prometheus-graph-widgets js-graph-widgets"> <slot></slot> </div> diff --git a/app/assets/javascripts/monitoring/components/dashboard.vue b/app/assets/javascripts/monitoring/components/dashboard.vue index 7a5a3789bd6..12a4c83e053 100644 --- a/app/assets/javascripts/monitoring/components/dashboard.vue +++ b/app/assets/javascripts/monitoring/components/dashboard.vue @@ -262,7 +262,7 @@ export default { return window.URL.createObjectURL(data); }, // TODO: BEGIN, Duplicated code with panel_type until feature flag is removed - // Issue number: https://gitlab.com/gitlab-org/gitlab-ce/issues/63845 + // Issue number: https://gitlab.com/gitlab-org/gitlab-foss/issues/63845 getGraphAlerts(queries) { if (!this.allAlerts) return {}; const metricIdsForChart = queries.map(q => q.metricId); diff --git a/app/assets/javascripts/namespace_select.js b/app/assets/javascripts/namespace_select.js index 2ef081837e6..4ddbec71ba6 100644 --- a/app/assets/javascripts/namespace_select.js +++ b/app/assets/javascripts/namespace_select.js @@ -1,4 +1,4 @@ -/* eslint-disable func-names, object-shorthand, no-else-return, prefer-template, prefer-arrow-callback */ +/* eslint-disable func-names, no-else-return, prefer-template, prefer-arrow-callback */ import $ from 'jquery'; import Api from './api'; @@ -18,15 +18,15 @@ export default class NamespaceSelect { search: { fields: ['path'], }, - fieldName: fieldName, - toggleLabel: function(selected) { + fieldName, + toggleLabel(selected) { if (selected.id == null) { return selected.text; } else { return selected.kind + ': ' + selected.full_path; } }, - data: function(term, dataCallback) { + data(term, dataCallback) { return Api.namespaces(term, function(namespaces) { if (isFilter) { const anyNamespace = { @@ -39,7 +39,7 @@ export default class NamespaceSelect { return dataCallback(namespaces); }); }, - text: function(namespace) { + text(namespace) { if (namespace.id == null) { return namespace.text; } else { diff --git a/app/assets/javascripts/notes/components/discussion_actions.vue b/app/assets/javascripts/notes/components/discussion_actions.vue index e3be91a4966..6bbf2fa6ee4 100644 --- a/app/assets/javascripts/notes/components/discussion_actions.vue +++ b/app/assets/javascripts/notes/components/discussion_actions.vue @@ -36,10 +36,11 @@ export default { }, }, computed: { + resolvableNotes() { + return this.discussion.notes.filter(x => x.resolvable); + }, userCanResolveDiscussion() { - return this.discussion.notes.every( - note => note.current_user && note.current_user.can_resolve, - ); + return this.resolvableNotes.every(note => note.current_user && note.current_user.can_resolve); }, }, }; diff --git a/app/assets/javascripts/notes/components/noteable_note.vue b/app/assets/javascripts/notes/components/noteable_note.vue index 9019f0542b6..fa8fc7d02e4 100644 --- a/app/assets/javascripts/notes/components/noteable_note.vue +++ b/app/assets/javascripts/notes/components/noteable_note.vue @@ -98,7 +98,7 @@ export default { // We need to do this to ensure we have the correct sentence order // when translating this as the sentence order may change from one // language to the next. See: - // https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24427#note_133713771 + // https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/24427#note_133713771 const { id, url } = this.commit; const commitLink = `<a class="commit-sha monospace" href="${escape(url)}">${truncateSha( id, diff --git a/app/assets/javascripts/pages/projects/graphs/show/stat_graph_contributors_util.js b/app/assets/javascripts/pages/projects/graphs/show/stat_graph_contributors_util.js index ec3919dd073..505ca938f40 100644 --- a/app/assets/javascripts/pages/projects/graphs/show/stat_graph_contributors_util.js +++ b/app/assets/javascripts/pages/projects/graphs/show/stat_graph_contributors_util.js @@ -1,8 +1,8 @@ -/* eslint-disable func-names, object-shorthand, no-var, one-var, camelcase, no-param-reassign, no-return-assign, prefer-arrow-callback, consistent-return, no-cond-assign, no-else-return */ +/* eslint-disable func-names, no-var, one-var, camelcase, no-param-reassign, no-return-assign, prefer-arrow-callback, consistent-return, no-cond-assign, no-else-return */ import _ from 'underscore'; export default { - parse_log: function(log) { + parse_log(log) { var by_author, by_email, data, entry, i, len, total, normalized_email; total = {}; by_author = {}; @@ -25,15 +25,15 @@ export default { total = _.toArray(total); by_author = _.toArray(by_author); return { - total: total, - by_author: by_author, + total, + by_author, }; }, - add_date: function(date, collection) { + add_date(date, collection) { collection[date] = {}; return (collection[date].date = date); }, - add_author: function(author, by_author, by_email) { + add_author(author, by_author, by_email) { var data, normalized_email; data = {}; data.author_name = author.author_name; @@ -43,36 +43,36 @@ export default { by_email[normalized_email] = data; return data; }, - store_data: function(entry, total, by_author) { + store_data(entry, total, by_author) { this.store_commits(total, by_author); this.store_additions(entry, total, by_author); return this.store_deletions(entry, total, by_author); }, - store_commits: function(total, by_author) { + store_commits(total, by_author) { this.add(total, 'commits', 1); return this.add(by_author, 'commits', 1); }, - add: function(collection, field, value) { + add(collection, field, value) { if (collection[field] == null) { collection[field] = 0; } return (collection[field] += value); }, - store_additions: function(entry, total, by_author) { + store_additions(entry, total, by_author) { if (entry.additions == null) { entry.additions = 0; } this.add(total, 'additions', entry.additions); return this.add(by_author, 'additions', entry.additions); }, - store_deletions: function(entry, total, by_author) { + store_deletions(entry, total, by_author) { if (entry.deletions == null) { entry.deletions = 0; } this.add(total, 'deletions', entry.deletions); return this.add(by_author, 'deletions', entry.deletions); }, - get_total_data: function(parsed_log, field) { + get_total_data(parsed_log, field) { var log, total_data; log = parsed_log.total; total_data = this.pick_field(log, field); @@ -80,7 +80,7 @@ export default { return d.date; }); }, - pick_field: function(log, field) { + pick_field(log, field) { var total_data; total_data = []; _.each(log, function(d) { @@ -88,7 +88,7 @@ export default { }); return total_data; }, - get_author_data: function(parsed_log, field, date_range) { + get_author_data(parsed_log, field, date_range) { var author_data, log; if (date_range == null) { date_range = null; @@ -111,7 +111,7 @@ export default { return d[field]; }).reverse(); }, - parse_log_entry: function(log_entry, field, date_range) { + parse_log_entry(log_entry, field, date_range) { var parsed_entry; parsed_entry = {}; @@ -138,7 +138,7 @@ export default { ); return parsed_entry; }, - in_range: function(date, date_range) { + in_range(date, date_range) { var ref; if (date_range === null || (date_range[0] <= (ref = new Date(date)) && ref <= date_range[1])) { return true; diff --git a/app/assets/javascripts/pages/projects/project.js b/app/assets/javascripts/pages/projects/project.js index 33e9a8e9d56..b99408e3609 100644 --- a/app/assets/javascripts/pages/projects/project.js +++ b/app/assets/javascripts/pages/projects/project.js @@ -1,4 +1,4 @@ -/* eslint-disable func-names, no-var, no-return-assign, object-shorthand, vars-on-top */ +/* eslint-disable func-names, no-var, no-return-assign, vars-on-top */ import $ from 'jquery'; import Cookies from 'js-cookie'; @@ -123,7 +123,7 @@ export default class Project { filterByText: true, inputFieldName: $dropdown.data('inputFieldName'), fieldName, - renderRow: function(ref) { + renderRow(ref) { var li = refListItem.cloneNode(false); if (ref.header != null) { @@ -144,13 +144,13 @@ export default class Project { return li; }, - id: function(obj, $el) { + id(obj, $el) { return $el.attr('data-ref'); }, - toggleLabel: function(obj, $el) { + toggleLabel(obj, $el) { return $el.text().trim(); }, - clicked: function(options) { + clicked(options) { const { e } = options; e.preventDefault(); if ($(`input[name="${fieldName}"]`).length) { diff --git a/app/assets/javascripts/pipelines/components/graph/graph_component.vue b/app/assets/javascripts/pipelines/components/graph/graph_component.vue index 27c1b639889..cfc72327ef7 100644 --- a/app/assets/javascripts/pipelines/components/graph/graph_component.vue +++ b/app/assets/javascripts/pipelines/components/graph/graph_component.vue @@ -2,35 +2,43 @@ import { GlLoadingIcon } from '@gitlab/ui'; import StageColumnComponent from './stage_column_component.vue'; import GraphMixin from '../../mixins/graph_component_mixin'; +import GraphWidthMixin from '~/pipelines/mixins/graph_width_mixin'; export default { components: { StageColumnComponent, GlLoadingIcon, }, - mixins: [GraphMixin], + mixins: [GraphMixin, GraphWidthMixin], }; </script> <template> <div class="build-content middle-block js-pipeline-graph"> <div class="pipeline-visualization pipeline-graph pipeline-tab-content"> - <div v-if="isLoading" class="m-auto"><gl-loading-icon :size="3" /></div> + <div + :style="{ + paddingLeft: `${graphLeftPadding}px`, + paddingRight: `${graphRightPadding}px`, + }" + > + <gl-loading-icon v-if="isLoading" class="m-auto" :size="3" /> - <ul v-if="!isLoading" class="stage-column-list"> - <stage-column-component - v-for="(stage, index) in graph" - :key="stage.name" - :class="{ - 'append-right-48': shouldAddRightMargin(index), - }" - :title="capitalizeStageName(stage.name)" - :groups="stage.groups" - :stage-connector-class="stageConnectorClass(index, stage)" - :is-first-column="isFirstColumn(index)" - :action="stage.status.action" - @refreshPipelineGraph="refreshPipelineGraph" - /> - </ul> + <ul v-if="!isLoading" class="stage-column-list"> + <stage-column-component + v-for="(stage, index) in graph" + :key="stage.name" + :class="{ + 'append-right-48': shouldAddRightMargin(index), + }" + :title="capitalizeStageName(stage.name)" + :groups="stage.groups" + :stage-connector-class="stageConnectorClass(index, stage)" + :is-first-column="isFirstColumn(index)" + :action="stage.status.action" + @refreshPipelineGraph="refreshPipelineGraph" + /> + </ul> + </div> </div> </div> </template> diff --git a/app/assets/javascripts/pipelines/components/pipelines_actions.vue b/app/assets/javascripts/pipelines/components/pipelines_actions.vue index 4b2d816c6a0..9764e32955c 100644 --- a/app/assets/javascripts/pipelines/components/pipelines_actions.vue +++ b/app/assets/javascripts/pipelines/components/pipelines_actions.vue @@ -37,7 +37,7 @@ export default { ), { jobName: action.name }, ); - // https://gitlab.com/gitlab-org/gitlab-ce/issues/52156 + // https://gitlab.com/gitlab-org/gitlab-foss/issues/52156 // eslint-disable-next-line no-alert if (!window.confirm(confirmationMessage)) { return; diff --git a/app/assets/javascripts/pipelines/constants.js b/app/assets/javascripts/pipelines/constants.js index eaa11a84cb9..d27829db50c 100644 --- a/app/assets/javascripts/pipelines/constants.js +++ b/app/assets/javascripts/pipelines/constants.js @@ -1,2 +1,3 @@ export const CANCEL_REQUEST = 'CANCEL_REQUEST'; export const PIPELINES_TABLE = 'PIPELINES_TABLE'; +export const LAYOUT_CHANGE_DELAY = 300; diff --git a/app/assets/javascripts/pipelines/mixins/graph_width_mixin.js b/app/assets/javascripts/pipelines/mixins/graph_width_mixin.js new file mode 100644 index 00000000000..2dbaa5a5c9a --- /dev/null +++ b/app/assets/javascripts/pipelines/mixins/graph_width_mixin.js @@ -0,0 +1,50 @@ +import { debounceByAnimationFrame } from '~/lib/utils/common_utils'; +import { LAYOUT_CHANGE_DELAY } from '~/pipelines/constants'; + +export default { + debouncedResize: null, + sidebarMutationObserver: null, + data() { + return { + graphLeftPadding: 0, + graphRightPadding: 0, + }; + }, + beforeDestroy() { + window.removeEventListener('resize', this.$options.debouncedResize); + + if (this.$options.sidebarMutationObserver) { + this.$options.sidebarMutationObserver.disconnect(); + } + }, + created() { + this.$options.debouncedResize = debounceByAnimationFrame(this.setGraphPadding); + window.addEventListener('resize', this.$options.debouncedResize); + }, + mounted() { + this.setGraphPadding(); + + this.$options.sidebarMutationObserver = new MutationObserver(this.handleLayoutChange); + this.$options.sidebarMutationObserver.observe(document.querySelector('.layout-page'), { + attributes: true, + childList: false, + subtree: false, + }); + }, + methods: { + setGraphPadding() { + // only add padding to main graph (not inline upstream/downstream graphs) + if (this.type && this.type !== 'main') return; + + const container = document.querySelector('.js-pipeline-container'); + if (!container) return; + + this.graphLeftPadding = container.offsetLeft; + this.graphRightPadding = window.innerWidth - container.offsetLeft - container.offsetWidth; + }, + handleLayoutChange() { + // wait until animations finish, then recalculate padding + window.setTimeout(this.setGraphPadding, LAYOUT_CHANGE_DELAY); + }, + }, +}; diff --git a/app/assets/javascripts/privacy_policy_update_callout.js b/app/assets/javascripts/privacy_policy_update_callout.js index 126b1ee1132..97f41deb30f 100644 --- a/app/assets/javascripts/privacy_policy_update_callout.js +++ b/app/assets/javascripts/privacy_policy_update_callout.js @@ -1,7 +1,7 @@ import PersistentUserCallout from '~/persistent_user_callout'; function initPrivacyPolicyUpdateCallout() { - const callout = document.querySelector('.privacy-policy-update-64341'); + const callout = document.querySelector('.js-privacy-policy-update'); PersistentUserCallout.factory(callout); } diff --git a/app/assets/javascripts/profile/gl_crop.js b/app/assets/javascripts/profile/gl_crop.js index 6a07ccc7586..44bc2d9f5f8 100644 --- a/app/assets/javascripts/profile/gl_crop.js +++ b/app/assets/javascripts/profile/gl_crop.js @@ -1,4 +1,4 @@ -/* eslint-disable no-useless-escape, no-var, no-underscore-dangle, func-names, no-return-assign, object-shorthand, one-var, consistent-return, class-methods-use-this */ +/* eslint-disable no-useless-escape, no-var, no-underscore-dangle, func-names, no-return-assign, one-var, consistent-return, class-methods-use-this */ import $ from 'jquery'; import 'cropper'; @@ -100,7 +100,7 @@ import _ from 'underscore'; cropBoxMovable: false, cropBoxResizable: false, toggleDragModeOnDblclick: false, - built: function() { + built() { const $image = $(this); const container = $image.cropper('getContainerData'); const { cropBoxWidth, cropBoxHeight } = _this; diff --git a/app/assets/javascripts/project_select.js b/app/assets/javascripts/project_select.js index dbe354a547b..88665ed2ab7 100644 --- a/app/assets/javascripts/project_select.js +++ b/app/assets/javascripts/project_select.js @@ -1,4 +1,4 @@ -/* eslint-disable func-names, no-var, object-shorthand, one-var, no-else-return */ +/* eslint-disable func-names, no-var, one-var, no-else-return */ import $ from 'jquery'; import Api from './api'; @@ -28,7 +28,7 @@ export default function projectSelect() { } $(select).select2({ - placeholder: placeholder, + placeholder, minimumInputLength: 0, query: (function(_this) { return function(query) { @@ -79,18 +79,18 @@ export default function projectSelect() { } }; })(this), - id: function(project) { + id(project) { if (simpleFilter) return project.id; return JSON.stringify({ name: project.name, url: project.web_url, }); }, - text: function(project) { + text(project) { return project.name_with_namespace || project.name; }, - initSelection: function(el, callback) { + initSelection(el, callback) { return Api.project(el.val()).then(({ data }) => callback(data)); }, diff --git a/app/assets/javascripts/search_autocomplete.js b/app/assets/javascripts/search_autocomplete.js index f02c55c3d5b..2f37dcec197 100644 --- a/app/assets/javascripts/search_autocomplete.js +++ b/app/assets/javascripts/search_autocomplete.js @@ -1,4 +1,4 @@ -/* eslint-disable no-return-assign, one-var, no-var, consistent-return, object-shorthand, prefer-template, class-methods-use-this, no-lonely-if, vars-on-top */ +/* eslint-disable no-return-assign, one-var, no-var, consistent-return, prefer-template, class-methods-use-this, no-lonely-if, vars-on-top */ import $ from 'jquery'; import { escape, throttle } from 'underscore'; @@ -171,7 +171,7 @@ export class SearchAutocomplete { params: { project_id: this.projectId, project_ref: this.projectRef, - term: term, + term, }, }) .then(response => { diff --git a/app/assets/javascripts/single_file_diff.js b/app/assets/javascripts/single_file_diff.js index f2b9d75dd00..b70e384fae5 100644 --- a/app/assets/javascripts/single_file_diff.js +++ b/app/assets/javascripts/single_file_diff.js @@ -5,7 +5,7 @@ import { __ } from './locale'; import axios from './lib/utils/axios_utils'; import createFlash from './flash'; import FilesCommentButton from './files_comment_button'; -import imageDiffHelper from './image_diff/helpers/index'; +import initImageDiffHelper from './image_diff/helpers/init_image_diff'; import syntaxHighlight from './syntax_highlight'; const WRAPPER = '<div class="diff-content"></div>'; @@ -101,7 +101,7 @@ export default class SingleFileDiff { FilesCommentButton.init($file); const canCreateNote = $file.closest('.files').is('[data-can-create-note]'); - imageDiffHelper.initImageDiff($file[0], canCreateNote); + initImageDiffHelper.initImageDiff($file[0], canCreateNote); if (cb) cb(); }) diff --git a/app/assets/javascripts/tracking.js b/app/assets/javascripts/tracking.js index 03281b5ef49..1b4ca1d5741 100644 --- a/app/assets/javascripts/tracking.js +++ b/app/assets/javascripts/tracking.js @@ -10,12 +10,8 @@ const DEFAULT_SNOWPLOW_OPTIONS = { forceSecureTracker: true, eventMethod: 'post', contexts: { webPage: true }, - // Page tracking tracks a single event when the page loads. - pageTrackingEnabled: false, - // Activity tracking tracks when a user is still interacting with the page. - // Events like scrolling and mouse movements are used to determine if the - // user has the tab active and is still actively engaging. - activityTrackingEnabled: false, + formTracking: false, + linkClickTracking: false, }; const extractData = (el, opts = {}) => { @@ -96,6 +92,9 @@ export function initUserTracking() { const opts = Object.assign({}, DEFAULT_SNOWPLOW_OPTIONS, window.snowplowOptions); window.snowplow('newTracker', opts.namespace, opts.hostname, opts); - if (opts.activityTrackingEnabled) window.snowplow('enableActivityTracking', 30, 30); - if (opts.pageTrackingEnabled) window.snowplow('trackPageView'); // must be after enableActivityTracking + window.snowplow('enableActivityTracking', 30, 30); + window.snowplow('trackPageView'); // must be after enableActivityTracking + + if (opts.formTracking) window.snowplow('enableFormTracking'); + if (opts.linkClickTracking) window.snowplow('enableLinkClickTracking'); } diff --git a/app/assets/javascripts/users_select.js b/app/assets/javascripts/users_select.js index 4b3c42ae848..e78ca56be0e 100644 --- a/app/assets/javascripts/users_select.js +++ b/app/assets/javascripts/users_select.js @@ -1,4 +1,4 @@ -/* eslint-disable func-names, one-var, no-var, prefer-rest-params, vars-on-top, prefer-arrow-callback, consistent-return, object-shorthand, no-shadow, no-else-return, no-self-compare, prefer-template, no-unused-expressions, yoda, prefer-spread, camelcase, no-param-reassign */ +/* eslint-disable func-names, one-var, no-var, prefer-rest-params, vars-on-top, prefer-arrow-callback, consistent-return, no-shadow, no-else-return, no-self-compare, prefer-template, no-unused-expressions, yoda, prefer-spread, camelcase, no-param-reassign */ /* global Issuable */ /* global emitSidebarEvent */ @@ -248,8 +248,8 @@ function UsersSelect(currentUser, els, options = {}) { })}</span> <% } %>`, ); return $dropdown.glDropdown({ - showMenuAbove: showMenuAbove, - data: function(term, callback) { + showMenuAbove, + data(term, callback) { return _this.users( term, options, @@ -261,7 +261,7 @@ function UsersSelect(currentUser, els, options = {}) { }.bind(this), ); }, - processData: function(term, data, callback) { + processData(term, data, callback) { let users = data; // Only show assigned user list when there is no search term @@ -326,7 +326,7 @@ function UsersSelect(currentUser, els, options = {}) { } anyUser = { beforeDivider: true, - name: name, + name, id: null, }; users.unshift(anyUser); @@ -376,7 +376,7 @@ function UsersSelect(currentUser, els, options = {}) { }, selectable: true, fieldName: $dropdown.data('fieldName'), - toggleLabel: function(selected, el, glDropdown) { + toggleLabel(selected, el, glDropdown) { const inputValue = glDropdown.filterInput.val(); if (this.multiSelect && inputValue === '') { @@ -404,8 +404,8 @@ function UsersSelect(currentUser, els, options = {}) { return defaultLabel; } }, - defaultLabel: defaultLabel, - hidden: function() { + defaultLabel, + hidden() { if ($dropdown.hasClass('js-multiselect')) { emitSidebarEvent('sidebar.saveAssignees'); } @@ -422,7 +422,7 @@ function UsersSelect(currentUser, els, options = {}) { }, multiSelect: $dropdown.hasClass('js-multiselect'), inputMeta: $dropdown.data('inputMeta'), - clicked: function(options) { + clicked(options) { const { $el, e, isMarking } = options; const user = options.selectedObj; @@ -522,10 +522,10 @@ function UsersSelect(currentUser, els, options = {}) { $dropdown.dropdown('toggle'); } }, - id: function(user) { + id(user) { return user.id; }, - opened: function(e) { + opened(e) { const $el = $(e.currentTarget); const selected = getSelected(); if ($dropdown.hasClass('js-issue-board-sidebar') && selected.length === 0) { @@ -546,7 +546,7 @@ function UsersSelect(currentUser, els, options = {}) { } }, updateLabel: $dropdown.data('dropdownTitle'), - renderRow: function(user) { + renderRow(user) { var avatar, img, username; username = user.username ? '@' + user.username : ''; avatar = user.avatar_url ? user.avatar_url : gon.default_avatar_url; @@ -605,7 +605,7 @@ function UsersSelect(currentUser, els, options = {}) { placeholder: __('Search for a user'), multiple: $(select).hasClass('multiselect'), minimumInputLength: 0, - query: function(query) { + query(query) { return _this.users(query.term, options, function(users) { var anyUser, data, emailUser, index, len, name, nullUser, obj, ref; data = { @@ -638,7 +638,7 @@ function UsersSelect(currentUser, els, options = {}) { name = s__('UsersSelect|Any User'); } anyUser = { - name: name, + name, id: null, }; data.results.unshift(anyUser); @@ -661,24 +661,24 @@ function UsersSelect(currentUser, els, options = {}) { return query.callback(data); }); }, - initSelection: function() { + initSelection() { var args; args = 1 <= arguments.length ? [].slice.call(arguments, 0) : []; return _this.initSelection.apply(_this, args); }, - formatResult: function() { + formatResult() { var args; args = 1 <= arguments.length ? [].slice.call(arguments, 0) : []; return _this.formatResult.apply(_this, args); }, - formatSelection: function() { + formatSelection() { var args; args = 1 <= arguments.length ? [].slice.call(arguments, 0) : []; return _this.formatSelection.apply(_this, args); }, dropdownCssClass: 'ajax-users-dropdown', // we do not want to escape markup since we are displaying html in results - escapeMarkup: function(m) { + escapeMarkup(m) { return m; }, }); diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue index e294e1de976..2c113770d8b 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue @@ -88,7 +88,8 @@ export default { mergeButtonText() { if (this.isMergingImmediately) { return __('Merge in progress'); - } else if (this.isAutoMergeAvailable) { + } + if (this.isAutoMergeAvailable) { return this.autoMergeText; } @@ -306,7 +307,7 @@ export default { </template> <template v-else> <span class="bold js-resolve-mr-widget-items-message"> - {{ __('You can only merge once the items above are resolved') }} + {{ mergeDisabledText }} </span> </template> </div> diff --git a/app/assets/javascripts/vue_merge_request_widget/mixins/ready_to_merge.js b/app/assets/javascripts/vue_merge_request_widget/mixins/ready_to_merge.js index eef49e20159..40e6203599f 100644 --- a/app/assets/javascripts/vue_merge_request_widget/mixins/ready_to_merge.js +++ b/app/assets/javascripts/vue_merge_request_widget/mixins/ready_to_merge.js @@ -1,5 +1,7 @@ import { __ } from '~/locale'; +export const MERGE_DISABLED_TEXT = __('You can only merge once the items above are resolved.'); + export default { computed: { isMergeButtonDisabled() { @@ -11,6 +13,9 @@ export default { this.mr.preventMerge, ); }, + mergeDisabledText() { + return MERGE_DISABLED_TEXT; + }, autoMergeText() { // MWPS is currently the only auto merge strategy available in CE return __('Merge when pipeline succeeds'); diff --git a/app/assets/javascripts/vue_merge_request_widget/services/mr_widget_service.js b/app/assets/javascripts/vue_merge_request_widget/services/mr_widget_service.js index f637a44bf2d..8a229d80954 100644 --- a/app/assets/javascripts/vue_merge_request_widget/services/mr_widget_service.js +++ b/app/assets/javascripts/vue_merge_request_widget/services/mr_widget_service.js @@ -37,7 +37,7 @@ export default class MRWidgetService { // two endpoints are requested in order to get MR info: // one which is etag-cached and invalidated and another one which is not cached // the idea is to move all the fields to etag-cached endpoint and then perform only one request - // https://gitlab.com/gitlab-org/gitlab-ce/issues/61559#note_188801390 + // https://gitlab.com/gitlab-org/gitlab-foss/issues/61559#note_188801390 const getData = axios.get(this.endpoints.mergeRequestWidgetPath); const getCachedData = axios.get(this.endpoints.mergeRequestCachedWidgetPath); diff --git a/app/assets/javascripts/vue_shared/components/ci_badge_link.vue b/app/assets/javascripts/vue_shared/components/ci_badge_link.vue index b0962684430..0e0bb8735b4 100644 --- a/app/assets/javascripts/vue_shared/components/ci_badge_link.vue +++ b/app/assets/javascripts/vue_shared/components/ci_badge_link.vue @@ -7,7 +7,7 @@ import CiIcon from './ci_icon.vue'; * * Receives status object containing: * status: { - * details_path: "/gitlab-org/gitlab-ce/pipelines/8150156" // url + * details_path: "/gitlab-org/gitlab-foss/pipelines/8150156" // url * group:"running" // used for CSS class * icon: "icon_status_running" // used to render the icon * label:"running" // used for potential tooltip diff --git a/app/assets/javascripts/vue_shared/components/ci_icon.vue b/app/assets/javascripts/vue_shared/components/ci_icon.vue index 25f80219993..5d373e179b2 100644 --- a/app/assets/javascripts/vue_shared/components/ci_icon.vue +++ b/app/assets/javascripts/vue_shared/components/ci_icon.vue @@ -6,7 +6,7 @@ import Icon from '../../vue_shared/components/icon.vue'; * * Receives status object containing: * status: { - * details_path: "/gitlab-org/gitlab-ce/pipelines/8150156" // url + * details_path: "/gitlab-org/gitlab-foss/pipelines/8150156" // url * group:"running" // used for CSS class * icon: "icon_status_running" // used to render the icon * label:"running" // used for potential tooltip diff --git a/app/assets/javascripts/vue_shared/components/project_selector/project_selector.vue b/app/assets/javascripts/vue_shared/components/project_selector/project_selector.vue index 596fd48f96a..7f0345c7ec0 100644 --- a/app/assets/javascripts/vue_shared/components/project_selector/project_selector.vue +++ b/app/assets/javascripts/vue_shared/components/project_selector/project_selector.vue @@ -1,6 +1,6 @@ <script> import _ from 'underscore'; -import { GlLoadingIcon } from '@gitlab/ui'; +import { GlLoadingIcon, GlSearchBoxByType } from '@gitlab/ui'; import ProjectListItem from './project_list_item.vue'; const SEARCH_INPUT_TIMEOUT_MS = 500; @@ -9,6 +9,7 @@ export default { name: 'ProjectSelector', components: { GlLoadingIcon, + GlSearchBoxByType, ProjectListItem, }, props: { @@ -53,9 +54,6 @@ export default { isSelected(project) { return Boolean(_.findWhere(this.selectedProjects, { id: project.id })); }, - focusSearchInput() { - this.$refs.searchInput.focus(); - }, onInput: _.debounce(function debouncedOnInput() { this.$emit('searched', this.searchQuery); }, SEARCH_INPUT_TIMEOUT_MS), @@ -64,12 +62,11 @@ export default { </script> <template> <div> - <input - ref="searchInput" + <gl-search-box-by-type v-model="searchQuery" :placeholder="__('Search your projects')" type="search" - class="form-control mb-3 js-project-selector-input" + class="mb-3" autofocus @input="onInput" /> diff --git a/app/assets/stylesheets/bootstrap_migration.scss b/app/assets/stylesheets/bootstrap_migration.scss index 29473da21cc..c9b00e5ff27 100644 --- a/app/assets/stylesheets/bootstrap_migration.scss +++ b/app/assets/stylesheets/bootstrap_migration.scss @@ -342,7 +342,7 @@ input[type=color].form-control { /* Bootstrap 4.1.2 introduced a new default vertical alignment which breaks our icons, so we need to reset the vertical alignment to the default value. See: - - https://gitlab.com/gitlab-org/gitlab-ce/issues/51362 + - https://gitlab.com/gitlab-org/gitlab-foss/issues/51362 */ svg { vertical-align: baseline; diff --git a/app/assets/stylesheets/framework/flash.scss b/app/assets/stylesheets/framework/flash.scss index af05d069f97..7e7b08797b2 100644 --- a/app/assets/stylesheets/framework/flash.scss +++ b/app/assets/stylesheets/framework/flash.scss @@ -131,16 +131,16 @@ $notification-box-shadow-color: rgba(0, 0, 0, 0.25); } } -.with-system-header .flash-container { +.with-system-header .flash-container.sticky { top: $flash-container-top + $system-header-height; } .with-performance-bar { - .flash-container { + .flash-container.sticky { top: $flash-container-top + $performance-bar-height; } - &.with-system-header .flash-container { + &.with-system-header .flash-container.sticky { top: $flash-container-top + $performance-bar-height + $system-header-height; } } diff --git a/app/assets/stylesheets/framework/highlight.scss b/app/assets/stylesheets/framework/highlight.scss index 983bd032da4..58516cbd1a9 100644 --- a/app/assets/stylesheets/framework/highlight.scss +++ b/app/assets/stylesheets/framework/highlight.scss @@ -71,7 +71,7 @@ } // Vertically aligns <table> line numbers (eg. blame view) -// see https://gitlab.com/gitlab-org/gitlab-ce/issues/54048 +// see https://gitlab.com/gitlab-org/gitlab-foss/issues/54048 td.line-numbers { line-height: 1; } diff --git a/app/assets/stylesheets/mailers/highlighted_diff_email.scss b/app/assets/stylesheets/mailers/highlighted_diff_email.scss index 33c114838c2..58c83ac7915 100644 --- a/app/assets/stylesheets/mailers/highlighted_diff_email.scss +++ b/app/assets/stylesheets/mailers/highlighted_diff_email.scss @@ -4,7 +4,7 @@ // avoid all descendant selectors (`table td`). This is because the CSS inlining // we use performs dramatically worse on descendant selectors than the // alternatives. -// <https://gitlab.com/gitlab-org/gitlab-ee/issues/490#note_12283632> +// <https://gitlab.com/gitlab-org/gitlab/issues/490#note_12283632> // // DO NOT ADD ANY DESCENDANT SELECTORS TO THIS FILE. Instead, use (in order of // preference): plain class selectors, type (element name) selectors, or diff --git a/app/assets/stylesheets/pages/boards.scss b/app/assets/stylesheets/pages/boards.scss index 4bf0abccd00..d540a347dde 100644 --- a/app/assets/stylesheets/pages/boards.scss +++ b/app/assets/stylesheets/pages/boards.scss @@ -73,7 +73,7 @@ .board { // the next line cannot be replaced with .d-inline-block because it breaks display: none of SortableJS - // see https://gitlab.com/gitlab-org/gitlab-ce/issues/64828 + // see https://gitlab.com/gitlab-org/gitlab-foss/issues/64828 display: inline-block; width: calc(85vw - 15px); diff --git a/app/assets/stylesheets/pages/commits.scss b/app/assets/stylesheets/pages/commits.scss index 0b0a4e50146..be0311f584f 100644 --- a/app/assets/stylesheets/pages/commits.scss +++ b/app/assets/stylesheets/pages/commits.scss @@ -81,7 +81,7 @@ position: relative; font-family: $monospace-font; $left: 12px; - overflow: hidden; // See https://gitlab.com/gitlab-org/gitlab-ce/issues/13987 + overflow: hidden; // See https://gitlab.com/gitlab-org/gitlab-foss/issues/13987 .max-width-marker { width: 72ch; color: $commit-max-width-marker-color; diff --git a/app/assets/stylesheets/pages/cycle_analytics.scss b/app/assets/stylesheets/pages/cycle_analytics.scss index e20711a193d..76cd4f34865 100644 --- a/app/assets/stylesheets/pages/cycle_analytics.scss +++ b/app/assets/stylesheets/pages/cycle_analytics.scss @@ -1,5 +1,5 @@ -#cycle-analytics { - max-width: 1000px; +#cycle-analytics, +.cycle-analytics { margin: 24px auto 0; position: relative; @@ -41,7 +41,8 @@ width: 20%; } - .fa { + .fa, + svg { color: $cycle-analytics-light-gray; &:hover { @@ -233,7 +234,7 @@ &.issue-title, &.commit-title, - &.merge-merquest-title { + &.merge-request-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; @@ -266,6 +267,7 @@ color: $gl-text-color; } + .mr-link, .issue-link, .commit-author-link, .issue-author-link { diff --git a/app/assets/stylesheets/pages/issuable.scss b/app/assets/stylesheets/pages/issuable.scss index 0e844b0e4a5..5617ab0af41 100644 --- a/app/assets/stylesheets/pages/issuable.scss +++ b/app/assets/stylesheets/pages/issuable.scss @@ -571,7 +571,7 @@ /* * Overwrite hover style for dropdown items, so that they are not blue - * This should be removed during dev of https://gitlab.com/gitlab-org/gitlab-ce/issues/44040 + * This should be removed during dev of https://gitlab.com/gitlab-org/gitlab-foss/issues/44040 */ li a { &:hover, diff --git a/app/assets/stylesheets/pages/notes.scss b/app/assets/stylesheets/pages/notes.scss index 6c03dbb56a7..d67a0f83aa2 100644 --- a/app/assets/stylesheets/pages/notes.scss +++ b/app/assets/stylesheets/pages/notes.scss @@ -492,7 +492,7 @@ $note-form-margin-left: 72px; vertical-align: top; white-space: normal; - // Fixes subpixel rounding issue https://gitlab.com/gitlab-org/gitlab-ce/issues/53973 + // Fixes subpixel rounding issue https://gitlab.com/gitlab-org/gitlab-foss/issues/53973 // background-color is needed for dark code preference padding-bottom: 1px; background-color: $white-light; @@ -980,7 +980,7 @@ $note-form-margin-left: 72px; } //This needs to be deleted when Snippet/Commit comments are convered to Vue -// See https://gitlab.com/gitlab-org/gitlab-ce/issues/53918#note_117038785 +// See https://gitlab.com/gitlab-org/gitlab-foss/issues/53918#note_117038785 .unstyled-comments { .discussion-header { padding: $gl-padding; diff --git a/app/assets/stylesheets/pages/pipelines.scss b/app/assets/stylesheets/pages/pipelines.scss index cda6c9ce0cc..1b2af932733 100644 --- a/app/assets/stylesheets/pages/pipelines.scss +++ b/app/assets/stylesheets/pages/pipelines.scss @@ -453,7 +453,7 @@ display: flex; width: 100%; background-color: $gray-light; - padding: $gl-padding; + padding: $gl-padding 0; overflow: auto; } diff --git a/app/controllers/admin/application_settings_controller.rb b/app/controllers/admin/application_settings_controller.rb index 03e935fceae..fbf63997b15 100644 --- a/app/controllers/admin/application_settings_controller.rb +++ b/app/controllers/admin/application_settings_controller.rb @@ -69,7 +69,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController end def whitelist_query_limiting - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/63107') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/63107') end def application_setting_params @@ -86,7 +86,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController params[:application_setting][:import_sources]&.delete("") params[:application_setting][:restricted_visibility_levels]&.delete("") - # TODO Remove domain_blacklist_raw in APIv5 (See https://gitlab.com/gitlab-org/gitlab-ce/issues/67204) + # TODO Remove domain_blacklist_raw in APIv5 (See https://gitlab.com/gitlab-org/gitlab-foss/issues/67204) params.delete(:domain_blacklist_raw) if params[:domain_blacklist_file] params.delete(:domain_blacklist_raw) if params[:domain_blacklist] params.delete(:domain_whitelist_raw) if params[:domain_whitelist] diff --git a/app/controllers/admin/clusters_controller.rb b/app/controllers/admin/clusters_controller.rb index f54933de10f..5b1902fad51 100644 --- a/app/controllers/admin/clusters_controller.rb +++ b/app/controllers/admin/clusters_controller.rb @@ -11,3 +11,5 @@ class Admin::ClustersController < Clusters::ClustersController @clusterable ||= InstanceClusterablePresenter.fabricate(Clusters::Instance.new, current_user: current_user) end end + +Admin::ClustersController.prepend_if_ee('EE::Admin::ClustersController') diff --git a/app/controllers/admin/services_controller.rb b/app/controllers/admin/services_controller.rb index c455930c044..e31e0e09978 100644 --- a/app/controllers/admin/services_controller.rb +++ b/app/controllers/admin/services_controller.rb @@ -46,6 +46,6 @@ class Admin::ServicesController < Admin::ApplicationController # rubocop: enable CodeReuse/ActiveRecord def whitelist_query_limiting - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42430') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42430') end end diff --git a/app/controllers/boards/issues_controller.rb b/app/controllers/boards/issues_controller.rb index 1d1a72d21f1..9894dd7d180 100644 --- a/app/controllers/boards/issues_controller.rb +++ b/app/controllers/boards/issues_controller.rb @@ -130,8 +130,8 @@ module Boards end def whitelist_query_limiting - # Also see https://gitlab.com/gitlab-org/gitlab-ce/issues/42439 - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42428') + # Also see https://gitlab.com/gitlab-org/gitlab-foss/issues/42439 + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42428') end def validate_id_list diff --git a/app/controllers/boards/lists_controller.rb b/app/controllers/boards/lists_controller.rb index 7633e2aedd2..d0f4904c34e 100644 --- a/app/controllers/boards/lists_controller.rb +++ b/app/controllers/boards/lists_controller.rb @@ -25,7 +25,7 @@ module Boards end def update - list = board.lists.movable.find(params[:id]) + list = board.lists.find(params[:id]) service = Boards::Lists::UpdateService.new(board_parent, current_user, update_list_params) result = service.execute(list) diff --git a/app/controllers/clusters/clusters_controller.rb b/app/controllers/clusters/clusters_controller.rb index b55061b5dc6..15f1e8284ff 100644 --- a/app/controllers/clusters/clusters_controller.rb +++ b/app/controllers/clusters/clusters_controller.rb @@ -31,7 +31,7 @@ class Clusters::ClustersController < Clusters::BaseController # In EE (Premium) we can have any number, as multiple clusters are # supported, but the number of clusters are fairly low currently. # - # See https://gitlab.com/gitlab-org/gitlab-ce/issues/55260 also. + # See https://gitlab.com/gitlab-org/gitlab-foss/issues/55260 also. @clusters = Kaminari.paginate_array(clusters).page(params[:page]).per(20) @has_ancestor_clusters = finder.has_ancestor_clusters? diff --git a/app/controllers/concerns/record_user_last_activity.rb b/app/controllers/concerns/record_user_last_activity.rb index 372c803278d..a394ef9a2b8 100644 --- a/app/controllers/concerns/record_user_last_activity.rb +++ b/app/controllers/concerns/record_user_last_activity.rb @@ -6,7 +6,7 @@ # for any authenticated GET request. The DB update will only happen once per day. # # In order to determine if you should include this concern or not, please check the -# description and discussion on this issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/54947 +# description and discussion on this issue: https://gitlab.com/gitlab-org/gitlab-foss/issues/54947 module RecordUserLastActivity include CookiesHelper extend ActiveSupport::Concern diff --git a/app/controllers/dashboard/milestones_controller.rb b/app/controllers/dashboard/milestones_controller.rb index 912036da0ea..d34a07324da 100644 --- a/app/controllers/dashboard/milestones_controller.rb +++ b/app/controllers/dashboard/milestones_controller.rb @@ -28,7 +28,7 @@ class Dashboard::MilestonesController < Dashboard::ApplicationController DashboardGroupMilestone.build_collection(groups, params) end - # See [#39545](https://gitlab.com/gitlab-org/gitlab-ce/issues/39545) for info about the deprecation of dynamic milestones + # See [#39545](https://gitlab.com/gitlab-org/gitlab-foss/issues/39545) for info about the deprecation of dynamic milestones def dynamic_milestones DashboardMilestone.build_collection(@projects, params) end diff --git a/app/controllers/dashboard/projects_controller.rb b/app/controllers/dashboard/projects_controller.rb index 6457732dff0..9659d7719b9 100644 --- a/app/controllers/dashboard/projects_controller.rb +++ b/app/controllers/dashboard/projects_controller.rb @@ -55,7 +55,7 @@ class Dashboard::ProjectsController < Dashboard::ApplicationController end def render_projects - # n+1: https://gitlab.com/gitlab-org/gitlab-ce/issues/40260 + # n+1: https://gitlab.com/gitlab-org/gitlab-foss/issues/40260 Gitlab::GitalyClient.allow_n_plus_1_calls do render end diff --git a/app/controllers/dashboard/todos_controller.rb b/app/controllers/dashboard/todos_controller.rb index 940d1482611..7012bfcefe3 100644 --- a/app/controllers/dashboard/todos_controller.rb +++ b/app/controllers/dashboard/todos_controller.rb @@ -84,7 +84,7 @@ class Dashboard::TodosController < Dashboard::ApplicationController end def todos_page_count(todos) - if todo_params.except(:sort, :page).empty? # rubocop: disable CodeReuse/ActiveRecord + if todo_params.except(:sort, :page).empty? (current_user.todos_pending_count.to_f / todos.limit_value).ceil else todos.total_pages diff --git a/app/controllers/groups/runners_controller.rb b/app/controllers/groups/runners_controller.rb index af2b2cbd1fd..635c248024e 100644 --- a/app/controllers/groups/runners_controller.rb +++ b/app/controllers/groups/runners_controller.rb @@ -2,7 +2,7 @@ class Groups::RunnersController < Groups::ApplicationController # Proper policies should be implemented per - # https://gitlab.com/gitlab-org/gitlab-ce/issues/45894 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/45894 before_action :authorize_admin_group! before_action :runner, only: [:edit, :update, :destroy, :pause, :resume, :show] diff --git a/app/controllers/import/github_controller.rb b/app/controllers/import/github_controller.rb index 1cea0299fb2..72f830fc9a1 100644 --- a/app/controllers/import/github_controller.rb +++ b/app/controllers/import/github_controller.rb @@ -29,7 +29,7 @@ class Import::GithubController < Import::BaseController def status # Request repos to display error page if provider token is invalid - # Improving in https://gitlab.com/gitlab-org/gitlab-ce/issues/55585 + # Improving in https://gitlab.com/gitlab-org/gitlab-foss/issues/55585 client_repos respond_to do |format| diff --git a/app/controllers/import/gitlab_projects_controller.rb b/app/controllers/import/gitlab_projects_controller.rb index 89889141be6..c9c487cec26 100644 --- a/app/controllers/import/gitlab_projects_controller.rb +++ b/app/controllers/import/gitlab_projects_controller.rb @@ -49,6 +49,6 @@ class Import::GitlabProjectsController < Import::BaseController end def whitelist_query_limiting - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42437') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42437') end end diff --git a/app/controllers/import/manifest_controller.rb b/app/controllers/import/manifest_controller.rb index 320cd45b925..7ba8b3ce938 100644 --- a/app/controllers/import/manifest_controller.rb +++ b/app/controllers/import/manifest_controller.rb @@ -96,6 +96,6 @@ class Import::ManifestController < Import::BaseController end def whitelist_query_limiting - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/48939') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/48939') end end diff --git a/app/controllers/projects/blob_controller.rb b/app/controllers/projects/blob_controller.rb index 4125f44d00a..7c3d43fb49a 100644 --- a/app/controllers/projects/blob_controller.rb +++ b/app/controllers/projects/blob_controller.rb @@ -95,7 +95,7 @@ class Projects::BlobController < Projects::ApplicationController @form = Blobs::UnfoldPresenter.new(blob, diff_params) # keep only json rendering when - # https://gitlab.com/gitlab-org/gitlab-ce/issues/44988 is done + # https://gitlab.com/gitlab-org/gitlab-foss/issues/44988 is done if rendered_for_merge_request? render json: DiffLineSerializer.new.represent(@form.diff_lines) else diff --git a/app/controllers/projects/branches_controller.rb b/app/controllers/projects/branches_controller.rb index e7bdb4b2042..c125ed3605a 100644 --- a/app/controllers/projects/branches_controller.rb +++ b/app/controllers/projects/branches_controller.rb @@ -25,7 +25,7 @@ class Projects::BranchesController < Projects::ApplicationController @refs_pipelines = @project.ci_pipelines.latest_successful_for_refs(@branches.map(&:name)) @merged_branch_names = repository.merged_branch_names(@branches.map(&:name)) - # https://gitlab.com/gitlab-org/gitlab-ce/issues/48097 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/48097 Gitlab::GitalyClient.allow_n_plus_1_calls do render end diff --git a/app/controllers/projects/clusters_controller.rb b/app/controllers/projects/clusters_controller.rb index 98cd66cf6f9..079d30127d6 100644 --- a/app/controllers/projects/clusters_controller.rb +++ b/app/controllers/projects/clusters_controller.rb @@ -24,3 +24,5 @@ class Projects::ClustersController < Clusters::ClustersController @repository ||= project.repository end end + +Projects::ClustersController.prepend_if_ee('EE::Projects::ClustersController') diff --git a/app/controllers/projects/commits_controller.rb b/app/controllers/projects/commits_controller.rb index f540ccee386..76705b4410c 100644 --- a/app/controllers/projects/commits_controller.rb +++ b/app/controllers/projects/commits_controller.rb @@ -77,6 +77,6 @@ class Projects::CommitsController < Projects::ApplicationController end def whitelist_query_limiting - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42330') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42330') end end diff --git a/app/controllers/projects/cycle_analytics_controller.rb b/app/controllers/projects/cycle_analytics_controller.rb index 3b0abecf2c9..b9d7dbd37be 100644 --- a/app/controllers/projects/cycle_analytics_controller.rb +++ b/app/controllers/projects/cycle_analytics_controller.rb @@ -42,6 +42,6 @@ class Projects::CycleAnalyticsController < Projects::ApplicationController end def whitelist_query_limiting - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42671') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42671') end end diff --git a/app/controllers/projects/environments_controller.rb b/app/controllers/projects/environments_controller.rb index 7f776b8b497..64de0e665d3 100644 --- a/app/controllers/projects/environments_controller.rb +++ b/app/controllers/projects/environments_controller.rb @@ -164,7 +164,7 @@ class Projects::EnvironmentsController < Projects::ApplicationController result = dashboard_finder.find( project, current_user, - environment, + environment: environment, dashboard_path: params[:dashboard], **dashboard_params.to_h.symbolize_keys ) @@ -172,13 +172,13 @@ class Projects::EnvironmentsController < Projects::ApplicationController result = dashboard_finder.find( project, current_user, - environment, + environment: environment, dashboard_path: params[:dashboard] ) result[:all_dashboards] = dashboard_finder.find_all_paths(project) else - result = dashboard_finder.find(project, current_user, environment) + result = dashboard_finder.find(project, current_user, environment: environment) end respond_to do |format| diff --git a/app/controllers/projects/forks_controller.rb b/app/controllers/projects/forks_controller.rb index 1bb21857dcf..cb6d9c2ba18 100644 --- a/app/controllers/projects/forks_controller.rb +++ b/app/controllers/projects/forks_controller.rb @@ -62,6 +62,6 @@ class Projects::ForksController < Projects::ApplicationController # rubocop: enable CodeReuse/ActiveRecord def whitelist_query_limiting - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42335') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42335') end end diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb index a3dcb36aa3b..7a192a9ec2d 100644 --- a/app/controllers/projects/issues_controller.rb +++ b/app/controllers/projects/issues_controller.rb @@ -277,10 +277,10 @@ class Projects::IssuesController < Projects::ApplicationController def whitelist_query_limiting # Also see the following issues: # - # 1. https://gitlab.com/gitlab-org/gitlab-ce/issues/42423 - # 2. https://gitlab.com/gitlab-org/gitlab-ce/issues/42424 - # 3. https://gitlab.com/gitlab-org/gitlab-ce/issues/42426 - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42422') + # 1. https://gitlab.com/gitlab-org/gitlab-foss/issues/42423 + # 2. https://gitlab.com/gitlab-org/gitlab-foss/issues/42424 + # 3. https://gitlab.com/gitlab-org/gitlab-foss/issues/42426 + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42422') end end diff --git a/app/controllers/projects/jobs_controller.rb b/app/controllers/projects/jobs_controller.rb index c83d4e307a7..0fdd4d4f33d 100644 --- a/app/controllers/projects/jobs_controller.rb +++ b/app/controllers/projects/jobs_controller.rb @@ -96,7 +96,7 @@ class Projects::JobsController < Projects::ApplicationController end def json_trace - # will be implemented with https://gitlab.com/gitlab-org/gitlab-ce/issues/66454 + # will be implemented with https://gitlab.com/gitlab-org/gitlab-foss/issues/66454 end def retry diff --git a/app/controllers/projects/merge_requests/creations_controller.rb b/app/controllers/projects/merge_requests/creations_controller.rb index 6ac5bb90706..808265634da 100644 --- a/app/controllers/projects/merge_requests/creations_controller.rb +++ b/app/controllers/projects/merge_requests/creations_controller.rb @@ -12,7 +12,7 @@ class Projects::MergeRequests::CreationsController < Projects::MergeRequests::Ap before_action :build_merge_request, except: [:create] def new - # n+1: https://gitlab.com/gitlab-org/gitlab-ce/issues/40934 + # n+1: https://gitlab.com/gitlab-org/gitlab-foss/issues/40934 Gitlab::GitalyClient.allow_n_plus_1_calls do define_new_vars end @@ -92,7 +92,7 @@ class Projects::MergeRequests::CreationsController < Projects::MergeRequests::Ap def build_merge_request params[:merge_request] ||= ActionController::Parameters.new(source_project: @project) - # Gitaly N+1 issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/58096 + # Gitaly N+1 issue: https://gitlab.com/gitlab-org/gitlab-foss/issues/58096 Gitlab::GitalyClient.allow_n_plus_1_calls do @merge_request = ::MergeRequests::BuildService.new(project, current_user, merge_request_params.merge(diff_options: diff_options)).execute end @@ -135,7 +135,7 @@ class Projects::MergeRequests::CreationsController < Projects::MergeRequests::Ap # rubocop: enable CodeReuse/ActiveRecord def whitelist_query_limiting - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42384') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42384') end def incr_count_webide_merge_request diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index af87e04f9c8..e51ce752233 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -276,7 +276,7 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo if auto_merge_requested? if merge_request.auto_merge_enabled? # TODO: We should have a dedicated endpoint for updating merge params. - # See https://gitlab.com/gitlab-org/gitlab-ce/issues/63130. + # See https://gitlab.com/gitlab-org/gitlab-foss/issues/63130. AutoMergeService.new(project, current_user, merge_params).update(merge_request) else AutoMergeService.new(project, current_user, merge_params) @@ -328,8 +328,8 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo end def whitelist_query_limiting - # Also see https://gitlab.com/gitlab-org/gitlab-ce/issues/42441 - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42438') + # Also see https://gitlab.com/gitlab-org/gitlab-foss/issues/42441 + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42438') end def reports_response(report_comparison) diff --git a/app/controllers/projects/network_controller.rb b/app/controllers/projects/network_controller.rb index 6543711ecfa..47788438da9 100644 --- a/app/controllers/projects/network_controller.rb +++ b/app/controllers/projects/network_controller.rb @@ -41,6 +41,6 @@ class Projects::NetworkController < Projects::ApplicationController end def whitelist_query_limiting - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42333') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42333') end end diff --git a/app/controllers/projects/notes_controller.rb b/app/controllers/projects/notes_controller.rb index 13e8453ed00..c0b8c9e550d 100644 --- a/app/controllers/projects/notes_controller.rb +++ b/app/controllers/projects/notes_controller.rb @@ -86,6 +86,6 @@ class Projects::NotesController < Projects::ApplicationController end def whitelist_query_limiting - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42383') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42383') end end diff --git a/app/controllers/projects/pipelines_controller.rb b/app/controllers/projects/pipelines_controller.rb index 477ba36e9d1..cfa46705483 100644 --- a/app/controllers/projects/pipelines_controller.rb +++ b/app/controllers/projects/pipelines_controller.rb @@ -204,8 +204,8 @@ class Projects::PipelinesController < Projects::ApplicationController end def whitelist_query_limiting - # Also see https://gitlab.com/gitlab-org/gitlab-ce/issues/42343 - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42339') + # Also see https://gitlab.com/gitlab-org/gitlab-foss/issues/42343 + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42339') end def authorize_update_pipeline! diff --git a/app/controllers/projects/templates_controller.rb b/app/controllers/projects/templates_controller.rb index f987033a26c..95739f96d39 100644 --- a/app/controllers/projects/templates_controller.rb +++ b/app/controllers/projects/templates_controller.rb @@ -13,6 +13,14 @@ class Projects::TemplatesController < Projects::ApplicationController end end + def names + templates = @template_type.dropdown_names(project) + + respond_to do |format| + format.json { render json: templates } + end + end + private # User must have: diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index a6ed783b433..b8beecf823c 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -457,7 +457,7 @@ class ProjectsController < Projects::ApplicationController end def whitelist_query_limiting - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42440') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42440') end def present_project diff --git a/app/controllers/registrations_controller.rb b/app/controllers/registrations_controller.rb index a973ed23da9..2e4c6a801b0 100644 --- a/app/controllers/registrations_controller.rb +++ b/app/controllers/registrations_controller.rb @@ -124,7 +124,7 @@ class RegistrationsController < Devise::RegistrationsController end def whitelist_query_limiting - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42380') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42380') end def ensure_terms_accepted diff --git a/app/controllers/root_controller.rb b/app/controllers/root_controller.rb index 310ae17abbf..5b06f4f4b51 100644 --- a/app/controllers/root_controller.rb +++ b/app/controllers/root_controller.rb @@ -15,7 +15,7 @@ class RootController < Dashboard::ProjectsController before_action :redirect_logged_user, if: -> { current_user.present? } def index - # n+1: https://gitlab.com/gitlab-org/gitlab-ce/issues/40260 + # n+1: https://gitlab.com/gitlab-org/gitlab-foss/issues/40260 Gitlab::GitalyClient.allow_n_plus_1_calls do super end diff --git a/app/finders/environments_finder.rb b/app/finders/environments_finder.rb index 29c00e4b2c2..d4e803beb4e 100644 --- a/app/finders/environments_finder.rb +++ b/app/finders/environments_finder.rb @@ -51,7 +51,7 @@ class EnvironmentsFinder # efficient way to get relevant environment entries. # Currently, `#execute` method has a serious technical debt and # we will likely rework on it in the future. - # See more https://gitlab.com/gitlab-org/gitlab-ce/issues/63381 + # See more https://gitlab.com/gitlab-org/gitlab-foss/issues/63381 def find environments = project.environments environments = by_name(environments) diff --git a/app/finders/todos_finder.rb b/app/finders/todos_finder.rb index ed6d20b9585..427fd3e7d85 100644 --- a/app/finders/todos_finder.rb +++ b/app/finders/todos_finder.rb @@ -47,11 +47,12 @@ class TodosFinder sort(items) end - # Returns `true` if the current user has any todos for the given target. + # Returns `true` if the current user has any todos for the given target with the optional given state. # # target - The value of the `target_type` column, such as `Issue`. - def any_for_target?(target) - current_user.todos.any_for_target?(target) + # state - The value of the `state` column, such as `pending` or `done`. + def any_for_target?(target, state = nil) + current_user.todos.any_for_target?(target, state) end private diff --git a/app/graphql/resolvers/full_path_resolver.rb b/app/graphql/resolvers/full_path_resolver.rb index 2afd0411ea6..46d3360baae 100644 --- a/app/graphql/resolvers/full_path_resolver.rb +++ b/app/graphql/resolvers/full_path_resolver.rb @@ -7,7 +7,7 @@ module Resolvers prepended do argument :full_path, GraphQL::ID_TYPE, required: true, - description: 'The full path of the project, group or namespace, e.g., "gitlab-org/gitlab-ce"' + description: 'The full path of the project, group or namespace, e.g., "gitlab-org/gitlab-foss"' end def model_by_full_path(model, full_path) diff --git a/app/graphql/resolvers/issues_resolver.rb b/app/graphql/resolvers/issues_resolver.rb index 4e71a7a9ead..850df2885aa 100644 --- a/app/graphql/resolvers/issues_resolver.rb +++ b/app/graphql/resolvers/issues_resolver.rb @@ -50,7 +50,7 @@ module Resolvers return Issue.none if project.nil? # Will need to be be made group & namespace aware with - # https://gitlab.com/gitlab-org/gitlab-ce/issues/54520 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/54520 args[:project_id] = project.id args[:iids] ||= [args[:iid]].compact diff --git a/app/helpers/application_settings_helper.rb b/app/helpers/application_settings_helper.rb index 9a1a2b3a79c..8c5be1c315d 100644 --- a/app/helpers/application_settings_helper.rb +++ b/app/helpers/application_settings_helper.rb @@ -184,10 +184,10 @@ module ApplicationSettingsHelper :disabled_oauth_sign_in_sources, :domain_blacklist, :domain_blacklist_enabled, - # TODO Remove domain_blacklist_raw in APIv5 (See https://gitlab.com/gitlab-org/gitlab-ce/issues/67204) + # TODO Remove domain_blacklist_raw in APIv5 (See https://gitlab.com/gitlab-org/gitlab-foss/issues/67204) :domain_blacklist_raw, :domain_whitelist, - # TODO Remove domain_whitelist_raw in APIv5 (See https://gitlab.com/gitlab-org/gitlab-ce/issues/67204) + # TODO Remove domain_whitelist_raw in APIv5 (See https://gitlab.com/gitlab-org/gitlab-foss/issues/67204) :domain_whitelist_raw, :outbound_local_requests_whitelist_raw, :dsa_key_restriction, diff --git a/app/helpers/boards_helper.rb b/app/helpers/boards_helper.rb index d3950219f3f..3f0679f9bf9 100644 --- a/app/helpers/boards_helper.rb +++ b/app/helpers/boards_helper.rb @@ -88,7 +88,7 @@ module BoardsHelper end def boards_link_text - if current_board_parent.multiple_issue_boards_available? + if multiple_boards_available? s_("IssueBoards|Boards") else s_("IssueBoards|Board") diff --git a/app/helpers/diff_helper.rb b/app/helpers/diff_helper.rb index 32431959851..7f3e78f3a81 100644 --- a/app/helpers/diff_helper.rb +++ b/app/helpers/diff_helper.rb @@ -189,11 +189,9 @@ module DiffHelper params[:w] == '1' end - # rubocop: disable CodeReuse/ActiveRecord def params_with_whitespace hide_whitespace? ? request.query_parameters.except(:w) : request.query_parameters.merge(w: 1) end - # rubocop: enable CodeReuse/ActiveRecord def toggle_whitespace_link(url, options) options[:class] = [*options[:class], 'btn btn-default'].join(' ') diff --git a/app/helpers/emails_helper.rb b/app/helpers/emails_helper.rb index ee4991c0b53..c244eba9e08 100644 --- a/app/helpers/emails_helper.rb +++ b/app/helpers/emails_helper.rb @@ -102,7 +102,7 @@ module EmailsHelper end when String # Technically speaking this should be Commit but per - # https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15610#note_163812339 + # https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/15610#note_163812339 # we can't deserialize Commit without custom serializer for ActiveJob return "" unless Ability.allowed?(@recipient, :download_code, @project) diff --git a/app/helpers/issuables_helper.rb b/app/helpers/issuables_helper.rb index 014523b54cb..24614b5030c 100644 --- a/app/helpers/issuables_helper.rb +++ b/app/helpers/issuables_helper.rb @@ -272,7 +272,7 @@ module IssuablesHelper markdownPreviewPath: preview_markdown_path(parent), markdownDocsPath: help_page_path('user/markdown'), lockVersion: issuable.lock_version, - issuableTemplates: issuable_templates(issuable), + issuableTemplateNamesPath: template_names_path(parent, issuable), initialTitleHtml: markdown_field(issuable, :title), initialTitleText: issuable.title, initialDescriptionHtml: markdown_field(issuable, :description), @@ -429,6 +429,12 @@ module IssuablesHelper end end + def template_names_path(parent, issuable) + return '' unless parent.is_a?(Project) + + project_template_names_path(parent, template_type: issuable.class.name.underscore) + end + def issuable_sidebar_options(issuable) { endpoint: "#{issuable[:issuable_json_path]}?serializer=sidebar_extras", diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 5ed95311767..bf6abdb8c4b 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -235,7 +235,6 @@ module ProjectsHelper # # If no limit is applied we'll just issue a COUNT since the result set could # be too large to load into memory. - # rubocop: disable CodeReuse/ActiveRecord def any_projects?(projects) return projects.any? if projects.is_a?(Array) @@ -245,10 +244,9 @@ module ProjectsHelper projects.except(:offset).any? end end - # rubocop: enable CodeReuse/ActiveRecord # TODO: Remove this method when removing the feature flag - # https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/11209#note_162234863 + # https://gitlab.com/gitlab-org/gitlab/merge_requests/11209#note_162234863 # make sure to remove from the EE specific controller as well: ee/app/controllers/ee/dashboard/projects_controller.rb def show_projects?(projects, params) Feature.enabled?(:project_list_filter_bar) || !!(params[:personal] || params[:name] || any_projects?(projects)) diff --git a/app/helpers/runners_helper.rb b/app/helpers/runners_helper.rb index d7a509e2bd3..d871aaa9c86 100644 --- a/app/helpers/runners_helper.rb +++ b/app/helpers/runners_helper.rb @@ -30,7 +30,7 @@ module RunnersHelper end # Due to inability of performing sorting of runners by cached "contacted_at" values we have to show uncached values if sorting by "contacted_asc" is requested. - # Please refer to the following issue for more details: https://gitlab.com/gitlab-org/gitlab-ce/issues/55920 + # Please refer to the following issue for more details: https://gitlab.com/gitlab-org/gitlab-foss/issues/55920 def runner_contacted_at(runner) if params[:sort] == 'contacted_asc' runner.uncached_contacted_at diff --git a/app/helpers/safe_params_helper.rb b/app/helpers/safe_params_helper.rb index 18bbf3347a8..72bf1377b02 100644 --- a/app/helpers/safe_params_helper.rb +++ b/app/helpers/safe_params_helper.rb @@ -3,7 +3,6 @@ module SafeParamsHelper # Rails 5.0 requires to permit `params` if they're used in url helpers. # Use this helper when generating links with `params.merge(...)` - # rubocop: disable CodeReuse/ActiveRecord def safe_params if params.respond_to?(:permit!) params.except(:host, :port, :protocol).permit! @@ -11,5 +10,4 @@ module SafeParamsHelper params end end - # rubocop: enable CodeReuse/ActiveRecord end diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index 2393540b04c..1f8a0373450 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -64,7 +64,7 @@ module Ci # `ci_builds` creation. We can look up a relevant `environment` through # `deployment` relation today. This is much more efficient than expanding # environment name with variables. - # (See more https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22380) + # (See more https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22380) # # However, we have to still expand environment name if it's a stop action, # because `deployment` persists information for start action only. diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb index 0c331b0b8c9..20b8be4017e 100644 --- a/app/models/ci/pipeline.rb +++ b/app/models/ci/pipeline.rb @@ -373,7 +373,7 @@ module Ci ## # TODO We do not completely switch to persisted stages because of - # race conditions with setting statuses gitlab-ce#23257. + # race conditions with setting statuses gitlab-foss#23257. # def ordered_stages return legacy_stages unless complete? @@ -386,7 +386,7 @@ module Ci end def legacy_stages - # TODO, this needs refactoring, see gitlab-ce#26481. + # TODO, this needs refactoring, see gitlab-foss#26481. stages_query = statuses .group('stage').select(:stage).order('max(stage_idx)') diff --git a/app/models/clusters/applications/ingress.rb b/app/models/clusters/applications/ingress.rb index 50def3ba38c..44c66f06059 100644 --- a/app/models/clusters/applications/ingress.rb +++ b/app/models/clusters/applications/ingress.rb @@ -35,6 +35,10 @@ module Clusters 'stable/nginx-ingress' end + def values + content_values.to_yaml + end + def allowed_to_uninstall? external_ip_or_hostname? && application_jupyter_nil_or_installable? end @@ -67,6 +71,23 @@ module Clusters private + def specification + return {} unless Feature.enabled?(:ingress_modsecurity) + + { + "controller" => { + "config" => { + "enable-modsecurity" => "true", + "enable-owasp-modsecurity-crs" => "true" + } + } + } + end + + def content_values + YAML.load_file(chart_values_file).deep_merge!(specification) + end + def application_jupyter_nil_or_installable? cluster.application_jupyter.nil? || cluster.application_jupyter&.installable? end diff --git a/app/models/clusters/cluster.rb b/app/models/clusters/cluster.rb index 7a61622b139..6a5b98a4676 100644 --- a/app/models/clusters/cluster.rb +++ b/app/models/clusters/cluster.rb @@ -234,7 +234,7 @@ module Clusters # as the AUTO_DEVOPS_DOMAIN is needed for CI_ENVIRONMENT_URL # # This method should is scheduled to be removed on - # https://gitlab.com/gitlab-org/gitlab-ce/issues/56959 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/56959 def legacy_auto_devops_domain if project_type? project&.auto_devops&.domain.presence || diff --git a/app/models/concerns/avatarable.rb b/app/models/concerns/avatarable.rb index 80278e07e65..269145309fc 100644 --- a/app/models/concerns/avatarable.rb +++ b/app/models/concerns/avatarable.rb @@ -19,7 +19,7 @@ module Avatarable module ShadowMethods def avatar_url(**args) # We use avatar_path instead of overriding avatar_url because of carrierwave. - # See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11001/diffs#note_28659864 + # See https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/11001/diffs#note_28659864 avatar_path(only_path: args.fetch(:only_path, true), size: args[:size]) || super end diff --git a/app/models/concerns/group_descendant.rb b/app/models/concerns/group_descendant.rb index ed14b73ac1b..7e6a20c27e8 100644 --- a/app/models/concerns/group_descendant.rb +++ b/app/models/concerns/group_descendant.rb @@ -50,7 +50,7 @@ module GroupDescendant child: child.inspect, preloaded: preloaded.map(&:full_path) } - issue_url = 'https://gitlab.com/gitlab-org/gitlab-ce/issues/49404' + issue_url = 'https://gitlab.com/gitlab-org/gitlab-foss/issues/49404' Gitlab::Sentry.track_exception(exception, issue_url: issue_url, extra: extras) end diff --git a/app/models/concerns/issuable_states.rb b/app/models/concerns/issuable_states.rb index b722c541580..33bc41d7f44 100644 --- a/app/models/concerns/issuable_states.rb +++ b/app/models/concerns/issuable_states.rb @@ -6,7 +6,7 @@ module IssuableStates # The state:string column is being migrated to state_id:integer column # This is a temporary hook to populate state_id column with new values # and should be removed after the state column is removed. - # Check https://gitlab.com/gitlab-org/gitlab-ce/issues/51789 for more information + # Check https://gitlab.com/gitlab-org/gitlab-foss/issues/51789 for more information included do before_save :set_state_id end diff --git a/app/models/concerns/label_eventable.rb b/app/models/concerns/label_eventable.rb index d22d93448e4..aad7259f2ad 100644 --- a/app/models/concerns/label_eventable.rb +++ b/app/models/concerns/label_eventable.rb @@ -5,7 +5,7 @@ # Contains functionality related to objects that support adding/removing labels. # # This concern is not used yet, it will be used for: -# https://gitlab.com/gitlab-org/gitlab-ce/issues/48483 +# https://gitlab.com/gitlab-org/gitlab-foss/issues/48483 module LabelEventable extend ActiveSupport::Concern diff --git a/app/models/concerns/reactive_caching.rb b/app/models/concerns/reactive_caching.rb index d91be73d6f0..f9a52cd54bd 100644 --- a/app/models/concerns/reactive_caching.rb +++ b/app/models/concerns/reactive_caching.rb @@ -173,11 +173,7 @@ module ReactiveCaching end def within_reactive_cache_lifetime?(*args) - if Feature.enabled?(:reactive_caching_check_key_exists, default_enabled: true) - Rails.cache.exist?(alive_reactive_cache_key(*args)) - else - !!Rails.cache.read(alive_reactive_cache_key(*args)) - end + Rails.cache.exist?(alive_reactive_cache_key(*args)) end def enqueuing_update(*args) diff --git a/app/models/concerns/relative_positioning.rb b/app/models/concerns/relative_positioning.rb index 6d3c7a7ed68..dfe3c391880 100644 --- a/app/models/concerns/relative_positioning.rb +++ b/app/models/concerns/relative_positioning.rb @@ -225,7 +225,7 @@ module RelativePositioning def calculate_relative_position(calculation) # When calculating across projects, this is much more efficient than # MAX(relative_position) without the GROUP BY, due to index usage: - # https://gitlab.com/gitlab-org/gitlab-ce/issues/54276#note_119340977 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/54276#note_119340977 relation = scoped_items .order(Gitlab::Database.nulls_last_order('position', 'DESC')) .group(self.class.relative_positioning_parent_column) diff --git a/app/models/concerns/routable.rb b/app/models/concerns/routable.rb index 57118bf7a6b..bdd87437e2a 100644 --- a/app/models/concerns/routable.rb +++ b/app/models/concerns/routable.rb @@ -29,7 +29,7 @@ module Routable # # Usage: # - # Klass.find_by_full_path('gitlab-org/gitlab-ce') + # Klass.find_by_full_path('gitlab-org/gitlab-foss') # # Returns a single object, or nil. def find_by_full_path(path, follow_redirects: false) @@ -48,7 +48,7 @@ module Routable # # Usage: # - # Klass.where_full_path_in(%w{gitlab-org/gitlab-ce gitlab-org/gitlab-ee}) + # Klass.where_full_path_in(%w{gitlab-org/gitlab-foss gitlab-org/gitlab}) # # Returns an ActiveRecord::Relation. def where_full_path_in(paths) diff --git a/app/models/concerns/sha_attribute.rb b/app/models/concerns/sha_attribute.rb index 177004deba6..c5826f58966 100644 --- a/app/models/concerns/sha_attribute.rb +++ b/app/models/concerns/sha_attribute.rb @@ -14,7 +14,7 @@ module ShaAttribute # This only gets executed in non-production environments as an additional check to ensure # the column is the correct type. In production it should behave like any other attribute. - # See https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5502 for more discussion + # See https://gitlab.com/gitlab-org/gitlab/merge_requests/5502 for more discussion def validate_binary_column_exists!(name) return unless database_exists? diff --git a/app/models/deployment.rb b/app/models/deployment.rb index bff5d348ca0..db7f9e06362 100644 --- a/app/models/deployment.rb +++ b/app/models/deployment.rb @@ -165,7 +165,7 @@ class Deployment < ApplicationRecord def deployed_by # We use deployable's user if available because Ci::PlayBuildService # does not update the deployment's user, just the one for the deployable. - # TODO: use deployment's user once https://gitlab.com/gitlab-org/gitlab-ce/issues/66442 + # TODO: use deployment's user once https://gitlab.com/gitlab-org/gitlab-foss/issues/66442 # is completed. deployable&.user || user end diff --git a/app/models/environment.rb b/app/models/environment.rb index 3d3edcbbe66..fe438b142b2 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -54,7 +54,7 @@ class Environment < ApplicationRecord # Search environments which have names like the given query. # Do not set a large limit unless you've confirmed that it works on gitlab.com scale. scope :for_name_like, -> (query, limit: 5) do - where('name LIKE ?', "#{sanitize_sql_like(query)}%").limit(limit) + where(arel_table[:name].matches("#{sanitize_sql_like query}%")).limit(limit) end scope :for_project, -> (project) { where(project_id: project) } diff --git a/app/models/individual_note_discussion.rb b/app/models/individual_note_discussion.rb index d926e39f96e..bdfa6dcc6bd 100644 --- a/app/models/individual_note_discussion.rb +++ b/app/models/individual_note_discussion.rb @@ -20,7 +20,7 @@ class IndividualNoteDiscussion < Discussion def convert_to_discussion!(save: false) first_note.becomes!(Discussion.note_class).to_discussion.tap do # Save needs to be called on first_note instead of the transformed note - # because of https://gitlab.com/gitlab-org/gitlab-ce/issues/57324 + # because of https://gitlab.com/gitlab-org/gitlab-foss/issues/57324 first_note.save if save end end diff --git a/app/models/label.rb b/app/models/label.rb index ea200b4937a..dbb96a2b9da 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -215,8 +215,8 @@ class Label < ApplicationRecord # # Label.first.to_reference # => "~1" # Label.first.to_reference(format: :name) # => "~\"bug\"" - # Label.first.to_reference(project, target_project: same_namespace_project) # => "gitlab-ce~1" - # Label.first.to_reference(project, target_project: another_namespace_project) # => "gitlab-org/gitlab-ce~1" + # Label.first.to_reference(project, target_project: same_namespace_project) # => "gitlab-foss~1" + # Label.first.to_reference(project, target_project: another_namespace_project) # => "gitlab-org/gitlab-foss~1" # # Returns a String # diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index ac26d29ad19..63133ca285b 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -233,7 +233,7 @@ class MergeRequest < ApplicationRecord # Use this method whenever you need to make sure the head_pipeline is synced with the # branch head commit, for example checking if a merge request can be merged. - # For more information check: https://gitlab.com/gitlab-org/gitlab-ce/issues/40004 + # For more information check: https://gitlab.com/gitlab-org/gitlab-foss/issues/40004 def actual_head_pipeline head_pipeline&.matches_sha_or_source_sha?(diff_head_sha) ? head_pipeline : nil end @@ -691,7 +691,7 @@ class MergeRequest < ApplicationRecord def create_merge_request_diff fetch_ref! - # n+1: https://gitlab.com/gitlab-org/gitlab-ce/issues/37435 + # n+1: https://gitlab.com/gitlab-org/gitlab-foss/issues/37435 Gitlab::GitalyClient.allow_n_plus_1_calls do merge_request_diffs.create! reload_merge_request_diff @@ -1389,7 +1389,7 @@ class MergeRequest < ApplicationRecord end # TODO: remove once production database rename completes - # https://gitlab.com/gitlab-org/gitlab-ce/issues/47592 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/47592 alias_attribute :allow_collaboration, :allow_maintainer_to_push def allow_collaboration diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb index 4db2b7a74e5..8b5f10ce159 100644 --- a/app/models/merge_request_diff.rb +++ b/app/models/merge_request_diff.rb @@ -301,7 +301,7 @@ class MergeRequestDiff < ApplicationRecord if without_files? && comparison = diff_refs&.compare_in(project) # It should fetch the repository when diffs are cleaned by the system. # We don't keep these for storage overload purposes. - # See https://gitlab.com/gitlab-org/gitlab-ce/issues/37639 + # See https://gitlab.com/gitlab-org/gitlab-foss/issues/37639 comparison.diffs(diff_options) else diffs_collection(diff_options) @@ -357,7 +357,7 @@ class MergeRequestDiff < ApplicationRecord # use factories that rely on current code with an old schema. Without these # `has_attribute?` guards, they fail with a `MissingAttributeError`. # - # For more details, see: https://gitlab.com/gitlab-org/gitlab-ce/issues/44990 + # For more details, see: https://gitlab.com/gitlab-org/gitlab-foss/issues/44990 def write_uploader(column, identifier) carrierwave_write_uploader(column, identifier) if has_attribute?(column) diff --git a/app/models/milestone.rb b/app/models/milestone.rb index 800c492e8e2..916c11a8d03 100644 --- a/app/models/milestone.rb +++ b/app/models/milestone.rb @@ -215,8 +215,8 @@ class Milestone < ApplicationRecord # # Milestone.first.to_reference # => "%1" # Milestone.first.to_reference(format: :name) # => "%\"goal\"" - # Milestone.first.to_reference(cross_namespace_project) # => "gitlab-org/gitlab-ce%1" - # Milestone.first.to_reference(same_namespace_project) # => "gitlab-ce%1" + # Milestone.first.to_reference(cross_namespace_project) # => "gitlab-org/gitlab-foss%1" + # Milestone.first.to_reference(same_namespace_project) # => "gitlab-foss%1" # def to_reference(from = nil, format: :name, full: false) format_reference = milestone_format_reference(format) diff --git a/app/models/network/graph.rb b/app/models/network/graph.rb index ecbeb24ee0a..6b5ea0fc3fc 100644 --- a/app/models/network/graph.rb +++ b/app/models/network/graph.rb @@ -40,7 +40,7 @@ module Network # Get commits from repository # def collect_commits - # https://gitlab.com/gitlab-org/gitlab-ce/issues/58013 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/58013 Gitlab::GitalyClient.allow_n_plus_1_calls do find_commits(count_to_display_commit_in_center).map do |commit| # Decorate with app/model/network/commit.rb diff --git a/app/models/note.rb b/app/models/note.rb index 7a62d70ca5d..b1829e71017 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -38,7 +38,7 @@ class Note < ApplicationRecord redact_field :note # Aliases to make application_helper#edited_time_ago_with_tooltip helper work properly with notes. - # See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10392/diffs#note_28719102 + # See https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10392/diffs#note_28719102 alias_attribute :last_edited_at, :updated_at alias_attribute :last_edited_by, :updated_by diff --git a/app/models/project.rb b/app/models/project.rb index 57f1ca98ee2..7c065db9829 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -784,7 +784,7 @@ class Project < ApplicationRecord if forked? RepositoryForkWorker.perform_async(id) elsif gitlab_project_import? - # Do not retry on Import/Export until https://gitlab.com/gitlab-org/gitlab-ce/issues/26189 is solved. + # Do not retry on Import/Export until https://gitlab.com/gitlab-org/gitlab-foss/issues/26189 is solved. RepositoryImportWorker.set(retry: false).perform_async(self.id) else RepositoryImportWorker.perform_async(self.id) @@ -1316,7 +1316,7 @@ class Project < ApplicationRecord result = self # TODO: Make this go to the fork_network root immeadiatly - # dependant on the discussion in: https://gitlab.com/gitlab-org/gitlab-ce/issues/39769 + # dependant on the discussion in: https://gitlab.com/gitlab-org/gitlab-foss/issues/39769 result = result.fork_source while result&.forked? result || self @@ -1328,7 +1328,7 @@ class Project < ApplicationRecord # network, or it is the base of the fork network. # # TODO: refactor this to get the correct lfs objects when implementing - # https://gitlab.com/gitlab-org/gitlab-ce/issues/39769 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/39769 def all_lfs_objects lfs_storage_project.lfs_objects end @@ -2329,7 +2329,7 @@ class Project < ApplicationRecord Gitlab::SafeRequestStore.fetch("project-#{id}:branch-#{branch_name}:user-#{user.id}:branch_allows_collaboration") do next false if empty_repo? - # Issue for N+1: https://gitlab.com/gitlab-org/gitlab-ce/issues/49322 + # Issue for N+1: https://gitlab.com/gitlab-org/gitlab-foss/issues/49322 Gitlab::GitalyClient.allow_n_plus_1_calls do merge_requests_allowing_collaboration(branch_name).any? do |merge_request| merge_request.can_be_merged_by?(user) diff --git a/app/models/project_services/data_fields.rb b/app/models/project_services/data_fields.rb index 0f5385f8ce2..46136556ade 100644 --- a/app/models/project_services/data_fields.rb +++ b/app/models/project_services/data_fields.rb @@ -5,7 +5,7 @@ module DataFields class_methods do # Provide convenient accessor methods for data fields. - # TODO: Simplify as part of https://gitlab.com/gitlab-org/gitlab-ce/issues/63084 + # TODO: Simplify as part of https://gitlab.com/gitlab-org/gitlab-foss/issues/63084 def data_field(*args) args.each do |arg| self.class_eval <<-RUBY, __FILE__, __LINE__ + 1 diff --git a/app/models/project_services/issue_tracker_service.rb b/app/models/project_services/issue_tracker_service.rb index c201bd2ea18..3ecd5390d79 100644 --- a/app/models/project_services/issue_tracker_service.rb +++ b/app/models/project_services/issue_tracker_service.rb @@ -4,7 +4,7 @@ class IssueTrackerService < Service validate :one_issue_tracker, if: :activated?, on: :manual_change # TODO: we can probably just delegate as part of - # https://gitlab.com/gitlab-org/gitlab-ce/issues/63084 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/63084 data_field :project_url, :issues_url, :new_issue_url default_value_for :category, 'issue_tracker' @@ -25,7 +25,7 @@ class IssueTrackerService < Service end end - # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-ce/issues/63084 + # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-foss/issues/63084 def title if title_attribute = read_attribute(:title) title_attribute @@ -36,7 +36,7 @@ class IssueTrackerService < Service end end - # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-ce/issues/63084 + # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-foss/issues/63084 def description if description_attribute = read_attribute(:description) description_attribute @@ -49,7 +49,7 @@ class IssueTrackerService < Service def handle_properties # this has been moved from initialize_properties and should be improved - # as part of https://gitlab.com/gitlab-org/gitlab-ce/issues/63084 + # as part of https://gitlab.com/gitlab-org/gitlab-foss/issues/63084 return unless properties @legacy_properties_data = properties.dup diff --git a/app/models/project_services/jira_service.rb b/app/models/project_services/jira_service.rb index 61ae78a0b95..86139c62f68 100644 --- a/app/models/project_services/jira_service.rb +++ b/app/models/project_services/jira_service.rb @@ -16,10 +16,10 @@ class JiraService < IssueTrackerService # Jira Cloud version is deprecating authentication via username and password. # We should use username/password for Jira Server and email/api_token for Jira Cloud, - # for more information check: https://gitlab.com/gitlab-org/gitlab-ce/issues/49936. + # for more information check: https://gitlab.com/gitlab-org/gitlab-foss/issues/49936. # TODO: we can probably just delegate as part of - # https://gitlab.com/gitlab-org/gitlab-ce/issues/63084 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/63084 data_field :username, :password, :url, :api_url, :jira_issue_transition_id before_update :reset_password @@ -298,7 +298,7 @@ class JiraService < IssueTrackerService title: title, status: status, icon: { - title: 'GitLab', url16x16: asset_url(Gitlab::Favicon.main, host: gitlab_config.url) + title: 'GitLab', url16x16: asset_url(Gitlab::Favicon.main, host: gitlab_config.base_url) } } } diff --git a/app/models/repository.rb b/app/models/repository.rb index 9d6413c5991..f084a314392 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -260,28 +260,8 @@ class Repository raw_repository.languages(root_ref) end - # Makes sure a commit is kept around when Git garbage collection runs. - # Git GC will delete commits from the repository that are no longer in any - # branches or tags, but we want to keep some of these commits around, for - # example if they have comments or CI builds. - # - # For Geo's sake, pass in multiple shas rather than calling it multiple times, - # to avoid unnecessary syncing. def keep_around(*shas) - shas.each do |sha| - next unless sha.present? && commit_by(oid: sha) - - next if kept_around?(sha) - - # This will still fail if the file is corrupted (e.g. 0 bytes) - raw_repository.write_ref(keep_around_ref_name(sha), sha) - rescue Gitlab::Git::CommandError => ex - Rails.logger.error "Unable to create keep-around reference for repository #{disk_path}: #{ex}" # rubocop:disable Gitlab/RailsLogger - end - end - - def kept_around?(sha) - ref_exists?(keep_around_ref_name(sha)) + Gitlab::Git::KeepAround.execute(self, shas) end def archive_metadata(ref, storage_path, format = "tar.gz", append_sha:, path: nil) @@ -580,7 +560,7 @@ class Repository cache_method :has_visible_content?, fallback: false def avatar - # n+1: https://gitlab.com/gitlab-org/gitlab-ce/issues/38327 + # n+1: https://gitlab.com/gitlab-org/gitlab-foss/issues/38327 Gitlab::GitalyClient.allow_n_plus_1_calls do if tree = file_on_head(:avatar) tree.path @@ -1119,7 +1099,7 @@ class Repository private # TODO Generice finder, later split this on finders by Ref or Oid - # gitlab-org/gitlab-ce#39239 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/39239 def find_commit(oid_or_ref) commit = if oid_or_ref.is_a?(Gitlab::Git::Commit) oid_or_ref @@ -1157,10 +1137,6 @@ class Repository end end - def keep_around_ref_name(sha) - "refs/#{REF_KEEP_AROUND}/#{sha}" - end - def repository_event(event, tags = {}) Gitlab::Metrics.add_event(event, tags) end diff --git a/app/models/resource_label_event.rb b/app/models/resource_label_event.rb index a6aa9ce0e7a..93d0a37d186 100644 --- a/app/models/resource_label_event.rb +++ b/app/models/resource_label_event.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -# This model is not used yet, it will be used for: -# https://gitlab.com/gitlab-org/gitlab-ce/issues/48483 class ResourceLabelEvent < ApplicationRecord include Importable include Gitlab::Utils::StrongMemoize diff --git a/app/models/snippet.rb b/app/models/snippet.rb index 273a42e6034..1e84b9fa12e 100644 --- a/app/models/snippet.rb +++ b/app/models/snippet.rb @@ -22,7 +22,7 @@ class Snippet < ApplicationRecord redact_field :description # Aliases to make application_helper#edited_time_ago_with_tooltip helper work properly with snippets. - # See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10392/diffs#note_28719102 + # See https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10392/diffs#note_28719102 alias_attribute :last_edited_at, :updated_at alias_attribute :last_edited_by, :updated_by diff --git a/app/models/todo.rb b/app/models/todo.rb index aefd9d5ef28..6b71845856a 100644 --- a/app/models/todo.rb +++ b/app/models/todo.rb @@ -89,11 +89,12 @@ class Todo < ApplicationRecord ]) end - # Returns `true` if the current user has any todos for the given target. + # Returns `true` if the current user has any todos for the given target with the optional given state. # # target - The value of the `target_type` column, such as `Issue`. - def any_for_target?(target) - exists?(target: target) + # state - The value of the `state` column, such as `pending` or `done`. + def any_for_target?(target, state = nil) + state.nil? ? exists?(target: target) : exists?(target: target, state: state) end # Updates the state of a relation of todos to the new state. diff --git a/app/models/user_callout_enums.rb b/app/models/user_callout_enums.rb index 772170a6b5b..e9f25d833d0 100644 --- a/app/models/user_callout_enums.rb +++ b/app/models/user_callout_enums.rb @@ -8,7 +8,7 @@ module UserCalloutEnums # extended by EE. # # If you are going to add new items to this hash, check that you're not going - # to conflict with EE-only values: https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/app/models/ee/user_callout_enums.rb + # to conflict with EE-only values: https://gitlab.com/gitlab-org/gitlab/blob/master/ee/app/models/ee/user_callout_enums.rb def self.feature_names { gke_cluster_integration: 1, diff --git a/app/policies/project_snippet_policy.rb b/app/policies/project_snippet_policy.rb index 424558be1fe..2a3e4ca174b 100644 --- a/app/policies/project_snippet_policy.rb +++ b/app/policies/project_snippet_policy.rb @@ -12,7 +12,7 @@ class ProjectSnippetPolicy < BasePolicy condition(:is_author) { @user && @subject.author == @user } # We have to check both project feature visibility and a snippet visibility and take the stricter one - # This will be simplified - check https://gitlab.com/gitlab-org/gitlab-ce/issues/27573 + # This will be simplified - check https://gitlab.com/gitlab-org/gitlab-foss/issues/27573 rule { ~can?(:read_project) }.policy do prevent :read_project_snippet prevent :update_project_snippet diff --git a/app/presenters/README.md b/app/presenters/README.md index a4d592b54d6..dc4173a880e 100644 --- a/app/presenters/README.md +++ b/app/presenters/README.md @@ -24,7 +24,7 @@ Presenters should be used for: - Data and logic methods that can be pulled & combined into single methods from view. This can include loops extracted from views too. A good example is - https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7073/diffs. + https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/7073/diffs. - Data and logic methods that can be pulled from models. - Simple text output methods: it's ok if the method returns a string, but not a whole DOM element for which we'd need HAML, a view context, helpers etc. diff --git a/app/serializers/README.md b/app/serializers/README.md index bb94745b0b5..93b21786015 100644 --- a/app/serializers/README.md +++ b/app/serializers/README.md @@ -317,9 +317,9 @@ MyObjectSerializer.new.represent(object.present) [grape-entity-readme]: https://github.com/ruby-grape/grape-entity/blob/master/README.md [grape-entity-class]: https://github.com/ruby-grape/grape-entity/blob/master/lib/grape_entity/entity.rb [grape-entity-only]: https://github.com/ruby-grape/grape-entity/blob/master/README.md#returning-only-the-fields-you-want -[presenters-readme]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/presenters/README.md +[presenters-readme]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/app/presenters/README.md [fluent-interface]: https://en.wikipedia.org/wiki/Fluent_interface [json-schema-gem]: https://github.com/ruby-json-schema/json-schema -[issue-20045]: https://gitlab.com/gitlab-org/gitlab-ce/issues/20045 -[issue-30898]: https://gitlab.com/gitlab-org/gitlab-ce/issues/30898 -[issue-27569]: https://gitlab.com/gitlab-org/gitlab-ce/issues/27569 +[issue-20045]: https://gitlab.com/gitlab-org/gitlab-foss/issues/20045 +[issue-30898]: https://gitlab.com/gitlab-org/gitlab-foss/issues/30898 +[issue-27569]: https://gitlab.com/gitlab-org/gitlab-foss/issues/27569 diff --git a/app/serializers/entity_date_helper.rb b/app/serializers/entity_date_helper.rb index d8f267d7183..7dadf0eb016 100644 --- a/app/serializers/entity_date_helper.rb +++ b/app/serializers/entity_date_helper.rb @@ -55,7 +55,7 @@ module EntityDateHelper is_upcoming = (due_date - Date.today).to_i > 0 time_ago = distance_of_time_in_words(due_date, Date.today) - # https://gitlab.com/gitlab-org/gitlab-ce/issues/49440 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/49440 # # Need to improve the i18n here and do a full translation # of the string instead of piecewise translations. diff --git a/app/serializers/merge_request_poll_cached_widget_entity.rb b/app/serializers/merge_request_poll_cached_widget_entity.rb index 005a3e47bbb..a3186ecbcdf 100644 --- a/app/serializers/merge_request_poll_cached_widget_entity.rb +++ b/app/serializers/merge_request_poll_cached_widget_entity.rb @@ -80,7 +80,7 @@ class MergeRequestPollCachedWidgetEntity < IssuableEntity # Once SchedulePopulateMergeRequestMetricsWithEventsData fully runs, # we can remove this method and just serialize MergeRequest#metrics - # instead. See https://gitlab.com/gitlab-org/gitlab-ce/issues/41587 + # instead. See https://gitlab.com/gitlab-org/gitlab-foss/issues/41587 def build_metrics(merge_request) # There's no need to query and serialize metrics data for merge requests that are not # merged or closed. diff --git a/app/services/access_token_validation_service.rb b/app/services/access_token_validation_service.rb index 40aa9250885..851d862c0cf 100644 --- a/app/services/access_token_validation_service.rb +++ b/app/services/access_token_validation_service.rb @@ -43,7 +43,7 @@ class AccessTokenValidationService # We're comparing each required_scope against all token scopes, which would # take quadratic time. This consideration is irrelevant here because of the # small number of records involved. - # https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12300/#note_33689006 + # https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12300/#note_33689006 token_scopes = token.scopes.map(&:to_sym) required_scopes.any? do |scope| diff --git a/app/services/applications/create_service.rb b/app/services/applications/create_service.rb index d71174d1393..500db1e172a 100644 --- a/app/services/applications/create_service.rb +++ b/app/services/applications/create_service.rb @@ -6,7 +6,7 @@ module Applications def initialize(current_user, params) @current_user = current_user - @params = params.except(:ip_address) # rubocop: disable CodeReuse/ActiveRecord + @params = params.except(:ip_address) end # EE would override and use `request` arg diff --git a/app/services/auth/container_registry_authentication_service.rb b/app/services/auth/container_registry_authentication_service.rb index 9c210f3a1f5..09a84950755 100644 --- a/app/services/auth/container_registry_authentication_service.rb +++ b/app/services/auth/container_registry_authentication_service.rb @@ -177,7 +177,7 @@ module Auth # We still support legacy pipeline triggers which do not have associated # actor. New permissions model and new triggers are always associated with # an actor. So this should be improved once - # https://gitlab.com/gitlab-org/gitlab-ce/issues/37452 is resolved. + # https://gitlab.com/gitlab-org/gitlab-foss/issues/37452 is resolved. # def build_can_push?(requested_project) # Build can push only to the project from which it originates diff --git a/app/services/ci/archive_trace_service.rb b/app/services/ci/archive_trace_service.rb index 700d78361a4..8fad9e9c869 100644 --- a/app/services/ci/archive_trace_service.rb +++ b/app/services/ci/archive_trace_service.rb @@ -48,7 +48,7 @@ module Ci Gitlab::Sentry .track_exception(error, - issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/51502', + issue_url: 'https://gitlab.com/gitlab-org/gitlab-foss/issues/51502', extra: { job_id: job.id }) end end diff --git a/app/services/ci/create_pipeline_service.rb b/app/services/ci/create_pipeline_service.rb index 539576147f3..eb4176035d3 100644 --- a/app/services/ci/create_pipeline_service.rb +++ b/app/services/ci/create_pipeline_service.rb @@ -94,7 +94,7 @@ module Ci # rubocop: disable CodeReuse/ActiveRecord def auto_cancelable_pipelines - # TODO: Introduced by https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23464 + # TODO: Introduced by https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/23464 if Feature.enabled?(:ci_support_interruptible_pipelines, project, default_enabled: true) project.ci_pipelines .where(ref: pipeline.ref) diff --git a/app/services/ci/pipeline_schedule_service.rb b/app/services/ci/pipeline_schedule_service.rb index ef90d91c936..6028643489d 100644 --- a/app/services/ci/pipeline_schedule_service.rb +++ b/app/services/ci/pipeline_schedule_service.rb @@ -15,7 +15,7 @@ module Ci ensure ## # This is the temporary solution for avoiding the memory bloat. - # See more https://gitlab.com/gitlab-org/gitlab-ce/issues/61955 + # See more https://gitlab.com/gitlab-org/gitlab-foss/issues/61955 GC.start if Feature.enabled?(:ci_pipeline_schedule_force_gc, default_enabled: true) end end diff --git a/app/services/git/branch_hooks_service.rb b/app/services/git/branch_hooks_service.rb index 9f9d12d6cf8..c633cff2822 100644 --- a/app/services/git/branch_hooks_service.rb +++ b/app/services/git/branch_hooks_service.rb @@ -115,7 +115,7 @@ module Git # It's not sufficient to just check for a blank SHA as it's possible for the # branch to be pushed, but for the `post-receive` hook to never run: - # https://gitlab.com/gitlab-org/gitlab-ce/issues/59257 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/59257 def creating_branch? strong_memoize(:creating_branch) do Gitlab::Git.blank_ref?(params[:oldrev]) || diff --git a/app/services/issuable/clone/attributes_rewriter.rb b/app/services/issuable/clone/attributes_rewriter.rb index 3c061d35558..10c89c62bf1 100644 --- a/app/services/issuable/clone/attributes_rewriter.rb +++ b/app/services/issuable/clone/attributes_rewriter.rb @@ -45,11 +45,9 @@ module Issuable original_entity.resource_label_events.find_in_batches do |batch| events = batch.map do |event| entity_key = new_entity.is_a?(Issue) ? 'issue_id' : 'epic_id' - # rubocop: disable CodeReuse/ActiveRecord event.attributes .except('id', 'reference', 'reference_html') .merge(entity_key => new_entity.id, 'action' => ResourceLabelEvent.actions[event.action]) - # rubocop: enable CodeReuse/ActiveRecord end Gitlab::Database.bulk_insert(ResourceLabelEvent.table_name, events) diff --git a/app/services/issuable/common_system_notes_service.rb b/app/services/issuable/common_system_notes_service.rb index 6329ba81e48..a170a4dcae2 100644 --- a/app/services/issuable/common_system_notes_service.rb +++ b/app/services/issuable/common_system_notes_service.rb @@ -41,7 +41,7 @@ module Issuable create_task_status_note else # TODO: Show this note if non-task content was modified. - # https://gitlab.com/gitlab-org/gitlab-ce/issues/33577 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/33577 create_description_change_note end end diff --git a/app/services/labels/transfer_service.rb b/app/services/labels/transfer_service.rb index 9cbc9fef529..91984403db3 100644 --- a/app/services/labels/transfer_service.rb +++ b/app/services/labels/transfer_service.rb @@ -77,7 +77,7 @@ module Labels # in the project being transferred. # IDs are fetched in a separate query because MySQL doesn't # allow referring of 'label_links' table in UPDATE query: - # https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/62435068 + # https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/62435068 link_ids = labels.pluck('label_links.id') LabelLink.where(id: link_ids, label_id: old_label_id) diff --git a/app/services/merge_requests/build_service.rb b/app/services/merge_requests/build_service.rb index 9cd6f3959fd..214f145d09b 100644 --- a/app/services/merge_requests/build_service.rb +++ b/app/services/merge_requests/build_service.rb @@ -8,7 +8,7 @@ module MergeRequests @params_issue_iid = params.delete(:issue_iid) self.merge_request = MergeRequest.new # TODO: this should handle all quick actions that don't have side effects - # https://gitlab.com/gitlab-org/gitlab-ce/issues/53658 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/53658 merge_quick_actions_into_params!(merge_request, only: [:target_branch]) merge_request.merge_params['force_remove_source_branch'] = params.delete(:force_remove_source_branch) if params.has_key?(:force_remove_source_branch) diff --git a/app/services/merge_requests/refresh_service.rb b/app/services/merge_requests/refresh_service.rb index f54642d7bd9..edcfc3bf33f 100644 --- a/app/services/merge_requests/refresh_service.rb +++ b/app/services/merge_requests/refresh_service.rb @@ -14,7 +14,7 @@ module MergeRequests private def refresh_merge_requests! - # n + 1: https://gitlab.com/gitlab-org/gitlab-ce/issues/60289 + # n + 1: https://gitlab.com/gitlab-org/gitlab-foss/issues/60289 Gitlab::GitalyClient.allow_n_plus_1_calls(&method(:find_new_commits)) # Be sure to close outstanding MRs before reloading them to avoid generating an diff --git a/app/services/metrics/dashboard/base_service.rb b/app/services/metrics/dashboard/base_service.rb index 8a42675c66d..c51c88d776a 100644 --- a/app/services/metrics/dashboard/base_service.rb +++ b/app/services/metrics/dashboard/base_service.rb @@ -7,6 +7,13 @@ module Metrics class BaseService < ::BaseService include Gitlab::Metrics::Dashboard::Errors + STAGES = ::Gitlab::Metrics::Dashboard::Stages + SEQUENCE = [ + STAGES::CommonMetricsInserter, + STAGES::EndpointInserter, + STAGES::Sorter + ].freeze + def get_dashboard return error('Insufficient permissions.', :unauthorized) unless allowed? @@ -31,14 +38,20 @@ module Metrics # Determines whether users should be able to view # dashboards at all. def allowed? - Ability.allowed?(current_user, :read_environment, project) + if params[:environment] + Ability.allowed?(current_user, :read_environment, project) + elsif params[:cluster] + true # Authorization handled at controller level + else + false + end end # Returns a new dashboard Hash, supplemented with DB info def process_dashboard - Gitlab::Metrics::Dashboard::Processor - .new(project, params[:environment], raw_dashboard) - .process(insert_project_metrics: insert_project_metrics?) + ::Gitlab::Metrics::Dashboard::Processor + .new(project, raw_dashboard, sequence, params) + .process end # @return [String] Relative filepath of the dashboard yml @@ -56,12 +69,11 @@ module Metrics raise NotImplementedError end - # Determines whether custom metrics should be included - # in the processed output. - # @return [Boolean] - def insert_project_metrics? - false + def sequence + SEQUENCE end end end end + +Metrics::Dashboard::BaseService.prepend_if_ee('EE::Metrics::Dashboard::BaseService') diff --git a/app/services/metrics/dashboard/system_dashboard_service.rb b/app/services/metrics/dashboard/system_dashboard_service.rb index fcd71aadb03..ccfd9db8746 100644 --- a/app/services/metrics/dashboard/system_dashboard_service.rb +++ b/app/services/metrics/dashboard/system_dashboard_service.rb @@ -8,6 +8,13 @@ module Metrics SYSTEM_DASHBOARD_PATH = 'config/prometheus/common_metrics.yml' SYSTEM_DASHBOARD_NAME = 'Default' + SEQUENCE = [ + STAGES::CommonMetricsInserter, + STAGES::ProjectMetricsInserter, + STAGES::EndpointInserter, + STAGES::Sorter + ].freeze + class << self def all_dashboard_paths(_project) [{ @@ -24,6 +31,10 @@ module Metrics private + def cache_key + "metrics_dashboard_#{dashboard_path}" + end + def dashboard_path SYSTEM_DASHBOARD_PATH end @@ -35,13 +46,11 @@ module Metrics YAML.safe_load(yml) end - def cache_key - "metrics_dashboard_#{dashboard_path}" - end - - def insert_project_metrics? - true + def sequence + SEQUENCE end end end end + +Metrics::Dashboard::SystemDashboardService.prepend_if_ee('EE::Metrics::Dashboard::SystemDashboardService') diff --git a/app/services/milestones/update_service.rb b/app/services/milestones/update_service.rb index c445c816554..782c6bc3e35 100644 --- a/app/services/milestones/update_service.rb +++ b/app/services/milestones/update_service.rb @@ -2,7 +2,6 @@ module Milestones class UpdateService < Milestones::BaseService - # rubocop: disable CodeReuse/ActiveRecord def execute(milestone) state = params[:state_event] @@ -19,7 +18,6 @@ module Milestones milestone end - # rubocop: enable CodeReuse/ActiveRecord end end diff --git a/app/services/notes/create_service.rb b/app/services/notes/create_service.rb index 248e81080cc..c136803ef3b 100644 --- a/app/services/notes/create_service.rb +++ b/app/services/notes/create_service.rb @@ -7,7 +7,7 @@ module Notes note = Notes::BuildService.new(project, current_user, params).execute - # n+1: https://gitlab.com/gitlab-org/gitlab-ce/issues/37440 + # n+1: https://gitlab.com/gitlab-org/gitlab-foss/issues/37440 note_valid = Gitlab::GitalyClient.allow_n_plus_1_calls do note.valid? end diff --git a/app/services/projects/auto_devops/disable_service.rb b/app/services/projects/auto_devops/disable_service.rb index 6608b3da1a8..c90510c581d 100644 --- a/app/services/projects/auto_devops/disable_service.rb +++ b/app/services/projects/auto_devops/disable_service.rb @@ -19,7 +19,7 @@ module Projects # We're using `limit` to optimize `auto_devops pipeline` query, # since we only care about the first element, and using only `.count` # is an expensive operation. See - # https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21172#note_99037378 + # https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/21172#note_99037378 # for more context. # rubocop: disable CodeReuse/ActiveRecord def first_pipeline_failure? diff --git a/app/services/projects/cleanup_service.rb b/app/services/projects/cleanup_service.rb index 9b4114ff42f..04624b96bf0 100644 --- a/app/services/projects/cleanup_service.rb +++ b/app/services/projects/cleanup_service.rb @@ -68,7 +68,7 @@ module Projects # TODO: ensure the highlight cache is removed immediately. It's too hard # to calculate the Redis keys at present. # - # https://gitlab.com/gitlab-org/gitlab-ce/issues/61115 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/61115 end def cleanup_note_diff_files(old_commit_shas) diff --git a/app/services/projects/container_repository/cleanup_tags_service.rb b/app/services/projects/container_repository/cleanup_tags_service.rb index 488290db824..d1d9b9f22e8 100644 --- a/app/services/projects/container_repository/cleanup_tags_service.rb +++ b/app/services/projects/container_repository/cleanup_tags_service.rb @@ -33,7 +33,7 @@ module Projects end def delete_tag_digest(digest, tags, other_tags) - # Issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/21405 + # Issue: https://gitlab.com/gitlab-org/gitlab-foss/issues/21405 # we have to remove all tags due # to Docker Distribution bug unable # to delete single tag diff --git a/app/services/projects/fork_service.rb b/app/services/projects/fork_service.rb index d8fa9d37359..17686b45900 100644 --- a/app/services/projects/fork_service.rb +++ b/app/services/projects/fork_service.rb @@ -27,7 +27,7 @@ module Projects # the database so they'll get cleaned up. # # TODO: refactor this to get the correct lfs objects when implementing - # https://gitlab.com/gitlab-org/gitlab-ce/issues/39769 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/39769 fork_to_project.lfs_objects_projects.delete_all fork_to_project @@ -51,7 +51,8 @@ module Projects # been instantiated to avoid ActiveRecord trying to create it when # initializing the project, as that would cause a foreign key constraint # exception. - relations_block: -> (project) { build_fork_network_member(project) } + relations_block: -> (project) { build_fork_network_member(project) }, + skip_disk_validation: skip_disk_validation } if @project.avatar.present? && @project.avatar.image? @@ -110,6 +111,10 @@ module Projects @target_namespace ||= @params[:namespace] || current_user.namespace end + def skip_disk_validation + @skip_disk_validation ||= @params[:skip_disk_validation] || false + end + def allowed_visibility_level target_level = [@project.visibility_level, target_namespace.visibility_level].min diff --git a/app/services/projects/lfs_pointers/lfs_object_download_list_service.rb b/app/services/projects/lfs_pointers/lfs_object_download_list_service.rb index 4224b56c42c..d6e6480bdad 100644 --- a/app/services/projects/lfs_pointers/lfs_object_download_list_service.rb +++ b/app/services/projects/lfs_pointers/lfs_object_download_list_service.rb @@ -29,7 +29,7 @@ module Projects # Getting all Lfs pointers already in the database and linking them to the project linked_oids = LfsLinkService.new(project).execute(lfs_pointers_in_repository.keys) # Retrieving those oids not present in the database which we need to download - missing_oids = lfs_pointers_in_repository.except(*linked_oids) # rubocop: disable CodeReuse/ActiveRecord + missing_oids = lfs_pointers_in_repository.except(*linked_oids) # Downloading the required information and gathering it inside a LfsDownloadObject for each oid LfsDownloadLinkListService.new(project, remote_uri: current_endpoint_uri).execute(missing_oids) rescue LfsDownloadLinkListService::DownloadLinksError => e diff --git a/app/services/projects/open_issues_count_service.rb b/app/services/projects/open_issues_count_service.rb index bc8f7f342f7..82632d63e5b 100644 --- a/app/services/projects/open_issues_count_service.rb +++ b/app/services/projects/open_issues_count_service.rb @@ -65,7 +65,7 @@ module Projects # We only show total issues count for reporters # which are allowed to view confidential issues # This will still show a discrepancy on issues number but should be less than before. - # Check https://gitlab.com/gitlab-org/gitlab-ce/issues/38418 description. + # Check https://gitlab.com/gitlab-org/gitlab-foss/issues/38418 description. # rubocop: disable CodeReuse/ActiveRecord def self.query(projects, public_only: true) if public_only diff --git a/app/services/projects/propagate_service_template.rb b/app/services/projects/propagate_service_template.rb index 64f9b611c40..6013b00b8c6 100644 --- a/app/services/projects/propagate_service_template.rb +++ b/app/services/projects/propagate_service_template.rb @@ -70,7 +70,6 @@ module Projects ) end - # rubocop: disable CodeReuse/ActiveRecord def service_hash @service_hash ||= begin @@ -84,7 +83,6 @@ module Projects end end end - # rubocop: enable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord def run_callbacks(batch) diff --git a/app/services/projects/update_service.rb b/app/services/projects/update_service.rb index 51a6f62e597..2dad1d05a2c 100644 --- a/app/services/projects/update_service.rb +++ b/app/services/projects/update_service.rb @@ -7,7 +7,6 @@ module Projects ValidationError = Class.new(StandardError) - # rubocop: disable CodeReuse/ActiveRecord def execute remove_unallowed_params validate! @@ -31,7 +30,6 @@ module Projects rescue ValidationError => e error(e.message) end - # rubocop: enable CodeReuse/ActiveRecord def run_auto_devops_pipeline? return false if project.repository.gitlab_ci_yml || !project.auto_devops&.previous_changes&.include?('enabled') diff --git a/app/services/releases/update_service.rb b/app/services/releases/update_service.rb index 7aa51c4a332..6ba8dac21f0 100644 --- a/app/services/releases/update_service.rb +++ b/app/services/releases/update_service.rb @@ -26,10 +26,8 @@ module Releases Ability.allowed?(current_user, :update_release, release) end - # rubocop: disable CodeReuse/ActiveRecord def empty_params? params.except(:tag).empty? end - # rubocop: enable CodeReuse/ActiveRecord end end diff --git a/app/services/system_note_service.rb b/app/services/system_note_service.rb index ad8acb26a2d..c01094bd689 100644 --- a/app/services/system_note_service.rb +++ b/app/services/system_note_service.rb @@ -242,7 +242,7 @@ module SystemNoteService ## # TODO: Abort message should be sent by the system, not a particular user. - # See https://gitlab.com/gitlab-org/gitlab-ce/issues/63187. + # See https://gitlab.com/gitlab-org/gitlab-foss/issues/63187. create_note(NoteSummary.new(noteable, project, author, body, action: 'merge')) end diff --git a/app/services/todo_service.rb b/app/services/todo_service.rb index b1b0fb641df..2299a02fea1 100644 --- a/app/services/todo_service.rb +++ b/app/services/todo_service.rb @@ -191,7 +191,7 @@ class TodoService end def todo_exist?(issuable, current_user) - TodosFinder.new(current_user).any_for_target?(issuable) + TodosFinder.new(current_user).any_for_target?(issuable, :pending) end private diff --git a/app/services/users/update_service.rb b/app/services/users/update_service.rb index eea5ff6e5db..422c8ed6575 100644 --- a/app/services/users/update_service.rb +++ b/app/services/users/update_service.rb @@ -57,7 +57,7 @@ module Users params.reject! { |key, _| read_only.include?(key.to_sym) } end - @user.assign_attributes(params.except(*identity_attributes)) unless params.empty? # rubocop: disable CodeReuse/ActiveRecord + @user.assign_attributes(params.except(*identity_attributes)) unless params.empty? end def assign_identity diff --git a/app/validators/addressable_url_validator.rb b/app/validators/addressable_url_validator.rb index f292730441c..300bd01ed22 100644 --- a/app/validators/addressable_url_validator.rb +++ b/app/validators/addressable_url_validator.rb @@ -46,7 +46,7 @@ class AddressableUrlValidator < ActiveModel::EachValidator # when saving/updating a record. Sometimes, the url # is not resolvable at that point, and some automated # tasks that uses that url won't work. - # See https://gitlab.com/gitlab-org/gitlab-ce/issues/66723 + # See https://gitlab.com/gitlab-org/gitlab-foss/issues/66723 BLOCKER_VALIDATE_OPTIONS = { schemes: %w(http https), ports: [], @@ -112,7 +112,7 @@ class AddressableUrlValidator < ActiveModel::EachValidator # when Gitlab::CurrentSettings creates an ApplicationSetting which then # calls this validator. # - # See https://gitlab.com/gitlab-org/gitlab-ee/issues/9833 + # See https://gitlab.com/gitlab-org/gitlab/issues/9833 ApplicationSetting.current&.allow_local_requests_from_web_hooks_and_services? end end diff --git a/app/views/groups/runners/_group_runners.html.haml b/app/views/groups/runners/_group_runners.html.haml index 806a24e2bbc..fd40ec5a984 100644 --- a/app/views/groups/runners/_group_runners.html.haml +++ b/app/views/groups/runners/_group_runners.html.haml @@ -8,7 +8,7 @@ = _('They can be managed using the %{link}.').html_safe % { link: link } -# Proper policies should be implemented per --# https://gitlab.com/gitlab-org/gitlab-ce/issues/45894 +-# https://gitlab.com/gitlab-org/gitlab-foss/issues/45894 - if can?(current_user, :admin_pipeline, @group) = render partial: 'ci/runner/how_to_setup_runner', locals: { registration_token: @group.runners_token, diff --git a/app/views/layouts/_page.html.haml b/app/views/layouts/_page.html.haml index 443a73f5cce..6cdb85456c3 100644 --- a/app/views/layouts/_page.html.haml +++ b/app/views/layouts/_page.html.haml @@ -17,4 +17,6 @@ %div{ class: "#{(container_class unless @no_container)} #{@content_class}" } .content{ id: "content-body" } = render "layouts/flash", extra_flash_class: 'limit-container-width' + - if Gitlab.com? + = render_if_exists "layouts/privacy_policy_update_callout" = yield diff --git a/app/views/layouts/nav/_dashboard.html.haml b/app/views/layouts/nav/_dashboard.html.haml index ff0c5b241b2..7b0824ae2af 100644 --- a/app/views/layouts/nav/_dashboard.html.haml +++ b/app/views/layouts/nav/_dashboard.html.haml @@ -1,5 +1,5 @@ -# WAIT! Before adding more items to the nav bar, please see --# https://gitlab.com/gitlab-org/gitlab-ce/issues/49713 for more information. +-# https://gitlab.com/gitlab-org/gitlab-foss/issues/49713 for more information. %ul.list-unstyled.navbar-sub-nav - if dashboard_nav_link?(:projects) = nav_link(path: ['root#index', 'projects#trending', 'projects#starred', 'dashboard/projects#index'], html_options: { id: 'nav-projects-dropdown', class: "home dropdown header-projects qa-projects-dropdown", data: { track_label: "projects_dropdown", track_event: "click_dropdown", track_value: "" } }) do diff --git a/app/views/profiles/show.html.haml b/app/views/profiles/show.html.haml index ffb90bbd354..0576f51fa83 100644 --- a/app/views/profiles/show.html.haml +++ b/app/views/profiles/show.html.haml @@ -72,7 +72,7 @@ %p= s_("Profiles|You can set your current timezone here") .col-lg-8 -# TODO: might need an entry in user/profile.md to describe some of these settings - -# https://gitlab.com/gitlab-org/gitlab-ce/issues/60070 + -# https://gitlab.com/gitlab-org/gitlab-foss/issues/60070 %h5= ("Time zone") = dropdown_tag(_("Select a timezone"), options: { toggle_class: 'btn js-timezone-dropdown input-lg', title: _("Select a timezone"), filter: true, placeholder: s_("OfSearchInADropdown|Filter"), data: { data: timezone_data } } ) %input.hidden{ :type => 'hidden', :id => 'user_timezone', :name => 'user[timezone]', value: @user.timezone } diff --git a/app/views/projects/pipelines/_with_tabs.html.haml b/app/views/projects/pipelines/_with_tabs.html.haml index 56995ffbcee..8c3518e3a29 100644 --- a/app/views/projects/pipelines/_with_tabs.html.haml +++ b/app/views/projects/pipelines/_with_tabs.html.haml @@ -15,7 +15,7 @@ = render_if_exists "projects/pipelines/tabs_holder", pipeline: @pipeline, project: @project .tab-content - #js-tab-pipeline.tab-pane + #js-tab-pipeline.tab-pane.position-absolute.position-left-0.w-100 #js-pipeline-graph-vue #js-tab-builds.tab-pane diff --git a/app/views/shared/_promo.html.haml b/app/views/shared/_promo.html.haml index 09edf4000d5..0f31b60d8d3 100644 --- a/app/views/shared/_promo.html.haml +++ b/app/views/shared/_promo.html.haml @@ -2,4 +2,4 @@ = link_to 'Homepage', promo_url = link_to 'Blog', promo_url + '/blog/' = link_to '@gitlab', 'https://twitter.com/gitlab' - = link_to 'Requests', 'https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#feature-proposals' + = link_to 'Requests', 'https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CONTRIBUTING.md#feature-proposals' diff --git a/app/views/shared/issuable/_search_bar.html.haml b/app/views/shared/issuable/_search_bar.html.haml index c9458475aa5..de994250649 100644 --- a/app/views/shared/issuable/_search_bar.html.haml +++ b/app/views/shared/issuable/_search_bar.html.haml @@ -6,7 +6,7 @@ .issues-filters{ class: ("w-100" if type == :boards_modal) } .issues-details-filters.filtered-search-block.d-flex.flex-column.flex-md-row{ class: block_css_class, "v-pre" => type == :boards_modal } - - if type == :boards + - if type == :boards && (multiple_boards_available? || current_board_parent.boards.size > 1) = render "shared/boards/switcher", board: board = form_tag page_filter_path, method: :get, class: 'filter-form js-filter-form w-100' do - if params[:search].present? diff --git a/app/workers/ci/archive_traces_cron_worker.rb b/app/workers/ci/archive_traces_cron_worker.rb index ef2da729705..ad7a29719ac 100644 --- a/app/workers/ci/archive_traces_cron_worker.rb +++ b/app/workers/ci/archive_traces_cron_worker.rb @@ -9,7 +9,7 @@ module Ci def perform # Archive stale live traces which still resides in redis or database # This could happen when ArchiveTraceWorker sidekiq jobs were lost by receiving SIGKILL - # More details in https://gitlab.com/gitlab-org/gitlab-ce/issues/36791 + # More details in https://gitlab.com/gitlab-org/gitlab-foss/issues/36791 Ci::Build.with_stale_live_trace.find_each(batch_size: 100) do |build| Ci::ArchiveTraceService.new.execute(build, worker_name: self.class.name) end diff --git a/app/workers/cluster_configure_worker.rb b/app/workers/cluster_configure_worker.rb index b0e551d4e03..e7a4797e68e 100644 --- a/app/workers/cluster_configure_worker.rb +++ b/app/workers/cluster_configure_worker.rb @@ -5,6 +5,6 @@ class ClusterConfigureWorker include ClusterQueue def perform(cluster_id) - # Scheduled for removal in https://gitlab.com/gitlab-org/gitlab-ce/issues/59319 + # Scheduled for removal in https://gitlab.com/gitlab-org/gitlab-foss/issues/59319 end end diff --git a/app/workers/cluster_project_configure_worker.rb b/app/workers/cluster_project_configure_worker.rb index 8f48eca4d86..ad2437a77e9 100644 --- a/app/workers/cluster_project_configure_worker.rb +++ b/app/workers/cluster_project_configure_worker.rb @@ -5,6 +5,6 @@ class ClusterProjectConfigureWorker include ClusterQueue def perform(project_id) - # Scheduled for removal in https://gitlab.com/gitlab-org/gitlab-ce/issues/59319 + # Scheduled for removal in https://gitlab.com/gitlab-org/gitlab-foss/issues/59319 end end diff --git a/app/workers/namespaces/schedule_aggregation_worker.rb b/app/workers/namespaces/schedule_aggregation_worker.rb index 983ce4bef4a..b7d580220d6 100644 --- a/app/workers/namespaces/schedule_aggregation_worker.rb +++ b/app/workers/namespaces/schedule_aggregation_worker.rb @@ -27,7 +27,7 @@ module Namespaces # # The migration and specs fails since NamespaceAggregationSchedule table # does not exist at that point. - # https://gitlab.com/gitlab-org/gitlab-ce/issues/50712 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/50712 def aggregation_schedules_table_exists? return true unless Rails.env.test? diff --git a/app/workers/run_pipeline_schedule_worker.rb b/app/workers/run_pipeline_schedule_worker.rb index 351850e53cb..659f8b80397 100644 --- a/app/workers/run_pipeline_schedule_worker.rb +++ b/app/workers/run_pipeline_schedule_worker.rb @@ -39,7 +39,7 @@ class RunPipelineScheduleWorker Gitlab::Sentry .track_exception(error, - issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/41231', + issue_url: 'https://gitlab.com/gitlab-org/gitlab-foss/issues/41231', extra: { schedule_id: schedule.id }) end # rubocop:enable Gitlab/RailsLogger diff --git a/changelogs/unreleased/24818-fix-jira-favicon-link.yml b/changelogs/unreleased/24818-fix-jira-favicon-link.yml new file mode 100644 index 00000000000..c6857d1f83c --- /dev/null +++ b/changelogs/unreleased/24818-fix-jira-favicon-link.yml @@ -0,0 +1,5 @@ +--- +title: Fix Jira integration favicon image with relative URL +merge_request: 16802 +author: +type: fixed diff --git a/changelogs/unreleased/32156-fix-ci_usage_warning_message-message-builder.yml b/changelogs/unreleased/32156-fix-ci_usage_warning_message-message-builder.yml new file mode 100644 index 00000000000..9bbadd94f5d --- /dev/null +++ b/changelogs/unreleased/32156-fix-ci_usage_warning_message-message-builder.yml @@ -0,0 +1,5 @@ +--- +title: Prevent the user from seeing an invalid "Purchase more minutes" prompt. +merge_request: 16979 +author: +type: fixed diff --git a/changelogs/unreleased/54331-pipeline-graph-extend-scroll-area.yml b/changelogs/unreleased/54331-pipeline-graph-extend-scroll-area.yml new file mode 100644 index 00000000000..a4bd17fa61e --- /dev/null +++ b/changelogs/unreleased/54331-pipeline-graph-extend-scroll-area.yml @@ -0,0 +1,5 @@ +--- +title: Extend pipeline graph scroll area to full width +merge_request: 14870 +author: +type: changed diff --git a/changelogs/unreleased/65192-enable-modsecurity-in-ingress.yml b/changelogs/unreleased/65192-enable-modsecurity-in-ingress.yml new file mode 100644 index 00000000000..56c1ba64c27 --- /dev/null +++ b/changelogs/unreleased/65192-enable-modsecurity-in-ingress.yml @@ -0,0 +1,5 @@ +--- +title: Enable modsecurity in nginx-ingress apps +merge_request: 15774 +author: +type: added diff --git a/changelogs/unreleased/65764-add-missing-error-handling-to-add-list-dropdown-in-issue-boards.yml b/changelogs/unreleased/65764-add-missing-error-handling-to-add-list-dropdown-in-issue-boards.yml new file mode 100644 index 00000000000..ae866175453 --- /dev/null +++ b/changelogs/unreleased/65764-add-missing-error-handling-to-add-list-dropdown-in-issue-boards.yml @@ -0,0 +1,5 @@ +--- +title: Adds missing error handling +merge_request: 16896 +author: toptalo +type: fixed diff --git a/changelogs/unreleased/66701-done-quick-action-is-available-even-no-To-Do-exists.yml b/changelogs/unreleased/66701-done-quick-action-is-available-even-no-To-Do-exists.yml new file mode 100644 index 00000000000..e0d56ea1732 --- /dev/null +++ b/changelogs/unreleased/66701-done-quick-action-is-available-even-no-To-Do-exists.yml @@ -0,0 +1,5 @@ +--- +title: Changed todo/done quick actions to work not only for first usage +merge_request: 16837 +author: Marc Schwede +type: fixed diff --git a/changelogs/unreleased/ak-rename-gitlab-monitor.yml b/changelogs/unreleased/ak-rename-gitlab-monitor.yml new file mode 100644 index 00000000000..faf5f6c6918 --- /dev/null +++ b/changelogs/unreleased/ak-rename-gitlab-monitor.yml @@ -0,0 +1,5 @@ +--- +title: Update docs to reflect the rename of gitlab-monitor to gitlab-exporter +merge_request: 31901 +author: +type: other diff --git a/changelogs/unreleased/backport-schedule-productivity-analytics-backfill.yml b/changelogs/unreleased/backport-schedule-productivity-analytics-backfill.yml new file mode 100644 index 00000000000..eb80a9ae4c7 --- /dev/null +++ b/changelogs/unreleased/backport-schedule-productivity-analytics-backfill.yml @@ -0,0 +1,5 @@ +--- +title: Schedule productivity analytics recalculation for EE +merge_request: 15137 +author: +type: other diff --git a/changelogs/unreleased/document-lambda-deploy.yml b/changelogs/unreleased/document-lambda-deploy.yml new file mode 100644 index 00000000000..f96a22ef2ca --- /dev/null +++ b/changelogs/unreleased/document-lambda-deploy.yml @@ -0,0 +1,5 @@ +--- +title: Document Lambda deploys via GitLab CI/CD +merge_request: 16858 +author: +type: other diff --git a/changelogs/unreleased/gitaly-1-64.yml b/changelogs/unreleased/gitaly-1-64.yml new file mode 100644 index 00000000000..53ae64c9830 --- /dev/null +++ b/changelogs/unreleased/gitaly-1-64.yml @@ -0,0 +1,5 @@ +--- +title: Upgrade Gitaly to v1.64 +merge_request: 16788 +author: +type: added diff --git a/changelogs/unreleased/project-selector-use-gitlab-ui-search-input.yml b/changelogs/unreleased/project-selector-use-gitlab-ui-search-input.yml new file mode 100644 index 00000000000..06c9d8db430 --- /dev/null +++ b/changelogs/unreleased/project-selector-use-gitlab-ui-search-input.yml @@ -0,0 +1,5 @@ +--- +title: Align project selector search box better with design system +merge_request: 16795 +author: +type: changed diff --git a/changelogs/unreleased/ss-collapsed-issue-boards-per-user-ee.yml b/changelogs/unreleased/ss-collapsed-issue-boards-per-user-ee.yml new file mode 100644 index 00000000000..7215d426de0 --- /dev/null +++ b/changelogs/unreleased/ss-collapsed-issue-boards-per-user-ee.yml @@ -0,0 +1,5 @@ +--- +title: Frontend support for saving issue board preferences on the current user +merge_request: 16421 +author: +type: changed diff --git a/config/README.md b/config/README.md index 9226f71a374..7f3125cefd2 100644 --- a/config/README.md +++ b/config/README.md @@ -1,7 +1,7 @@ # Configuration files Documentation Note that most configuration files (`config/*.*`) committed into -[gitlab-ce](https://gitlab.com/gitlab-org/gitlab-ce) **will not be used** for +[gitlab-ce](https://gitlab.com/gitlab-org/gitlab-foss) **will not be used** for [omnibus-gitlab](https://gitlab.com/gitlab-org/omnibus-gitlab). Configuration files committed into gitlab-ce are only used for development. diff --git a/config/application.rb b/config/application.rb index 81889561473..c1e3b6f7a20 100644 --- a/config/application.rb +++ b/config/application.rb @@ -194,7 +194,7 @@ module Gitlab config.assets.precompile << "snowplow/sp.js" # This path must come last to avoid confusing sprockets - # See https://gitlab.com/gitlab-org/gitlab-ce/issues/64091#note_194512508 + # See https://gitlab.com/gitlab-org/gitlab-foss/issues/64091#note_194512508 config.assets.paths << "#{config.root}/node_modules" # Compile non-JS/CSS assets in the ee/app/assets folder by default diff --git a/config/initializers/01_secret_token.rb b/config/initializers/01_secret_token.rb index 9225a99a584..e3fefeab81c 100644 --- a/config/initializers/01_secret_token.rb +++ b/config/initializers/01_secret_token.rb @@ -5,7 +5,7 @@ # because Rails doesn't have write access. # # As an example: -# * https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27581 +# * https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/27581 # * https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests/3267 # # diff --git a/config/initializers/active_record_data_types.rb b/config/initializers/active_record_data_types.rb index 846f28e6f66..2b3f58330e3 100644 --- a/config/initializers/active_record_data_types.rb +++ b/config/initializers/active_record_data_types.rb @@ -1,5 +1,5 @@ # ActiveRecord custom data type for storing datetimes with timezone information. -# See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11229 +# See https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/11229 require 'active_record/connection_adapters/postgresql_adapter' diff --git a/config/initializers/active_record_table_definition.rb b/config/initializers/active_record_table_definition.rb index a71069f27a3..81a8e5906f4 100644 --- a/config/initializers/active_record_table_definition.rb +++ b/config/initializers/active_record_table_definition.rb @@ -1,5 +1,5 @@ # ActiveRecord custom method definitions with timezone information. -# See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11229 +# See https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/11229 require 'active_record/connection_adapters/abstract/schema_definitions' diff --git a/config/initializers/countries.rb b/config/initializers/countries.rb index d65ae19852f..9f8592ba641 100644 --- a/config/initializers/countries.rb +++ b/config/initializers/countries.rb @@ -6,7 +6,7 @@ end # GitLab permits users to sign up in Ukraine except the Crimean Region: https://about.gitlab.com/handbook/people-operations/code-of-conduct/#trade-compliance-exportimport-control # This overrides the display name for Ukraine to Ukraine (except Crimean Region) -# To be removed after https://gitlab.com/gitlab-org/gitlab-ee/issues/14784 is implemented +# To be removed after https://gitlab.com/gitlab-org/gitlab/issues/14784 is implemented # Data fetched is based on https://github.com/hexorx/countries/blob/master/lib/countries/data/countries/UA.yaml ISO3166::Data.register( continent: "Europe", diff --git a/config/initializers/fog_google_https_private_urls.rb b/config/initializers/fog_google_https_private_urls.rb index 682b1050c68..ef6afb2b686 100644 --- a/config/initializers/fog_google_https_private_urls.rb +++ b/config/initializers/fog_google_https_private_urls.rb @@ -1,6 +1,6 @@ # # Monkey patching the https support for private urls -# See https://gitlab.com/gitlab-org/gitlab-ee/issues/4879 +# See https://gitlab.com/gitlab-org/gitlab/issues/4879 # module Fog module Storage diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index fcc6bfa5c92..48daca3d254 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -14,7 +14,7 @@ def configure_sentry # Sanitize authentication headers config.sanitize_http_headers = %w[Authorization Private-Token] config.tags = { program: Gitlab.process_name } - # Debugging for https://gitlab.com/gitlab-org/gitlab-ce/issues/57727 + # Debugging for https://gitlab.com/gitlab-org/gitlab-foss/issues/57727 config.before_send = lambda do |event, hint| if ActiveModel::MissingAttributeError === hint[:exception] columns_hash = ActiveRecord::Base diff --git a/config/initializers/zz_metrics.rb b/config/initializers/zz_metrics.rb index af4aec7b355..501ec8ccc06 100644 --- a/config/initializers/zz_metrics.rb +++ b/config/initializers/zz_metrics.rb @@ -1,5 +1,5 @@ # This file was prefixed with zz_ because we want to load it the last! -# See: https://gitlab.com/gitlab-org/gitlab-ce/issues/55611 +# See: https://gitlab.com/gitlab-org/gitlab-foss/issues/55611 # Autoload all classes that we want to instrument, and instrument the methods we # need. This takes the Gitlab::Metrics::Instrumentation module as an argument so @@ -115,7 +115,7 @@ def instrument_classes(instrumentation) # This is a Rails scope so we have to instrument it manually. instrumentation.instrument_method(Project, :visible_to_user) - # Needed for https://gitlab.com/gitlab-org/gitlab-ce/issues/30224#note_32306159 + # Needed for https://gitlab.com/gitlab-org/gitlab-foss/issues/30224#note_32306159 instrumentation.instrument_instance_method(MergeRequestDiff, :load_commits) end # rubocop:enable Metrics/AbcSize @@ -126,7 +126,7 @@ end # We should deprecate the usage of `any_instance_of` in the future # check: https://github.com/rspec/rspec-mocks#settings-mocks-or-stubs-on-any-instance-of-a-class # -# Related issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/33587 +# Related issue: https://gitlab.com/gitlab-org/gitlab-foss/issues/33587 # # In development mode, we turn off eager loading when we're running # `rails generate migration` because eager loading short-circuits the diff --git a/config/locales/de.yml b/config/locales/de.yml index 554e9913faa..e5fee6dbb6c 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -63,7 +63,7 @@ de: - :month - :year datetime: - # used in a custom scope that has been created to fix https://gitlab.com/gitlab-org/gitlab-ce/issues/32747 + # used in a custom scope that has been created to fix https://gitlab.com/gitlab-org/gitlab-foss/issues/32747 time_ago_in_words: half_a_minute: vor einer halben Minute less_than_x_seconds: diff --git a/config/locales/es.yml b/config/locales/es.yml index 78c07583933..e336865b2a5 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -62,7 +62,7 @@ es: - :month - :year datetime: - # used in a custom scope that has been created to fix https://gitlab.com/gitlab-org/gitlab-ce/issues/32747 + # used in a custom scope that has been created to fix https://gitlab.com/gitlab-org/gitlab-foss/issues/32747 time_ago_in_words: half_a_minute: "hace medio minuto" less_than_x_seconds: diff --git a/config/routes.rb b/config/routes.rb index 129f4b68212..4319431ed48 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -28,7 +28,7 @@ Rails.application.routes.draw do end # This prefixless path is required because Jira gets confused if we set it up with a path - # More information: https://gitlab.com/gitlab-org/gitlab-ee/issues/6752 + # More information: https://gitlab.com/gitlab-org/gitlab/issues/6752 scope path: '/login/oauth', controller: 'oauth/jira/authorizations', as: :oauth_jira do Gitlab.ee do get :authorize, action: :new @@ -143,7 +143,8 @@ Rails.application.routes.draw do member do Gitlab.ee do get :metrics, format: :json - get '/prometheus/api/v1/*proxy_path', to: 'clusters#prometheus_proxy', as: :prometheus_api + get :metrics_dashboard + get :'/prometheus/api/v1/*proxy_path', to: 'clusters#prometheus_proxy', as: :prometheus_api end scope :applications do diff --git a/config/routes/group.rb b/config/routes/group.rb index 2cf9eb82447..37bc6085931 100644 --- a/config/routes/group.rb +++ b/config/routes/group.rb @@ -17,7 +17,7 @@ constraints(::Constraints::GroupUrlConstrainer.new) do get :details, as: :details_group get :activity, as: :activity_group put :transfer, as: :transfer_group - # TODO: Remove as part of refactor in https://gitlab.com/gitlab-org/gitlab-ce/issues/49693 + # TODO: Remove as part of refactor in https://gitlab.com/gitlab-org/gitlab-foss/issues/49693 get 'shared', action: :show, as: :group_shared get 'archived', action: :show, as: :group_archived end diff --git a/config/routes/project.rb b/config/routes/project.rb index c1273db8ee5..4a2898915b1 100644 --- a/config/routes/project.rb +++ b/config/routes/project.rb @@ -195,6 +195,12 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do defaults: { format: 'json' }, constraints: { key: %r{[^/]+}, template_type: %r{issue|merge_request}, format: 'json' } + get '/description_templates/names/:template_type', + to: 'templates#names', + as: :template_names, + defaults: { format: 'json' }, + constraints: { template_type: %r{issue|merge_request}, format: 'json' } + resources :commit, only: [:show], constraints: { id: /\h{7,40}/ } do member do get :branches diff --git a/danger/changes_size/Dangerfile b/danger/changes_size/Dangerfile index 8251d0d5cbf..941afeeba64 100644 --- a/danger/changes_size/Dangerfile +++ b/danger/changes_size/Dangerfile @@ -1,7 +1,7 @@ # FIXME: git.info_for_file raises the following error # /usr/local/bundle/gems/git-1.4.0/lib/git/lib.rb:956:in `command': (Danger::DSLError) # [!] Invalid `Dangerfile` file: -# [!] Invalid `Dangerfile` file: git '--git-dir=/builds/gitlab-org/gitlab-ce/.git' '--work-tree=/builds/gitlab-org/gitlab-ce' cat-file '-t' '' 2>&1:fatal: Not a valid object name +# [!] Invalid `Dangerfile` file: git '--git-dir=/builds/gitlab-org/gitlab-foss/.git' '--work-tree=/builds/gitlab-org/gitlab-foss' cat-file '-t' '' 2>&1:fatal: Not a valid object name # This seems to be the same as https://github.com/danger/danger/issues/535. # locale_files_updated = git.modified_files.select { |path| path.start_with?('locale') } diff --git a/danger/database/Dangerfile b/danger/database/Dangerfile index 5cdad09db6e..fc6c5130fdc 100644 --- a/danger/database/Dangerfile +++ b/danger/database/Dangerfile @@ -20,7 +20,7 @@ changes are reviewed, take the following steps: 1. Ensure the merge request has ~database and ~"database::review pending" labels. If the merge request modifies database files, Danger will do this for you. -1. Use the [Database changes checklist](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab/merge_request_templates/Database%20changes.md) +1. Use the [Database changes checklist](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/.gitlab/merge_request_templates/Database%20changes.md) template or add the appropriate items to the MR description. 1. Assign and mention the database reviewer suggested by Reviewer Roulette. MSG diff --git a/danger/frozen_string/Dangerfile b/danger/frozen_string/Dangerfile index 8d3ac3dee68..7c4c4f2b17c 100644 --- a/danger/frozen_string/Dangerfile +++ b/danger/frozen_string/Dangerfile @@ -14,7 +14,7 @@ files_to_fix = get_files_with_no_magic_comment(git.added_files) if files_to_fix.any? warn 'This merge request adds files that do not enforce frozen string literal. ' \ - 'See https://gitlab.com/gitlab-org/gitlab-ce/issues/47424 for more information.' + 'See https://gitlab.com/gitlab-org/gitlab-foss/issues/47424 for more information.' if GitlabDanger.new(helper.gitlab_helper).ci? markdown(<<~MARKDOWN) diff --git a/danger/roulette/Dangerfile b/danger/roulette/Dangerfile index 19a5076778c..42fc3831c14 100644 --- a/danger/roulette/Dangerfile +++ b/danger/roulette/Dangerfile @@ -27,7 +27,7 @@ UNKNOWN_FILES_MESSAGE = <<MARKDOWN These files couldn't be categorised, so Danger was unable to suggest a reviewer. Please consider creating a merge request to -[add support](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/danger/helper.rb) +[add support](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/danger/helper.rb) for them. MARKDOWN @@ -46,7 +46,7 @@ def spin_for_category(team, project, category, branch_name) end # TODO: take CODEOWNERS into account? - # https://gitlab.com/gitlab-org/gitlab-ce/issues/57653 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/57653 # Make traintainers have triple the chance to be picked as a reviewer reviewer = roulette.spin_for_person(reviewers + traintainers + traintainers, random: random) diff --git a/db/fixtures/development/02_application_settings.rb b/db/fixtures/development/02_application_settings.rb index 7cdc8e40b69..67486d2ab5f 100644 --- a/db/fixtures/development/02_application_settings.rb +++ b/db/fixtures/development/02_application_settings.rb @@ -3,7 +3,7 @@ puts "Creating the default ApplicationSetting record.".color(:green) ApplicationSetting.create_from_defaults -# Details https://gitlab.com/gitlab-org/gitlab-ce/issues/46241 +# Details https://gitlab.com/gitlab-org/gitlab-foss/issues/46241 puts "Enable hashed storage for every new projects.".color(:green) ApplicationSetting.current_without_cache.update!(hashed_storage_enabled: true) diff --git a/db/fixtures/development/10_merge_requests.rb b/db/fixtures/development/10_merge_requests.rb index 43b69470d2c..4af545614f7 100644 --- a/db/fixtures/development/10_merge_requests.rb +++ b/db/fixtures/development/10_merge_requests.rb @@ -33,7 +33,7 @@ Gitlab::Seeder.quiet do MergeRequests::CreateService.new(project, developer, params).execute rescue Repository::AmbiguousRefError # Ignore pipelines creation errors for now, we can doing that after - # https://gitlab.com/gitlab-org/gitlab-ce/issues/55966. will be resolved. + # https://gitlab.com/gitlab-org/gitlab-foss/issues/55966. will be resolved. end print '.' end diff --git a/db/fixtures/development/24_forks.rb b/db/fixtures/development/24_forks.rb index d05d27c3ed5..971c6f0d0c8 100644 --- a/db/fixtures/development/24_forks.rb +++ b/db/fixtures/development/24_forks.rb @@ -6,11 +6,16 @@ Sidekiq::Testing.inline! do source_project = Project.public_only.sample ## - # 04_project.rb might not have created a public project because + # 03_project.rb might not have created a public project because # we use randomized approach (e.g. `Array#sample`). return unless source_project - fork_project = Projects::ForkService.new(source_project, user, namespace: user.namespace).execute + fork_project = Projects::ForkService.new( + source_project, + user, + namespace: user.namespace, + skip_disk_validation: true + ).execute if fork_project.valid? print '.' diff --git a/db/migrate/20180413022611_create_missing_namespace_for_internal_users.rb b/db/migrate/20180413022611_create_missing_namespace_for_internal_users.rb index 8de8b3bcc2e..21d7f50ee83 100644 --- a/db/migrate/20180413022611_create_missing_namespace_for_internal_users.rb +++ b/db/migrate/20180413022611_create_missing_namespace_for_internal_users.rb @@ -6,7 +6,7 @@ class CreateMissingNamespaceForInternalUsers < ActiveRecord::Migration[4.2] create_namespace(id, username) # When testing locally I've noticed that these internal users are missing # the notification email, for more details visit the below link: - # https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18357#note_68327560 + # https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18357#note_68327560 set_notification_email(id) end end diff --git a/db/migrate/20190801193427_rename_application_settings_snowplow_collector_uri_column.rb b/db/migrate/20190801193427_rename_application_settings_snowplow_collector_uri_column.rb index a4bd5841a46..fba9849d3eb 100644 --- a/db/migrate/20190801193427_rename_application_settings_snowplow_collector_uri_column.rb +++ b/db/migrate/20190801193427_rename_application_settings_snowplow_collector_uri_column.rb @@ -12,6 +12,6 @@ class RenameApplicationSettingsSnowplowCollectorUriColumn < ActiveRecord::Migrat end def down - cleanup_concurrent_column_rename :application_settings, :snowplow_collector_hostname, :snowplow_collector_uri + undo_rename_column_concurrently :application_settings, :snowplow_collector_uri, :snowplow_collector_hostname end end diff --git a/db/migrate/20190918104212_add_merge_request_metrics_merged_at_index.rb b/db/migrate/20190918104212_add_merge_request_metrics_merged_at_index.rb new file mode 100644 index 00000000000..9db4e42f3ee --- /dev/null +++ b/db/migrate/20190918104212_add_merge_request_metrics_merged_at_index.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class AddMergeRequestMetricsMergedAtIndex < ActiveRecord::Migration[5.2] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_index :merge_request_metrics, [:merged_at, :id] + end + + def down + remove_concurrent_index :merge_request_metrics, [:merged_at, :id] + end +end diff --git a/db/post_migrate/20180119121225_remove_redundant_pipeline_stages.rb b/db/post_migrate/20180119121225_remove_redundant_pipeline_stages.rb index 0a2ea7bfb7b..88b713aaef3 100644 --- a/db/post_migrate/20180119121225_remove_redundant_pipeline_stages.rb +++ b/db/post_migrate/20180119121225_remove_redundant_pipeline_stages.rb @@ -16,7 +16,7 @@ class RemoveRedundantPipelineStages < ActiveRecord::Migration[4.2] Failed to add an unique index to ci_stages, despite retrying the migration 100 times. - See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/16580. + See https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/16580. EOS end diff --git a/db/post_migrate/20180305100050_remove_permanent_from_redirect_routes.rb b/db/post_migrate/20180305100050_remove_permanent_from_redirect_routes.rb index 15c052da99b..3b3cb4267d4 100644 --- a/db/post_migrate/20180305100050_remove_permanent_from_redirect_routes.rb +++ b/db/post_migrate/20180305100050_remove_permanent_from_redirect_routes.rb @@ -13,7 +13,7 @@ class RemovePermanentFromRedirectRoutes < ActiveRecord::Migration[4.2] def up # These indexes were created on Postgres only in: # ReworkRedirectRoutesIndexes: - # https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/16211 + # https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/16211 if Gitlab::Database.postgresql? disable_statement_timeout do execute "DROP INDEX CONCURRENTLY IF EXISTS #{INDEX_NAME_PERM};" diff --git a/db/post_migrate/20180706223200_populate_site_statistics.rb b/db/post_migrate/20180706223200_populate_site_statistics.rb index 896965b708f..0859aa88866 100644 --- a/db/post_migrate/20180706223200_populate_site_statistics.rb +++ b/db/post_migrate/20180706223200_populate_site_statistics.rb @@ -7,13 +7,13 @@ class PopulateSiteStatistics < ActiveRecord::Migration[4.2] def up transaction do - execute('SET LOCAL statement_timeout TO 0') if Gitlab::Database.postgresql? # see https://gitlab.com/gitlab-org/gitlab-ce/issues/48967 + execute('SET LOCAL statement_timeout TO 0') if Gitlab::Database.postgresql? # see https://gitlab.com/gitlab-org/gitlab-foss/issues/48967 execute("UPDATE site_statistics SET repositories_count = (SELECT COUNT(*) FROM projects)") end transaction do - execute('SET LOCAL statement_timeout TO 0') if Gitlab::Database.postgresql? # see https://gitlab.com/gitlab-org/gitlab-ce/issues/48967 + execute('SET LOCAL statement_timeout TO 0') if Gitlab::Database.postgresql? # see https://gitlab.com/gitlab-org/gitlab-foss/issues/48967 execute("UPDATE site_statistics SET wikis_count = (SELECT COUNT(*) FROM project_features WHERE wiki_access_level != 0)") end diff --git a/db/post_migrate/20180809195358_migrate_null_wiki_access_levels.rb b/db/post_migrate/20180809195358_migrate_null_wiki_access_levels.rb index 363219da539..9bf6aed833d 100644 --- a/db/post_migrate/20180809195358_migrate_null_wiki_access_levels.rb +++ b/db/post_migrate/20180809195358_migrate_null_wiki_access_levels.rb @@ -20,7 +20,7 @@ class MigrateNullWikiAccessLevels < ActiveRecord::Migration[4.2] # We need to re-count wikis as previous attempt was not considering the NULLs. transaction do - execute('SET LOCAL statement_timeout TO 0') if Gitlab::Database.postgresql? # see https://gitlab.com/gitlab-org/gitlab-ce/issues/48967 + execute('SET LOCAL statement_timeout TO 0') if Gitlab::Database.postgresql? # see https://gitlab.com/gitlab-org/gitlab-foss/issues/48967 execute("UPDATE site_statistics SET wikis_count = (SELECT COUNT(*) FROM project_features WHERE wiki_access_level != 0)") end diff --git a/db/post_migrate/20180826111825_recalculate_site_statistics.rb b/db/post_migrate/20180826111825_recalculate_site_statistics.rb index 6d27eca38e3..7c1fca3884d 100644 --- a/db/post_migrate/20180826111825_recalculate_site_statistics.rb +++ b/db/post_migrate/20180826111825_recalculate_site_statistics.rb @@ -9,13 +9,13 @@ class RecalculateSiteStatistics < ActiveRecord::Migration[4.2] def up transaction do - execute('SET LOCAL statement_timeout TO 0') if Gitlab::Database.postgresql? # see https://gitlab.com/gitlab-org/gitlab-ce/issues/48967 + execute('SET LOCAL statement_timeout TO 0') if Gitlab::Database.postgresql? # see https://gitlab.com/gitlab-org/gitlab-foss/issues/48967 execute("UPDATE site_statistics SET repositories_count = (SELECT COUNT(*) FROM projects)") end transaction do - execute('SET LOCAL statement_timeout TO 0') if Gitlab::Database.postgresql? # see https://gitlab.com/gitlab-org/gitlab-ce/issues/48967 + execute('SET LOCAL statement_timeout TO 0') if Gitlab::Database.postgresql? # see https://gitlab.com/gitlab-org/gitlab-foss/issues/48967 execute("UPDATE site_statistics SET wikis_count = (SELECT COUNT(*) FROM project_features WHERE wiki_access_level != 0)") end diff --git a/db/post_migrate/20190214112022_schedule_sync_issuables_state_id.rb b/db/post_migrate/20190214112022_schedule_sync_issuables_state_id.rb index 6edb0bf2d5e..c05ad73d616 100644 --- a/db/post_migrate/20190214112022_schedule_sync_issuables_state_id.rb +++ b/db/post_migrate/20190214112022_schedule_sync_issuables_state_id.rb @@ -1,7 +1,7 @@ class ScheduleSyncIssuablesStateId < ActiveRecord::Migration[5.0] # This migration schedules the sync of state_id for issues and merge requests # which are converting the state column from string to integer. - # For more information check: https://gitlab.com/gitlab-org/gitlab-ce/issues/51789 + # For more information check: https://gitlab.com/gitlab-org/gitlab-foss/issues/51789 include Gitlab::Database::MigrationHelpers diff --git a/db/post_migrate/20190506135400_schedule_sync_issuables_state_id_where_nil.rb b/db/post_migrate/20190506135400_schedule_sync_issuables_state_id_where_nil.rb index 4c31b5968ff..cee99f7cf2e 100644 --- a/db/post_migrate/20190506135400_schedule_sync_issuables_state_id_where_nil.rb +++ b/db/post_migrate/20190506135400_schedule_sync_issuables_state_id_where_nil.rb @@ -4,7 +4,7 @@ class ScheduleSyncIssuablesStateIdWhereNil < ActiveRecord::Migration[5.1] # Issues and MergeRequests imported by GitHub are being created with # state_id = null, this fixes them. # - # Part of a bigger plan: https://gitlab.com/gitlab-org/gitlab-ce/issues/51789 + # Part of a bigger plan: https://gitlab.com/gitlab-org/gitlab-foss/issues/51789 include Gitlab::Database::MigrationHelpers diff --git a/db/post_migrate/20190802091750_cleanup_application_settings_snowplow_collector_uri_rename.rb b/db/post_migrate/20190802091750_cleanup_application_settings_snowplow_collector_uri_rename.rb index 768ece925c6..77472585512 100644 --- a/db/post_migrate/20190802091750_cleanup_application_settings_snowplow_collector_uri_rename.rb +++ b/db/post_migrate/20190802091750_cleanup_application_settings_snowplow_collector_uri_rename.rb @@ -12,6 +12,6 @@ class CleanupApplicationSettingsSnowplowCollectorUriRename < ActiveRecord::Migra end def down - rename_column_concurrently :application_settings, :snowplow_collector_hostname, :snowplow_collector_uri + undo_cleanup_concurrent_column_rename :application_settings, :snowplow_collector_uri, :snowplow_collector_hostname end end diff --git a/db/post_migrate/20190918104222_schedule_productivity_analytics_backfill.rb b/db/post_migrate/20190918104222_schedule_productivity_analytics_backfill.rb new file mode 100644 index 00000000000..3e1c77ae992 --- /dev/null +++ b/db/post_migrate/20190918104222_schedule_productivity_analytics_backfill.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +class ScheduleProductivityAnalyticsBackfill < ActiveRecord::Migration[5.2] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + BATCH_SIZE = 10_000 + INTERVAL = 3.minutes + MIGRATION = 'Gitlab::BackgroundMigration::RecalculateProductivityAnalytics'.freeze + + disable_ddl_transaction! + + def up + return unless Gitlab.ee? + + metrics_model = Class.new(ActiveRecord::Base) do + self.table_name = 'merge_request_metrics' + + include ::EachBatch + end + + scope = metrics_model.where("merged_at >= ?", 3.months.ago) + + queue_background_migration_jobs_by_range_at_intervals(scope, MIGRATION, INTERVAL, batch_size: BATCH_SIZE) + end + + def down + # no-op + end +end diff --git a/db/schema.rb b/db/schema.rb index b821951180a..09f27d2f9cb 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2019_09_14_223900) do +ActiveRecord::Schema.define(version: 2019_09_18_104222) do # These are extensions that must be enabled in order to support this database enable_extension "pg_trgm" @@ -2120,6 +2120,7 @@ ActiveRecord::Schema.define(version: 2019_09_14_223900) do t.index ["latest_closed_by_id"], name: "index_merge_request_metrics_on_latest_closed_by_id" t.index ["merge_request_id", "merged_at"], name: "index_merge_request_metrics_on_merge_request_id_and_merged_at", where: "(merged_at IS NOT NULL)" t.index ["merge_request_id"], name: "index_merge_request_metrics" + t.index ["merged_at", "id"], name: "index_merge_request_metrics_on_merged_at_and_id" t.index ["merged_by_id"], name: "index_merge_request_metrics_on_merged_by_id" t.index ["pipeline_id"], name: "index_merge_request_metrics_on_pipeline_id" end diff --git a/doc/README.md b/doc/README.md index 6e0f037bea4..0ba2fd27b6a 100644 --- a/doc/README.md +++ b/doc/README.md @@ -450,8 +450,8 @@ There are many ways to integrate with GitLab, including: ## Contributing to GitLab -GitLab Community Edition is [open source](https://gitlab.com/gitlab-org/gitlab-ce/) -and GitLab Enterprise Edition is [open-core](https://gitlab.com/gitlab-org/gitlab-ee/). +GitLab Community Edition is [open source](https://gitlab.com/gitlab-org/gitlab-foss/) +and GitLab Enterprise Edition is [open-core](https://gitlab.com/gitlab-org/gitlab/). Learn how to contribute to GitLab with the following resources: diff --git a/doc/administration/audit_events.md b/doc/administration/audit_events.md index e961c677ca7..bd51a3e18d7 100644 --- a/doc/administration/audit_events.md +++ b/doc/administration/audit_events.md @@ -117,6 +117,6 @@ on adding these events into GitLab: - [Group settings and activity](https://gitlab.com/groups/gitlab-org/-/epics/475) - [Instance-level settings and activity](https://gitlab.com/groups/gitlab-org/-/epics/476) -[ee-2336]: https://gitlab.com/gitlab-org/gitlab-ee/issues/2336 +[ee-2336]: https://gitlab.com/gitlab-org/gitlab/issues/2336 [ee]: https://about.gitlab.com/pricing/ [permissions]: ../user/permissions.md diff --git a/doc/administration/auditor_users.md b/doc/administration/auditor_users.md index 18c415b5ff7..9b4d0f443cf 100644 --- a/doc/administration/auditor_users.md +++ b/doc/administration/auditor_users.md @@ -83,6 +83,6 @@ instance, with the following permissions/restrictions: - Cannot merge a merge request - Cannot create project snippets -[ee-998]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/998 +[ee-998]: https://gitlab.com/gitlab-org/gitlab/merge_requests/998 [eep]: https://about.gitlab.com/pricing/ [permissions]: ../user/permissions.md diff --git a/doc/administration/auth/google_secure_ldap.md b/doc/administration/auth/google_secure_ldap.md index 55e6f53622c..cb7901ea5b4 100644 --- a/doc/administration/auth/google_secure_ldap.md +++ b/doc/administration/auth/google_secure_ldap.md @@ -4,7 +4,7 @@ type: reference # Google Secure LDAP **(CORE ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/46391) in GitLab 11.9. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/46391) in GitLab 11.9. [Google Cloud Identity](https://cloud.google.com/identity/) provides a Secure LDAP service that can be configured with GitLab for authentication and group sync. diff --git a/doc/administration/auth/how_to_configure_ldap_gitlab_ce/index.md b/doc/administration/auth/how_to_configure_ldap_gitlab_ce/index.md index 7c14d4004db..ef35a2d5266 100644 --- a/doc/administration/auth/how_to_configure_ldap_gitlab_ce/index.md +++ b/doc/administration/auth/how_to_configure_ldap_gitlab_ce/index.md @@ -253,7 +253,7 @@ If `allow_username_or_email_login` is enabled in the LDAP configuration, GitLab ## LDAP extended features on GitLab EE -With [GitLab Enterprise Edition (EE)](https://about.gitlab.com/gitlab-ee/), besides everything we just described, you'll +With [GitLab Enterprise Edition (EE)](https://about.gitlab.com/pricing/), besides everything we just described, you'll have extended functionalities with LDAP, such as: - Group sync diff --git a/doc/administration/auth/how_to_configure_ldap_gitlab_ee/index.md b/doc/administration/auth/how_to_configure_ldap_gitlab_ee/index.md index 366acb9ed3e..9977f9aee14 100644 --- a/doc/administration/auth/how_to_configure_ldap_gitlab_ee/index.md +++ b/doc/administration/auth/how_to_configure_ldap_gitlab_ee/index.md @@ -12,7 +12,7 @@ This article expands on [How to Configure LDAP with GitLab CE](../how_to_configu - [Administrator Sync](../ldap-ee.md#administrator-sync): As an extension of group sync, you can automatically manage your global GitLab administrators. Specify a group CN for `admin_group` and all members of the LDAP group will be given administrator privileges. - [Group Sync](#group-sync): This allows GitLab group membership to be automatically updated based on LDAP group members. -- [Multiple LDAP servers](#multiple-ldap-servers): The ability to configure multiple LDAP servers. This is useful if an organization has different LDAP servers within departments. This is not designed for failover. We're working on [supporting LDAP failover](https://gitlab.com/gitlab-org/gitlab-ee/issues/139) in GitLab. +- [Multiple LDAP servers](#multiple-ldap-servers): The ability to configure multiple LDAP servers. This is useful if an organization has different LDAP servers within departments. This is not designed for failover. We're working on [supporting LDAP failover](https://gitlab.com/gitlab-org/gitlab/issues/139) in GitLab. - Daily user synchronization: Once a day, GitLab will run a synchronization to check and update GitLab users against LDAP. This process updates all user details automatically. @@ -59,7 +59,7 @@ Using this permission structure in our example allows only UK staff access to se ### Updating user permissions - new feature -Since GitLab [v8.15](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/822) LDAP user permissions can now be manually overridden by an admin user. To override a user's permissions visit the groups **Members** page and select **Edit permissions**. +Since GitLab [v8.15](https://gitlab.com/gitlab-org/gitlab/merge_requests/822) LDAP user permissions can now be manually overridden by an admin user. To override a user's permissions visit the groups **Members** page and select **Edit permissions**. ![Setting manual permissions](img/manual_permissions.gif) diff --git a/doc/administration/auth/smartcard.md b/doc/administration/auth/smartcard.md index 920a2f0b399..2d2734096ed 100644 --- a/doc/administration/auth/smartcard.md +++ b/doc/administration/auth/smartcard.md @@ -15,7 +15,7 @@ GitLab supports two authentication methods: ### Authentication against a local database with X.509 certificates -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/726) in +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/726) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.6 as an experimental feature. Smartcard authentication against local databases may change or be removed completely in future releases. @@ -41,7 +41,7 @@ Certificate: ### Authentication against a local database with X.509 certificates and SAN extensions **(PREMIUM ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/8605) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/8605) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3. Smartcards with X.509 certificates using SAN extensions can be used to authenticate with GitLab. @@ -80,7 +80,7 @@ Certificate: ### Authentication against an LDAP server -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7693) in +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/7693) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.8 as an experimental feature. Smartcard authentication against an LDAP server may change or be removed completely in future releases. diff --git a/doc/administration/custom_hooks.md b/doc/administration/custom_hooks.md index 7238d08ab09..3e714b446af 100644 --- a/doc/administration/custom_hooks.md +++ b/doc/administration/custom_hooks.md @@ -123,5 +123,5 @@ exit 1 [CI]: ../ci/README.md [hooks]: https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks#Server-Side-Hooks [webhooks]: ../user/project/integrations/webhooks.md -[5073]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5073 +[5073]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5073 [93]: https://gitlab.com/gitlab-org/gitlab-shell/merge_requests/93 diff --git a/doc/administration/database_load_balancing.md b/doc/administration/database_load_balancing.md index 6620989983f..5ae31d530cf 100644 --- a/doc/administration/database_load_balancing.md +++ b/doc/administration/database_load_balancing.md @@ -272,12 +272,12 @@ production: ``` [hot-standby]: https://www.postgresql.org/docs/9.6/hot-standby.html -[ee-1283]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1283 +[ee-1283]: https://gitlab.com/gitlab-org/gitlab/merge_requests/1283 [eep]: https://about.gitlab.com/pricing/ [reconfigure gitlab]: restart_gitlab.md#omnibus-gitlab-reconfigure "How to reconfigure Omnibus GitLab" [restart gitlab]: restart_gitlab.md#installations-from-source "How to restart GitLab" [wikipedia]: https://en.wikipedia.org/wiki/Load_balancing_(computing) [db-req]: ../install/requirements.md#database -[ee-3526]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3526 -[ee-5883]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5883 +[ee-3526]: https://gitlab.com/gitlab-org/gitlab/merge_requests/3526 +[ee-5883]: https://gitlab.com/gitlab-org/gitlab/merge_requests/5883 [consul-udp]: https://www.consul.io/docs/agent/dns.html#udp-based-dns-queries diff --git a/doc/administration/geo/disaster_recovery/background_verification.md b/doc/administration/geo/disaster_recovery/background_verification.md index 27866b7536e..34c668b5fb5 100644 --- a/doc/administration/geo/disaster_recovery/background_verification.md +++ b/doc/administration/geo/disaster_recovery/background_verification.md @@ -77,7 +77,7 @@ in sync. ## Repository re-verification -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8550) in GitLab Enterprise Edition 11.6. Available in [GitLab Premium](https://about.gitlab.com/pricing/). +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/8550) in GitLab Enterprise Edition 11.6. Available in [GitLab Premium](https://about.gitlab.com/pricing/). Due to bugs or transient infrastructure failures, it is possible for Git repositories to change unexpectedly without being marked for verification. diff --git a/doc/administration/geo/disaster_recovery/index.md b/doc/administration/geo/disaster_recovery/index.md index 7228cc6948e..5eb23422374 100644 --- a/doc/administration/geo/disaster_recovery/index.md +++ b/doc/administration/geo/disaster_recovery/index.md @@ -318,6 +318,5 @@ section to resolve the error. Otherwise, the secret is lost and you'll need to [updating-geo]: ../replication/version_specific_updates.md#updating-to-gitlab-105 [sec-tfa]: ../../../security/two_factor_authentication.md#disabling-2fa-for-everyone [gitlab-org/omnibus-gitlab#3058]: https://gitlab.com/gitlab-org/omnibus-gitlab/issues/3058 -[gitlab-org/gitlab-ee#4284]: https://gitlab.com/gitlab-org/gitlab-ee/issues/4284 [initiate-the-replication-process]: ../replication/database.html#step-3-initiate-the-replication-process [configure-the-primary-server]: ../replication/database.html#step-1-configure-the-primary-server diff --git a/doc/administration/geo/disaster_recovery/planned_failover.md b/doc/administration/geo/disaster_recovery/planned_failover.md index 0c2d48854f0..75e07bcf863 100644 --- a/doc/administration/geo/disaster_recovery/planned_failover.md +++ b/doc/administration/geo/disaster_recovery/planned_failover.md @@ -215,11 +215,11 @@ in the loss of any data uploaded to the new primary in the meantime. Don't forget to remove the broadcast message after failover is complete. [bring-primary-back]: bring_primary_back.md -[ce-19739]: https://gitlab.com/gitlab-org/gitlab-ce/issues/19739 +[ce-19739]: https://gitlab.com/gitlab-org/gitlab-foss/issues/19739 [container-registry]: ../replication/container_registry.md [disaster-recovery]: index.md -[ee-4930]: https://gitlab.com/gitlab-org/gitlab-ee/issues/4930 -[ee-5064]: https://gitlab.com/gitlab-org/gitlab-ee/issues/5064 +[ee-4930]: https://gitlab.com/gitlab-org/gitlab/issues/4930 +[ee-5064]: https://gitlab.com/gitlab-org/gitlab/issues/5064 [foreground-verification]: ../../raketasks/check.md [background-verification]: background_verification.md [limitations]: ../replication/index.md#current-limitations diff --git a/doc/administration/geo/replication/configuration.md b/doc/administration/geo/replication/configuration.md index fd076bb79d8..ddb5f22fd05 100644 --- a/doc/administration/geo/replication/configuration.md +++ b/doc/administration/geo/replication/configuration.md @@ -299,7 +299,7 @@ See the [troubleshooting document](troubleshooting.md). [setup-geo-omnibus]: index.md#using-omnibus-gitlab [Hashed Storage]: ../../repository_storage_types.md [Disaster Recovery]: ../disaster_recovery/index.md -[gitlab-org/gitlab-ee#3789]: https://gitlab.com/gitlab-org/gitlab-ee/issues/3789 +[gitlab-org/gitlab-ee#3789]: https://gitlab.com/gitlab-org/gitlab/issues/3789 [gitlab-com/infrastructure#2821]: https://gitlab.com/gitlab-com/infrastructure/issues/2821 [omnibus-ssl]: https://docs.gitlab.com/omnibus/settings/ssl.html [using-geo]: using_a_geo_server.md diff --git a/doc/administration/geo/replication/database.md b/doc/administration/geo/replication/database.md index 9272287a4a7..33f240ed11f 100644 --- a/doc/administration/geo/replication/database.md +++ b/doc/administration/geo/replication/database.md @@ -46,7 +46,7 @@ The following guide assumes that: CAUTION: **Warning:** Geo works with streaming replication. Logical replication is not supported at this time. -There is an [issue where support is being discussed](https://gitlab.com/gitlab-org/gitlab-ee/issues/7420). +There is an [issue where support is being discussed](https://gitlab.com/gitlab-org/gitlab/issues/7420). ### Step 1. Configure the **primary** server diff --git a/doc/administration/geo/replication/high_availability.md b/doc/administration/geo/replication/high_availability.md index a0684cfa726..9d84e10d496 100644 --- a/doc/administration/geo/replication/high_availability.md +++ b/doc/administration/geo/replication/high_availability.md @@ -183,7 +183,7 @@ Configure the tracking database. alertmanager['enable'] = false consul['enable'] = false gitaly['enable'] = false - gitlab_monitor['enable'] = false + gitlab_exporter['enable'] = false gitlab_workhorse['enable'] = false nginx['enable'] = false node_exporter['enable'] = false diff --git a/doc/administration/geo/replication/index.md b/doc/administration/geo/replication/index.md index bbad9f455fe..f9f56b96e22 100644 --- a/doc/administration/geo/replication/index.md +++ b/doc/administration/geo/replication/index.md @@ -22,7 +22,7 @@ For a video introduction to Geo, see [Introduction to GitLab Geo - GitLab Featur CAUTION: **Caution:** Geo undergoes significant changes from release to release. Upgrades **are** supported and [documented](#updating-geo), but you should ensure that you're using the right version of the documentation for your installation. -To make sure you're using the right version of the documentation, navigate to [the source version of this page on GitLab.com](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/doc/administration/geo/replication/index.md) and choose the appropriate release from the **Switch branch/tag** dropdown. For example, [`v11.2.3-ee`](https://gitlab.com/gitlab-org/gitlab-ee/blob/v11.2.3-ee/doc/administration/geo/replication/index.md). +To make sure you're using the right version of the documentation, navigate to [the source version of this page on GitLab.com](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/administration/geo/replication/index.md) and choose the appropriate release from the **Switch branch/tag** dropdown. For example, [`v11.2.3-ee`](https://gitlab.com/gitlab-org/gitlab/blob/v11.2.3-ee/doc/administration/geo/replication/index.md). ## Use cases @@ -238,7 +238,7 @@ For more information on removing a Geo node, see [Removing **secondary** Geo nod CAUTION: **Caution:** This list of limitations only reflects the latest version of GitLab. If you are using an older version, extra limitations may be in place. -- Pushing directly to a **secondary** node redirects (for HTTP) or proxies (for SSH) the request to the **primary** node instead of [handling it directly](https://gitlab.com/gitlab-org/gitlab-ee/issues/1381), except when using Git over HTTP with credentials embedded within the URI. For example, `https://user:password@secondary.tld`. +- Pushing directly to a **secondary** node redirects (for HTTP) or proxies (for SSH) the request to the **primary** node instead of [handling it directly](https://gitlab.com/gitlab-org/gitlab/issues/1381), except when using Git over HTTP with credentials embedded within the URI. For example, `https://user:password@secondary.tld`. - The **primary** node has to be online for OAuth login to happen. Existing sessions and Git are not affected. - The installation takes multiple manual steps that together can take about an hour depending on circumstances. We are working on improving this experience. See [gitlab-org/omnibus-gitlab#2978](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/2978) for details. - Real-time updates of issues/merge requests (for example, via long polling) doesn't work on the **secondary** node. @@ -267,9 +267,9 @@ You can keep track of the progress to include the missing items in: | CI job artifacts (other than traces) | Yes | No, only manually (1) | | Archived traces | Yes | Yes, only on transfer, or manually (1) | | Personal snippets | Yes | Yes | -| Version-controlled personal snippets ([unsupported](https://gitlab.com/gitlab-org/gitlab-ce/issues/13426)) | No | No | +| Version-controlled personal snippets ([unsupported](https://gitlab.com/gitlab-org/gitlab-foss/issues/13426)) | No | No | | Project snippets | Yes | Yes | -| Version-controlled project snippets ([unsupported](https://gitlab.com/gitlab-org/gitlab-ce/issues/13426)) | No | No | +| Version-controlled project snippets ([unsupported](https://gitlab.com/gitlab-org/gitlab-foss/issues/13426)) | No | No | | Object pools for forked project deduplication | No | No | | [Server-side Git Hooks](../../custom_hooks.md) | No | No | | [Elasticsearch integration](../../../integration/elasticsearch.md) | No | No | diff --git a/doc/administration/geo/replication/security_review.md b/doc/administration/geo/replication/security_review.md index ed3f1faa93e..832d02be9a5 100644 --- a/doc/administration/geo/replication/security_review.md +++ b/doc/administration/geo/replication/security_review.md @@ -72,7 +72,7 @@ questions from [owasp.org](https://www.owasp.org). - Nothing Geo-specific. Any user where `admin: true` is set in the database is considered an admin with super-user privileges. -- See also: [more granular access control](https://gitlab.com/gitlab-org/gitlab-ce/issues/32730) +- See also: [more granular access control](https://gitlab.com/gitlab-org/gitlab-foss/issues/32730) (not geo-specific) - Much of Geo’s integration (database replication, for instance) must be configured with the application, typically by system administrators. diff --git a/doc/administration/geo/replication/troubleshooting.md b/doc/administration/geo/replication/troubleshooting.md index 3ae92b07736..263fc05dce9 100644 --- a/doc/administration/geo/replication/troubleshooting.md +++ b/doc/administration/geo/replication/troubleshooting.md @@ -577,3 +577,8 @@ This error means the Geo Tracking Database doesn't have the FDW server and crede configured. See ["Foreign Data Wrapper (FDW) is not configured" error?](#foreign-data-wrapper-fdw-is-not-configured-error). + +### GitLab indicates that more than 100% of repositories were synced + +This can be caused by orphaned records in the project registry. You can clear them +[using a Rake task](../../../administration/raketasks/geo.md#remove-orphaned-project-registries). diff --git a/doc/administration/git_protocol.md b/doc/administration/git_protocol.md index 9d653d4e09e..c1742ff87a7 100644 --- a/doc/administration/git_protocol.md +++ b/doc/administration/git_protocol.md @@ -4,9 +4,9 @@ description: "Set and configure Git protocol v2" # Configuring Git Protocol v2 -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/46555) in GitLab 11.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/46555) in GitLab 11.4. > Temporarily disabled (see [confidential issue](../user/project/issues/confidential_issues.md) -> `https://gitlab.com/gitlab-org/gitlab-ce/issues/55769`) in GitLab 11.5.8, 11.6.6, 11.7.1, and 11.8+. +> `https://gitlab.com/gitlab-org/gitlab-foss/issues/55769`) in GitLab 11.5.8, 11.6.6, 11.7.1, and 11.8+. NOTE: **Note:** Git protocol v2 support has been temporarily disabled @@ -14,7 +14,7 @@ because a feature used to hide certain internal references does not function whe is enabled, and this has a security impact. Once this problem has been resolved, protocol v2 support will be re-enabled. For more information, see the [confidential issue](../user/project/issues/confidential_issues.md) -`https://gitlab.com/gitlab-org/gitlab-ce/issues/55769`. +`https://gitlab.com/gitlab-org/gitlab-foss/issues/55769`. Git protocol v2 improves the v1 wire protocol in several ways and is enabled by default in GitLab for HTTP requests. In order to enable SSH, diff --git a/doc/administration/gitaly/img/architecture_v12_4.png b/doc/administration/gitaly/img/architecture_v12_4.png Binary files differnew file mode 100644 index 00000000000..1054083bb28 --- /dev/null +++ b/doc/administration/gitaly/img/architecture_v12_4.png diff --git a/doc/administration/gitaly/index.md b/doc/administration/gitaly/index.md index 27794878cfe..3b32baf28b9 100644 --- a/doc/administration/gitaly/index.md +++ b/doc/administration/gitaly/index.md @@ -10,11 +10,15 @@ In the rest of this page, Gitaly server is referred to the standalone node that only runs Gitaly, and Gitaly client to the GitLab Rails node that runs all other processes except Gitaly. +## Architecture + +Here's a high-level architecture overview of how Gitaly is used. + +![Gitaly architecture diagram](img/architecture_v12_4.png) + ## Configuring Gitaly -The Gitaly service itself is configured via a TOML configuration file. -This file is documented [in the Gitaly -repository](https://gitlab.com/gitlab-org/gitaly/blob/master/doc/configuration/README.md). +The Gitaly service itself is configured via a [TOML configuration file](reference.md). In case you want to change some of its settings: @@ -362,7 +366,7 @@ To disable Gitaly on a client node: ## TLS support -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22602) in GitLab 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22602) in GitLab 11.8. Gitaly supports TLS encryption. To be able to communicate with a Gitaly instance that listens for secure connections you will need to use `tls://` url @@ -562,6 +566,29 @@ and this mechanism (the concurrency limiter) will do nothing. ## Troubleshooting Gitaly +### `gitaly-debug` + +The `gitaly-debug` command provides "production debugging" tools for Gitaly and Git +performance. It is intended to help production engineers and support +engineers investigate Gitaly performance problems. + +If you're using GitLab 11.6 or newer, this tool should be installed on +your GitLab / Gitaly server already at `/opt/gitlab/embedded/bin/gitaly-debug`. +If you're investigating an older GitLab version you can compile this +tool offline and copy the executable to your server: + +```sh +git clone https://gitlab.com/gitlab-org/gitaly.git +cd cmd/gitaly-debug +GOOS=linux GOARCH=amd64 go build -o gitaly-debug +``` + +To see the help page of `gitaly-debug` for a list of supported sub-commands, run: + +```sh +gitaly-debug -h +``` + ### Commits, pushes, and clones return a 401 ``` @@ -571,17 +598,6 @@ remote: GitLab: 401 Unauthorized You will need to sync your `gitlab-secrets.json` file with your GitLab app nodes. -### `gitaly-debug` - -Since GitLab 11.6, Gitaly comes with a command-line tool called -`gitaly-debug` that can be run on a Gitaly server to aid in -troubleshooting. In GitLab 11.6 its only sub-command is -`simulate-http-clone` which allows you to measure the maximum possible -Git clone speed for a specific repository on the server. - -For an up to date list of sub-commands see [the gitaly-debug -README](https://gitlab.com/gitlab-org/gitaly/blob/master/cmd/gitaly-debug/README.md). - ### Client side GRPC logs Gitaly uses the [gRPC](https://grpc.io/) RPC framework. The Ruby gRPC diff --git a/doc/administration/gitaly/reference.md b/doc/administration/gitaly/reference.md new file mode 100644 index 00000000000..a3bb4f8a509 --- /dev/null +++ b/doc/administration/gitaly/reference.md @@ -0,0 +1,269 @@ +--- +type: reference +--- + +# Gitaly reference + +Gitaly is configured via a [TOML](https://github.com/toml-lang/toml) +configuration file. Unlike installations from source, in Omnibus GitLab, you +would not edit this file directly. + +The configuration file is passed as an argument to the `gitaly` +executable. This is usually done by either Omnibus GitLab or your +[init](https://en.wikipedia.org/wiki/Init) script. + +An [example config file](https://gitlab.com/gitlab-org/gitaly/blob/master/config.toml.example) +can be found in the Gitaly project. + +## Format + +At the top level, `config.toml` defines the items described on the table below. + +| Name | Type | Required | Description | +| ---- | ---- | -------- | ----------- | +| `socket_path` | string | yes (if `listen_addr` is not set) | A path which Gitaly should open a Unix socket. | +| `listen_addr` | string | yes (if `socket_path` is not set) | TCP address for Gitaly to listen on. | +| `tls_listen_addr` | string | no | TCP over TLS address for Gitaly to listen on. | +| `bin_dir` | string | yes | Directory containing Gitaly's executables. | +| `prometheus_listen_addr` | string | no | TCP listen address for Prometheus metrics. If not set, no Prometheus listener is started. | + +For example: + +```toml +socket_path = "/home/git/gitlab/tmp/sockets/private/gitaly.socket" +listen_addr = "localhost:9999" +tls_listen_addr = "localhost:8888" +bin_dir = "/home/git/gitaly" +prometheus_listen_addr = "localhost:9236" +``` + +### Authentication + +Gitaly can be configured to reject requests that do not contain a +specific bearer token in their headers. This is a security measure to +be used when serving requests over TCP: + +```toml +[auth] +# A non-empty token enables authentication. +token = "the secret token" +``` + +Authentication is disabled when the token setting in `config.toml` is absent or +an empty string. + +It is possible to temporarily disable authentication with the `transitioning` +setting. This allows you to monitor if all clients are +authenticating correctly without causing a service outage for clients +that are not configured correctly yet: + +```toml +[auth] +token = "the secret token" +transitioning = true +``` + +CAUTION: **Warning:** +Remember to disable `transitioning` when you are done +changing your token settings. + +All authentication attempts are counted in Prometheus under +the `gitaly_authentications_total` metric. + +### TLS + +Gitaly supports TLS encryption. You will need to bring your own certificates as +this isn't provided automatically. + +| Name | Type | Required | Description | +| ---- | ---- | -------- | ----------- | +| `certificate_path` | string | no | Path to the certificate. | +| `key_path` | string | no | Path to the key. | + +```toml +tls_listen_addr = "localhost:8888" + +[tls] +certificate_path = '/home/git/cert.cert' +key_path = '/home/git/key.pem' +``` + +[Read more](index.md#tls-support) about TLS in Gitaly. + +### Storage + +GitLab repositories are grouped into directories known as "storages" +(e.g., `/home/git/repositories`) containing bare repositories managed +by GitLab with names (e.g., `default`). + +These names and paths are also defined in the `gitlab.yml` configuration file of +GitLab. When you run Gitaly on the same machine as GitLab, which is the default +and recommended configuration, storage paths defined in Gitaly's `config.toml` +must match those in `gitlab.yml`. + +| Name | Type | Required | Description | +| ---- | ---- | -------- | ----------- | +| `storage` | array | yes | An array of storage shards. | +| `path` | string | yes | The path to the storage shard. | +| `name` | string | yes | The name of the storage shard. | + +For example: + +```toml +[[storage]] +path = "/path/to/storage/repositories" +name = "my_shard" + +[[storage]] +path = "/path/to/other/repositories" +name = "other_storage" +``` + +### Git + +The following values can be set in the `[git]` section of the configuration file. + +| Name | Type | Required | Description | +| ---- | ---- | -------- | ----------- | +| `bin_path` | string | no | Path to Git binary. If not set, will be resolved using `PATH`. | +| `catfile_cache_size` | integer | no | Maximum number of cached [cat-file processes](#cat-file-cache). Default is `100`. | + +#### `cat-file` cache + +A lot of Gitaly RPCs need to look up Git objects from repositories. +Most of the time we use `git cat-file --batch` processes for that. For +better performance, Gitaly can re-use these `git cat-file` processes +across RPC calls. Previously used processes are kept around in a +["git cat-file cache"](https://about.gitlab.com/2019/07/08/git-performance-on-nfs/#enter-cat-file-cache). +In order to control how much system resources this uses, we have a maximum number +of cat-file processes that can go into the cache. + +The default limit is 100 `cat-file`s, which constitute a pair of +`git cat-file --batch` and `git cat-file --batch-check` processes. If +you are seeing errors complaining about "too many open files", or an +inability to create new processes, you may want to lower this limit. + +Ideally, the number should be large enough to handle normal +traffic. If you raise the limit, you should measure the cache hit ratio +before and after. If the hit ratio does not improve, the higher limit is +probably not making a meaningful difference. Here is an example +Prometheus query to see the hit rate: + +```text +sum(rate(gitaly_catfile_cache_total{type="hit"}[5m])) / sum(rate(gitaly_catfile_cache_total{type=~"(hit)|(miss)"}[5m])) +``` + +### `gitaly-ruby` + +A Gitaly process uses one or more `gitaly-ruby` helper processes to +execute RPC's implemented in Ruby instead of Go. The `[gitaly-ruby]` +section of the config file contains settings for these helper processes. + +These processes are known to occasionally suffer from memory leaks. +Gitaly restarts its `gitaly-ruby` helpers when their memory exceeds the +`max_rss` limit. + +| Name | Type | Required | Description | +| ---- | ---- | -------- | ----------- | +| `dir` | string | yes | Path to where gitaly-ruby is installed (needed to boot the process).| +| `max_rss` | integer | no | Resident set size limit that triggers a gitaly-ruby restart, in bytes. Default is `200000000` (200MB). | +| `graceful_restart_timeout` | string | no | Grace period before a gitaly-ruby process is forcibly terminated after exceeding `max_rss`. Default is `10m` (10 minutes).| +| `restart_delay` | string | no |Time that gitaly-ruby memory must remain high before a restart. Default is `5m` (5 minutes).| +| `num_workers` | integer | no |Number of gitaly-ruby worker processes. Try increasing this number in case of `ResourceExhausted` errors. Default is `2`, minimum is `2`.| +| `linguist_languages_path` | string | no | Override for dynamic `languages.json` discovery. Defaults to an empty string (use of dynamic discovery).| + +Example: + +```toml +[gitaly-ruby] +dir = "/home/git/gitaly/ruby" +max_rss = 200000000 +graceful_restart_timeout = "10m" +restart_delay = "5m" +num_workers = 2 +``` + +### GitLab Shell + +For historical reasons +[GitLab Shell](https://gitlab.com/gitlab-org/gitlab-shell) contains +the Git hooks that allow GitLab to validate and react to Git pushes. +Because Gitaly "owns" Git pushes, GitLab Shell must therefore be +installed alongside Gitaly. This will be [simplified in the +future](https://gitlab.com/gitlab-org/gitaly/issues/1226). + +| Name | Type | Required | Description | +| ---- | ---- | -------- | ----------- | +| `dir` | string | yes | The directory where GitLab Shell is installed.| + +Example: + +```toml +[gitlab-shell] +dir = "/home/git/gitlab-shell" +``` + +### Prometheus + +You can optionally configure Gitaly to record histogram latencies on GRPC method +calls in Prometheus. + +| Name | Type | Required | Description | +| ---- | ---- | -------- | ----------- | +| `grpc_latency_buckets` | array | no | Prometheus stores each observation in a bucket, which means you'd get an approximation of latency. Optimizing the buckets gives more control over the accuracy of the approximation. | + +Example: + +```toml +prometheus_listen_addr = "localhost:9236" + +[prometheus] +grpc_latency_buckets = [0.001, 0.005, 0.025, 0.1, 0.5, 1.0, 10.0, 30.0, 60.0, 300.0, 1500.0] +``` + +### Logging + +The following values configure logging in Gitaly under the `[logging]` section. + +| Name | Type | Required | Description | +| ---- | ---- | -------- | ----------- | +| `format` | string | no | Log format: `text` or `json`. Default: `text`. | +| `level` | string | no | Log level: `debug`, `info`, `warn`, `error`, `fatal`, or `panic`. Default: `info`. | +| `sentry_dsn` | string | no | Sentry DSN for exception monitoring. | +| `sentry_environment` | string | no | [Sentry Environment](https://docs.sentry.io/enriching-error-data/environments/) for exception monitoring. | +| `ruby_sentry_dsn` | string | no | Sentry DSN for gitaly-ruby exception monitoring. | + +While the main Gitaly application logs go to stdout, there are some extra log +files that go to a configured directory, like the GitLab Shell logs. +Gitlab Shell does not support `panic` or `trace` level logs. `panic` will fall +back to `error`, while `trace` will fall back to `debug`. Any other invalid log +levels will default to `info`. + +Example: + +```toml +[logging] +level = "warn" +dir = "/home/gitaly/logs" +format = "json" +sentry_dsn = "https://<key>:<secret>@sentry.io/<project>" +ruby_sentry_dsn = "https://<key>:<secret>@sentry.io/<project>" +``` + +## Concurrency + +You can adjust the `concurrency` of each RPC endpoint. + +| Name | Type | Required | Description | +| ---- | ---- | -------- | ----------- | +| `concurrency` | array | yes | An array of RPC endpoints. | +| `rpc` | string | no | The name of the RPC endpoint (`/gitaly.RepositoryService/GarbageCollect`). | +| `max_per_repo` | integer | no | Concurrency per RPC per repo. | + +Example: + +```toml +[[concurrency]] +rpc = "/gitaly.RepositoryService/GarbageCollect" +max_per_repo = 1 +``` diff --git a/doc/administration/high_availability/README.md b/doc/administration/high_availability/README.md index 56665ba8b9a..0aaf956f169 100644 --- a/doc/administration/high_availability/README.md +++ b/doc/administration/high_availability/README.md @@ -165,7 +165,7 @@ contention due to certain workloads. #### Reference Architecture - **Supported Users (approximate):** 10,000 -- **Known Issues:** While validating the reference architecture, slow endpoints were discovered and are being investigated. [gitlab-org/gitlab-ce/issues/64335](https://gitlab.com/gitlab-org/gitlab-ce/issues/64335) +- **Known Issues:** While validating the reference architecture, slow endpoints were discovered and are being investigated. [gitlab-org/gitlab-ce/issues/64335](https://gitlab.com/gitlab-org/gitlab-foss/issues/64335) The Support and Quality teams built, performance tested, and validated an environment that supports about 10,000 users. The specifications below are a diff --git a/doc/administration/high_availability/database.md b/doc/administration/high_availability/database.md index 7c9e02d889e..99582dae57a 100644 --- a/doc/administration/high_availability/database.md +++ b/doc/administration/high_availability/database.md @@ -67,7 +67,7 @@ deploy the bundled PostgreSQL. alertmanager['enable'] = false pgbouncer_exporter['enable'] = false redis_exporter['enable'] = false - gitlab_monitor['enable'] = false + gitlab_exporter['enable'] = false postgresql['listen_address'] = '0.0.0.0' postgresql['port'] = 5432 @@ -1049,7 +1049,7 @@ If you're running into an issue with a component not outlined here, be sure to c ## Configure using Omnibus **Note**: We recommend that you follow the instructions here for a full [PostgreSQL cluster](#high-availability-with-gitlab-omnibus-premium-only). -If you are reading this section due to an old bookmark, you can find that old documentation [in the repository](https://gitlab.com/gitlab-org/gitlab-ce/blob/v10.1.4/doc/administration/high_availability/database.md#configure-using-omnibus). +If you are reading this section due to an old bookmark, you can find that old documentation [in the repository](https://gitlab.com/gitlab-org/gitlab-foss/blob/v10.1.4/doc/administration/high_availability/database.md#configure-using-omnibus). Read more on high-availability configuration: diff --git a/doc/administration/high_availability/monitoring_node.md b/doc/administration/high_availability/monitoring_node.md index b2750603c74..0b04e48f74a 100644 --- a/doc/administration/high_availability/monitoring_node.md +++ b/doc/administration/high_availability/monitoring_node.md @@ -53,7 +53,7 @@ Omnibus: gitlab_rails['auto_migrate'] = false alertmanager['enable'] = false gitaly['enable'] = false - gitlab_monitor['enable'] = false + gitlab_exporter['enable'] = false gitlab_workhorse['enable'] = false nginx['enable'] = true postgres_exporter['enable'] = false diff --git a/doc/administration/high_availability/nfs.md b/doc/administration/high_availability/nfs.md index 274bd32299b..987db3c89a5 100644 --- a/doc/administration/high_availability/nfs.md +++ b/doc/administration/high_availability/nfs.md @@ -65,7 +65,7 @@ If the Rugged feature flag is explicitly set to either true or false, GitLab wil On some customer systems, we have seen NFS clients slow precipitously due to [excessive network traffic from numerous `TEST_STATEID` NFS -messages](https://gitlab.com/gitlab-org/gitlab-ce/issues/52017). This is +messages](https://gitlab.com/gitlab-org/gitlab-foss/issues/52017). This is likely due to a [Linux kernel bug](https://bugzilla.redhat.com/show_bug.cgi?id=1552203) that may be fixed in [more recent kernels with this diff --git a/doc/administration/high_availability/redis.md b/doc/administration/high_availability/redis.md index 1b79dde9476..aa616ec91d8 100644 --- a/doc/administration/high_availability/redis.md +++ b/doc/administration/high_availability/redis.md @@ -64,7 +64,7 @@ Omnibus: prometheus['enable'] = false alertmanager['enable'] = false pgbouncer_exporter['enable'] = false - gitlab_monitor['enable'] = false + gitlab_exporter['enable'] = false gitaly['enable'] = false redis['bind'] = '0.0.0.0' @@ -1016,7 +1016,7 @@ Read more on High Availability: 1. [Configure the GitLab application servers](gitlab.md) 1. [Configure the load balancers](load_balancer.md) -[ce-1877]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/1877 +[ce-1877]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/1877 [restart]: ../restart_gitlab.md#installations-from-source [reconfigure]: ../restart_gitlab.md#omnibus-gitlab-reconfigure [gh-531]: https://github.com/redis/redis-rb/issues/531 @@ -1027,4 +1027,4 @@ Read more on High Availability: [source]: ../../install/installation.md [ce]: https://about.gitlab.com/downloads [ee]: https://about.gitlab.com/downloads-ee -[it]: https://gitlab.com/gitlab-org/gitlab-ce/uploads/c4cc8cd353604bd80315f9384035ff9e/The_Internet_IT_Crowd.png +[it]: https://gitlab.com/gitlab-org/gitlab-foss/uploads/c4cc8cd353604bd80315f9384035ff9e/The_Internet_IT_Crowd.png diff --git a/doc/administration/high_availability/redis_source.md b/doc/administration/high_availability/redis_source.md index 63915e5d96c..0758b240a25 100644 --- a/doc/administration/high_availability/redis_source.md +++ b/doc/administration/high_availability/redis_source.md @@ -11,7 +11,7 @@ comes with the Omnibus packages. Note also that you may elect to override all references to `/home/git/gitlab/config/resque.yml` in accordance with the advanced Redis settings outlined in -[Configuration Files Documentation](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/README.md). +[Configuration Files Documentation](https://gitlab.com/gitlab-org/gitlab/blob/master/config/README.md). We cannot stress enough the importance of reading the [Overview section](redis.md#overview) of the Omnibus Redis HA as it provides @@ -373,5 +373,5 @@ When in doubt, please read [Redis Sentinel documentation](https://redis.io/topic [gh-531]: https://github.com/redis/redis-rb/issues/531 [downloads]: https://about.gitlab.com/downloads [restart]: ../restart_gitlab.md#installations-from-source -[it]: https://gitlab.com/gitlab-org/gitlab-ce/uploads/c4cc8cd353604bd80315f9384035ff9e/The_Internet_IT_Crowd.png -[resque]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/resque.yml.example +[it]: https://gitlab.com/gitlab-org/gitlab-foss/uploads/c4cc8cd353604bd80315f9384035ff9e/The_Internet_IT_Crowd.png +[resque]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/config/resque.yml.example diff --git a/doc/administration/housekeeping.md b/doc/administration/housekeeping.md index abe39d188aa..43c9679be65 100644 --- a/doc/administration/housekeeping.md +++ b/doc/administration/housekeeping.md @@ -33,6 +33,6 @@ You can find this option under your project's **Settings > General > Advanced**. ![Housekeeping settings](img/housekeeping_settings.png) -[ce-2371]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2371 "Housekeeping merge request" +[ce-2371]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/2371 "Housekeeping merge request" [man-gc]: https://www.kernel.org/pub/software/scm/git/docs/git-gc.html "git gc man page" [man-repack]: https://www.kernel.org/pub/software/scm/git/docs/git-repack.html diff --git a/doc/administration/incoming_email.md b/doc/administration/incoming_email.md index 29915cb3a99..45634d50b91 100644 --- a/doc/administration/incoming_email.md +++ b/doc/administration/incoming_email.md @@ -92,7 +92,7 @@ authenticate solely based on access to an email domain such as `*.hooli.com.` Alternatively, use a dedicated domain for GitLab email communications such as `hooli-gitlab.com`. -See GitLab issue [#30366](https://gitlab.com/gitlab-org/gitlab-ce/issues/30366) +See GitLab issue [#30366](https://gitlab.com/gitlab-org/gitlab-foss/issues/30366) for a real-world example of this exploit. ### Omnibus package installations diff --git a/doc/administration/index.md b/doc/administration/index.md index 731c25cd3d8..6d40039026d 100644 --- a/doc/administration/index.md +++ b/doc/administration/index.md @@ -8,8 +8,8 @@ Learn how to administer your self-managed GitLab instance. GitLab has two product distributions available through [different subscriptions](https://about.gitlab.com/pricing/): -- The open source [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce). -- The open core [GitLab Enterprise Edition (EE)](https://gitlab.com/gitlab-org/gitlab-ee). +- The open source [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-foss). +- The open core [GitLab Enterprise Edition (EE)](https://gitlab.com/gitlab-org/gitlab). You can [install either GitLab CE or GitLab EE](https://about.gitlab.com/install/ce-or-ee/). However, the features you'll have access to depend on the subscription you choose diff --git a/doc/administration/instance_review.md b/doc/administration/instance_review.md index 825435deff9..fb8be67ea53 100644 --- a/doc/administration/instance_review.md +++ b/doc/administration/instance_review.md @@ -12,5 +12,5 @@ Once you submit the data to GitLab Inc. you can see the initial report. Additionally you will be contacted by our team for further review which should help you to improve your usage of GitLab. -[6995]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6995 +[6995]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/6995 [ee]: https://about.gitlab.com/pricing/ diff --git a/doc/administration/integration/plantuml.md b/doc/administration/integration/plantuml.md index 318711fd281..67e1729e7fd 100644 --- a/doc/administration/integration/plantuml.md +++ b/doc/administration/integration/plantuml.md @@ -1,6 +1,6 @@ # PlantUML & GitLab -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8537) in GitLab 8.16. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8537) in GitLab 8.16. When [PlantUML](http://plantuml.com) integration is enabled and configured in GitLab we are able to create simple diagrams in AsciiDoc and Markdown documents diff --git a/doc/administration/integration/terminal.md b/doc/administration/integration/terminal.md index 24c9cc0bea9..dbc61c82061 100644 --- a/doc/administration/integration/terminal.md +++ b/doc/administration/integration/terminal.md @@ -1,6 +1,6 @@ # Web terminals -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7690) +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/7690) in GitLab 8.15. Only project maintainers and owners can access web terminals. With the introduction of the [Kubernetes integration](../../user/project/clusters/index.md), @@ -92,7 +92,7 @@ they will receive a `Connection failed` message. ## Limiting WebSocket connection time -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8413) +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8413) in GitLab 8.17. Terminal sessions use long-lived connections; by default, these may last diff --git a/doc/administration/issue_closing_pattern.md b/doc/administration/issue_closing_pattern.md index f9be06c6daf..0e34505c2b0 100644 --- a/doc/administration/issue_closing_pattern.md +++ b/doc/administration/issue_closing_pattern.md @@ -13,7 +13,7 @@ in the project's default branch. In order to change the pattern you need to have access to the server that GitLab is installed on. -The default pattern can be located in [`gitlab.yml.example`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/gitlab.yml.example) +The default pattern can be located in [`gitlab.yml.example`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/config/gitlab.yml.example) under the "Automatic issue closing" section. > **Tip:** diff --git a/doc/administration/job_artifacts.md b/doc/administration/job_artifacts.md index 350cd5b7992..913321012e4 100644 --- a/doc/administration/job_artifacts.md +++ b/doc/administration/job_artifacts.md @@ -77,7 +77,7 @@ _The artifacts are stored by default in ### Using object storage -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1762) in +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/1762) in > [GitLab Premium](https://about.gitlab.com/pricing/) 9.4. > - Since version 9.5, artifacts are [browsable](../user/project/pipelines/job_artifacts.md#browsing-artifacts), > when object storage is enabled. 9.4 lacks this feature. diff --git a/doc/administration/job_traces.md b/doc/administration/job_traces.md index 6a06eb240de..8a68f82d2fc 100644 --- a/doc/administration/job_traces.md +++ b/doc/administration/job_traces.md @@ -202,6 +202,6 @@ Also, it could pressure the database replication lag. `INSERT`s are generated to indicate that we have trace chunk. `UPDATE`s with 128KB of data is issued once we receive multiple chunks. -[ce-18169]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18169 -[ce-21193]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21193 -[ce-46097]: https://gitlab.com/gitlab-org/gitlab-ce/issues/46097 +[ce-18169]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18169 +[ce-21193]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/21193 +[ce-46097]: https://gitlab.com/gitlab-org/gitlab-foss/issues/46097 diff --git a/doc/administration/logs.md b/doc/administration/logs.md index c51b53c596e..7857dcc1f08 100644 --- a/doc/administration/logs.md +++ b/doc/administration/logs.md @@ -296,11 +296,11 @@ This log records: - Requests over the [Rate Limit] on raw endpoints. NOTE: **Note:** -From [%12.1](https://gitlab.com/gitlab-org/gitlab-ce/issues/62756), user id and username are available on this log. +From [%12.1](https://gitlab.com/gitlab-org/gitlab-foss/issues/62756), user id and username are available on this log. ## `graphql_json.log` -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/59587) in GitLab 12.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/59587) in GitLab 12.0. This file lives in `/var/log/gitlab/gitlab-rails/graphql_json.log` for Omnibus GitLab packages or in `/home/git/gitlab/log/graphql_json.log` for @@ -341,7 +341,7 @@ installations from source. ## `database_load_balancing.log` **(PREMIUM ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/15442) in GitLab 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/15442) in GitLab 12.3. Contains details of GitLab's [Database Load Balancing](database_load_balancing.md). It is stored at: diff --git a/doc/administration/merge_request_diffs.md b/doc/administration/merge_request_diffs.md index d52d865cec5..f24a3f94ceb 100644 --- a/doc/administration/merge_request_diffs.md +++ b/doc/administration/merge_request_diffs.md @@ -1,6 +1,6 @@ # Merge request diffs storage **(CORE ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/52568) in GitLab 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/52568) in GitLab 11.8. Merge request diffs are size-limited copies of diffs associated with merge requests. When viewing a merge request, diffs are sourced from these copies diff --git a/doc/administration/monitoring/github_imports.md b/doc/administration/monitoring/github_imports.md index 5592e0a9e9a..2b1b7a230f7 100644 --- a/doc/administration/monitoring/github_imports.md +++ b/doc/administration/monitoring/github_imports.md @@ -98,4 +98,4 @@ The name of the project is stored in the `project` label in the format This metric tracks the number of imported repositories across all projects. This metric does not expose any labels. -[14731]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14731 +[14731]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/14731 diff --git a/doc/administration/monitoring/gitlab_instance_administration_project/index.md b/doc/administration/monitoring/gitlab_instance_administration_project/index.md index d445b68721d..bb76ad59e3b 100644 --- a/doc/administration/monitoring/gitlab_instance_administration_project/index.md +++ b/doc/administration/monitoring/gitlab_instance_administration_project/index.md @@ -1,6 +1,6 @@ # GitLab instance administration project -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/56883) in GitLab 12.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/56883) in GitLab 12.2. GitLab has been adding the ability for administrators to see insights into the health of their GitLab instance. In order to surface this experience in a native way, similar to how diff --git a/doc/administration/monitoring/performance/grafana_configuration.md b/doc/administration/monitoring/performance/grafana_configuration.md index 95be0d5fd88..d389c7c5003 100644 --- a/doc/administration/monitoring/performance/grafana_configuration.md +++ b/doc/administration/monitoring/performance/grafana_configuration.md @@ -105,7 +105,7 @@ repository for more information on this process. ## Integration with GitLab UI -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/61005) in GitLab 12.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/61005) in GitLab 12.1. If you have set up Grafana, you can enable a link to access it easily from the sidebar: diff --git a/doc/administration/monitoring/prometheus/gitlab_monitor_exporter.md b/doc/administration/monitoring/prometheus/gitlab_exporter.md index 9aa4dfa5ab7..cfd9f55acc3 100644 --- a/doc/administration/monitoring/prometheus/gitlab_monitor_exporter.md +++ b/doc/administration/monitoring/prometheus/gitlab_exporter.md @@ -1,30 +1,30 @@ -# GitLab monitor exporter +# GitLab exporter >**Note:** Available since [Omnibus GitLab 8.17][1132]. For installations from source you'll have to install and configure it yourself. -The [GitLab monitor exporter] allows you to measure various GitLab metrics, pulled from Redis and the database. +The [GitLab exporter] allows you to measure various GitLab metrics, pulled from Redis and the database. -To enable the GitLab monitor exporter: +To enable the GitLab exporter: 1. [Enable Prometheus](index.md#configuring-prometheus) 1. Edit `/etc/gitlab/gitlab.rb` 1. Add or find and uncomment the following line, making sure it's set to `true`: ```ruby - gitlab_monitor['enable'] = true + gitlab_exporter['enable'] = true ``` 1. Save the file and [reconfigure GitLab][reconfigure] for the changes to take effect Prometheus will now automatically begin collecting performance data from -the GitLab monitor exporter exposed under `localhost:9168`. +the GitLab exporter exposed under `localhost:9168`. [← Back to the main Prometheus page](index.md) [1132]: https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests/1132 -[GitLab monitor exporter]: https://gitlab.com/gitlab-org/gitlab-monitor +[GitLab exporter]: https://gitlab.com/gitlab-org/gitlab-exporter [prometheus]: https://prometheus.io [reconfigure]: ../../restart_gitlab.md#omnibus-gitlab-reconfigure diff --git a/doc/administration/monitoring/prometheus/gitlab_metrics.md b/doc/administration/monitoring/prometheus/gitlab_metrics.md index 5c348702ba2..302d74dd96a 100644 --- a/doc/administration/monitoring/prometheus/gitlab_metrics.md +++ b/doc/administration/monitoring/prometheus/gitlab_metrics.md @@ -1,7 +1,7 @@ # GitLab Prometheus metrics >**Note:** -Available since [Omnibus GitLab 9.3](https://gitlab.com/gitlab-org/gitlab-ce/issues/29118). For +Available since [Omnibus GitLab 9.3](https://gitlab.com/gitlab-org/gitlab-foss/issues/29118). For installations from source you'll have to configure it yourself. To enable the GitLab Prometheus metrics: @@ -140,8 +140,8 @@ The following metrics are available: | Metric | Type | Since | Description | |:--------------------------------- |:--------- |:------------------------------------------------------------- |:-------------------------------------- | -| `db_load_balancing_hosts` | Gauge | [12.3](https://gitlab.com/gitlab-org/gitlab-ee/issues/13630) | Current number of load balancing hosts | -| `db_load_balancing_index` | Gauge | [12.3](https://gitlab.com/gitlab-org/gitlab-ee/issues/13630) | Current load balancing host index | +| `db_load_balancing_hosts` | Gauge | [12.3](https://gitlab.com/gitlab-org/gitlab/issues/13630) | Current number of load balancing hosts | +| `db_load_balancing_index` | Gauge | [12.3](https://gitlab.com/gitlab-org/gitlab/issues/13630) | Current load balancing host index | ## Ruby metrics diff --git a/doc/administration/monitoring/prometheus/index.md b/doc/administration/monitoring/prometheus/index.md index c8968c51393..9228ebf4fed 100644 --- a/doc/administration/monitoring/prometheus/index.md +++ b/doc/administration/monitoring/prometheus/index.md @@ -97,9 +97,9 @@ To use an external Prometheus server: 1. Set each bundled service's [exporter](#bundled-software-metrics) to listen on a network address, for example: ```ruby - gitlab_monitor['listen_address'] = '0.0.0.0' + gitlab_exporter['listen_address'] = '0.0.0.0' sidekiq['listen_address'] = '0.0.0.0' - gitlab_monitor['listen_port'] = '9168' + gitlab_exporter['listen_port'] = '9168' node_exporter['listen_address'] = '0.0.0.0:9100' redis_exporter['listen_address'] = '0.0.0.0:9121' postgres_exporter['listen_address'] = '0.0.0.0:9187' @@ -163,17 +163,17 @@ To use an external Prometheus server: static_configs: - targets: - 1.1.1.1:8082 - - job_name: gitlab_monitor_database + - job_name: gitlab_exporter_database metrics_path: "/database" static_configs: - targets: - 1.1.1.1:9168 - - job_name: gitlab_monitor_sidekiq + - job_name: gitlab_exporter_sidekiq metrics_path: "/sidekiq" static_configs: - targets: - 1.1.1.1:9168 - - job_name: gitlab_monitor_process + - job_name: gitlab_exporter_process metrics_path: "/process" static_configs: - targets: @@ -263,11 +263,11 @@ The PgBouncer exporter allows you to measure various PgBouncer metrics. [➔ Read more about the PgBouncer exporter.](pgbouncer_exporter.md) -### GitLab monitor exporter +### GitLab exporter -The GitLab monitor exporter allows you to measure various GitLab metrics, pulled from Redis and the database. +The GitLab exporter allows you to measure various GitLab metrics, pulled from Redis and the database. -[➔ Read more about the GitLab monitor exporter.](gitlab_monitor_exporter.md) +[➔ Read more about the GitLab exporter.](gitlab_exporter.md) ## Configuring Prometheus to monitor Kubernetes diff --git a/doc/administration/operations/cleaning_up_redis_sessions.md b/doc/administration/operations/cleaning_up_redis_sessions.md index 20c19445404..c9b5ab9d290 100644 --- a/doc/administration/operations/cleaning_up_redis_sessions.md +++ b/doc/administration/operations/cleaning_up_redis_sessions.md @@ -18,7 +18,7 @@ remove the keys in the old format. **Note:** the instructions below must be modified in accordance with your configuration settings if you have used the advanced Redis settings outlined in -[Configuration Files Documentation](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/README.md). +[Configuration Files Documentation](https://gitlab.com/gitlab-org/gitlab/blob/master/config/README.md). First we define a shell function with the proper Redis connection details. diff --git a/doc/administration/operations/extra_sidekiq_processes.md b/doc/administration/operations/extra_sidekiq_processes.md index a16cd5166b7..0b5ddfd03ee 100644 --- a/doc/administration/operations/extra_sidekiq_processes.md +++ b/doc/administration/operations/extra_sidekiq_processes.md @@ -12,8 +12,8 @@ workers, no matter the number of jobs that need to be processed. For a list of the existing Sidekiq queues, check the following files: -- [Queues for both GitLab Community and Enterprise Editions](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/app/workers/all_queues.yml) -- [Queues for GitLab Enterprise Editions only](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/app/workers/all_queues.yml) +- [Queues for both GitLab Community and Enterprise Editions](https://gitlab.com/gitlab-org/gitlab/blob/master/app/workers/all_queues.yml) +- [Queues for GitLab Enterprise Editions only](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/app/workers/all_queues.yml) Each entry in the above files represents a queue on which extra Sidekiq processes can be started. diff --git a/doc/administration/operations/fast_ssh_key_lookup.md b/doc/administration/operations/fast_ssh_key_lookup.md index e787af798bc..16424c25a98 100644 --- a/doc/administration/operations/fast_ssh_key_lookup.md +++ b/doc/administration/operations/fast_ssh_key_lookup.md @@ -5,10 +5,10 @@ NOTE: **Note:** This document describes a drop-in replacement for the using [ssh certificates](ssh_certificates.md), they are even faster, but are not a drop-in replacement. -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/1631) in +> [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-ee/issues/3953) GitLab +> [Available in](https://gitlab.com/gitlab-org/gitlab/issues/3953) GitLab > Community Edition 10.4. Regular SSH operations become slow as the number of users grows because OpenSSH diff --git a/doc/administration/operations/ssh_certificates.md b/doc/administration/operations/ssh_certificates.md index b00301fec1c..3792bcd3bca 100644 --- a/doc/administration/operations/ssh_certificates.md +++ b/doc/administration/operations/ssh_certificates.md @@ -1,6 +1,6 @@ # User lookup via OpenSSH's AuthorizedPrincipalsCommand -> [Available in](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/19911) GitLab +> [Available in](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/19911) GitLab > Community Edition 11.2. GitLab's default SSH authentication requires users to upload their ssh @@ -157,7 +157,7 @@ Users can still bypass SSH certificate authentication by manually uploading an SSH public key to their profile, relying on the `~/.ssh/authorized_keys` fallback to authenticate it. There's currently no feature to prevent this, [but there's an open request for -adding it](https://gitlab.com/gitlab-org/gitlab-ce/issues/49218). +adding it](https://gitlab.com/gitlab-org/gitlab-foss/issues/49218). Such a restriction can currently be hacked in by e.g. providing a custom `AuthorizedKeysCommand` which checks if the discovered key-ID diff --git a/doc/administration/packages/container_registry.md b/doc/administration/packages/container_registry.md index e3c793ee339..b5320d39d92 100644 --- a/doc/administration/packages/container_registry.md +++ b/doc/administration/packages/container_registry.md @@ -1,6 +1,6 @@ # GitLab Container Registry administration -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4040) in GitLab 8.8. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/4040) in GitLab 8.8. > - Container Registry manifest `v1` support was added in GitLab 8.9 to support > Docker versions earlier than 1.10. @@ -37,7 +37,7 @@ If you have installed GitLab from source: 1. After the installation is complete, you will have to configure the Registry's settings in `gitlab.yml` in order to enable it. 1. Use the sample NGINX configuration file that is found under - [`lib/support/nginx/registry-ssl`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/support/nginx/registry-ssl) and edit it to match the + [`lib/support/nginx/registry-ssl`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/support/nginx/registry-ssl) and edit it to match the `host`, `port` and TLS certs paths. The contents of `gitlab.yml` are: @@ -615,7 +615,7 @@ mounting the docker-daemon and setting `privileged = false` in the Runner's volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"] ``` -Additional information about this: [issue 18239](https://gitlab.com/gitlab-org/gitlab-ce/issues/18239). +Additional information about this: [issue 18239](https://gitlab.com/gitlab-org/gitlab-foss/issues/18239). ### AWS S3 with the GitLab registry error when pushing large images diff --git a/doc/administration/packages/dependency_proxy.md b/doc/administration/packages/dependency_proxy.md index 967ba2592c3..519ec02bd33 100644 --- a/doc/administration/packages/dependency_proxy.md +++ b/doc/administration/packages/dependency_proxy.md @@ -1,6 +1,6 @@ # GitLab Dependency Proxy administration **(PREMIUM ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7934) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.11. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/7934) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.11. GitLab can be utilized as a dependency proxy for a variety of common package managers. diff --git a/doc/administration/pages/index.md b/doc/administration/pages/index.md index 774e7056845..41a372c4aeb 100644 --- a/doc/administration/pages/index.md +++ b/doc/administration/pages/index.md @@ -8,7 +8,7 @@ description: 'Learn how to administer GitLab Pages.' > - Custom CNAMEs with TLS support were [introduced][ee-173] in GitLab EE 8.5. > - GitLab Pages [was ported][ce-14605] to Community Edition in GitLab 8.17. > - Support for subgroup project's websites was -> [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30548) in GitLab 11.8. +> [introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/30548) in GitLab 11.8. GitLab Pages allows for hosting of static sites. It must be configured by an administrator. Separate [user documentation][pages-userguide] is available. @@ -267,7 +267,7 @@ This setting is enabled by default. ### Let's Encrypt integration -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/28996) in GitLab 12.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/28996) in GitLab 12.1. [GitLab Pages' Let's Encrypt integration](../../user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md) allows users to add Let's Encrypt SSL certificates for GitLab Pages @@ -284,7 +284,7 @@ To enable it, you'll need to: ### Access control -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/33422) in GitLab 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/33422) in GitLab 11.5. GitLab Pages access control can be configured per-project, and allows access to a Pages site to be controlled based on a user's membership to that project. @@ -443,12 +443,12 @@ latest previous version. --- -**GitLab 8.17 ([documentation](https://gitlab.com/gitlab-org/gitlab-ce/blob/8-17-stable/doc/administration/pages/index.md))** +**GitLab 8.17 ([documentation](https://gitlab.com/gitlab-org/gitlab-foss/blob/8-17-stable/doc/administration/pages/index.md))** - GitLab Pages were ported to Community Edition in GitLab 8.17. - Documentation was refactored to be more modular and easy to follow. -**GitLab 8.5 ([documentation](https://gitlab.com/gitlab-org/gitlab-ee/blob/8-5-stable-ee/doc/pages/administration.md))** +**GitLab 8.5 ([documentation](https://gitlab.com/gitlab-org/gitlab/blob/8-5-stable-ee/doc/pages/administration.md))** - In GitLab 8.5 we introduced the [gitlab-pages][] daemon which is now the recommended way to set up GitLab Pages. @@ -457,16 +457,16 @@ latest previous version. - Custom CNAME and TLS certificates support. - Documentation was moved to one place. -**GitLab 8.3 ([documentation](https://gitlab.com/gitlab-org/gitlab-ee/blob/8-3-stable-ee/doc/pages/administration.md))** +**GitLab 8.3 ([documentation](https://gitlab.com/gitlab-org/gitlab/blob/8-3-stable-ee/doc/pages/administration.md))** - GitLab Pages feature was introduced. [backup]: ../../raketasks/backup_restore.md -[ce-14605]: https://gitlab.com/gitlab-org/gitlab-ce/issues/14605 -[ee-80]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/80 -[ee-173]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/173 +[ce-14605]: https://gitlab.com/gitlab-org/gitlab-foss/issues/14605 +[ee-80]: https://gitlab.com/gitlab-org/gitlab/merge_requests/80 +[ee-173]: https://gitlab.com/gitlab-org/gitlab/merge_requests/173 [gitlab pages daemon]: https://gitlab.com/gitlab-org/gitlab-pages -[NGINX configs]: https://gitlab.com/gitlab-org/gitlab-ee/tree/8-5-stable-ee/lib/support/nginx +[NGINX configs]: https://gitlab.com/gitlab-org/gitlab/tree/8-5-stable-ee/lib/support/nginx [pages-readme]: https://gitlab.com/gitlab-org/gitlab-pages/blob/master/README.md [pages-userguide]: ../../user/project/pages/index.md [reconfigure]: ../restart_gitlab.md#omnibus-gitlab-reconfigure diff --git a/doc/administration/pages/source.md b/doc/administration/pages/source.md index fdfde22647d..bacfa0117bb 100644 --- a/doc/administration/pages/source.md +++ b/doc/administration/pages/source.md @@ -372,7 +372,7 @@ server_name ~^.*\.pages\.example\.io$; ## Access control -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/33422) in GitLab 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/33422) in GitLab 11.5. GitLab Pages access control can be configured per-project, and allows access to a Pages site to be controlled based on a user's membership to that project. @@ -447,13 +447,13 @@ You should strongly consider running GitLab pages under a different hostname than GitLab to prevent XSS attacks. [backup]: ../../raketasks/backup_restore.md -[ee-80]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/80 -[ee-173]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/173 +[ee-80]: https://gitlab.com/gitlab-org/gitlab/merge_requests/80 +[ee-173]: https://gitlab.com/gitlab-org/gitlab/merge_requests/173 [gitlab pages daemon]: https://gitlab.com/gitlab-org/gitlab-pages -[NGINX configs]: https://gitlab.com/gitlab-org/gitlab-ee/tree/8-5-stable-ee/lib/support/nginx +[NGINX configs]: https://gitlab.com/gitlab-org/gitlab/tree/8-5-stable-ee/lib/support/nginx [pages-readme]: https://gitlab.com/gitlab-org/gitlab-pages/blob/master/README.md [pages-userguide]: ../../user/project/pages/index.md [restart]: ../restart_gitlab.md#installations-from-source [gitlab-pages]: https://gitlab.com/gitlab-org/gitlab-pages/tree/v0.4.0 -[gl-example]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/support/init.d/gitlab.default.example +[gl-example]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/support/init.d/gitlab.default.example [shared runners]: ../../ci/runners/README.md diff --git a/doc/administration/plugins.md b/doc/administration/plugins.md index 92a4d56ca63..df75d3a24bc 100644 --- a/doc/administration/plugins.md +++ b/doc/administration/plugins.md @@ -24,7 +24,7 @@ see the [system hooks] documentation. The plugins must be placed directly into the `plugins` directory, subdirectories will be ignored. There is an -[`example` directory inside `plugins`](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/plugins/examples) +[`example` directory inside `plugins`](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/plugins/examples) where you can find some basic examples. Follow the steps below to set up a custom hook: diff --git a/doc/administration/pseudonymizer.md b/doc/administration/pseudonymizer.md index 716a4259a64..fd42f6a6363 100644 --- a/doc/administration/pseudonymizer.md +++ b/doc/administration/pseudonymizer.md @@ -1,6 +1,6 @@ # Pseudonymizer **(ULTIMATE)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5532) in [GitLab Ultimate][ee] 11.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/5532) in [GitLab Ultimate][ee] 11.1. As GitLab's database hosts sensitive information, using it unfiltered for analytics implies high security requirements. To help alleviate this constraint, the Pseudonymizer @@ -21,7 +21,7 @@ be textually exported. This ensures that: To configure the pseudonymizer, you need to: - Provide a manifest file that describes which fields should be included or - pseudonymized ([example `manifest.yml` file](https://gitlab.com/gitlab-org/gitlab-ee/tree/master/config/pseudonymizer.yml)). + pseudonymized ([example `manifest.yml` file](https://gitlab.com/gitlab-org/gitlab/tree/master/config/pseudonymizer.yml)). A default manifest is provided with the GitLab installation. Using a relative file path will be resolved from the Rails root. Alternatively, you can use an absolute file path. - Use an object storage and specify the connection parameters in the `pseudonymizer.upload.connection` configuration option. diff --git a/doc/administration/raketasks/github_import.md b/doc/administration/raketasks/github_import.md index f8eecc97c33..d6dd39cb1bc 100644 --- a/doc/administration/raketasks/github_import.md +++ b/doc/administration/raketasks/github_import.md @@ -1,6 +1,6 @@ # GitHub import -> [Introduced]( https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10308) in GitLab 9.1. +> [Introduced]( https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10308) in GitLab 9.1. In order to retrieve and import GitHub repositories, you will need a [GitHub personal access token](https://github.com/settings/tokens). diff --git a/doc/administration/raketasks/ldap.md b/doc/administration/raketasks/ldap.md index d0ebe272b6d..36db98a2102 100644 --- a/doc/administration/raketasks/ldap.md +++ b/doc/administration/raketasks/ldap.md @@ -28,7 +28,7 @@ rake gitlab:ldap:check[50] ## Run a Group Sync -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/14735) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/14735) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.3. The following task will run a [group sync](../auth/ldap-ee.md#group-sync) immediately. This is valuable when you'd like to update all configured group memberships against LDAP without diff --git a/doc/administration/raketasks/project_import_export.md b/doc/administration/raketasks/project_import_export.md index 138db4dfbb1..2857f5a27aa 100644 --- a/doc/administration/raketasks/project_import_export.md +++ b/doc/administration/raketasks/project_import_export.md @@ -31,5 +31,5 @@ sudo gitlab-rake gitlab:import_export:data bundle exec rake gitlab:import_export:data RAILS_ENV=production ``` -[ce-3050]: https://gitlab.com/gitlab-org/gitlab-ce/issues/3050 +[ce-3050]: https://gitlab.com/gitlab-org/gitlab-foss/issues/3050 [tmp]: ../../development/shared_files.md diff --git a/doc/administration/raketasks/uploads/sanitize.md b/doc/administration/raketasks/uploads/sanitize.md index 7574660d848..98cc1ddcff9 100644 --- a/doc/administration/raketasks/uploads/sanitize.md +++ b/doc/administration/raketasks/uploads/sanitize.md @@ -60,5 +60,5 @@ Because the output of commands will be probably long, the output is written also If sanitization fails for an upload, an error message should be in the output of the rake task (typical reasons may be that the file is missing in the storage or it's not a valid image). Please -[report](https://gitlab.com/gitlab-org/gitlab-ce/issues/new) any issues at `gitlab.com` and use +[report](https://gitlab.com/gitlab-org/gitlab-foss/issues/new) any issues at `gitlab.com` and use prefix 'EXIF' in issue title with the error output and (if possible) the image. diff --git a/doc/administration/repository_checks.md b/doc/administration/repository_checks.md index ab911c1cf0e..6bf10441369 100644 --- a/doc/administration/repository_checks.md +++ b/doc/administration/repository_checks.md @@ -42,5 +42,5 @@ clicking "Clear all repository checks" on the **Settings** page of the admin panel (`/admin/application_settings`). --- -[ce-3232]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3232 "Auto git fsck" +[ce-3232]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/3232 "Auto git fsck" [git-fsck]: https://git-scm.com/docs/git-fsck "git fsck documentation" diff --git a/doc/administration/repository_storage_paths.md b/doc/administration/repository_storage_paths.md index b1a870210a8..376eb90deea 100644 --- a/doc/administration/repository_storage_paths.md +++ b/doc/administration/repository_storage_paths.md @@ -114,10 +114,10 @@ be stored via the **Application Settings** in the Admin area. Beginning with GitLab 8.13.4, multiple paths can be chosen. New projects will be randomly placed on one of the selected paths. -[ce-4578]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4578 +[ce-4578]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/4578 [restart-gitlab]: restart_gitlab.md#installations-from-source [reconfigure-gitlab]: restart_gitlab.md#omnibus-gitlab-reconfigure [backups]: ../raketasks/backup_restore.md -[raketask]: https://gitlab.com/gitlab-org/gitlab-ce/blob/033e5423a2594e08a7ebcd2379bd2331f4c39032/lib/backup/repository.rb#L54-56 -[repospath]: https://gitlab.com/gitlab-org/gitlab-ce/blob/8-9-stable/config/gitlab.yml.example#L457 -[ce-11449]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11449 +[raketask]: https://gitlab.com/gitlab-org/gitlab-foss/blob/033e5423a2594e08a7ebcd2379bd2331f4c39032/lib/backup/repository.rb#L54-56 +[repospath]: https://gitlab.com/gitlab-org/gitlab-foss/blob/8-9-stable/config/gitlab.yml.example#L457 +[ce-11449]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/11449 diff --git a/doc/administration/repository_storage_types.md b/doc/administration/repository_storage_types.md index d2d7ebdd634..5f6738dc190 100644 --- a/doc/administration/repository_storage_types.md +++ b/doc/administration/repository_storage_types.md @@ -195,7 +195,7 @@ LFS Objects implements a similar storage pattern using 2 chars, 2 level folders, They are also S3 compatible since **10.0** (GitLab Premium), and available in GitLab Core since **10.7**. [ce-2821]: https://gitlab.com/gitlab-com/infrastructure/issues/2821 -[ce-28283]: https://gitlab.com/gitlab-org/gitlab-ce/issues/28283 +[ce-28283]: https://gitlab.com/gitlab-org/gitlab-foss/issues/28283 [rake/migrate-to-hashed]: raketasks/storage.md#migrate-existing-projects-to-hashed-storage [storage-paths]: repository_storage_types.md [gitaly]: gitaly/index.md diff --git a/doc/administration/restart_gitlab.md b/doc/administration/restart_gitlab.md index e23f2052d04..169a220b9a9 100644 --- a/doc/administration/restart_gitlab.md +++ b/doc/administration/restart_gitlab.md @@ -141,5 +141,5 @@ If you are using other init systems, like systemd, you can check the [install]: ../install/installation.md "Documentation to install GitLab from source" [mailroom]: reply_by_email.md "Used for replying by email in GitLab issues and merge requests" [chef]: https://www.chef.io/products/chef-infra/ "Chef official website" -[src-service]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/support/init.d/gitlab "GitLab init service file" +[src-service]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/support/init.d/gitlab "GitLab init service file" [gl-recipes]: https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/init "GitLab Recipes repository" diff --git a/doc/administration/static_objects_external_storage.md b/doc/administration/static_objects_external_storage.md index e4d60c77199..31257ae9028 100644 --- a/doc/administration/static_objects_external_storage.md +++ b/doc/administration/static_objects_external_storage.md @@ -1,6 +1,6 @@ # Static objects external storage -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/31025) in GitLab 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/31025) in GitLab 12.3. GitLab can be configured to serve repository static objects (for example, archives) from an external storage, such as a CDN. diff --git a/doc/administration/troubleshooting/debug.md b/doc/administration/troubleshooting/debug.md index 604dff5983d..562624fc9dc 100644 --- a/doc/administration/troubleshooting/debug.md +++ b/doc/administration/troubleshooting/debug.md @@ -175,7 +175,7 @@ separate Rails process to debug the issue: For example: ```ruby - [1] pry(main)> app.get 'https://gitlab.com/gitlab-org/gitlab-ce/issues/1?private_token=123456' + [1] pry(main)> app.get 'https://gitlab.com/gitlab-org/gitlab-foss/issues/1?private_token=123456' ``` 1. In a new window, run `top`. It should show this ruby process using 100% CPU. Write down the PID. diff --git a/doc/administration/troubleshooting/gitlab_rails_cheat_sheet.md b/doc/administration/troubleshooting/gitlab_rails_cheat_sheet.md index 19c564c7616..a064dfbfbe2 100644 --- a/doc/administration/troubleshooting/gitlab_rails_cheat_sheet.md +++ b/doc/administration/troubleshooting/gitlab_rails_cheat_sheet.md @@ -426,7 +426,7 @@ user.skip_reconfirmation! ### Get an admin token ```ruby -# Get the first admin's first access token (no longer works on 11.9+. see: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22743) +# Get the first admin's first access token (no longer works on 11.9+. see: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22743) User.where(admin:true).first.personal_access_tokens.first.token # Get the first admin's private token (no longer works on 10.2+) @@ -605,7 +605,7 @@ adapter = Gitlab::Auth::LDAP::Adapter.new('ldapmain') # If `main` is the LDAP pr user = Gitlab::Auth::LDAP::Person.find_by_uid('<username>',adapter) # Query the LDAP server directly (10.6+) -## For an example, see https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/lib/ee/gitlab/auth/ldap/adapter.rb +## For an example, see https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/ee/gitlab/auth/ldap/adapter.rb adapter = Gitlab::Auth::LDAP::Adapter.new('ldapmain') options = { # the :base is required @@ -652,7 +652,7 @@ LdapSyncWorker.new.perform ### Remove redirecting routes -See <https://gitlab.com/gitlab-org/gitlab-ce/issues/41758#note_54828133>. +See <https://gitlab.com/gitlab-org/gitlab-foss/issues/41758#note_54828133>. ```ruby path = 'foo' @@ -731,7 +731,7 @@ end ### Find reason failure (for when build trace is empty) (Introduced in 10.3.0) -See <https://gitlab.com/gitlab-org/gitlab-ce/issues/41111>. +See <https://gitlab.com/gitlab-org/gitlab-foss/issues/41111>. ```ruby build = Ci::Build.find(78420) @@ -784,7 +784,7 @@ License.current.plan ### Check if a project feature is available on the instance -Features listed in <https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/app/models/license.rb>. +Features listed in <https://gitlab.com/gitlab-org/gitlab/blob/master/ee/app/models/license.rb>. ```ruby License.current.feature_available?(:jira_dev_panel_integration) @@ -792,7 +792,7 @@ License.current.feature_available?(:jira_dev_panel_integration) ### Check if a project feature is available in a project -Features listed in <https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/app/models/license.rb>. +Features listed in <https://gitlab.com/gitlab-org/gitlab/blob/master/ee/app/models/license.rb>. ```ruby p = Project.find_by_full_path('<group>/<project>') diff --git a/doc/administration/uploads.md b/doc/administration/uploads.md index a4bed72b965..c6dadbb500b 100644 --- a/doc/administration/uploads.md +++ b/doc/administration/uploads.md @@ -48,7 +48,7 @@ _The uploads are stored by default in > **Notes:** > > - [Introduced][ee-3867] in [GitLab Premium][eep] 10.5. -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17358) in [GitLab Core][ce] 10.7. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17358) in [GitLab Core](https://about.gitlab.com/pricing/) 10.7. > - Since version 11.1, we support direct_upload to S3. If you don't want to use the local disk where GitLab is installed to store the @@ -228,6 +228,5 @@ _The uploads are stored by default in [reconfigure gitlab]: restart_gitlab.md#omnibus-gitlab-reconfigure "How to reconfigure Omnibus GitLab" [restart gitlab]: restart_gitlab.md#installations-from-source "How to restart GitLab" -[eep]: https://about.gitlab.com/gitlab-ee/ "GitLab Premium" -[ce]: https://about.gitlab.com/gitlab-ce/ "GitLab Community Edition" -[ee-3867]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3867 +[eep]: https://about.gitlab.com/pricing/ "GitLab Premium" +[ee-3867]: https://gitlab.com/gitlab-org/gitlab/merge_requests/3867 diff --git a/doc/api/README.md b/doc/api/README.md index 036b46da6e5..d037ab1a95f 100644 --- a/doc/api/README.md +++ b/doc/api/README.md @@ -53,7 +53,7 @@ between v3 and v4; please read the [v3 to v4 documentation](v3_to_v4.md) ### Current status Currently only API version v4 is available. Version v3 was removed in -[GitLab 11.0](https://gitlab.com/gitlab-org/gitlab-ce/issues/36819). +[GitLab 11.0](https://gitlab.com/gitlab-org/gitlab-foss/issues/36819). ## Basic usage @@ -180,7 +180,7 @@ Impersonation tokens are used exactly like regular personal access tokens, and c #### Disable impersonation -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/40385) in GitLab +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/40385) in GitLab 11.6. By default, impersonation is enabled. To disable impersonation: @@ -377,7 +377,7 @@ Additional pagination headers are also sent back. CAUTION: **Caution:** For performance reasons since -[GitLab 11.8](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23931) +[GitLab 11.8](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/23931) and **behind the `api_kaminari_count_with_limit` [feature flag](../development/feature_flags.md)**, if the number of resources is more than 10,000, the `X-Total` and `X-Total-Pages` headers as well as the @@ -573,8 +573,8 @@ specifically used by GitLab.com, see [GitLab.com-specific rate limits](../user/gitlab_com/index.md#gitlabcom-specific-rate-limits). [GitLab website]: https://about.gitlab.com/applications/#api-clients "Clients using the GitLab API" -[lib-api-url]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/lib/api/api.rb -[ce-3749]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3749 -[ce-5951]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5951 -[ce-9099]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9099 +[lib-api-url]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/api/api.rb +[ce-3749]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/3749 +[ce-5951]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5951 +[ce-9099]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9099 [pat]: ../user/profile/personal_access_tokens.md diff --git a/doc/api/applications.md b/doc/api/applications.md index 807a0e57e8b..bcd119d1969 100644 --- a/doc/api/applications.md +++ b/doc/api/applications.md @@ -1,6 +1,6 @@ # Applications API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8160) in GitLab 10.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8160) in GitLab 10.5. Applications API operates on OAuth applications for: diff --git a/doc/api/avatar.md b/doc/api/avatar.md index e55fffba4b2..376d8e930c7 100644 --- a/doc/api/avatar.md +++ b/doc/api/avatar.md @@ -1,6 +1,6 @@ # Avatar API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/19121) in GitLab 11.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/19121) in GitLab 11.0. ## Get a single avatar URL diff --git a/doc/api/award_emoji.md b/doc/api/award_emoji.md index 1d0e39e6bbf..22ddab4bf79 100644 --- a/doc/api/award_emoji.md +++ b/doc/api/award_emoji.md @@ -1,6 +1,6 @@ # Award Emoji API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4575) in GitLab 8.9. Snippet support added in 8.12. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/4575) in GitLab 8.9. Snippet support added in 8.12. An [awarded emoji](../user/award_emojis.md) tells a thousand words. diff --git a/doc/api/boards.md b/doc/api/boards.md index b848d7788cd..151ab5487dd 100644 --- a/doc/api/boards.md +++ b/doc/api/boards.md @@ -482,4 +482,4 @@ DELETE /projects/:id/boards/:board_id/lists/:list_id curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/boards/1/lists/1 ``` -[ee-5954]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5954 +[ee-5954]: https://gitlab.com/gitlab-org/gitlab/merge_requests/5954 diff --git a/doc/api/commits.md b/doc/api/commits.md index 1f17eaea46d..cf1bca7b193 100644 --- a/doc/api/commits.md +++ b/doc/api/commits.md @@ -725,8 +725,8 @@ Example response if commit is unsigned: } ``` -[ce-6096]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6096 "Multi-file commit" -[ce-8047]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8047 -[ce-15026]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15026 -[ce-18004]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18004 -[ce-22919]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22919 +[ce-6096]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/6096 "Multi-file commit" +[ce-8047]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8047 +[ce-15026]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/15026 +[ce-18004]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18004 +[ce-22919]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22919 diff --git a/doc/api/container_registry.md b/doc/api/container_registry.md index 0957b502340..cb1a81b97b6 100644 --- a/doc/api/container_registry.md +++ b/doc/api/container_registry.md @@ -1,6 +1,6 @@ # Container Registry API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/55978) in GitLab 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/55978) in GitLab 11.8. This is the API docs of the [GitLab Container Registry](../user/packages/container_registry/index.md). @@ -252,7 +252,7 @@ This action does not delete blobs. In order to delete them and recycle disk spac [run the garbage collection](https://docs.gitlab.com/omnibus/maintenance/README.html#removing-unused-layers-not-referenced-by-manifests). NOTE: **Note:** -Due to a [Docker Distribution deficiency](https://gitlab.com/gitlab-org/gitlab-ce/issues/21405), +Due to a [Docker Distribution deficiency](https://gitlab.com/gitlab-org/gitlab-foss/issues/21405), it doesn't remove tags whose manifest is shared by multiple tags. Examples: diff --git a/doc/api/epic_links.md b/doc/api/epic_links.md index 6089198e46a..665c902355f 100644 --- a/doc/api/epic_links.md +++ b/doc/api/epic_links.md @@ -1,7 +1,7 @@ # Epic Links API **(ULTIMATE)** >**Note:** -> This endpoint was [introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9188) in GitLab 11.8. +> This endpoint was [introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/9188) in GitLab 11.8. Manages parent-child [epic relationships](../user/group/epics/index.md#multi-level-child-epics). diff --git a/doc/api/epics.md b/doc/api/epics.md index d6b22c3dc54..92b534fc187 100644 --- a/doc/api/epics.md +++ b/doc/api/epics.md @@ -367,4 +367,4 @@ Example response: } ``` -[ee-6448]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6448 +[ee-6448]: https://gitlab.com/gitlab-org/gitlab/merge_requests/6448 diff --git a/doc/api/graphql/index.md b/doc/api/graphql/index.md index bdc7c1959d2..eb5faac5ede 100644 --- a/doc/api/graphql/index.md +++ b/doc/api/graphql/index.md @@ -1,7 +1,7 @@ # GraphQL API > - [Introduced][ce-19008] in GitLab 11.0 (enabled by feature flag `graphql`). -> - [Always enabled](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/30444) +> - [Always enabled](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/30444) in GitLab 12.1. [GraphQL](https://graphql.org/) is a query language for APIs that @@ -58,5 +58,5 @@ It is automatically generated from GitLab's GraphQL schema and embedded in a Mar The API can be explored by using the GraphiQL IDE, it is available on your instance on `gitlab.example.com/-/graphql-explorer`. -[ce-19008]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/19008 +[ce-19008]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/19008 [features-api]: ../features.md diff --git a/doc/api/group_badges.md b/doc/api/group_badges.md index f88689d80c6..afefc3925cd 100644 --- a/doc/api/group_badges.md +++ b/doc/api/group_badges.md @@ -1,6 +1,6 @@ # Group badges API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17082) +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17082) in GitLab 10.6. ## Placeholder tokens @@ -99,7 +99,7 @@ POST /groups/:id/badges | `image_url` | string | yes | URL of the badge image | ```bash -curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "link_url=https://gitlab.com/gitlab-org/gitlab-ce/commits/master&image_url=https://shields.io/my/badge1&position=0" https://gitlab.example.com/api/v4/groups/:id/badges +curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "link_url=https://gitlab.com/gitlab-org/gitlab-foss/commits/master&image_url=https://shields.io/my/badge1&position=0" https://gitlab.example.com/api/v4/groups/:id/badges ``` Example response: @@ -107,9 +107,9 @@ Example response: ```json { "id": 1, - "link_url": "https://gitlab.com/gitlab-org/gitlab-ce/commits/master", + "link_url": "https://gitlab.com/gitlab-org/gitlab-foss/commits/master", "image_url": "https://shields.io/my/badge1", - "rendered_link_url": "https://gitlab.com/gitlab-org/gitlab-ce/commits/master", + "rendered_link_url": "https://gitlab.com/gitlab-org/gitlab-foss/commits/master", "rendered_image_url": "https://shields.io/my/badge1", "kind": "group" } @@ -139,9 +139,9 @@ Example response: ```json { "id": 1, - "link_url": "https://gitlab.com/gitlab-org/gitlab-ce/commits/master", + "link_url": "https://gitlab.com/gitlab-org/gitlab-foss/commits/master", "image_url": "https://shields.io/my/badge", - "rendered_link_url": "https://gitlab.com/gitlab-org/gitlab-ce/commits/master", + "rendered_link_url": "https://gitlab.com/gitlab-org/gitlab-foss/commits/master", "rendered_image_url": "https://shields.io/my/badge", "kind": "group" } diff --git a/doc/api/group_boards.md b/doc/api/group_boards.md index 99b522a7ae9..444cb90a7e8 100644 --- a/doc/api/group_boards.md +++ b/doc/api/group_boards.md @@ -302,7 +302,7 @@ Example response: ## Update a group issue board **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5954) in GitLab 11.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/5954) in GitLab 11.1. Updates a Group Issue Board. diff --git a/doc/api/group_clusters.md b/doc/api/group_clusters.md index 29e58d9279a..8a85b5b8763 100644 --- a/doc/api/group_clusters.md +++ b/doc/api/group_clusters.md @@ -1,6 +1,6 @@ # Group clusters API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/30213) +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/30213) in GitLab 12.1. NOTE: **Note:** diff --git a/doc/api/group_labels.md b/doc/api/group_labels.md index e2ba0dea642..5030bba3159 100644 --- a/doc/api/group_labels.md +++ b/doc/api/group_labels.md @@ -1,6 +1,6 @@ # Group Labels API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21368) in GitLab 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/21368) in GitLab 11.8. This API supports managing of [group labels](../user/project/labels.md#project-labels-and-group-labels). It allows to list, create, update, and delete group labels. Furthermore, users can subscribe and unsubscribe to and from group labels. @@ -15,7 +15,7 @@ GET /groups/:id/labels | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user. | -| `with_counts` | boolean | no | Whether or not to include issue and merge request counts. Defaults to `false`. _([Introduced in GitLab 12.2](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/31543))_ | +| `with_counts` | boolean | no | Whether or not to include issue and merge request counts. Defaults to `false`. _([Introduced in GitLab 12.2](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/31543))_ | ```bash curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/labels?with_counts=true diff --git a/doc/api/group_level_variables.md b/doc/api/group_level_variables.md index 7b00df6d775..f4d98bf454f 100644 --- a/doc/api/group_level_variables.md +++ b/doc/api/group_level_variables.md @@ -133,4 +133,4 @@ DELETE /groups/:id/variables/:key curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/variables/VARIABLE_1" ``` -[ce-34519]: https://gitlab.com/gitlab-org/gitlab-ce/issues/34519 +[ce-34519]: https://gitlab.com/gitlab-org/gitlab-foss/issues/34519 diff --git a/doc/api/group_milestones.md b/doc/api/group_milestones.md index a819e06bcd9..61edd2522be 100644 --- a/doc/api/group_milestones.md +++ b/doc/api/group_milestones.md @@ -135,11 +135,11 @@ Parameters: - `id` (required) - The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user - `milestone_id` (required) - The ID of a group milestone -[ce-12819]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12819 +[ce-12819]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12819 ## Get all burndown chart events for a single milestone **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4737) in GitLab 12.1 +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/4737) in GitLab 12.1 Get all burndown chart events for a single milestone. diff --git a/doc/api/groups.md b/doc/api/groups.md index 18e71f488ce..b0d60d58049 100644 --- a/doc/api/groups.md +++ b/doc/api/groups.md @@ -648,7 +648,7 @@ And to switch pages add: /groups?per_page=100&page=2 ``` -[ce-15142]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15142 +[ce-15142]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/15142 ## Group badges diff --git a/doc/api/issues.md b/doc/api/issues.md index a991baef230..e323ebce7ca 100644 --- a/doc/api/issues.md +++ b/doc/api/issues.md @@ -1564,7 +1564,7 @@ Example response: } ``` -[ce-13004]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13004 -[ce-14016]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14016 -[ce-17042]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17042 -[ce-18935]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18935 +[ce-13004]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/13004 +[ce-14016]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/14016 +[ce-17042]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17042 +[ce-18935]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18935 diff --git a/doc/api/jobs.md b/doc/api/jobs.md index 2a1c1b5f6f3..8ee4facc018 100644 --- a/doc/api/jobs.md +++ b/doc/api/jobs.md @@ -399,7 +399,7 @@ Possible response status codes: | 200 | Serves the artifacts file. | | 404 | Build not found or no artifacts.| -[ce-2893]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2893 +[ce-2893]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/2893 ## Download the artifacts archive @@ -466,7 +466,7 @@ Possible response status codes: | 200 | Serves the artifacts file. | | 404 | Build not found or no artifacts.| -[ce-5347]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5347 +[ce-5347]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5347 ## Download a single artifact file by job ID @@ -504,7 +504,7 @@ Possible response status codes: ## Download a single artifact file from specific tag or branch -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23538) in GitLab 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/23538) in GitLab 11.5. Download a single artifact file for a specific job of the latest successful pipeline for the given reference name from within the job's artifacts archive. @@ -769,7 +769,7 @@ Example response: ## Delete artifacts -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25522) in GitLab 11.9. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/25522) in GitLab 11.9. Delete artifacts of a job. @@ -843,5 +843,5 @@ Example of response ``` [ee]: https://about.gitlab.com/pricing/ -[ee-2346]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2346 +[ee-2346]: https://gitlab.com/gitlab-org/gitlab/merge_requests/2346 [triggers]: ../ci/triggers/README.md#when-a-pipeline-depends-on-the-artifacts-of-another-pipeline-premium diff --git a/doc/api/labels.md b/doc/api/labels.md index 9692cc8b710..93833fd81cb 100644 --- a/doc/api/labels.md +++ b/doc/api/labels.md @@ -11,7 +11,7 @@ GET /projects/:id/labels | Attribute | Type | Required | Description | | --------- | ------- | -------- | --------------------- | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user | -| `with_counts` | boolean | no | Whether or not to include issue and merge request counts. Defaults to `false`. _([Introduced in GitLab 12.2](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/31543))_ | +| `with_counts` | boolean | no | Whether or not to include issue and merge request counts. Defaults to `false`. _([Introduced in GitLab 12.2](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/31543))_ | ```bash curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/1/labels?with_counts=true @@ -188,7 +188,7 @@ Example response: ## Promote a project label to a group label -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25218) in GitLab 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/25218) in GitLab 12.3. Promotes a project label to a group label. diff --git a/doc/api/lint.md b/doc/api/lint.md index dacd3f4c493..80750992c51 100644 --- a/doc/api/lint.md +++ b/doc/api/lint.md @@ -48,4 +48,4 @@ Example responses: } ``` -[ce-5953]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5953 +[ce-5953]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5953 diff --git a/doc/api/markdown.md b/doc/api/markdown.md index f406838e887..f5aee725c6a 100644 --- a/doc/api/markdown.md +++ b/doc/api/markdown.md @@ -26,4 +26,4 @@ Response example: { "html": "<p dir=\"auto\">Hello world! <gl-emoji title=\"party popper\" data-name=\"tada\" data-unicode-version=\"6.0\">🎉</gl-emoji></p>" } ``` -[ce-18926]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18926 +[ce-18926]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18926 diff --git a/doc/api/members.md b/doc/api/members.md index 8784d577f99..da62dc53659 100644 --- a/doc/api/members.md +++ b/doc/api/members.md @@ -64,7 +64,7 @@ Example response: Gets a list of group or project members viewable by the authenticated user, including inherited members through ancestor groups. When a user is a member of the project/group and of one or more ancestor groups the user is returned only once with the project access_level (if exists) or the access_level for the user in the first group which he belongs to in the project groups ancestors chain. -**Note:** We plan to [change](https://gitlab.com/gitlab-org/gitlab-ce/issues/62284) this behavior to return highest access_level instead. +**Note:** We plan to [change](https://gitlab.com/gitlab-org/gitlab-foss/issues/62284) this behavior to return highest access_level instead. ``` GET /groups/:id/members/all diff --git a/doc/api/merge_request_approvals.md b/doc/api/merge_request_approvals.md index d19f11ba1d4..264e198c596 100644 --- a/doc/api/merge_request_approvals.md +++ b/doc/api/merge_request_approvals.md @@ -527,7 +527,7 @@ PUT /projects/:id/merge_requests/:merge_request_iid/approvers ### Get the approval state of merge requests -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/13712) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/13712) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.3. You can request information about a merge request's approval state by using the following endpoint: diff --git a/doc/api/merge_requests.md b/doc/api/merge_requests.md index c7637ad23de..21e24dc7934 100644 --- a/doc/api/merge_requests.md +++ b/doc/api/merge_requests.md @@ -823,7 +823,7 @@ Parameters: ## Create MR Pipeline -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/31722) in Gitlab 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/31722) in Gitlab 12.3. Create a new [pipeline for a merge request](../ci/merge_request_pipelines/index.md). A pipeline created via this endpoint will not run a regular branch/tag pipeline, it requires `.gitlab-ci.yml` to be configured with `only: [merge_requests]` to create jobs. @@ -2318,10 +2318,10 @@ Example response: } ``` -[ce-13060]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13060 -[ce-14016]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14016 -[ce-15454]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15454 -[ce-18935]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18935 +[ce-13060]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/13060 +[ce-14016]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/14016 +[ce-15454]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/15454 +[ce-18935]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18935 ## Approvals **(STARTER)** diff --git a/doc/api/milestones.md b/doc/api/milestones.md index a6ded7d3bd2..44844470430 100644 --- a/doc/api/milestones.md +++ b/doc/api/milestones.md @@ -135,7 +135,7 @@ Parameters: ## Promote project milestone to a group milestone -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/53861) in GitLab 11.9 +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/53861) in GitLab 11.9 Only for users with developer access to the group. @@ -150,7 +150,7 @@ Parameters: ## Get all burndown chart events for a single milestone **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4737) in GitLab 12.1 +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/4737) in GitLab 12.1 Gets all burndown chart events for a single milestone. diff --git a/doc/api/notification_settings.md b/doc/api/notification_settings.md index c6667784617..1bd9ea7bcfd 100644 --- a/doc/api/notification_settings.md +++ b/doc/api/notification_settings.md @@ -1,6 +1,6 @@ # Notification settings API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5632) in GitLab 8.12. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5632) in GitLab 8.12. ## Valid notification levels @@ -84,7 +84,7 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab. | `merge_merge_request` | boolean | no | Enable/disable this notification | | `failed_pipeline` | boolean | no | Enable/disable this notification | | `success_pipeline` | boolean | no | Enable/disable this notification | -| `new_epic` | boolean | no | Enable/disable this notification ([Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6626) in 11.3) **(ULTIMATE)** | +| `new_epic` | boolean | no | Enable/disable this notification ([Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/6626) in 11.3) **(ULTIMATE)** | Example response: @@ -153,7 +153,7 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab. | `merge_merge_request` | boolean | no | Enable/disable this notification | | `failed_pipeline` | boolean | no | Enable/disable this notification | | `success_pipeline` | boolean | no | Enable/disable this notification | -| `new_epic` | boolean | no | Enable/disable this notification ([Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6626) in 11.3) **(ULTIMATE)** | +| `new_epic` | boolean | no | Enable/disable this notification ([Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/6626) in 11.3) **(ULTIMATE)** | Example responses: diff --git a/doc/api/packages.md b/doc/api/packages.md index c852be0ad7b..13d773e4f99 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -4,7 +4,7 @@ This is the API docs of [GitLab Packages](../administration/packages/index.md). ## List project packages -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9259) in GitLab 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/9259) in GitLab 11.8. Get a list of project packages. Both Maven and NPM packages are included in results. When accessed without authentication, only packages of public projects are returned. @@ -44,7 +44,7 @@ By default, the `GET` request will return 20 results, since the API is [paginate ## Get a project package -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9667) in GitLab 11.9. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/9667) in GitLab 11.9. Get a single project package. @@ -74,7 +74,7 @@ Example response: ## List package files -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9305) in GitLab 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/9305) in GitLab 11.8. Get a list of package files of a single package. @@ -129,7 +129,7 @@ By default, the `GET` request will return 20 results, since the API is [paginate ## Delete a project package -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9623) in GitLab 11.9. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/9623) in GitLab 11.9. Deletes a project package. diff --git a/doc/api/pipeline_schedules.md b/doc/api/pipeline_schedules.md index acf1ac90315..59e89c3d256 100644 --- a/doc/api/pipeline_schedules.md +++ b/doc/api/pipeline_schedules.md @@ -281,7 +281,7 @@ curl --request DELETE --header "PRIVATE-TOKEN: k5ESFgWY2Qf5xEvDcFxZ" "https://gi ## Pipeline schedule variables -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/34518) in GitLab 10.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/34518) in GitLab 10.0. ## Create a new pipeline schedule variable diff --git a/doc/api/pipelines.md b/doc/api/pipelines.md index e36f74e7c77..c012c947c3a 100644 --- a/doc/api/pipelines.md +++ b/doc/api/pipelines.md @@ -268,7 +268,7 @@ Response: ## Delete a pipeline -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22988) in GitLab 11.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22988) in GitLab 11.6. ``` DELETE /projects/:id/pipelines/:pipeline_id @@ -283,5 +283,5 @@ DELETE /projects/:id/pipelines/:pipeline_id curl --header "PRIVATE-TOKEN: <your_access_token>" --request "DELETE" "https://gitlab.example.com/api/v4/projects/1/pipelines/46" ``` -[ce-5837]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5837 -[ce-7209]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7209 +[ce-5837]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5837 +[ce-7209]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/7209 diff --git a/doc/api/project_aliases.md b/doc/api/project_aliases.md index 271632b61c3..9d59ca1e3b5 100644 --- a/doc/api/project_aliases.md +++ b/doc/api/project_aliases.md @@ -1,6 +1,6 @@ # Project Aliases API **(PREMIUM ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/3264) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/3264) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.1. All methods require administrator authorization. diff --git a/doc/api/project_badges.md b/doc/api/project_badges.md index 1c382232837..527db478a50 100644 --- a/doc/api/project_badges.md +++ b/doc/api/project_badges.md @@ -1,6 +1,6 @@ # Project badges API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17082) +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17082) in GitLab 10.6. ## Placeholder tokens @@ -96,7 +96,7 @@ POST /projects/:id/badges | `image_url` | string | yes | URL of the badge image | ```bash -curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "link_url=https://gitlab.com/gitlab-org/gitlab-ce/commits/master&image_url=https://shields.io/my/badge1&position=0" https://gitlab.example.com/api/v4/projects/:id/badges +curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "link_url=https://gitlab.com/gitlab-org/gitlab-foss/commits/master&image_url=https://shields.io/my/badge1&position=0" https://gitlab.example.com/api/v4/projects/:id/badges ``` Example response: @@ -104,9 +104,9 @@ Example response: ```json { "id": 1, - "link_url": "https://gitlab.com/gitlab-org/gitlab-ce/commits/master", + "link_url": "https://gitlab.com/gitlab-org/gitlab-foss/commits/master", "image_url": "https://shields.io/my/badge1", - "rendered_link_url": "https://gitlab.com/gitlab-org/gitlab-ce/commits/master", + "rendered_link_url": "https://gitlab.com/gitlab-org/gitlab-foss/commits/master", "rendered_image_url": "https://shields.io/my/badge1", "kind": "project" } @@ -136,9 +136,9 @@ Example response: ```json { "id": 1, - "link_url": "https://gitlab.com/gitlab-org/gitlab-ce/commits/master", + "link_url": "https://gitlab.com/gitlab-org/gitlab-foss/commits/master", "image_url": "https://shields.io/my/badge", - "rendered_link_url": "https://gitlab.com/gitlab-org/gitlab-ce/commits/master", + "rendered_link_url": "https://gitlab.com/gitlab-org/gitlab-foss/commits/master", "rendered_image_url": "https://shields.io/my/badge", "kind": "project" } diff --git a/doc/api/project_clusters.md b/doc/api/project_clusters.md index 762a4ad95ab..633ef20deb4 100644 --- a/doc/api/project_clusters.md +++ b/doc/api/project_clusters.md @@ -1,6 +1,6 @@ # Project clusters API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23922) +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/23922) in GitLab 11.7. NOTE: **Note:** diff --git a/doc/api/project_import_export.md b/doc/api/project_import_export.md index 5155e996158..e285c721d11 100644 --- a/doc/api/project_import_export.md +++ b/doc/api/project_import_export.md @@ -196,4 +196,4 @@ If the status is `failed`, it will include the import error message under `impor } ``` -[ce-41899]: https://gitlab.com/gitlab-org/gitlab-ce/issues/41899 +[ce-41899]: https://gitlab.com/gitlab-org/gitlab-foss/issues/41899 diff --git a/doc/api/project_snippets.md b/doc/api/project_snippets.md index 58d9d1cd4d8..c2a39fd2178 100644 --- a/doc/api/project_snippets.md +++ b/doc/api/project_snippets.md @@ -17,7 +17,7 @@ NOTE: **Note:** From July 2019, the `Internal` visibility setting is disabled for new projects, groups, and snippets on GitLab.com. Existing projects, groups, and snippets using the `Internal` visibility setting keep this setting. You can read more about the change in the -[relevant issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/12388). +[relevant issue](https://gitlab.com/gitlab-org/gitlab/issues/12388). ## List snippets @@ -212,4 +212,4 @@ Example response: } ``` -[ce-29508]: https://gitlab.com/gitlab-org/gitlab-ce/issues/29508 +[ce-29508]: https://gitlab.com/gitlab-org/gitlab-foss/issues/29508 diff --git a/doc/api/project_templates.md b/doc/api/project_templates.md index cc932e3ef58..d6ad77de429 100644 --- a/doc/api/project_templates.md +++ b/doc/api/project_templates.md @@ -16,7 +16,7 @@ Support will be added for [Issue and Merge Request templates](../user/project/de in a future release. Support for [Group-level file templates](../user/group/index.md#group-file-templates-premium) -**(PREMIUM)** was [added](https://gitlab.com/gitlab-org/gitlab-ee/issues/5987) +**(PREMIUM)** was [added](https://gitlab.com/gitlab-org/gitlab/issues/5987) in GitLab 11.5 ## Get all templates of a particular type diff --git a/doc/api/projects.md b/doc/api/projects.md index 7617620e52d..af0c8ed7c5b 100644 --- a/doc/api/projects.md +++ b/doc/api/projects.md @@ -55,8 +55,8 @@ GET /projects | `with_issues_enabled` | boolean | no | Limit by enabled issues feature | | `with_merge_requests_enabled` | boolean | no | Limit by enabled merge requests feature | | `with_programming_language` | string | no | Limit by projects which use the given programming language | -| `wiki_checksum_failed` | boolean | no | **(PREMIUM)** Limit projects where the wiki checksum calculation has failed ([Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6137) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2) | -| `repository_checksum_failed` | boolean | no | **(PREMIUM)** Limit projects where the repository checksum calculation has failed ([Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6137) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2) | +| `wiki_checksum_failed` | boolean | no | **(PREMIUM)** Limit projects where the wiki checksum calculation has failed ([Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/6137) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2) | +| `repository_checksum_failed` | boolean | no | **(PREMIUM)** Limit projects where the repository checksum calculation has failed ([Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/6137) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2) | | `min_access_level` | integer | no | Limit by current user minimal [access level](members.md) | When `simple=true` or the user is unauthenticated this returns something like: @@ -815,10 +815,10 @@ If the project is a fork, and you provide a valid token to authenticate, the "default_branch":"master", "tag_list":[], "ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-ce.git", - "http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-ce.git", - "web_url":"https://gitlab.com/gitlab-org/gitlab-ce", + "http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-foss.git", + "web_url":"https://gitlab.com/gitlab-org/gitlab-foss", "avatar_url":"https://assets.gitlab-static.net/uploads/-/system/project/avatar/13083/logo-extra-whitespace.png", - "license_url": "https://gitlab.com/gitlab-org/gitlab-ce/blob/master/LICENSE", + "license_url": "https://gitlab.com/gitlab-org/gitlab-foss/blob/master/LICENSE", "license": { "key": "mit", "name": "MIT License", @@ -2062,4 +2062,4 @@ GET /projects/:id/snapshot | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `wiki` | boolean | no | Whether to download the wiki, rather than project, repository | -[ce-27427]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27427 +[ce-27427]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/27427 diff --git a/doc/api/protected_branches.md b/doc/api/protected_branches.md index ffb4a70168b..a14c9046ca7 100644 --- a/doc/api/protected_branches.md +++ b/doc/api/protected_branches.md @@ -234,7 +234,7 @@ Example response: ### Example with user / group level access **(STARTER)** Elements in the `allowed_to_push` / `allowed_to_merge` / `allowed_to_unprotect` array should take the -form `{user_id: integer}`, `{group_id: integer}` or `{access_level: integer}`. Each user must have access to the project and each group must [have this project shared](../user/project/members/share_project_with_groups.md). These access levels allow [more granular control over protected branch access](../user/project/protected_branches.md#restricting-push-and-merge-access-to-certain-users-starter) and were [added to the API in](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3516) in GitLab 10.3 EE. +form `{user_id: integer}`, `{group_id: integer}` or `{access_level: integer}`. Each user must have access to the project and each group must [have this project shared](../user/project/members/share_project_with_groups.md). These access levels allow [more granular control over protected branch access](../user/project/protected_branches.md#restricting-push-and-merge-access-to-certain-users-starter) and were [added to the API in](https://gitlab.com/gitlab-org/gitlab/merge_requests/3516) in GitLab 10.3 EE. ```bash curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" 'https://gitlab.example.com/api/v4/projects/5/protected_branches?name=*-stable&allowed_to_push%5B%5D%5Buser_id%5D=1' diff --git a/doc/api/releases/index.md b/doc/api/releases/index.md index 4279821d8ed..c856a06b57d 100644 --- a/doc/api/releases/index.md +++ b/doc/api/releases/index.md @@ -1,6 +1,6 @@ # Releases API -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/41766) in GitLab 11.7. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/41766) in GitLab 11.7. > - Using this API you can manipulate GitLab's [Release](../../user/project/releases/index.md) entries. > - For manipulating links as a release asset, see [Release Links API](links.md). @@ -592,7 +592,7 @@ Example response: ## Upcoming Releases -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/38105) in GitLab 12.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/38105) in GitLab 12.1. A release with a `released_at` attribute set to a future date will be labeled an **Upcoming Release** in the UI: diff --git a/doc/api/releases/links.md b/doc/api/releases/links.md index b1b75abe32f..3392cf765c1 100644 --- a/doc/api/releases/links.md +++ b/doc/api/releases/links.md @@ -1,6 +1,6 @@ # Release links API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/41766) in GitLab 11.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/41766) in GitLab 11.7. Using this API you can manipulate GitLab's [Release](../../user/project/releases/index.md) links. For manipulating other Release assets, see [Release API](index.md). GitLab supports links links to `http`, `https`, and `ftp` assets. diff --git a/doc/api/repository_files.md b/doc/api/repository_files.md index 513dc996c91..d2ad4558641 100644 --- a/doc/api/repository_files.md +++ b/doc/api/repository_files.md @@ -12,7 +12,7 @@ in the following table. | `read_repository` | Allows read-access to the repository files. | | `api` | Allows read-write access to the repository files. | -> `read_repository` scope was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23534) in GitLab 11.6. +> `read_repository` scope was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/23534) in GitLab 11.6. ## Get file from repository diff --git a/doc/api/repository_submodules.md b/doc/api/repository_submodules.md index 5a722a75cb9..556a351ac1d 100644 --- a/doc/api/repository_submodules.md +++ b/doc/api/repository_submodules.md @@ -1,6 +1,6 @@ # Repository submodules API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/41213) in GitLab 11.5 +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/41213) in GitLab 11.5 ## Update existing submodule reference in repository diff --git a/doc/api/runners.md b/doc/api/runners.md index e6962d17a98..51a546e91dc 100644 --- a/doc/api/runners.md +++ b/doc/api/runners.md @@ -2,7 +2,7 @@ > [Introduced][ce-2640] in GitLab 8.5 -[ce-2640]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2640 +[ce-2640]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/2640 ## Registration and authentication tokens @@ -279,7 +279,7 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://git ## List runner's jobs -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15432) in GitLab 10.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/15432) in GitLab 10.3. List jobs that are being processed or were processed by specified Runner. diff --git a/doc/api/scim.md b/doc/api/scim.md index ece7f56e394..bc4f2bf9040 100644 --- a/doc/api/scim.md +++ b/doc/api/scim.md @@ -1,6 +1,6 @@ # SCIM API **(SILVER ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9388) in [GitLab Silver](https://about.gitlab.com/pricing/) 11.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/9388) in [GitLab Silver](https://about.gitlab.com/pricing/) 11.10. The SCIM API implements the [the RFC7644 protocol](https://tools.ietf.org/html/rfc7644). diff --git a/doc/api/search.md b/doc/api/search.md index 60acf600ac7..ca08f5ca0d7 100644 --- a/doc/api/search.md +++ b/doc/api/search.md @@ -1081,4 +1081,4 @@ Example response: ] ``` -[ce-41763]: https://gitlab.com/gitlab-org/gitlab-ce/issues/41763 +[ce-41763]: https://gitlab.com/gitlab-org/gitlab-foss/issues/41763 diff --git a/doc/api/services.md b/doc/api/services.md index 8c6c5738bb8..ff181f2ba61 100644 --- a/doc/api/services.md +++ b/doc/api/services.md @@ -418,7 +418,7 @@ GET /projects/:id/services/flowdock Google GSuite team collaboration tool. ->**Note:** This service was [introduced in v11.2](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/20290) +>**Note:** This service was [introduced in v11.2](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/20290) ### Create/Edit Hangouts Chat service @@ -746,8 +746,8 @@ Parameters: | `recipients` | string | yes | Comma-separated list of recipient email addresses | | `add_pusher` | boolean | no | Add pusher to recipients list | | `notify_only_broken_pipelines` | boolean | no | Notify only broken pipelines | -| `notify_only_default_branch` | boolean | no | DEPRECATED: This parameter has been replaced with `branches_to_be_notified` ([introduced in GitLab 12.0](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/28271)) | | `branches_to_be_notified` | string | all | Branches to send notifications for. Valid options are "all", "default", "protected", and "default_and_protected" | +| `notify_only_default_branch` | boolean | no | Send notifications only for the default branch ([introduced in GitLab 12.0](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/28271)) | | `pipeline_events` | boolean | false | Enable notifications for pipeline events | ### Delete Pipeline-Emails service @@ -1189,7 +1189,7 @@ GET /projects/:id/services/jenkins-deprecated ``` [jira-doc]: ../user/project/integrations/jira.md -[old-jira-api]: https://gitlab.com/gitlab-org/gitlab-ce/blob/8-13-stable/doc/api/services.md#jira +[old-jira-api]: https://gitlab.com/gitlab-org/gitlab-foss/blob/8-13-stable/doc/api/services.md#jira ## MockCI @@ -1227,7 +1227,7 @@ Get MockCI service settings for a project. GET /projects/:id/services/mock-ci ``` -[11435]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11435 +[11435]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/11435 ## YouTrack diff --git a/doc/api/snippets.md b/doc/api/snippets.md index f90447e124e..b953c3c094a 100644 --- a/doc/api/snippets.md +++ b/doc/api/snippets.md @@ -1,6 +1,6 @@ # Snippets API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6373) in GitLab 8.15. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/6373) in GitLab 8.15. Snippets API operates on [snippets](../user/snippets.md). @@ -351,7 +351,7 @@ Example response: ## Get user agent details -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12655) in GitLab 9.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12655) in GitLab 9.4. NOTE: **Note:** Available only for administrators. diff --git a/doc/api/tags.md b/doc/api/tags.md index 88f63d6b34b..3807688ffe3 100644 --- a/doc/api/tags.md +++ b/doc/api/tags.md @@ -19,7 +19,7 @@ Parameters: | `sort` | string | no | Return tags sorted in `asc` or `desc` order. Default is `desc` | | `search` | string | no | Return list of tags matching the search criteria | -> Support for `search` was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/54401) in GitLab 11.8. +> Support for `search` was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/54401) in GitLab 11.8. ```json [ diff --git a/doc/api/todos.md b/doc/api/todos.md index c54c90d9f06..bc2eeccacbe 100644 --- a/doc/api/todos.md +++ b/doc/api/todos.md @@ -98,7 +98,7 @@ Example Response: "subscribed": true, "user_notes_count": 7 }, - "target_url": "https://gitlab.example.com/gitlab-org/gitlab-ce/merge_requests/7", + "target_url": "https://gitlab.example.com/gitlab-org/gitlab-foss/merge_requests/7", "body": "Dolores in voluptatem tenetur praesentium omnis repellendus voluptatem quaerat.", "state": "pending", "created_at": "2016-06-17T07:52:35.225Z" @@ -171,7 +171,7 @@ Example Response: "subscribed": true, "user_notes_count": 7 }, - "target_url": "https://gitlab.example.com/gitlab-org/gitlab-ce/merge_requests/7", + "target_url": "https://gitlab.example.com/gitlab-org/gitlab-foss/merge_requests/7", "body": "Dolores in voluptatem tenetur praesentium omnis repellendus voluptatem quaerat.", "state": "pending", "created_at": "2016-06-17T07:49:24.624Z" @@ -269,7 +269,7 @@ Example Response: "subscribed": true, "user_notes_count": 7 }, - "target_url": "https://gitlab.example.com/gitlab-org/gitlab-ce/merge_requests/7", + "target_url": "https://gitlab.example.com/gitlab-org/gitlab-foss/merge_requests/7", "body": "Dolores in voluptatem tenetur praesentium omnis repellendus voluptatem quaerat.", "state": "done", "created_at": "2016-06-17T07:52:35.225Z" @@ -288,4 +288,4 @@ POST /todos/mark_as_done curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/todos/mark_as_done ``` -[ce-3188]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3188 +[ce-3188]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/3188 diff --git a/doc/api/users.md b/doc/api/users.md index b41fd106fc5..380396c7377 100644 --- a/doc/api/users.md +++ b/doc/api/users.md @@ -350,7 +350,7 @@ over `password`. In addition, `reset_password` and `force_random_password` can be used together. NOTE: **Note:** -From [GitLab 12.1](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29888/), `private_profile` will default to `false`. +From [GitLab 12.1](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/29888/), `private_profile` will default to `false`. ``` POST /users @@ -1320,7 +1320,7 @@ The activities that update the timestamp are: - Git HTTP/SSH activities (such as clone, push) - User logging in into GitLab -- User visiting pages related to Dashboards, Projects, Issues and Merge Requests ([introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/54947) in GitLab 11.8) +- User visiting pages related to Dashboards, Projects, Issues and Merge Requests ([introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/54947) in GitLab 11.8) By default, it shows the activity for all users in the last 6 months, but this can be amended by using the `from` parameter. diff --git a/doc/api/v3_to_v4.md b/doc/api/v3_to_v4.md index b6059c71b27..969841b3677 100644 --- a/doc/api/v3_to_v4.md +++ b/doc/api/v3_to_v4.md @@ -3,26 +3,26 @@ Since GitLab 9.0, API V4 is the preferred version to be used. API V3 was unsupported from GitLab 9.5, released on August -22, 2017. API v3 was removed in [GitLab 11.0](https://gitlab.com/gitlab-org/gitlab-ce/issues/36819). +22, 2017. API v3 was removed in [GitLab 11.0](https://gitlab.com/gitlab-org/gitlab-foss/issues/36819). The V3 API documentation is still -[available](https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/README.md). +[available](https://gitlab.com/gitlab-org/gitlab-foss/blob/8-16-stable/doc/api/README.md). Below are the changes made between V3 and V4. ## 8.17 -- Removed `GET /projects/:search` (use: `GET /projects?search=x`) [!8877](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8877) -- `iid` filter has been removed from `GET /projects/:id/issues` [!8967](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8967) -- `GET /projects/:id/merge_requests?iid[]=x&iid[]=y` array filter has been renamed to `iids` [!8793](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8793) -- Endpoints under `GET /projects/merge_request/:id` have been removed (use: `GET /projects/merge_requests/:id`) [!8793](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8793) -- Project snippets do not return deprecated field `expires_at` [!8723](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8723) -- Endpoints under `GET /projects/:id/keys` have been removed (use `GET /projects/:id/deploy_keys`) [!8716](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8716) +- Removed `GET /projects/:search` (use: `GET /projects?search=x`) [!8877](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8877) +- `iid` filter has been removed from `GET /projects/:id/issues` [!8967](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8967) +- `GET /projects/:id/merge_requests?iid[]=x&iid[]=y` array filter has been renamed to `iids` [!8793](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8793) +- Endpoints under `GET /projects/merge_request/:id` have been removed (use: `GET /projects/merge_requests/:id`) [!8793](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8793) +- Project snippets do not return deprecated field `expires_at` [!8723](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8723) +- Endpoints under `GET /projects/:id/keys` have been removed (use `GET /projects/:id/deploy_keys`) [!8716](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8716) ## 9.0 -- Status 409 returned for `POST /projects/:id/members` when a member already exists [!9093](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9093) -- Moved `DELETE /projects/:id/star` to `POST /projects/:id/unstar` [!9328](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9328) -- Removed the following deprecated Templates endpoints (these are still accessible with `/templates` prefix) [!8853](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8853) +- Status 409 returned for `POST /projects/:id/members` when a member already exists [!9093](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9093) +- Moved `DELETE /projects/:id/star` to `POST /projects/:id/unstar` [!9328](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9328) +- Removed the following deprecated Templates endpoints (these are still accessible with `/templates` prefix) [!8853](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8853) - `/licenses` - `/licenses/:key` - `/gitignores` @@ -31,54 +31,54 @@ Below are the changes made between V3 and V4. - `/gitignores/:key` - `/gitlab_ci_ymls/:key` - `/dockerfiles/:key` -- Moved `POST /projects/fork/:id` to `POST /projects/:id/fork` [!8940](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8940) -- Moved `DELETE /todos` to `POST /todos/mark_as_done` and `DELETE /todos/:todo_id` to `POST /todos/:todo_id/mark_as_done` [!9410](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9410) -- Project filters are no longer available as `GET /projects/foo`, but as `GET /projects?foo=true` instead [!8962](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8962) +- Moved `POST /projects/fork/:id` to `POST /projects/:id/fork` [!8940](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8940) +- Moved `DELETE /todos` to `POST /todos/mark_as_done` and `DELETE /todos/:todo_id` to `POST /todos/:todo_id/mark_as_done` [!9410](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9410) +- Project filters are no longer available as `GET /projects/foo`, but as `GET /projects?foo=true` instead [!8962](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8962) - `GET /projects/visible` & `GET /projects/all` are consolidated into `GET /projects` and can be used with or without authorization - `GET /projects/owned` moved to `GET /projects?owned=true` - `GET /projects/starred` moved to `GET /projects?starred=true` -- `GET /projects` returns all projects visible to current user, even if the user is not a member [!9674](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9674) +- `GET /projects` returns all projects visible to current user, even if the user is not a member [!9674](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9674) - To get projects the user is a member of, use `GET /projects?membership=true` -- Return pagination headers for all endpoints that return an array [!8606](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8606) -- Added `POST /environments/:environment_id/stop` to stop an environment [!8808](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8808) -- Removed `DELETE /projects/:id/deploy_keys/:key_id/disable`. Use `DELETE /projects/:id/deploy_keys/:key_id` instead [!9366](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9366) -- Moved `PUT /users/:id/(block|unblock)` to `POST /users/:id/(block|unblock)` [!9371](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9371) -- Make subscription API more RESTful. Use `POST /projects/:id/:subscribable_type/:subscribable_id/subscribe` to subscribe and `POST /projects/:id/:subscribable_type/:subscribable_id/unsubscribe` to unsubscribe from a resource. [!9325](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9325) -- Labels filter on `GET /projects/:id/issues` and `GET /issues` now matches only issues containing all labels (i.e.: Logical AND, not OR) [!8849](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8849) -- Renamed param `branch_name` to `branch` on the following endpoints [!8936](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8936) +- Return pagination headers for all endpoints that return an array [!8606](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8606) +- Added `POST /environments/:environment_id/stop` to stop an environment [!8808](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8808) +- Removed `DELETE /projects/:id/deploy_keys/:key_id/disable`. Use `DELETE /projects/:id/deploy_keys/:key_id` instead [!9366](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9366) +- Moved `PUT /users/:id/(block|unblock)` to `POST /users/:id/(block|unblock)` [!9371](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9371) +- Make subscription API more RESTful. Use `POST /projects/:id/:subscribable_type/:subscribable_id/subscribe` to subscribe and `POST /projects/:id/:subscribable_type/:subscribable_id/unsubscribe` to unsubscribe from a resource. [!9325](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9325) +- Labels filter on `GET /projects/:id/issues` and `GET /issues` now matches only issues containing all labels (i.e.: Logical AND, not OR) [!8849](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8849) +- Renamed param `branch_name` to `branch` on the following endpoints [!8936](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8936) - `POST /projects/:id/repository/branches` - `POST /projects/:id/repository/commits` - `POST/PUT/DELETE :id/repository/files` -- Renamed the `merge_when_build_succeeds` parameter to `merge_when_pipeline_succeeds` on the following endpoints: [!9335](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/) +- Renamed the `merge_when_build_succeeds` parameter to `merge_when_pipeline_succeeds` on the following endpoints: [!9335](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/) - `PUT /projects/:id/merge_requests/:merge_request_id/merge` - `POST /projects/:id/merge_requests/:merge_request_id/cancel_merge_when_pipeline_succeeds` - `POST /projects` - `POST /projects/user/:user_id` - `PUT /projects/:id` -- Renamed `branch_name` to `branch` on `DELETE /projects/:id/repository/branches/:branch` response [!8936](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8936) -- Remove `public` param from create and edit actions of projects [!8736](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8736) +- Renamed `branch_name` to `branch` on `DELETE /projects/:id/repository/branches/:branch` response [!8936](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8936) +- Remove `public` param from create and edit actions of projects [!8736](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8736) - Remove `subscribed` field from responses returning list of issues or merge requests. Fetch individual issues or merge requests to obtain the value of `subscribed` - [!9661](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9661) -- Use `visibility` as string parameter everywhere [!9337](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9337) -- Notes do not return deprecated field `upvote` and `downvote` [!9384](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9384) -- Return HTTP status code `400` for all validation errors when creating or updating a member instead of sometimes `422` error. [!9523](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9523) -- Remove `GET /groups/owned`. Use `GET /groups?owned=true` instead [!9505](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9505) -- Return 202 with JSON body on async removals on V4 API (`DELETE /projects/:id/repository/merged_branches` and `DELETE /projects/:id`) [!9449](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9449) -- `GET /projects/:id/milestones?iid[]=x&iid[]=y` array filter has been renamed to `iids` [!9096](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9096) -- Return basic info about pipeline in `GET /projects/:id/pipelines` [!8875](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8875) -- Renamed all `build` references to `job` [!9463](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9463) -- Drop `GET /projects/:id/repository/commits/:sha/jobs` [!9463](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9463) -- Rename Build Triggers to be Pipeline Triggers API [!9713](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9713) + [!9661](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9661) +- Use `visibility` as string parameter everywhere [!9337](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9337) +- Notes do not return deprecated field `upvote` and `downvote` [!9384](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9384) +- Return HTTP status code `400` for all validation errors when creating or updating a member instead of sometimes `422` error. [!9523](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9523) +- Remove `GET /groups/owned`. Use `GET /groups?owned=true` instead [!9505](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9505) +- Return 202 with JSON body on async removals on V4 API (`DELETE /projects/:id/repository/merged_branches` and `DELETE /projects/:id`) [!9449](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9449) +- `GET /projects/:id/milestones?iid[]=x&iid[]=y` array filter has been renamed to `iids` [!9096](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9096) +- Return basic info about pipeline in `GET /projects/:id/pipelines` [!8875](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8875) +- Renamed all `build` references to `job` [!9463](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9463) +- Drop `GET /projects/:id/repository/commits/:sha/jobs` [!9463](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9463) +- Rename Build Triggers to be Pipeline Triggers API [!9713](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9713) - `POST /projects/:id/trigger/builds` to `POST /projects/:id/trigger/pipeline` - Require description when creating a new trigger `POST /projects/:id/triggers` -- Simplify project payload exposed on Environment endpoints [!9675](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9675) -- API uses merge request `IID`s (internal ID, as in the web UI) rather than `ID`s. This affects the merge requests, award emoji, todos, and time tracking APIs. [!9530](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9530) -- API uses issue `IID`s (internal ID, as in the web UI) rather than `ID`s. This affects the issues, award emoji, todos, and time tracking APIs. [!9530](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9530) -- Change initial page from `0` to `1` on `GET /projects/:id/repository/commits` (like on the rest of the API) [!9679](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9679) -- Return correct `Link` header data for `GET /projects/:id/repository/commits` [!9679](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9679) -- Update endpoints for repository files [!9637](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9637) +- Simplify project payload exposed on Environment endpoints [!9675](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9675) +- API uses merge request `IID`s (internal ID, as in the web UI) rather than `ID`s. This affects the merge requests, award emoji, todos, and time tracking APIs. [!9530](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9530) +- API uses issue `IID`s (internal ID, as in the web UI) rather than `ID`s. This affects the issues, award emoji, todos, and time tracking APIs. [!9530](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9530) +- Change initial page from `0` to `1` on `GET /projects/:id/repository/commits` (like on the rest of the API) [!9679](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9679) +- Return correct `Link` header data for `GET /projects/:id/repository/commits` [!9679](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9679) +- Update endpoints for repository files [!9637](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9637) - Moved `GET /projects/:id/repository/files?file_path=:file_path` to `GET /projects/:id/repository/files/:file_path` (`:file_path` should be URL-encoded) - `GET /projects/:id/repository/blobs/:sha` now returns JSON attributes for the blob identified by `:sha`, instead of finding the commit identified by `:sha` and returning the raw content of the blob in that commit identified by the required `?filepath=:filepath` - Moved `GET /projects/:id/repository/commits/:sha/blob?file_path=:file_path` and `GET /projects/:id/repository/blobs/:sha?file_path=:file_path` to `GET /projects/:id/repository/files/:file_path/raw?ref=:sha` diff --git a/doc/api/wikis.md b/doc/api/wikis.md index 12f048ac09b..570fb2168b2 100644 --- a/doc/api/wikis.md +++ b/doc/api/wikis.md @@ -153,7 +153,7 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://git On success the HTTP status code is `204` and no JSON response is expected. -[ce-13372]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13372 +[ce-13372]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/13372 ## Upload an attachment to the wiki repository diff --git a/doc/articles/index.md b/doc/articles/index.md index 162db11d6ac..0cd9baba20e 100644 --- a/doc/articles/index.md +++ b/doc/articles/index.md @@ -8,7 +8,7 @@ Technical articles are topic-related documentation, written with a user-friendly approach and language, aiming to provide the community with guidance on specific processes to achieve certain objectives. -The list of technical articles was [deprecated](https://gitlab.com/gitlab-org/gitlab-ce/issues/41138) in favor of having them linked from their topic-related documentation: +The list of technical articles was [deprecated](https://gitlab.com/gitlab-org/gitlab-foss/issues/41138) in favor of having them linked from their topic-related documentation: - [Git](../topics/git/index.md) - [GitLab administrator](../administration/index.md) diff --git a/doc/ci/README.md b/doc/ci/README.md index 90d0e6a7dc6..cc1c85d1a53 100644 --- a/doc/ci/README.md +++ b/doc/ci/README.md @@ -57,7 +57,7 @@ If you're coming over from Jenkins, you can also check out our handy [reference] for converting your pipelines. You can also get started by using one of the -[`.gitlab-ci.yml` templates](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/lib/gitlab/ci/templates) +[`.gitlab-ci.yml` templates](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates) available through the UI. You can use them by creating a new file, choosing a template that suits your application, and adjusting it to your needs: diff --git a/doc/ci/caching/index.md b/doc/ci/caching/index.md index ab9fa517e23..558229187f1 100644 --- a/doc/ci/caching/index.md +++ b/doc/ci/caching/index.md @@ -43,7 +43,7 @@ needed to compile the project: directories relative to the build directory** and specifying paths which don't comply to this rule trigger an unintuitive and illogical error message (an enhancement is discussed at - [https://gitlab.com/gitlab-org/gitlab-ce/issues/15530](https://gitlab.com/gitlab-org/gitlab-ce/issues/15530) + [https://gitlab.com/gitlab-org/gitlab-foss/issues/15530](https://gitlab.com/gitlab-org/gitlab-foss/issues/15530) ). Artifacts need to be uploaded to the GitLab instance (not only the GitLab runner) before the next stage job(s) can start, so you need to evaluate carefully whether your bandwidth allows you to profit from parallelization @@ -207,7 +207,7 @@ so they don't have to be re-fetched from the public internet. NOTE: **Note:** For more examples, check out our [GitLab CI/CD -templates](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/lib/gitlab/ci/templates). +templates](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates). ### Caching Nodejs dependencies @@ -218,7 +218,7 @@ Nodejs modules are installed in `node_modules/` and are cached per-branch: ```yaml # -# https://gitlab.com/gitlab-org/gitlab-ce/tree/master/lib/gitlab/ci/templates/Nodejs.gitlab-ci.yml +# https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates/Nodejs.gitlab-ci.yml # image: node:latest @@ -245,7 +245,7 @@ are cached per-branch: ```yaml # -# https://gitlab.com/gitlab-org/gitlab-ce/tree/master/lib/gitlab/ci/templates/PHP.gitlab-ci.yml +# https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates/PHP.gitlab-ci.yml # image: php:7.2 @@ -274,7 +274,7 @@ pip's cache is defined under `.cache/pip/` and both are cached per-branch: ```yaml # -# https://gitlab.com/gitlab-org/gitlab-ce/tree/master/lib/gitlab/ci/templates/Python.gitlab-ci.yml +# https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates/Python.gitlab-ci.yml # image: python:latest @@ -314,7 +314,7 @@ jobs inherit it. Gems are installed in `vendor/ruby/` and are cached per-branch: ```yaml # -# https://gitlab.com/gitlab-org/gitlab-ce/tree/master/lib/gitlab/ci/templates/Ruby.gitlab-ci.yml +# https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates/Ruby.gitlab-ci.yml # image: ruby:2.6 @@ -535,7 +535,7 @@ next run of the pipeline, the cache will be stored in a different location. ### Clearing the cache manually -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/41249) in GitLab 10.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/41249) in GitLab 10.4. If you want to avoid editing `.gitlab-ci.yml`, you can easily clear the cache via GitLab's UI: diff --git a/doc/ci/chatops/README.md b/doc/ci/chatops/README.md index 29d4f93f02e..40357608da4 100644 --- a/doc/ci/chatops/README.md +++ b/doc/ci/chatops/README.md @@ -4,8 +4,8 @@ type: index, concepts, howto # GitLab ChatOps -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/4466) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.6. -> - [Moved](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24780) to [GitLab Core](https://about.gitlab.com/pricing/) in 11.9. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/4466) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.6. +> - [Moved](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/24780) to [GitLab Core](https://about.gitlab.com/pricing/) in 11.9. GitLab ChatOps provides a method to interact with CI/CD jobs through chat services like Slack. Many organizations' discussion, collaboration, and troubleshooting is taking place in chat services these days, and having a method to run CI/CD jobs with output posted back to the channel can significantly augment a team's workflow. diff --git a/doc/ci/ci_cd_for_external_repos/github_integration.md b/doc/ci/ci_cd_for_external_repos/github_integration.md index fa56503072d..08660b014b0 100644 --- a/doc/ci/ci_cd_for_external_repos/github_integration.md +++ b/doc/ci/ci_cd_for_external_repos/github_integration.md @@ -12,7 +12,7 @@ GitLab. Watch a video on [Using GitLab CI/CD pipelines with GitHub repositories](https://www.youtube.com/watch?v=qgl3F2j-1cI). NOTE: **Note:** -Because of [GitHub limitations](https://gitlab.com/gitlab-org/gitlab-ee/issues/9147), +Because of [GitHub limitations](https://gitlab.com/gitlab-org/gitlab/issues/9147), [GitHub OAuth](../../integration/github.html#enabling-github-oauth) cannot be used to authenticate with GitHub as an external CI/CD repository. diff --git a/doc/ci/ci_cd_for_external_repos/index.md b/doc/ci/ci_cd_for_external_repos/index.md index 890068afc91..db647530fcd 100644 --- a/doc/ci/ci_cd_for_external_repos/index.md +++ b/doc/ci/ci_cd_for_external_repos/index.md @@ -7,8 +7,8 @@ type: index, howto >[Introduced][ee-4642] in [GitLab Premium][eep] 10.6. NOTE: **Note:** -This feature [is available for free](https://about.gitlab.com/2019/03/21/six-more-months-ci-cd-github/) to -GitLab.com users until September 22nd, 2019. +This feature [is available for free](https://about.gitlab.com/2019/09/09/ci-cd-github-extended-again/) to +GitLab.com users until March 22nd, 2020. GitLab CI/CD can be used with: @@ -35,7 +35,7 @@ To connect to an external repository: ## Pipelines for external pull requests -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/65139) in GitLab Premium 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/65139) in GitLab Premium 12.3. When using GitLab CI/CD with an [external repository on GitHub](github_integration.md), it's possible to run a pipeline in the context of a Pull Request. @@ -91,15 +91,16 @@ The variable names are prefixed with `CI_EXTERNAL_PULL_REQUEST_`. ### Limitations -This feature currently does not support Pull Requests from fork repositories. Any Pull Requests from fork repositories will be ignored. [Read more](https://gitlab.com/gitlab-org/gitlab-ee/issues/5667). +This feature currently does not support Pull Requests from fork repositories. Any Pull Requests from fork repositories will be ignored. [Read more](https://gitlab.com/gitlab-org/gitlab/issues/5667). Given that GitLab will create 2 pipelines, if changes are pushed to a remote branch that references an open Pull Request, both will contribute to the status of the Pull Request via GitHub integration. If you want to exclusively run pipelines on external pull requests and not on branches you can add `except: [branches]` to the job specs. -[Read more](https://gitlab.com/gitlab-org/gitlab-ee/issues/24089#workaround). +[Read more](https://gitlab.com/gitlab-org/gitlab/issues/24089#workaround). -[ee-4642]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/4642 +[ee-4642]: https://gitlab.com/gitlab-org/gitlab/merge_requests/4642 +[ee-4642]: https://gitlab.com/gitlab-org/gitlab/merge_requests/4642 [eep]: https://about.gitlab.com/pricing/ [mirroring]: ../../workflow/repository_mirroring.md [settings]: ../../user/project/settings/index.md#sharing-and-permissions diff --git a/doc/ci/directed_acyclic_graph/index.md b/doc/ci/directed_acyclic_graph/index.md index 60e3120ba33..23604e8f898 100644 --- a/doc/ci/directed_acyclic_graph/index.md +++ b/doc/ci/directed_acyclic_graph/index.md @@ -4,7 +4,7 @@ type: reference # Directed Acyclic Graph -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/47063) in GitLab 12.2 (enabled by `ci_dag_support` feature flag). +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/47063) in GitLab 12.2 (enabled by `ci_dag_support` feature flag). A [directed acyclic graph](https://www.techopedia.com/definition/5739/directed-acyclic-graph-dag) can be used in the context of a CI/CD pipeline to build relationships between jobs such that diff --git a/doc/ci/docker/using_docker_build.md b/doc/ci/docker/using_docker_build.md index 93317d310db..a60ede2c8f8 100644 --- a/doc/ci/docker/using_docker_build.md +++ b/doc/ci/docker/using_docker_build.md @@ -125,7 +125,7 @@ not without its own challenges: child containers. For example, if you have files you want to share with a child container, you may create a subdirectory under `/builds/$CI_PROJECT_PATH` and use it as your mount point (for a more thorough explanation, check [issue - #41227](https://gitlab.com/gitlab-org/gitlab-ce/issues/41227)): + #41227](https://gitlab.com/gitlab-org/gitlab-foss/issues/41227)): ```yaml variables: diff --git a/doc/ci/docker/using_kaniko.md b/doc/ci/docker/using_kaniko.md index 0d78e1f6953..45afd9c6223 100644 --- a/doc/ci/docker/using_kaniko.md +++ b/doc/ci/docker/using_kaniko.md @@ -4,7 +4,7 @@ type: howto # Building images with kaniko and GitLab CI/CD -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/45512) in GitLab 11.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/45512) in GitLab 11.2. Requires GitLab Runner 11.2 and above. [kaniko](https://github.com/GoogleContainerTools/kaniko) is a tool to build diff --git a/doc/ci/environments.md b/doc/ci/environments.md index 32f9ab2205a..d3a8689551a 100644 --- a/doc/ci/environments.md +++ b/doc/ci/environments.md @@ -564,7 +564,7 @@ You can read more in the [`.gitlab-ci.yml` reference](yaml/README.md#environment ### Grouping similar environments -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7015) in GitLab 8.14. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/7015) in GitLab 8.14. As documented in [Configuring dynamic environments](#configuring-dynamic-environments), you can prepend environment name with a word, followed by a `/`, and finally the branch @@ -678,8 +678,8 @@ fetch = +refs/environments/*:refs/remotes/origin/environments/* ### Scoping environments with specs -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2112) in [GitLab Premium](https://about.gitlab.com/pricing/) 9.4. -> - [Scoping for environment variables was moved to Core](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/30779) in GitLab 12.2. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/2112) in [GitLab Premium](https://about.gitlab.com/pricing/) 9.4. +> - [Scoping for environment variables was moved to Core](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/30779) to Core in Gitlab 12.2. You can limit the environment scope of a variable by defining which environments it can be available for. diff --git a/doc/ci/environments/protected_environments.md b/doc/ci/environments/protected_environments.md index e5213881862..5d09b188277 100644 --- a/doc/ci/environments/protected_environments.md +++ b/doc/ci/environments/protected_environments.md @@ -4,7 +4,7 @@ type: concepts, howto # Protected Environments **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6303) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/6303) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.3. ## Overview diff --git a/doc/ci/examples/README.md b/doc/ci/examples/README.md index f9612d0c53d..73f7a555b9c 100644 --- a/doc/ci/examples/README.md +++ b/doc/ci/examples/README.md @@ -10,7 +10,7 @@ implement [GitLab CI/CD](../README.md) for your specific use case. Examples are available in several forms. As a collection of: -- `.gitlab-ci.yml` [template files](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/lib/gitlab/ci/templates) maintained in GitLab. When you create a new file via the UI, +- `.gitlab-ci.yml` [template files](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates) maintained in GitLab. When you create a new file via the UI, GitLab will give you the option to choose one of these templates. This will allow you to quickly bootstrap your project for CI/CD. If your favorite programming language or framework are missing, we would love your help by sending a merge request with a new `.gitlab-ci.yml` to this project. - Repositories with [example projects](https://gitlab.com/gitlab-examples) for various languages. You can fork and adjust them to your own needs. Projects include demonstrations of [multi-project pipelines](https://gitlab.com/gitlab-examples/multi-project-pipelines) and using [Review Apps with a static site served by nginx](https://gitlab.com/gitlab-examples/review-apps-nginx/). diff --git a/doc/ci/interactive_web_terminal/index.md b/doc/ci/interactive_web_terminal/index.md index 49a148cb57d..c1d4f784ddd 100644 --- a/doc/ci/interactive_web_terminal/index.md +++ b/doc/ci/interactive_web_terminal/index.md @@ -4,7 +4,7 @@ type: reference # Interactive Web Terminals -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/50144) in GitLab 11.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/50144) in GitLab 11.3. Interactive web terminals give the user access to a terminal in GitLab for running one-off commands for their CI pipeline. Since this is giving the user @@ -15,7 +15,7 @@ taken to protect the users. NOTE: **Note:** [Shared runners on GitLab.com](../quick_start/README.md#shared-runners) do not provide an interactive web terminal. Follow [this -issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/52611) for progress on +issue](https://gitlab.com/gitlab-org/gitlab-foss/issues/52611) for progress on adding support. For groups and projects hosted on GitLab.com, interactive web terminals are available when using your own group or project runner. diff --git a/doc/ci/introduction/index.md b/doc/ci/introduction/index.md index b15978a0aaa..4389b2ce015 100644 --- a/doc/ci/introduction/index.md +++ b/doc/ci/introduction/index.md @@ -43,7 +43,7 @@ it's built and tested automatically and continuously, ensuring the introduced changes pass all tests, guidelines, and code compliance standards you established for your app. -[GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce) is an +[GitLab itself](https://gitlab.com/gitlab-org/gitlab-foss) is an example of using Continuous Integration as a software development method. For every push to the project, there's a set of scripts the code is checked against. diff --git a/doc/ci/jenkins/index.md b/doc/ci/jenkins/index.md index 29eba5ea928..2c3bdcf30d6 100644 --- a/doc/ci/jenkins/index.md +++ b/doc/ci/jenkins/index.md @@ -22,7 +22,7 @@ There are some high level differences between the products worth mentioning: - With GitLab you don't need a root `pipeline` keyword to wrap everything. - All jobs within a single stage always run in parallel, and all stages run in sequence. We are planning - to allow certain jobs to break this sequencing as needed with our [directed acyclic graph](https://gitlab.com/gitlab-org/gitlab-ce/issues/47063) + to allow certain jobs to break this sequencing as needed with our [directed acyclic graph](https://gitlab.com/gitlab-org/gitlab-foss/issues/47063) feature. - The `.gitlab-ci.yml` file is checked in to the root of your repository, much like a Jenkinsfile, but is in the YAML format (see [complete reference](../yaml/README.md)) instead of a Groovy DSL. It's most diff --git a/doc/ci/junit_test_reports.md b/doc/ci/junit_test_reports.md index fa78f53f563..bc30e007393 100644 --- a/doc/ci/junit_test_reports.md +++ b/doc/ci/junit_test_reports.md @@ -4,7 +4,7 @@ type: reference # JUnit test reports -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/45318) in GitLab 11.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/45318) in GitLab 11.2. Requires GitLab Runner 11.2 and above. ## Overview @@ -177,4 +177,4 @@ Currently, the following tools might not work because their XML formats are unsu |Case|Tool|Issue| |---|---|---| -|`<testcase>` does not have `classname` attribute|ESlint, sass-lint|<https://gitlab.com/gitlab-org/gitlab-ce/issues/50964>| +|`<testcase>` does not have `classname` attribute|ESlint, sass-lint|<https://gitlab.com/gitlab-org/gitlab-foss/issues/50964>| diff --git a/doc/ci/merge_request_pipelines/index.md b/doc/ci/merge_request_pipelines/index.md index 72a9a876037..e29a13e87af 100644 --- a/doc/ci/merge_request_pipelines/index.md +++ b/doc/ci/merge_request_pipelines/index.md @@ -5,7 +5,7 @@ last_update: 2019-07-03 # Pipelines for Merge Requests -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/15310) in GitLab 11.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/15310) in GitLab 11.6. Usually, when you create a new merge request, a pipeline runs with the new change and checks if it's qualified to be merged into a target branch. This @@ -24,7 +24,7 @@ Pipelines for merge requests have the following requirements and limitations: - As of GitLab 11.10, pipelines for merge requests require GitLab Runner 11.9 or higher due to the - [recent refspecs changes](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25504). + [recent refspecs changes](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/25504). - Pipelines for merge requests are incompatible with [CI/CD for external repositories](../ci_cd_for_external_repos/index.md). @@ -158,7 +158,7 @@ External users could steal secret variables from the parent project by modifying We're discussing a secure solution of running pipelines for merge requests that submitted from forked projects, -see [the issue about the permission extension](https://gitlab.com/gitlab-org/gitlab-ce/issues/23902). +see [the issue about the permission extension](https://gitlab.com/gitlab-org/gitlab-foss/issues/23902). ## Additional predefined variables diff --git a/doc/ci/merge_request_pipelines/pipelines_for_merged_results/index.md b/doc/ci/merge_request_pipelines/pipelines_for_merged_results/index.md index d68fba82f4b..e1c5848af03 100644 --- a/doc/ci/merge_request_pipelines/pipelines_for_merged_results/index.md +++ b/doc/ci/merge_request_pipelines/pipelines_for_merged_results/index.md @@ -5,7 +5,7 @@ last_update: 2019-07-03 # Pipelines for Merged Results **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7380) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/7380) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. It's possible for your source and target branches to diverge, which can result in the scenario that source branch's pipeline was green, the target's pipeline was green, @@ -42,10 +42,10 @@ Pipelines for merged results require a [GitLab Runner][runner] 11.9 or newer. In addition, pipelines for merged results have the following limitations: - Forking/cross-repo workflows are not currently supported. To follow progress, - see [#11934](https://gitlab.com/gitlab-org/gitlab-ee/issues/11934). + see [#11934](https://gitlab.com/gitlab-org/gitlab/issues/11934). - This feature is not available for [fast forward merges](../../../user/project/merge_requests/fast_forward_merge.md) yet. - To follow progress, see [#58226](https://gitlab.com/gitlab-org/gitlab-ce/issues/58226). + To follow progress, see [#58226](https://gitlab.com/gitlab-org/gitlab-foss/issues/58226). ## Enabling Pipelines for Merged Results @@ -63,7 +63,7 @@ otherwise pipelines for merged results won't run and your merge requests will be ## Automatic pipeline cancelation -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/12996) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/12996) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3. GitLab CI can detect the presence of redundant pipelines, and will cancel them automatically in order to conserve CI resources. diff --git a/doc/ci/merge_request_pipelines/pipelines_for_merged_results/merge_trains/index.md b/doc/ci/merge_request_pipelines/pipelines_for_merged_results/merge_trains/index.md index 7998b0452be..767058376ca 100644 --- a/doc/ci/merge_request_pipelines/pipelines_for_merged_results/merge_trains/index.md +++ b/doc/ci/merge_request_pipelines/pipelines_for_merged_results/merge_trains/index.md @@ -5,7 +5,7 @@ last_update: 2019-07-03 # Merge Trains **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9186) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9186) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.0. [Pipelines for merged results](../index.md#pipelines-for-merged-results-premium) introduces running a build on the result of the merged code prior to merging, as a way to keep master green. @@ -119,7 +119,7 @@ To check the reason: is unavailable when [Pipelines for Merged Results is enabled](../index.md#enabling-pipelines-for-merged-results). -Follow [this issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/12267) to +Follow [this issue](https://gitlab.com/gitlab-org/gitlab/issues/12267) to track progress on this issue. ### Merge Train disturbs your workflow diff --git a/doc/ci/metrics_reports.md b/doc/ci/metrics_reports.md index 4d3f5a143f7..f5cf07bcc0f 100644 --- a/doc/ci/metrics_reports.md +++ b/doc/ci/metrics_reports.md @@ -4,7 +4,7 @@ type: reference # Metrics Reports **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9788) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9788) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. Requires GitLab Runner 11.10 and above. ## Overview diff --git a/doc/ci/multi_project_pipelines.md b/doc/ci/multi_project_pipelines.md index 9e18d1d883c..8ae38db5c96 100644 --- a/doc/ci/multi_project_pipelines.md +++ b/doc/ci/multi_project_pipelines.md @@ -4,7 +4,7 @@ type: reference # Multi-project pipelines **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/2121) in +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/2121) in [GitLab Premium 9.3](https://about.gitlab.com/2017/06/22/gitlab-9-3-released/#multi-project-pipeline-graphs). When you set up [GitLab CI/CD](README.md) across multiple projects, you can visualize @@ -51,7 +51,7 @@ outbound connections for upstream and downstream pipeline dependencies. ## Creating multi-project pipelines from `.gitlab-ci.yml` -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/8997) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/8997) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.8. ### Triggering a downstream pipeline using a bridge job @@ -90,7 +90,7 @@ CAUTION: **Caution:** `staging` will succeed as soon as a downstream pipeline gets created. GitLab does not support status attribution yet, however adding first-class `trigger` configuration syntax is ground work for implementing -[status attribution](https://gitlab.com/gitlab-org/gitlab-ce/issues/39640). +[status attribution](https://gitlab.com/gitlab-org/gitlab-foss/issues/39640). NOTE: **Note:** Bridge jobs do not support every configuration entry that a user can use @@ -178,7 +178,7 @@ the ones defined in the upstream project will take precedence. ### Mirroring status from triggered pipeline -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/11238) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/11238) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3. You can mirror the pipeline status from the triggered pipeline to the source bridge job by using `strategy: depend`. For example: diff --git a/doc/ci/pipelines.md b/doc/ci/pipelines.md index eaa6efc526d..de9bac76281 100644 --- a/doc/ci/pipelines.md +++ b/doc/ci/pipelines.md @@ -43,7 +43,7 @@ As an example, imagine a pipeline consisting of four stages, executed in the fol ## Visualizing pipelines -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5742) in GitLab 8.11. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5742) in GitLab 8.11. Pipelines can be complex structures with many sequential and parallel jobs. @@ -87,7 +87,7 @@ Stages in pipeline mini graphs are collapsible. Hover your mouse over them and c Job ordering depends on the type of pipeline graph. For [regular pipeline graphs](#regular-pipeline-graphs), jobs are sorted by name. -For [pipeline mini graphs](#pipeline-mini-graphs) ([introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9760) +For [pipeline mini graphs](#pipeline-mini-graphs) ([introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9760) in GitLab 9.0), jobs are sorted by severity and then by name. The order of severity is: @@ -146,7 +146,7 @@ The union of A, B, and C is (1, 4) and (6, 7). Therefore, the total running time ### Expanding and collapsing job log sections -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/14664) in GitLab +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/14664) in GitLab > 12.0. Job logs are divided into sections that can be collapsed or expanded. @@ -179,7 +179,7 @@ through the GitLab UI: ### Grouping jobs -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6242) in GitLab 8.12. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/6242) in GitLab 8.12. If you have many similar jobs, your [pipeline graph](#visualizing-pipelines) becomes long and hard to read. @@ -204,7 +204,7 @@ the following (you can even use them interchangeably): - A colon (`:`). NOTE: **Note:** -More specifically, it uses [this](https://gitlab.com/gitlab-org/gitlab-ce/blob/2f3dc314f42dbd79813e6251792853bc231e69dd/app/models/commit_status.rb#L99) regular expression: `\d+[\s:\/\\]+\d+\s*`. +More specifically, it uses [this](https://gitlab.com/gitlab-org/gitlab-foss/blob/2f3dc314f42dbd79813e6251792853bc231e69dd/app/models/commit_status.rb#L99) regular expression: `\d+[\s:\/\\]+\d+\s*`. #### How grouping works @@ -291,7 +291,7 @@ Clicking on an individual job will show you its job trace, and allow you to: ### Seeing the failure reason for jobs -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17782) in GitLab 10.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17782) in GitLab 10.7. When a pipeline fails or is allowed to fail, there are several places where you can quickly check the reason it failed: @@ -304,12 +304,12 @@ In each place, if you hover over the failed job you can see the reason it failed ![Pipeline detail](img/job_failure_reason.png) -From [GitLab 10.8](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17814), +From [GitLab 10.8](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17814), you can also see the reason it failed on the Job detail page. ### Manual actions from pipeline graphs -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7931) in GitLab 8.15. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/7931) in GitLab 8.15. Manual actions, configured using the [`when:manual`](yaml/README.md#whenmanual) parameter, allow you to require manual interaction before moving forward in the pipeline. @@ -325,7 +325,7 @@ stage has a job with a manual action. ### Specifying variables when running manual jobs -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/30485) in GitLab 12.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/30485) in GitLab 12.2. When running manual jobs you can supply additional job specific variables. @@ -339,7 +339,7 @@ environment variables. ### Delay a job in a pipeline graph -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21767) in GitLab 11.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/21767) in GitLab 11.4. When you do not want to run a job immediately, you can use the [`when:delayed`](yaml/README.md#whendelayed) parameter to delay a job's execution for a certain period. @@ -366,7 +366,7 @@ GitLab provides API endpoints to: ### Start multiple manual actions in a stage -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27188) in GitLab 11.11. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/27188) in GitLab 11.11. Multiple manual actions in a single stage can be started at the same time using the "Play all manual" button. Once the user clicks this button, each individual manual action will be triggered and refreshed diff --git a/doc/ci/review_apps/index.md b/doc/ci/review_apps/index.md index 8ab7982fd65..7a1e6e4e1b8 100644 --- a/doc/ci/review_apps/index.md +++ b/doc/ci/review_apps/index.md @@ -4,7 +4,7 @@ type: reference # Review Apps -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/21971) in GitLab 8.12. Further additions were made in GitLab 8.13 and 8.14. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/21971) in GitLab 8.12. Further additions were made in GitLab 8.13 and 8.14. > - Inspired by [Heroku's Review Apps](https://devcenter.heroku.com/articles/github-integration-review-apps), which itself was inspired by [Fourchette](https://github.com/rainforestapp/fourchette). Review Apps is a collaboration tool that takes the hard work out of providing an environment to showcase product changes. @@ -155,7 +155,7 @@ Once you have the route mapping set up, it will take effect in the following loc ## Visual Reviews **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/10761) in GitLab Starter 12.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/10761) in GitLab Starter 12.0. With Visual Reviews, you can provide a feedback form to your Review Apps so that reviewers can post comments directly from the app back to the merge request @@ -218,7 +218,7 @@ Then, when your app is deployed via GitLab CI/CD, those variables should get replaced with their real values. NOTE: **Note:** -Future enhancements [are planned](https://gitlab.com/gitlab-org/gitlab-ee/issues/11322) +Future enhancements [are planned](https://gitlab.com/gitlab-org/gitlab/issues/11322) to make this process even easier. ### Using Visual Reviews diff --git a/doc/ci/runners/README.md b/doc/ci/runners/README.md index abb503c6516..f7d1a3e88a2 100644 --- a/doc/ci/runners/README.md +++ b/doc/ci/runners/README.md @@ -156,7 +156,7 @@ An admin can enable/disable a specific Runner for projects: ## Protected Runners -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13194) in GitLab 10.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/13194) in GitLab 10.0. You can protect Runners from revealing sensitive information. Whenever a Runner is protected, the Runner picks only jobs created on @@ -386,7 +386,7 @@ new value. ## Determining the IP address of a Runner -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17286) in GitLab 10.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17286) in GitLab 10.6. It may be useful to know the IP address of a Runner so you can troubleshoot issues with that Runner. GitLab stores and displays the IP address by viewing diff --git a/doc/ci/triggers/README.md b/doc/ci/triggers/README.md index 4e486af9b29..d2efae8ebef 100644 --- a/doc/ci/triggers/README.md +++ b/doc/ci/triggers/README.md @@ -272,8 +272,8 @@ Triggers with the legacy label do not have an associated user and only have access to the current project. They are considered deprecated and will be removed with one of the future versions of GitLab. -[ee-2017]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2017 -[ee-2346]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2346 +[ee-2017]: https://gitlab.com/gitlab-org/gitlab/merge_requests/2017 +[ee-2346]: https://gitlab.com/gitlab-org/gitlab/merge_requests/2346 [ee]: https://about.gitlab.com/pricing/ [variables]: ../variables/README.md [predef]: ../variables/README.md#predefined-environment-variables diff --git a/doc/ci/variables/README.md b/doc/ci/variables/README.md index 438b7c03b51..5e871ec7958 100644 --- a/doc/ci/variables/README.md +++ b/doc/ci/variables/README.md @@ -57,7 +57,7 @@ the need to specify the value itself. #### Variable types -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/46806) in GitLab 11.11. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/46806) in GitLab 11.11. There are two types of variables supported by GitLab: @@ -87,7 +87,7 @@ Variable types can be set via the [UI](#via-the-ui) or the [API](../../api/proje #### Masked variables -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/13784) in GitLab 11.10 +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/13784) in GitLab 11.10 Variables can be created as masked variables. This means that the value of the variable will be hidden in job logs, @@ -96,7 +96,7 @@ though it must match certain requirements to do so: - The value must be in a single line. - The value must only consist of characters from the Base64 alphabet (RFC4648). - [In GitLab 12.2](https://gitlab.com/gitlab-org/gitlab-ce/issues/63043) + [In GitLab 12.2](https://gitlab.com/gitlab-org/gitlab-foss/issues/63043) and newer, `@` and `:` are also valid values. - The value must be at least 8 characters long. - The value must not use variables. @@ -253,7 +253,7 @@ export CI_JOB_ID="50" export CI_COMMIT_SHA="1ecfd275763eff1d6b4844ea3168962458c9f27a" export CI_COMMIT_SHORT_SHA="1ecfd275" export CI_COMMIT_REF_NAME="master" -export CI_REPOSITORY_URL="https://gitlab-ci-token:abcde-1234ABCD5678ef@example.com/gitlab-org/gitlab-ce.git" +export CI_REPOSITORY_URL="https://gitlab-ci-token:abcde-1234ABCD5678ef@example.com/gitlab-org/gitlab-foss.git" export CI_COMMIT_TAG="1.0.0" export CI_JOB_NAME="spec:other" export CI_JOB_STAGE="test" @@ -265,13 +265,13 @@ export CI_PIPELINE_IID="10" export CI_PAGES_DOMAIN="gitlab.io" export CI_PAGES_URL="https://gitlab-org.gitlab.io/gitlab-ce" export CI_PROJECT_ID="34" -export CI_PROJECT_DIR="/builds/gitlab-org/gitlab-ce" +export CI_PROJECT_DIR="/builds/gitlab-org/gitlab-foss" export CI_PROJECT_NAME="gitlab-ce" export CI_PROJECT_NAMESPACE="gitlab-org" export CI_PROJECT_PATH="gitlab-org/gitlab-ce" -export CI_PROJECT_URL="https://example.com/gitlab-org/gitlab-ce" +export CI_PROJECT_URL="https://example.com/gitlab-org/gitlab-foss" export CI_REGISTRY="registry.example.com" -export CI_REGISTRY_IMAGE="registry.example.com/gitlab-org/gitlab-ce" +export CI_REGISTRY_IMAGE="registry.example.com/gitlab-org/gitlab-foss" export CI_RUNNER_ID="10" export CI_RUNNER_DESCRIPTION="my runner" export CI_RUNNER_TAGS="docker, linux" @@ -418,7 +418,7 @@ An example project service that defines deployment variables is the ### Auto DevOps environment variables -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/49056) in GitLab 11.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/49056) in GitLab 11.7. You can configure [Auto DevOps](../../topics/autodevops/index.md) to pass CI variables to the running application by prefixing the key of the @@ -435,7 +435,7 @@ limitations with the current Auto DevOps scripting environment. ### Environment variables triggered manually -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/44059) in GitLab 10.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/44059) in GitLab 10.8. [Manually triggered pipelines](../pipelines.md#manually-executing-pipelines) allow you to override the value of a current variable. @@ -555,7 +555,7 @@ Below you can find supported syntax reference: Pattern matching is case-sensitive by default. Use `i` flag modifier, like `/pattern/i` to make a pattern case-insensitive. -1. Conjunction / Disjunction ([introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27925) in GitLab 12.0) +1. Conjunction / Disjunction ([introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/27925) in GitLab 12.0) Examples: @@ -741,7 +741,7 @@ MIIFQzCCBCugAwIBAgIRAL/ElDjuf15xwja1ZnCocWAwDQYJKoZIhvcNAQELBQAw' ... ``` -[ce-13784]: https://gitlab.com/gitlab-org/gitlab-ce/issues/13784 "Simple protection of CI variables" +[ce-13784]: https://gitlab.com/gitlab-org/gitlab-foss/issues/13784 "Simple protection of CI variables" [envs]: ../environments.md [protected branches]: ../../user/project/protected_branches.md [protected tags]: ../../user/project/protected_tags.md diff --git a/doc/ci/yaml/README.md b/doc/ci/yaml/README.md index aa188facebd..5c747688bb1 100644 --- a/doc/ci/yaml/README.md +++ b/doc/ci/yaml/README.md @@ -20,7 +20,7 @@ We have complete examples of configuring pipelines: - For a quick introduction to GitLab CI, follow our [quick start guide](../quick_start/README.md). - For a collection of examples, see [GitLab CI/CD Examples](../examples/README.md). -- To see a large `.gitlab-ci.yml` file used in an enterprise, see the [`.gitlab-ci.yml` file for `gitlab-ce`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab-ci.yml). +- To see a large `.gitlab-ci.yml` file used in an enterprise, see the [`.gitlab-ci.yml` file for `gitlab-ce`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/.gitlab-ci.yml). NOTE: **Note:** If you have a [mirrored repository where GitLab pulls from](../../workflow/repository_mirroring.md#pulling-from-a-remote-repository-starter), @@ -696,7 +696,7 @@ and triggers the `docker build service one` job. ### `rules` -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29011) in GitLab 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/29011) in GitLab 12.3. `rules` allows for a list of individual rule objects to be evaluated *in order*, until one matches and dynamically provides attributes to the job. @@ -837,7 +837,7 @@ docker build: Additional job configuration may be added to rules in the future. If something useful isn't available, please -[open an issue](https://www.gitlab.com/gitlab-org/gitlab-ce/issues). +[open an issue](https://www.gitlab.com/gitlab-org/gitlab-foss/issues). ### `tags` @@ -1015,7 +1015,7 @@ have the ability to merge to this branch. #### `when:delayed` -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21767) in GitLab 11.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/21767) in GitLab 11.4. Delayed job are for executing scripts after a certain period. This is useful if you want to avoid jobs entering `pending` state immediately. @@ -1620,7 +1620,7 @@ job: #### `artifacts:reports` -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/20390) in +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/20390) in GitLab 11.2. Requires GitLab Runner 11.2 and above. The `reports` keyword is used for collecting test reports from jobs and @@ -1638,7 +1638,7 @@ If you also want the ability to browse the report output files, include the ##### `artifacts:reports:junit` -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/20390) in +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/20390) in GitLab 11.2. Requires GitLab Runner 11.2 and above. The `junit` report collects [JUnit XML files](https://www.ibm.com/support/knowledgecenter/en/SSQ2R2_14.1.0/com.ibm.rsar.analysis.codereview.cobol.doc/topics/cac_useresults_junit.html) @@ -1830,7 +1830,7 @@ and bring back the old behavior. ### `needs` -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/47063) in GitLab 12.2. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/47063) in GitLab 12.2. > - In GitLab 12.3, maximum number of jobs in `needs` array raised from five to 50. The `needs:` keyword enables executing jobs out-of-order, allowing you to implement @@ -1894,12 +1894,12 @@ This example creates three paths of execution: - 50 if the `ci_dag_limit_needs` feature flag is disabled. - It is impossible for now to have `needs: []` (empty needs), the job always needs to depend on something, unless this is the job - in the first stage (see [gitlab-ce#65504](https://gitlab.com/gitlab-org/gitlab-ce/issues/65504)). + in the first stage (see [gitlab-ce#65504](https://gitlab.com/gitlab-org/gitlab-foss/issues/65504)). - If `needs:` refers to a job that is marked as `parallel:`. the current job will depend on all parallel jobs created. - `needs:` is similar to `dependencies:` in that it needs to use jobs from prior stages, meaning it is impossible to create circular - dependencies or depend on jobs in the current stage (see [gitlab-ce#65505](https://gitlab.com/gitlab-org/gitlab-ce/issues/65505)). + dependencies or depend on jobs in the current stage (see [gitlab-ce#65505](https://gitlab.com/gitlab-org/gitlab-foss/issues/65505)). - Related to the above, stages must be explicitly defined for all jobs that have the keyword `needs:` or are referred to by one. @@ -1926,7 +1926,7 @@ job1: ### `retry` > - [Introduced][ce-12909] in GitLab 9.5. -> - [Behaviour expanded](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21758) in GitLab 11.5 to control on which failures to retry. +> - [Behaviour expanded](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/21758) in GitLab 11.5 to control on which failures to retry. `retry` allows you to configure how many times a job is going to be retried in case of a failure. @@ -2012,7 +2012,7 @@ test: ### `parallel` -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22631) in GitLab 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22631) in GitLab 11.5. `parallel` allows you to configure how many instances of a job to run in parallel. This value has to be greater than or equal to two (2) and less than or equal to 50. @@ -2060,7 +2060,7 @@ job split into three separate jobs. ### `trigger` **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/8997) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/8997) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.8. `trigger` allows you to define downstream pipeline trigger. When a job created from `trigger` definition is started by GitLab, a downstream pipeline gets @@ -2102,7 +2102,7 @@ staging: ### `interruptible` -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23464) in GitLab 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/23464) in GitLab 12.3. `interruptible` is used to indicate that a job should be canceled if made redundant by a newer run of the same job. Defaults to `false`. This value will only be used if the [automatic cancellation of redundant pipelines feature](../../user/project/pipelines/settings.md#auto-cancel-pending-pipelines) @@ -2146,7 +2146,7 @@ In the example above, a new pipeline run will cause an existing running pipeline > - Introduced in [GitLab Premium](https://about.gitlab.com/pricing/) 10.5. > - Available for Starter, Premium and Ultimate since 10.6. -> - [Moved](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21603) to GitLab Core in 11.4. +> - [Moved](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/21603) to GitLab Core in 11.4. Using the `include` keyword, you can allow the inclusion of external YAML files. `include` requires the external YAML file to have the extensions `.yml` or `.yaml`, @@ -2205,7 +2205,7 @@ include: #### `include:file` -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/53903) in GitLab 11.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/53903) in GitLab 11.7. To include files from another private project under the same GitLab instance, use `include:file`. This file is referenced using full paths relative to the @@ -2240,10 +2240,10 @@ or template includes. #### `include:template` -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/53445) in GitLab 11.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/53445) in GitLab 11.7. `include:template` can be used to include `.gitlab-ci.yml` templates that are -[shipped with GitLab](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/lib/gitlab/ci/templates). +[shipped with GitLab](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates). For example: @@ -2281,7 +2281,7 @@ or public project, or template is allowed. #### Nested includes -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/56836) in GitLab 11.9. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/56836) in GitLab 11.9. Nested includes allow you to compose a set of includes. A total of 50 includes is allowed. @@ -3225,12 +3225,12 @@ Each scenario can be a third-level heading, e.g. `### Getting error message X`. If you have none to add when creating a doc, leave this section in place but commented out to help encourage others to add to it in the future. --> -[ce-6323]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6323 -[ce-6669]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6669 -[ce-7983]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7983 -[ce-7447]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7447 -[ce-12909]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12909 -[ce-19232]: https://gitlab.com/gitlab-org/gitlab-ce/issues/19232 +[ce-6323]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/6323 +[ce-6669]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/6669 +[ce-7983]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/7983 +[ce-7447]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/7447 +[ce-12909]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12909 +[ce-19232]: https://gitlab.com/gitlab-org/gitlab-foss/issues/19232 [environment]: ../environments.md "CI/CD environments" [schedules]: ../../user/project/pipelines/schedules.md "Pipelines schedules" [variables]: ../variables/README.md "CI/CD variables" diff --git a/doc/customization/favicon.md b/doc/customization/favicon.md index dbde6e8c03b..e165a16ffd9 100644 --- a/doc/customization/favicon.md +++ b/doc/customization/favicon.md @@ -6,7 +6,7 @@ type: howto > [Introduced][ce-14497] in GitLab 11.0. -[ce-14497]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14497 +[ce-14497]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/14497 You can customize the favicon (the icon displayed in your web browser's address bar and web page tabs) for your GitLab server. diff --git a/doc/customization/libravatar.md b/doc/customization/libravatar.md index 6d96528f760..577528fb33b 100644 --- a/doc/customization/libravatar.md +++ b/doc/customization/libravatar.md @@ -14,7 +14,7 @@ server. ## Configuration -In the [`gitlab.yml` gravatar section](https://gitlab.com/gitlab-org/gitlab-ce/blob/672bd3902d86b78d730cea809fce312ec49d39d7/config/gitlab.yml.example#L122), set +In the [`gitlab.yml` gravatar section](https://gitlab.com/gitlab-org/gitlab-foss/blob/672bd3902d86b78d730cea809fce312ec49d39d7/config/gitlab.yml.example#L122), set the configuration options as follows: ### For HTTP diff --git a/doc/customization/system_header_and_footer_messages.md b/doc/customization/system_header_and_footer_messages.md index bd2de3e201c..b3aa48b1e2f 100644 --- a/doc/customization/system_header_and_footer_messages.md +++ b/doc/customization/system_header_and_footer_messages.md @@ -1,7 +1,7 @@ # Adding a system message to every page -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5023) in [GitLab Premium](https://about.gitlab.com/pricing/) 10.7. -> [Added](https://gitlab.com/gitlab-org/gitlab-ce/issues/55057) to [GitLab Core](https://about.gitlab.com/pricing/) in 11.9. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5023) in [GitLab Premium](https://about.gitlab.com/pricing/) 10.7. +> [Added](https://gitlab.com/gitlab-org/gitlab-foss/issues/55057) to [GitLab Core](https://about.gitlab.com/pricing/) in 11.9. Navigate to the **Admin** area and go to the **Appearance** page. diff --git a/doc/development/README.md b/doc/development/README.md index e8bebc79124..0d1168c4450 100644 --- a/doc/development/README.md +++ b/doc/development/README.md @@ -14,7 +14,7 @@ description: 'Learn how to contribute to GitLab.' ## Processes -- [GitLab core team & GitLab Inc. contribution process](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/PROCESS.md) +- [GitLab core team & GitLab Inc. contribution process](https://gitlab.com/gitlab-org/gitlab/blob/master/PROCESS.md) - [Generate a changelog entry with `bin/changelog`](changelog.md) - [Code review guidelines](code_review.md) for reviewing code and having code reviewed - [Database review guidelines](database_review.md) for reviewing database-related changes and complex SQL queries @@ -142,6 +142,12 @@ description: 'Learn how to contribute to GitLab.' - [Externalization](i18n/externalization.md) - [Translation](i18n/translation.md) +## Event tracking guides + +- [Introduction](event_tracking/index.md) +- [Frontend tracking guide](event_tracking/frontend.md) +- [Backend tracking guide](event_tracking/backend.md) + ## Build guides - [Building a package for testing purposes](build_test_package.md) diff --git a/doc/development/api_styleguide.md b/doc/development/api_styleguide.md index 3f81440791e..e3c8c860062 100644 --- a/doc/development/api_styleguide.md +++ b/doc/development/api_styleguide.md @@ -14,7 +14,7 @@ Always use an [Entity] to present the endpoint's payload. ## Methods and parameters description Every method must be described using the [Grape DSL](https://github.com/ruby-grape/grape#describing-methods) -(see <https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/api/environments.rb> +(see <https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/api/environments.rb> for a good example): - `desc` for the method summary. You should pass it a block for additional @@ -104,6 +104,6 @@ For instance: - endpoint = expose_path(api_v4_projects_issues_related_merge_requests_path(id: @project.id, issue_iid: @issue.iid)) ``` -[Entity]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/api/entities.rb +[Entity]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/api/entities.rb [validation, and coercion of the parameters]: https://github.com/ruby-grape/grape#parameter-validation-and-coercion [installing GitLab under a relative URL]: https://docs.gitlab.com/ee/install/relative_url.html diff --git a/doc/development/architecture.md b/doc/development/architecture.md index e30b9d27f46..75562f692ad 100644 --- a/doc/development/architecture.md +++ b/doc/development/architecture.md @@ -6,7 +6,7 @@ table_display_block: true ## Software delivery -There are two software distributions of GitLab: the open source [Community Edition](https://gitlab.com/gitlab-org/gitlab-ce/) (CE), and the open core [Enterprise Edition](https://gitlab.com/gitlab-org/gitlab-ee/) (EE). GitLab is available under [different subscriptions](https://about.gitlab.com/pricing/). +There are two software distributions of GitLab: the open source [Community Edition](https://gitlab.com/gitlab-org/gitlab-foss/) (CE), and the open core [Enterprise Edition](https://gitlab.com/gitlab-org/gitlab/) (EE). GitLab is available under [different subscriptions](https://about.gitlab.com/pricing/). New versions of GitLab are released in stable branches and the master branch is for bleeding edge development. @@ -16,7 +16,7 @@ Both EE and CE require some add-on components called GitLab Shell and Gitaly. Th ## Components -A typical install of GitLab will be on GNU/Linux. It uses Nginx or Apache as a web front end to proxypass the Unicorn web server. By default, communication between Unicorn and the front end is via a Unix domain socket but forwarding requests via TCP is also supported. The web front end accesses `/home/git/gitlab/public` bypassing the Unicorn server to serve static pages, uploads (e.g. avatar images or attachments), and precompiled assets. GitLab serves web pages and a [GitLab API](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/api) using the Unicorn web server. It uses Sidekiq as a job queue which, in turn, uses redis as a non-persistent database backend for job information, meta data, and incoming jobs. +A typical install of GitLab will be on GNU/Linux. It uses Nginx or Apache as a web front end to proxypass the Unicorn web server. By default, communication between Unicorn and the front end is via a Unix domain socket but forwarding requests via TCP is also supported. The web front end accesses `/home/git/gitlab/public` bypassing the Unicorn server to serve static pages, uploads (e.g. avatar images or attachments), and precompiled assets. GitLab serves web pages and a [GitLab API](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/doc/api) using the Unicorn web server. It uses Sidekiq as a job queue which, in turn, uses redis as a non-persistent database backend for job information, meta data, and incoming jobs. We also support deploying GitLab on Kubernetes using our [GitLab Helm chart](https://docs.gitlab.com/charts/). @@ -78,11 +78,11 @@ graph TB PgBouncerExporter[PgBouncer Exporter] --> PgBouncer Prometheus -- TCP 9187 --> PostgreSQLExporter Prometheus -- TCP 9100 --> NodeExporter[Node Exporter] - Prometheus -- TCP 9168 --> GitLabMonitor[GitLab Monitor] + Prometheus -- TCP 9168 --> GitLabExporter[GitLab Exporter] Prometheus -- TCP 9127 --> PgBouncerExporter - GitLabMonitor --> PostgreSQL - GitLabMonitor --> GitLabShell - GitLabMonitor --> Sidekiq + GitLabExporter --> PostgreSQL + GitLabExporter --> GitLabShell + GitLabExporter --> Sidekiq PgBouncer --> Consul PostgreSQL --> Consul PgBouncer --> PostgreSQL @@ -147,7 +147,7 @@ Component statuses are linked to configuration documentation for each component. | [Redis Exporter](#redis-exporter) | Prometheus endpoint with Redis metrics | [✅][redis-exporter-omnibus] | [✅][redis-exporter-charts] | [✅][redis-exporter-charts] | [✅](https://about.gitlab.com/handbook/engineering/monitoring/) | ❌ | ❌ | CE & EE | | [Postgres Exporter](#postgres-exporter) | Prometheus endpoint with PostgreSQL metrics | [✅][postgres-exporter-omnibus] | [✅][postgres-exporter-charts] | [✅][postgres-exporter-charts] | [✅](https://about.gitlab.com/handbook/engineering/monitoring/) | ❌ | ❌ | CE & EE | | [PgBouncer Exporter](#pgbouncer-exporter) | Prometheus endpoint with PgBouncer metrics | [⚙][pgbouncer-exporter-omnibus] | [❌][pgbouncer-exporter-charts] | [❌][pgbouncer-exporter-charts] | [✅](https://about.gitlab.com/handbook/engineering/monitoring/) | ❌ | ❌ | CE & EE | -| [GitLab Monitor](#gitlab-monitor) | Generates a variety of GitLab metrics | [✅][gitlab-monitor-omnibus] | [✅][gitlab-monitor-charts] | [✅][gitlab-monitor-charts] | [✅](https://about.gitlab.com/handbook/engineering/monitoring/) | ❌ | ❌ | CE & EE | +| [GitLab Exporter](#gitlab-exporter) | Generates a variety of GitLab metrics | [✅][gitlab-exporter-omnibus] | [✅][gitlab-exporter-charts] | [✅][gitlab-exporter-charts] | [✅](https://about.gitlab.com/handbook/engineering/monitoring/) | ❌ | ❌ | CE & EE | | [Node Exporter](#node-exporter) | Prometheus endpoint with system metrics | [✅][node-exporter-omnibus] | [❌][node-exporter-charts] | [❌][node-exporter-charts] | [✅](https://about.gitlab.com/handbook/engineering/monitoring/) | ❌ | ❌ | CE & EE | | [Mattermost](#mattermost) | Open-source Slack alternative | [⚙][mattermost-omnibus] | [⤓][mattermost-charts] | [⤓][mattermost-charts] | [⤓](../user/project/integrations/mattermost.md) | ❌ | ❌ | CE & EE | | [MinIO](#minio) | Object storage service | [⤓][minio-omnibus] | [✅][minio-charts] | [✅][minio-charts] | [✅](https://about.gitlab.com/handbook/engineering/infrastructure/production-architecture/#storage-architecture) | ❌ | [⚙][minio-gdk] | CE & EE | @@ -185,7 +185,7 @@ GitLab can be considered to have two layers from a process perspective: - Layer: Monitoring - Process: `alertmanager` -[Alert manager](https://prometheus.io/docs/alerting/alertmanager/) is a tool provided by Prometheus that _"handles alerts sent by client applications such as the Prometheus server. It takes care of deduplicating, grouping, and routing them to the correct receiver integration such as email, PagerDuty, or OpsGenie. It also takes care of silencing and inhibition of alerts."_ You can read more in [issue #45740](https://gitlab.com/gitlab-org/gitlab-ce/issues/45740) about what we will be alerting on. +[Alert manager](https://prometheus.io/docs/alerting/alertmanager/) is a tool provided by Prometheus that _"handles alerts sent by client applications such as the Prometheus server. It takes care of deduplicating, grouping, and routing them to the correct receiver integration such as email, PagerDuty, or OpsGenie. It also takes care of silencing and inhibition of alerts."_ You can read more in [issue #45740](https://gitlab.com/gitlab-org/gitlab-foss/issues/45740) about what we will be alerting on. #### Certificate management @@ -228,14 +228,14 @@ Gitaly is a service designed by GitLab to remove our need for NFS for Git storag - Configuration: [Omnibus][geo-omnibus], [Charts][geo-charts], [GDK][geo-gdk] - Layer: Core Service (Processor) -#### GitLab Monitor +#### Gitlab Exporter -- [Project page](https://gitlab.com/gitlab-org/gitlab-monitor) -- Configuration: [Omnibus][gitlab-monitor-omnibus], [Charts][gitlab-monitor-charts] +- [Project page](https://gitlab.com/gitlab-org/gitlab-exporter) +- Configuration: [Omnibus][gitlab-exporter-omnibus], [Charts][gitlab-exporter-charts] - Layer: Monitoring -- Process: `gitlab-monitor` +- Process: `gitlab-exporter` -GitLab Monitor is a process designed in house that allows us to export metrics about GitLab application internals to Prometheus. You can read more [in the project's readme](https://gitlab.com/gitlab-org/gitlab-monitor). +GitLab Exporter is a process designed in house that allows us to export metrics about GitLab application internals to Prometheus. You can read more [in the project's readme](https://gitlab.com/gitlab-org/gitlab-exporter). #### GitLab Pages @@ -432,7 +432,7 @@ Sidekiq is a Ruby background job processor that pulls jobs from the redis queue #### Unicorn -- [Project page](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/README.md) +- [Project page](https://gitlab.com/gitlab-org/gitlab/blob/master/README.md) - Configuration: [Omnibus][unicorn-omnibus], [Charts][unicorn-charts], [Source][unicorn-source], [GDK][gitlab-yml] - Layer: Core Service (Processor) - Process: `unicorn` @@ -614,7 +614,7 @@ GitLab Shell has a configuration file at `/home/git/gitlab-shell/config.yml`. ### Maintenance Tasks -[GitLab](https://gitlab.com/gitlab-org/gitlab-ce/tree/master) provides rake tasks with which you see version information and run a quick check on your configuration to ensure it is configured properly within the application. See [maintenance rake tasks](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/raketasks/maintenance.md). +[GitLab](https://gitlab.com/gitlab-org/gitlab/tree/master) provides rake tasks with which you see version information and run a quick check on your configuration to ensure it is configured properly within the application. See [maintenance rake tasks](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/doc/raketasks/maintenance.md). In a nutshell, do the following: ``` @@ -638,7 +638,7 @@ We've also detailed [our architecture of GitLab.com](https://about.gitlab.com/ha [unicorn-omnibus]: https://docs.gitlab.com/omnibus/settings/unicorn.html [unicorn-charts]: https://docs.gitlab.com/charts/charts/gitlab/unicorn/ [unicorn-source]: ../install/installation.md#configure-it -[gitlab-yml]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/gitlab.yml.example +[gitlab-yml]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/config/gitlab.yml.example [sidekiq-omnibus]: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-config-template/gitlab.rb.template [sidekiq-charts]: https://docs.gitlab.com/charts/charts/gitlab/sidekiq/ [gitaly-omnibus]: ../administration/gitaly/index.md @@ -684,8 +684,8 @@ We've also detailed [our architecture of GitLab.com](https://about.gitlab.com/ha [postgres-exporter-charts]: https://github.com/helm/charts/tree/master/stable/postgresql [pgbouncer-exporter-omnibus]: ../administration/monitoring/prometheus/pgbouncer_exporter.md [pgbouncer-exporter-charts]: https://docs.gitlab.com/charts/installation/deployment.html#postgresql -[gitlab-monitor-omnibus]: ../administration/monitoring/prometheus/gitlab_monitor_exporter.md -[gitlab-monitor-charts]: https://docs.gitlab.com/charts/charts/gitlab/gitlab-monitor/index.html +[gitlab-exporter-omnibus]: ../administration/monitoring/prometheus/gitlab_exporter.md +[gitlab-exporter-charts]: https://docs.gitlab.com/charts/charts/gitlab/gitlab-exporter/index.html [node-exporter-omnibus]: ../administration/monitoring/prometheus/node_exporter.md [node-exporter-charts]: https://gitlab.com/gitlab-org/charts/gitlab/issues/1332 [mattermost-omnibus]: https://docs.gitlab.com/omnibus/gitlab-mattermost/ diff --git a/doc/development/automatic_ce_ee_merge.md b/doc/development/automatic_ce_ee_merge.md index c2700461467..f7816091b49 100644 --- a/doc/development/automatic_ce_ee_merge.md +++ b/doc/development/automatic_ce_ee_merge.md @@ -174,9 +174,9 @@ Now, every time you create an MR for CE and EE: ## How we run the Automatic CE->EE merge at GitLab At GitLab, we use the [Merge Train](https://gitlab.com/gitlab-org/merge-train) -project to keep our [GitLab EE](https://gitlab.com/gitlab-org/gitlab-ee) +project to keep our [GitLab EE](https://gitlab.com/gitlab-org/gitlab) repository updated with commits from -[GitLab CE](https://gitlab.com/gitlab-org/gitlab-ce). +[GitLab CE](https://gitlab.com/gitlab-org/gitlab-foss). We have a mirror of the [Merge Train](https://gitlab.com/gitlab-org/merge-train) project [configured](https://ops.gitlab.net/gitlab-org/merge-train) to run an diff --git a/doc/development/background_migrations.md b/doc/development/background_migrations.md index 606ee431c3e..364e276b6cc 100644 --- a/doc/development/background_migrations.md +++ b/doc/development/background_migrations.md @@ -315,7 +315,7 @@ for more details. more pressure on DB than you expect (measure on staging, or ask someone to measure on production). -[migrations-readme]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/spec/migrations/README.md -[issue-rspec-hooks]: https://gitlab.com/gitlab-org/gitlab-ce/issues/35351 -[reliable-sidekiq]: https://gitlab.com/gitlab-org/gitlab-ce/issues/36791 +[migrations-readme]: https://gitlab.com/gitlab-org/gitlab/blob/master/spec/migrations/README.md +[issue-rspec-hooks]: https://gitlab.com/gitlab-org/gitlab-foss/issues/35351 +[reliable-sidekiq]: https://gitlab.com/gitlab-org/gitlab-foss/issues/36791 [import-export]: ../user/project/settings/import_export.md diff --git a/doc/development/changelog.md b/doc/development/changelog.md index afc18885a80..cd09438e7c7 100644 --- a/doc/development/changelog.md +++ b/doc/development/changelog.md @@ -27,8 +27,8 @@ valid options are: added, fixed, changed, deprecated, removed, security, perform Community contributors and core team members are encouraged to add their name to the `author` field. GitLab team members **should not**. -[changelog.md]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG.md -[unreleased]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/changelogs/ +[changelog.md]: https://gitlab.com/gitlab-org/gitlab/blob/master/CHANGELOG.md +[unreleased]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master/changelogs/ [YAML]: https://en.wikipedia.org/wiki/YAML ## What warrants a changelog entry? @@ -284,7 +284,7 @@ and then compiling the entries into the overall `CHANGELOG.md` file during the [boring solution]: https://about.gitlab.com/handbook/values/#boring-solutions [release managers]: https://gitlab.com/gitlab-org/release/docs/blob/master/quickstart/release-manager.md -[started brainstorming]: https://gitlab.com/gitlab-org/gitlab-ce/issues/17826 +[started brainstorming]: https://gitlab.com/gitlab-org/gitlab-foss/issues/17826 [release process]: https://gitlab.com/gitlab-org/release-tools --- diff --git a/doc/development/chatops_on_gitlabcom.md b/doc/development/chatops_on_gitlabcom.md index 3b681880401..09d6638924a 100644 --- a/doc/development/chatops_on_gitlabcom.md +++ b/doc/development/chatops_on_gitlabcom.md @@ -9,6 +9,7 @@ tasks such as: - Configuring feature flags. - Running `EXPLAIN` queries against the GitLab.com production replica. +- Get deployment status of all of our environments or for a specific commit: `/chatops run auto_deploy status [commit_sha]` To request access to Chatops on GitLab.com: diff --git a/doc/development/code_comments.md b/doc/development/code_comments.md index 827a610efa2..c1d58c1bd4b 100644 --- a/doc/development/code_comments.md +++ b/doc/development/code_comments.md @@ -9,6 +9,6 @@ Examples: ```rb # Deprecated scope until code_owner column has been migrated to rule_type. -# To be removed with https://gitlab.com/gitlab-org/gitlab-ee/issues/11834. +# To be removed with https://gitlab.com/gitlab-org/gitlab/issues/11834. scope :code_owner, -> { where(code_owner: true).or(where(rule_type: :code_owner)) } ``` diff --git a/doc/development/code_review.md b/doc/development/code_review.md index ce9f794c1a3..f616eb90bda 100644 --- a/doc/development/code_review.md +++ b/doc/development/code_review.md @@ -185,6 +185,7 @@ without duly verifying them. ### Everyone +- Be kind. - Accept that many programming decisions are opinions. Discuss tradeoffs, which you prefer, and reach a resolution quickly. - Ask questions; don't make demands. ("What do you think about naming this @@ -231,6 +232,9 @@ first time. - Push commits based on earlier rounds of feedback as isolated commits to the branch. Do not squash until the branch is ready to merge. Reviewers should be able to read individual updates based on their earlier feedback. +- Assign the merge request back to the reviewer once you are ready for another round of + review. If you do not have the ability to assign merge requests, `@` + mention the reviewer instead. ### Assigning a merge request for a review @@ -254,7 +258,7 @@ even when this may negatively impact their other tasks and priorities. Doing so allows everyone involved in the merge request to iterate faster as the context is fresh in memory, improves contributors' experiences significantly, and gives authors more time to address feedback and iterate on their work before -the [feature freeze](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/PROCESS.md#feature-freeze-on-the-7th-for-the-release-on-the-22nd). +the [feature freeze](https://gitlab.com/gitlab-org/gitlab/blob/master/PROCESS.md#feature-freeze-on-the-7th-for-the-release-on-the-22nd). A turnaround time of two working days is usually acceptable, since engineers will typically have other things to work on while they're waiting for review, @@ -262,7 +266,7 @@ but don't hesitate to ask the author if it's unclear what time frame would be acceptable, how urgent the review is, or how significant the blockage. Authors are also encouraged to provide this information up-front to reviewers, but are expected to be mindful of the [guidelines on when to ask for review on MRs that -are intended to go in before the feature freeze](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/PROCESS.md#between-the-1st-and-the-7th), +are intended to go in before the feature freeze](https://gitlab.com/gitlab-org/gitlab/blob/master/PROCESS.md#between-the-1st-and-the-7th), and realistic in their expectations if these were not followed. If you don't think you'll be able to review a merge request within a reasonable @@ -290,6 +294,10 @@ experience, refactors the existing code). Then: - Seek to understand the author's perspective. - If you don't understand a piece of code, _say so_. There's a good chance someone else would be confused by it as well. +- Do prefix your comment with "Not blocking:" if you have a small, + non-mandatory improvement you wish to suggest. This lets the author + know that they can optionally resolve this issue in this merge request + or follow-up at a later stage. - After a round of line notes, it can be helpful to post a summary note such as "LGTM :thumbsup:", or "Just a couple things to address." - Assign the merge request to the author if changes are required following your @@ -393,25 +401,25 @@ Enterprise Edition instance. This has some implications: How code reviews are conducted can surprise new contributors. Here are some examples of code reviews that should help to orient you as to what to expect. -**["Modify `DiffNote` to reuse it for Designs"](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13703):** +**["Modify `DiffNote` to reuse it for Designs"](https://gitlab.com/gitlab-org/gitlab/merge_requests/13703):** It contained everything from nitpicks around newlines to reasoning about what versions for designs are, how we should compare them if there was no previous version of a certain file (parent vs. blank `sha` vs empty tree). -**["Support multi-line suggestions"](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25211)**: +**["Support multi-line suggestions"](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/25211)**: The MR itself consists of a collaboration between FE and BE, and documenting comments from the author for the reviewer. There's some nitpicks, some questions for information, and towards the end, a security vulnerability. -**["Allow multiple repositories per project"](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/10251)**: +**["Allow multiple repositories per project"](https://gitlab.com/gitlab-org/gitlab/merge_requests/10251)**: ZJ referred to the other projects (workhorse) this might impact, suggested some improvements for consistency. And James' comments helped us with overall code quality (using delegation, `&.` those types of things), and making the code more robust. -**["Support multiple assignees for merge requests"](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/10161)**: +**["Support multiple assignees for merge requests"](https://gitlab.com/gitlab-org/gitlab/merge_requests/10161)**: A good example of collaboration on an MR touching multiple parts of the codebase. Nick pointed out interesting edge cases, James Lopes also joined in raising concerns on import/export feature. ### Credits diff --git a/doc/development/contributing/index.md b/doc/development/contributing/index.md index 887f17b05b8..694f8d2cb45 100644 --- a/doc/development/contributing/index.md +++ b/doc/development/contributing/index.md @@ -16,7 +16,7 @@ abbreviation. To get an overview of GitLab community membership including those that would be reviewing or merging your contributions, please visit [the community roles page](community_roles.md). If you want to know how the GitLab [core team] -operates please see [the GitLab contributing process](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/PROCESS.md). +operates please see [the GitLab contributing process](https://gitlab.com/gitlab-org/gitlab/blob/master/PROCESS.md). [GitLab Inc engineers should refer to the engineering workflow document](https://about.gitlab.com/handbook/engineering/workflow/) diff --git a/doc/development/contributing/issue_workflow.md b/doc/development/contributing/issue_workflow.md index 8b5d380ad9e..810d03e82c5 100644 --- a/doc/development/contributing/issue_workflow.md +++ b/doc/development/contributing/issue_workflow.md @@ -2,12 +2,12 @@ ## Issue tracker guidelines -**[Search the issue tracker](https://gitlab.com/gitlab-org/gitlab-ce/issues)** for similar entries before +**[Search the issue tracker](https://gitlab.com/gitlab-org/gitlab-foss/issues)** for similar entries before submitting your own, there's a good chance somebody else had the same issue or feature proposal. Show your support with an award emoji and/or join the discussion. -Please submit bugs using the ['Bug' issue template](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab/issue_templates/Bug.md) provided on the issue tracker. +Please submit bugs using the ['Bug' issue template](https://gitlab.com/gitlab-org/gitlab/blob/master/.gitlab/issue_templates/Bug.md) provided on the issue tracker. The text in the parenthesis is there to help you with what to include. Omit it when submitting the actual issue. You can copy-paste it and then edit as you see fit. @@ -16,7 +16,7 @@ see fit. Our issue triage policies are [described in our handbook](https://about.gitlab.com/handbook/engineering/issue-triage/). You are very welcome to help the GitLab team triage issues. -We also organize [issue bash events](https://gitlab.com/gitlab-org/gitlab-ce/issues/17815) +We also organize [issue bash events](https://gitlab.com/gitlab-org/gitlab-foss/issues/17815) once every quarter. The most important thing is making sure valid issues receive feedback from the @@ -34,7 +34,7 @@ running on [quality/triage-ops](https://gitlab.com/gitlab-org/quality/triage-ops ## Labels To allow for asynchronous issue handling, we use [milestones](https://gitlab.com/groups/gitlab-org/-/milestones) -and [labels](https://gitlab.com/gitlab-org/gitlab-ce/-/labels). Leads and product managers handle most of the +and [labels](https://gitlab.com/gitlab-org/gitlab-foss/-/labels). Leads and product managers handle most of the scheduling into milestones. Labelling is a task for everyone. Most issues will have labels for at least one of the following: @@ -52,7 +52,7 @@ Most issues will have labels for at least one of the following: - Severity: ~S1, ~S2, ~S3, ~S4 All labels, their meaning and priority are defined on the -[labels page](https://gitlab.com/gitlab-org/gitlab-ce/-/labels). +[labels page](https://gitlab.com/gitlab-org/gitlab-foss/-/labels). If you come across an issue that has none of these, and you're allowed to set labels, you can _always_ add the team and type, and often also the subject. @@ -360,18 +360,18 @@ features from GitLab EE to GitLab CE, related issues would be labelled with ~"stewardship". A recent example of this was the issue for -[bringing the time tracking API to GitLab CE](https://gitlab.com/gitlab-org/gitlab-ce/issues/25517#note_20019084). +[bringing the time tracking API to GitLab CE](https://gitlab.com/gitlab-org/gitlab-foss/issues/25517#note_20019084). ## Feature proposals To create a feature proposal for CE, open an issue on the -[issue tracker of CE](https://gitlab.com/gitlab-org/gitlab-ce/issues). +[issue tracker of CE](https://gitlab.com/gitlab-org/gitlab-foss/issues). For feature proposals for EE, open an issue on the -[issue tracker of EE](https://gitlab.com/gitlab-org/gitlab-ee/issues). +[issue tracker of EE](https://gitlab.com/gitlab-org/gitlab/issues). In order to help track the feature proposals, we have created a -[`feature`](https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name=feature) label. For the time being, users that are not members +[`feature`](https://gitlab.com/gitlab-org/gitlab-foss/issues?label_name=feature) label. For the time being, users that are not members of the project cannot add labels. You can instead ask one of the [core team](https://about.gitlab.com/community/core-team/) members to add the label ~feature to the issue or add the following code snippet right after your description in a new line: `~feature`. @@ -379,7 +379,7 @@ code snippet right after your description in a new line: `~feature`. Please keep feature proposals as small and simple as possible, complex ones might be edited to make them small and simple. -Please submit Feature Proposals using the ['Feature Proposal' issue template](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab/issue_templates/Feature%20proposal.md) provided on the issue tracker. +Please submit Feature Proposals using the ['Feature Proposal' issue template](https://gitlab.com/gitlab-org/gitlab/blob/master/.gitlab/issue_templates/Feature%20proposal.md) provided on the issue tracker. For changes in the interface, it is helpful to include a mockup. Issues that add to, or change, the interface should be given the ~"UX" label. This will allow the UX team to provide input and guidance. You may @@ -427,13 +427,13 @@ and the merge request. The release manager will [update the notes] in the regression issue as fixes are addressed. -[8.3 Regressions]: https://gitlab.com/gitlab-org/gitlab-ce/issues/4127 +[8.3 Regressions]: https://gitlab.com/gitlab-org/gitlab-foss/issues/4127 [update the notes]: https://gitlab.com/gitlab-org/release-tools/blob/master/doc/pro-tips.md#update-the-regression-issue ## Technical and UX debt In order to track things that can be improved in GitLab's codebase, -we use the ~"technical debt" label in [GitLab's issue tracker](https://gitlab.com/gitlab-org/gitlab-ce/issues). +we use the ~"technical debt" label in [GitLab's issue tracker](https://gitlab.com/gitlab-org/gitlab-foss/issues). For missed user experience requirements, we use the ~"UX debt" label. These labels should be added to issues that describe things that can be improved, diff --git a/doc/development/contributing/merge_request_workflow.md b/doc/development/contributing/merge_request_workflow.md index bdb026d498d..1931dda7151 100644 --- a/doc/development/contributing/merge_request_workflow.md +++ b/doc/development/contributing/merge_request_workflow.md @@ -15,8 +15,8 @@ to be marked as `Accepting Merge Requests`. Please include screenshots or wireframes of the proposed feature if it will also change the UI. Merge requests should be submitted to the appropriate project at GitLab.com, for example -[GitLab CE](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests), -[GitLab EE](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests), +[GitLab CE](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests), +[GitLab EE](https://gitlab.com/gitlab-org/gitlab/merge_requests), [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests), [GitLab Omnibus](https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests), etc. @@ -140,7 +140,7 @@ When writing commit messages, please follow the guidelines below: - The merge request must not contain more than 10 commit messages. If the guidelines are not met, the MR will not pass the -[Danger checks](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/danger/commit_messages/Dangerfile). +[Danger checks](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/danger/commit_messages/Dangerfile). For more information see [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/). Example commit message template that can be used on your machine that embodies the above (guide for [how to apply template](https://codeinthehole.com/tips/a-useful-template-for-commit-messages/)): @@ -244,5 +244,5 @@ request: 1. [The upgrade guide](../../update/upgrading_from_source.md). 1. The [GitLab Installation Guide](../../install/installation.md#1-packages-and-dependencies). 1. The [GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit). -1. The [CI environment preparation](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/scripts/prepare_build.sh). +1. The [CI environment preparation](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/scripts/prepare_build.sh). 1. The [Omnibus package creator](https://gitlab.com/gitlab-org/omnibus-gitlab). diff --git a/doc/development/dangerbot.md b/doc/development/dangerbot.md index 6bf59209d21..a6650a50878 100644 --- a/doc/development/dangerbot.md +++ b/doc/development/dangerbot.md @@ -15,9 +15,9 @@ to the existing rules, then this is the document for you. ## Operation -On startup, Danger reads a [`Dangerfile`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/Dangerfile) +On startup, Danger reads a [`Dangerfile`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/Dangerfile) from the project root. GitLab's Danger code is decomposed into a set of helpers -and plugins, all within the [`danger/`](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/danger/) +and plugins, all within the [`danger/`](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/danger/) subdirectory, so ours just tells Danger to load it all. Danger will then run each plugin against the merge request, collecting the output from each. A plugin may output notifications, warnings, or errors, all of which are copied to the diff --git a/doc/development/database_merge_request_checklist.md b/doc/development/database_merge_request_checklist.md index 48864c81592..09dece27e8d 100644 --- a/doc/development/database_merge_request_checklist.md +++ b/doc/development/database_merge_request_checklist.md @@ -9,7 +9,7 @@ To use the checklist, create a new merge request and click on the "Choose a template" dropdown, then click "Database changes". An example of this checklist can be found at -<https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12463>. +<https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12463>. The source code of the checklist can be found in at -<https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab/merge_request_templates/Database%20changes.md> +<https://gitlab.com/gitlab-org/gitlab/blob/master/.gitlab/merge_request_templates/Database%20changes.md> diff --git a/doc/development/database_review.md b/doc/development/database_review.md index 157c64b514c..57cdc2135aa 100644 --- a/doc/development/database_review.md +++ b/doc/development/database_review.md @@ -36,7 +36,7 @@ A Merge Request author's role is to: - Decide whether a database review is needed. - If database review is needed, add the ~database label. -- Use the [database changes](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab/merge_request_templates/Database%20changes.md) +- Use the [database changes](https://gitlab.com/gitlab-org/gitlab/blob/master/.gitlab/merge_request_templates/Database%20changes.md) merge request template, or include the appropriate items in the MR description. - [Prepare the merge request for a database review](#how-to-prepare-the-merge-request-for-a-database-review). @@ -59,7 +59,7 @@ A database **maintainer**'s role is to: ### Distributing review workload Review workload is distributed using [reviewer roulette](code_review.md#reviewer-roulette) -([example](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25181#note_147551725)). +([example](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/25181#note_147551725)). The MR author should then co-assign the suggested database **reviewer**. When they give their sign-off, they will hand over to the suggested database **maintainer**. diff --git a/doc/development/documentation/feature-change-workflow.md b/doc/development/documentation/feature-change-workflow.md index 38ccae41df4..4512b0fc987 100644 --- a/doc/development/documentation/feature-change-workflow.md +++ b/doc/development/documentation/feature-change-workflow.md @@ -69,7 +69,7 @@ To follow a consistent workflow every month, documentation changes involve the Product Managers, the developer who shipped the feature, and the technical writer for the DevOps stage. Each role is described below. -The Documentation items in the GitLab CE/EE [Feature Proposal issue template](https://gitlab.com/gitlab-org/gitlab-ce/raw/master/.gitlab/issue_templates/Feature%20proposal.md) +The Documentation items in the GitLab CE/EE [Feature Proposal issue template](https://gitlab.com/gitlab-org/gitlab/raw/master/.gitlab/issue_templates/Feature%20proposal.md) and default merge request template will assist you with following this process. ### Product Manager role @@ -112,7 +112,7 @@ For feature issues requiring documentation, follow the process below unless othe in your issue or MR, or write within `#docs` on the GitLab Slack. - If you are working on documentation in a separate MR, ensure that if the code is merged by the 17th, the docs are as well, per the [Engineering Workflow](https://about.gitlab.com/handbook/engineering/workflow/). If the docs are not ready, the PM can approve merging the code if the engineer and tech writer commit to get documentation merged by the 21st. Otherwise the feature is not considered complete, and should not be merged. - A policy for documenting feature-flagged - issues is forthcoming and you are welcome to join the [discussion](https://gitlab.com/gitlab-org/gitlab-ce/issues/56813). + issues is forthcoming and you are welcome to join the [discussion](https://gitlab.com/gitlab-org/gitlab-foss/issues/56813). #### Reviews and merging @@ -131,10 +131,10 @@ All reviewers can help ensure accuracy, clarity, completeness, and adherence to the maintainer can merge the current doc changes (if complete) and create a follow-up doc review issue. - The technical writer can also help decide what docs to merge before the freeze and whether to work on further changes in a follow up MR. - **To request a pre-merge technical writer review**, assign the writer listed for the applicable [DevOps stage](https://about.gitlab.com/handbook/product/categories/#devops-stages). - - **To request a post-merge technical writer review**, [create an issue for one using the Doc Review template](https://gitlab.com/gitlab-org/gitlab-ce/issues/new?issuable_template=Doc%20Review) and link it from the MR that makes the doc change. + - **To request a post-merge technical writer review**, [create an issue for one using the Doc Review template](https://gitlab.com/gitlab-org/gitlab-foss/issues/new?issuable_template=Doc%20Review) and link it from the MR that makes the doc change. 1. **The maintainer** who is assigned to merge the MR, to verify clarity, completeness, and quality, to the best of their ability. -- Upon merging, if a technical writer review has not been performed and there is not yet a linked issue for a follow-up review, the maintainer should [create an issue using the Doc Review template](https://gitlab.com/gitlab-org/gitlab-ce/issues/new?issuable_template=Doc%20Review), link it from the MR, and +- Upon merging, if a technical writer review has not been performed and there is not yet a linked issue for a follow-up review, the maintainer should [create an issue using the Doc Review template](https://gitlab.com/gitlab-org/gitlab-foss/issues/new?issuable_template=Doc%20Review), link it from the MR, and mention the original MR author in the new issue. Alternatively, the maintainer can ask the MR author to create and link this issue before the MR is merged. - After merging, documentation changes are reviewed by: diff --git a/doc/development/documentation/improvement-workflow.md b/doc/development/documentation/improvement-workflow.md index 80fbd4b6427..9f3b789712f 100644 --- a/doc/development/documentation/improvement-workflow.md +++ b/doc/development/documentation/improvement-workflow.md @@ -47,17 +47,17 @@ The process can involve the following parties/phases, and is replicated in the ` **1. Primary Reviewer** - Review by a [code reviewer](https://about.gitlab.com/handbook/engineering/projects/) or other appropriate colleague to confirm accuracy, clarity, and completeness. This can be skipped for minor fixes without substantive content changes. **2. Technical Writer** - Optional - If not requested for this MR, must be scheduled post-merge. To request a pre-merge review, assign the writer listed for the applicable [DevOps stage](https://about.gitlab.com/handbook/product/categories/#devops-stages). -To request a post-merge review, [create an issue for one using the Doc Review template](https://gitlab.com/gitlab-org/gitlab-ce/issues/new?issuable_template=Doc%20Review) and link it from the MR that makes the doc change. +To request a post-merge review, [create an issue for one using the Doc Review template](https://gitlab.com/gitlab-org/gitlab-foss/issues/new?issuable_template=Doc%20Review) and link it from the MR that makes the doc change. **3. Maintainer** 1. Review by assigned maintainer, who can always request/require the above reviews. Maintainer review can occur before or after a technical writer review. 1. Ensure a release milestone of the format XX.Y is set. If the freeze for that release has begun, add the label `pick into <XX.Y>` unless this change is not required for the release. In that case, simply change the milestone. 1. If EE and CE MRs exist, merge the EE MR first, then the CE MR. -1. After merging, if there has not been a technical writer review and an issue for a follow-up review was not already created and linked from the MR, [create the issue using the Doc Review template](https://gitlab.com/gitlab-org/gitlab-ce/issues/new?issuable_template=Doc%20Review) and link it from the MR. +1. After merging, if there has not been a technical writer review and an issue for a follow-up review was not already created and linked from the MR, [create the issue using the Doc Review template](https://gitlab.com/gitlab-org/gitlab-foss/issues/new?issuable_template=Doc%20Review) and link it from the MR. ## Other ways to help If you have ideas for further documentation resources that would be best -considered/handled by technical writers, devs, and other SMEs, please [create an issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/new?issuable_template=Documentation) +considered/handled by technical writers, devs, and other SMEs, please [create an issue](https://gitlab.com/gitlab-org/gitlab-foss/issues/new?issuable_template=Documentation) using the Documentation template. diff --git a/doc/development/documentation/index.md b/doc/development/documentation/index.md index 87892722d5e..4ad24d08d17 100644 --- a/doc/development/documentation/index.md +++ b/doc/development/documentation/index.md @@ -28,7 +28,7 @@ The source of the documentation exists within the codebase of each GitLab applic | --- | --- | | [GitLab](https://gitlab.com/gitlab-org/gitlab/) | [`/doc`](https://gitlab.com/gitlab-org/gitlab/tree/master/doc) | | [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/) | [`/docs`](https://gitlab.com/gitlab-org/gitlab-runner/tree/master/docs) | -| [Omnibus GitLab](https://gitlab.com/gitlab-org/omnibus-gitlab/) | [`/doc`](https://gitlab.com/gitlab-org/gitlab-ee/tree/master/doc) | +| [Omnibus GitLab](https://gitlab.com/gitlab-org/omnibus-gitlab/) | [`/doc`](https://gitlab.com/gitlab-org/gitlab/tree/master/doc) | Documentation issues and merge requests are part of their respective repositories and all have the label `Documentation`. diff --git a/doc/development/documentation/styleguide.md b/doc/development/documentation/styleguide.md index 39b5e191a7b..79797107a5b 100644 --- a/doc/development/documentation/styleguide.md +++ b/doc/development/documentation/styleguide.md @@ -124,8 +124,8 @@ Because we want documentation to be a SSOT, we should [organize by topic, not by ### Folder structure overview -The documentation is separated by top-level audience folders [`user`](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/user), -[`administration`](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/administration), and [`development`](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/development) (contributing) folders. +The documentation is separated by top-level audience folders [`user`](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/doc/user), +[`administration`](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/doc/administration), and [`development`](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/doc/development) (contributing) folders. Beyond that, we primarily follow the structure of the GitLab user interface or API. @@ -503,7 +503,7 @@ Instead: Example: ```md -For more information, see the [confidential issue](../../user/project/issues/confidential_issues.md) `https://gitlab.com/gitlab-org/gitlab-ce/issues/<issue_number>`. +For more information, see the [confidential issue](../../user/project/issues/confidential_issues.md) `https://gitlab.com/gitlab-org/gitlab-foss/issues/<issue_number>`. ``` ## Navigation @@ -526,7 +526,7 @@ To indicate the steps of navigation through the UI: number corresponding to the release milestone the image was added to, or corresponding to the release the screenshot was taken from, using the format `image_name_vX_Y.png`. - ([Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/61027) in GitLab 12.1.) + ([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/61027) in GitLab 12.1.) - For example, for a screenshot taken from the pipelines page of GitLab 11.1, a valid name is `pipelines_v11_1.png`. If you're adding an illustration that does not include parts of the UI, @@ -1175,5 +1175,5 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --data "domain_ [cURL]: http://curl.haxx.se/ "cURL website" [single spaces]: http://www.slate.com/articles/technology/technology/2011/01/space_invaders.html [gfm]: ../../user/markdown.md#newlines "GitLab flavored markdown documentation" -[ce-1242]: https://gitlab.com/gitlab-org/gitlab-ce/issues/1242 +[ce-1242]: https://gitlab.com/gitlab-org/gitlab-foss/issues/1242 [doc-restart]: ../../administration/restart_gitlab.md "GitLab restart documentation" diff --git a/doc/development/ee_features.md b/doc/development/ee_features.md index 391361a4b8f..d34c3ce5ba1 100644 --- a/doc/development/ee_features.md +++ b/doc/development/ee_features.md @@ -20,11 +20,11 @@ should be added for EE. Licensed features can be stubbed using the spec helper `stub_licensed_features` in `EE::LicenseHelpers`. You can force Webpack to act as CE by either deleting the `ee/` directory or by -setting the [`IS_GITLAB_EE` environment variable](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/config/helpers/is_ee_env.js) +setting the [`IS_GITLAB_EE` environment variable](https://gitlab.com/gitlab-org/gitlab/blob/master/config/helpers/is_ee_env.js) to something that evaluates as `false`. The same works for running tests (for example `IS_GITLAB_EE=0 yarn jest`). -[ee-as-ce]: https://gitlab.com/gitlab-org/gitlab-ee/issues/2500 +[ee-as-ce]: https://gitlab.com/gitlab-org/gitlab/issues/2500 ## Separation of EE code @@ -36,7 +36,7 @@ implement EE features. Instead, all EE code should be put inside the `ee/` top-level directory. The rest of the code should be as close to the CE files as possible. -[single code base]: https://gitlab.com/gitlab-org/gitlab-ee/issues/2952#note_41016454 +[single code base]: https://gitlab.com/gitlab-org/gitlab/issues/2952#note_41016454 ### EE-specific comments @@ -93,7 +93,7 @@ For instance, it was decided that moving EE-only files from `qa/` to `ee/qa/` would make it difficult to build the `gitLab-{ce,ee}-qa` Docker images and it was [not worth the complexity]. -[not worth the complexity]: https://gitlab.com/gitlab-org/gitlab-ee/issues/4997#note_59764702 +[not worth the complexity]: https://gitlab.com/gitlab-org/gitlab/issues/4997#note_59764702 ### EE-only features @@ -120,7 +120,7 @@ This works because for every path that are present in CE's eager-load/auto-load paths, we add the same `ee/`-prepended path in [`config/application.rb`]. This also applies to views. -[`config/application.rb`]: https://gitlab.com/gitlab-org/gitlab-ee/blob/925d3d4ebc7a2c72964ce97623ae41b8af12538d/config/application.rb#L42-52 +[`config/application.rb`]: https://gitlab.com/gitlab-org/gitlab/blob/925d3d4ebc7a2c72964ce97623ae41b8af12538d/config/application.rb#L42-52 ### EE features based on CE features @@ -170,7 +170,7 @@ still having access the class's implementation with `super`. There are a few gotchas with it: -- you should always [`extend ::Gitlab::Utils::Override`](utilities.md#overridehttpsgitlabcomgitlab-orggitlab-ceblobmasterlibgitlabutilsoverriderb) and use `override` to +- you should always [`extend ::Gitlab::Utils::Override`](utilities.md#overridehttpsgitlabcomgitlab-orggitlab-fossblobmasterlibgitlabutilsoverriderb) and use `override` to guard the "overrider" method to ensure that if the method gets renamed in CE, the EE override won't be silently forgotten. - when the "overrider" would add a line in the middle of the CE @@ -347,8 +347,8 @@ end See [CE MR][ce-mr-full-private] and [EE MR][ee-mr-full-private] for full implementation details. -[ce-mr-full-private]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12373 -[ee-mr-full-private]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2199 +[ce-mr-full-private]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12373 +[ee-mr-full-private]: https://gitlab.com/gitlab-org/gitlab/merge_requests/2199 ### Code in `config/routes` @@ -958,7 +958,7 @@ import mixin from 'ee_else_ce/path/mixin'; - Computed Properties/methods and getters only used in the child import still need a counterpart in CE - For store modules, we will need a CE counterpart too. -- You can see an MR with an example [here](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9762) +- You can see an MR with an example [here](https://gitlab.com/gitlab-org/gitlab/merge_requests/9762) #### `template` tag diff --git a/doc/development/elasticsearch.md b/doc/development/elasticsearch.md index f3ea55d3d5d..1475e356b5b 100644 --- a/doc/development/elasticsearch.md +++ b/doc/development/elasticsearch.md @@ -59,15 +59,15 @@ Additionally, if you need large repos or multiple forks for testing, please cons ## How does it work? -The Elasticsearch integration depends on an external indexer. We ship an [indexer written in Go](https://gitlab.com/gitlab-org/gitlab-elasticsearch-indexer). The user must trigger the initial indexing via a rake task but, after this is done, GitLab itself will trigger reindexing when required via `after_` callbacks on create, update, and destroy that are inherited from [/ee/app/models/concerns/elastic/application_search.rb](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/app/models/concerns/elastic/application_search.rb). +The Elasticsearch integration depends on an external indexer. We ship an [indexer written in Go](https://gitlab.com/gitlab-org/gitlab-elasticsearch-indexer). The user must trigger the initial indexing via a rake task but, after this is done, GitLab itself will trigger reindexing when required via `after_` callbacks on create, update, and destroy that are inherited from [/ee/app/models/concerns/elastic/application_search.rb](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/app/models/concerns/elastic/application_search.rb). All indexing after the initial one is done via `ElasticIndexerWorker` (sidekiq jobs). -Search queries are generated by the concerns found in [ee/app/models/concerns/elastic](https://gitlab.com/gitlab-org/gitlab-ee/tree/master/ee/app/models/concerns/elastic). These concerns are also in charge of access control, and have been a historic source of security bugs so please pay close attention to them! +Search queries are generated by the concerns found in [ee/app/models/concerns/elastic](https://gitlab.com/gitlab-org/gitlab/tree/master/ee/app/models/concerns/elastic). These concerns are also in charge of access control, and have been a historic source of security bugs so please pay close attention to them! ## Existing Analyzers/Tokenizers/Filters -These are all defined in <https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/lib/elasticsearch/git/model.rb> +These are all defined in <https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/elasticsearch/git/model.rb> ### Analyzers diff --git a/doc/development/emails.md b/doc/development/emails.md index 5676c3b32f4..91b9e11f7f6 100644 --- a/doc/development/emails.md +++ b/doc/development/emails.md @@ -19,7 +19,7 @@ The previews live in [`app/mailers/previews`][previews] and can be viewed at See the [Rails guides] for more info. -[previews]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/app/mailers/previews +[previews]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master/app/mailers/previews [Rails guides]: http://guides.rubyonrails.org/action_mailer_basics.html#previewing-emails ## Incoming email diff --git a/doc/development/event_tracking/backend.md b/doc/development/event_tracking/backend.md new file mode 100644 index 00000000000..c571439af8a --- /dev/null +++ b/doc/development/event_tracking/backend.md @@ -0,0 +1,34 @@ +# Backend tracking guide + +GitLab provides `Gitlab::Tracking`, an interface that wraps the [Snowplow Ruby Tracker](https://github.com/snowplow/snowplow/wiki/ruby-tracker) for tracking custom events. + +## Tracking in Ruby + +Custom event tracking and instrumentation can be added by directly calling the `GitLab::Tracking.event` class method, which accepts the following arguments: + +| argument | type | default value | description | +|:-----------|:-------|:---------------------------|:------------| +| `category` | string | 'application' | Area or aspect of the application. This could be `HealthCheckController` or `Lfs::FileTransformer` for instance. | +| `action` | string | 'generic' | The action being taken, which can be anything from a controller action like `create` to something like an Active Record callback. | +| `data` | object | {} | Additional data such as `label`, `property`, `value`, and `context` as described [in our Feature Instrumentation taxonomy](https://about.gitlab.com/handbook/product/feature-instrumentation/#taxonomy). These will be set as empty strings if you don't provide them. | + +Tracking can be viewed as either tracking user behavior, or can be utilized for instrumentation to monitor and visual performance over time in an area or aspect of code. + +For example: + +```ruby +class Projects::CreateService < BaseService + def execute + project = Project.create(params) + + Gitlab::Tracking.event('Projects::CreateService', 'create_project', + label: project.errors.full_messages.to_sentence, + value: project.valid? + ) + end +end +``` + +### Performance + +We use the [AsyncEmitter](https://github.com/snowplow/snowplow/wiki/Ruby-Tracker#52-the-asyncemitter-class) when tracking events, which allows for instrumentation calls to be run in a background thread. This is still an active area of development. diff --git a/doc/development/event_tracking/frontend.md b/doc/development/event_tracking/frontend.md new file mode 100644 index 00000000000..cdc2e94bf9e --- /dev/null +++ b/doc/development/event_tracking/frontend.md @@ -0,0 +1,143 @@ +# Frontend tracking guide + +GitLab provides `Tracking`, an interface that wraps the [Snowplow Javascript Tracker](https://github.com/snowplow/snowplow/wiki/javascript-tracker) for tracking custom events. There are a few ways to utilizing tracking, but each generally requires at minimum, a `category` and an `action`. Additional data can be provided that adheres to our [Feature instrumentation taxonomy](https://about.gitlab.com/handbook/product/feature-instrumentation/#taxonomy). + +| field | type | default value | description | +|:-----------|:-------|:---------------------------|:------------| +| `category` | string | document.body.dataset.page | Page or subsection of a page that events are being captured within. | +| `action` | string | 'generic' | Action the user is taking. Clicks should be `click` and activations should be `activate`, so for example, focusing a form field would be `activate_form_input`, and clicking a button would be `click_button`. | +| `data` | object | {} | Additional data such as `label`, `property`, `value`, and `context` as described [in our Feature Instrumentation taxonomy](https://about.gitlab.com/handbook/product/feature-instrumentation/#taxonomy). | + +## Tracking in HAML (or Vue Templates) + +When working within HAML (or Vue templates) we can add `data-track-*` attributes to elements of interest. All elements that have a `data-track-event` attribute will automatically have event tracking bound on clicks. + +Below is an example of `data-track-*` attributes assigned to a button: + +```haml +%button.btn{ data: { track: { event: "click_button", label: "template_preview", property: "my-template" } } } +``` + +```html +<button class="btn" + data-track-event="click_button" + data-track-label="template_preview" + data-track-property="my-template" +/> +``` + +Event listeners are bound at the document level to handle click events on or within elements with these data attributes. This allows for them to be properly handled on rerendering and changes to the DOM, but it's important to know that because of the way these events are bound, click events shouldn't be stopped from propagating up the DOM tree. If for any reason click events are being stopped from propagating, you'll need to implement your own listeners and follow the instructions in [Tracking in raw Javascript](#tracking-in-raw-javascript). + +Below is a list of supported `data-track-*` attributes: + +| attribute | required | description | +|:----------------------|:---------|:------------| +| `data-track-event` | true | Action the user is taking. Clicks must be prepended with `click` and activations must be prepended with `activate`. For example, focusing a form field would be `activate_form_input` and clicking a button would be `click_button`. | +| `data-track-label` | false | The `label` as described [in our Feature Instrumentation taxonomy](https://about.gitlab.com/handbook/product/feature-instrumentation/#taxonomy). | +| `data-track-property` | false | The `property` as described [in our Feature Instrumentation taxonomy](https://about.gitlab.com/handbook/product/feature-instrumentation/#taxonomy). | +| `data-track-value` | false | The `value` as described [in our Feature Instrumentation taxonomy](https://about.gitlab.com/handbook/product/feature-instrumentation/#taxonomy). If omitted, this will be the elements `value` property or an empty string. For checkboxes, the default value will be the element's checked attribute or `false` when unchecked. | +| `data-track-context` | false | The `context` as described [in our Feature Instrumentation taxonomy](https://about.gitlab.com/handbook/product/feature-instrumentation/#taxonomy). | + +## Tracking within Vue components + +There's a tracking Vue mixin that can be used in components if more complex tracking is required. To use it, first import the `Tracking` library and request a mixin. + +```javascript +import Tracking from '~/tracking'; +const trackingMixin = Tracking.mixin({ label: 'right_sidebar' }); +``` + +You can provide default options that will be passed along whenever an event is tracked from within your component. For instance, if all events within a component should be tracked with a given `label`, you can provide one at this time. Available defaults are `category`, `label`, `property`, and `value`. If no category is specified, `document.body.dataset.page` is used as the default. + +You can then use the mixin normally in your component with the `mixin`, Vue declaration. The mixin also provides the ability to specify tracking options in `data` or `computed`. These will override any defaults and allows the values to be dynamic from props, or based on state. + +```javascript +export default { + mixins: [trackingMixin], + // ...[component implementation]... + data() { + return { + expanded: false, + tracking: { + label: 'left_sidebar' + } + }; + }, +} +``` + +The mixin provides a `track` method that can be called within the template, or from component methods. An example of the whole implementation might look like the following. + +```javascript +export default { + mixins: [Tracking.mixin({ label: 'right_sidebar' })], + data() { + return { + expanded: false, + }; + }, + methods: { + toggle() { + this.expanded = !this.expanded; + this.track('click_toggle', { value: this.expanded }) + } + } +}; +``` + +And if needed within the template, you can use the `track` method directly as well. + +```html +<template> + <div> + <a class="toggle" @click.prevent="toggle">Toggle</a> + <div v-if="expanded"> + <p>Hello world!</p> + <a @click.prevent="track('click_action')">Track an event</a> + </div> + </div> +</template> +``` + +## Tracking in raw Javascript + +Custom event tracking and instrumentation can be added by directly calling the `Tracking.event` static function. The following example demonstrates tracking a click on a button by calling `Tracking.event` manually. + +```javascript +import Tracking from `~/tracking`; + +const button = document.getElementById('create_from_template_button'); +button.addEventListener('click', () => { + Tracking.event('dashboard:projects:index', 'click_button', { + label: 'create_from_template', + property: 'template_preview', + value: 'rails', + }); +}) +``` + +## Tests and test helpers + +In Karma tests, you can use the following: + +```javascript +import { mockTracking, triggerEvent } from 'spec/helpers/tracking_helper'; + +describe('my component', () => { + let trackingSpy; + + beforeEach(() => { + const vm = mountComponent(MyComponent); + trackingSpy = mockTracking('_category_', vm.$el, spyOn); + }); + + it('tracks an event when toggled', () => { + triggerEvent('a.toggle'); + + expect(trackingSpy).toHaveBeenCalledWith('_category_', 'click_edit_button', { + label: 'right_sidebar', + property: 'confidentiality', + }); + }); +}); +``` diff --git a/doc/development/event_tracking/index.md b/doc/development/event_tracking/index.md new file mode 100644 index 00000000000..efc61d13cb0 --- /dev/null +++ b/doc/development/event_tracking/index.md @@ -0,0 +1,74 @@ +# Event tracking + +At GitLab, we encourage event tracking so we can iterate on and improve the project and user experience. + +We do this by running experiments, and collecting analytics for features and feature variations. This is: + +- So we generally know engagement. +- A way to approach A/B testing. + +As developers, we should attempt to add tracking and instrumentation where possible. This enables the Product team to better understand: + +- User engagement. +- Usage patterns. +- Other metrics that can potentially be improved on. + +To maintain consistency, and not adversely effect performance, we have some basic tracking functionality exposed at both the frontend and backend layers that can be utilized while building new features or updating existing features. + +We also encourage users to enable tracking, and we embrace full transparency with our tracking approach so it can be easily understood and trusted. By enabling tracking, users can: + +- Contribute back to the wider community. +- Help GitLab improve on the product. + +## Implementing tracking + +Event tracking can be implemented on either the frontend or the backend layers, and each can be approached slightly differently since they have slightly different concerns. + +In GitLab, many actions can be initiated via the web interface, but they can also be initiated via an API client (an iOS applications is a good example of this), or via `git` directly. Crucially, this means that tracking should be considered holistically for the feature that's being instrumented. + +The data team should be involved when defining analytics and can be consulted when coming up with ways of presenting data that's being tracked. This allows our event data to be considered carefully and presented in ways that may reveal details about user engagement that may not be fully understood or interactions where we can make improvements. You can [contact the data team](https://about.gitlab.com/handbook/business-ops/data-team/#contact-us) and consult with them when defining tracking strategies. + +### Frontend + +Generally speaking, the frontend can track user actions and events, like: + +- Clicking links or buttons. +- Submitting forms. +- Other typically interface-driven actions. + +See [Frontend tracking guide](frontend.md). + +### Backend + +From the backend, the events that are tracked will likely consist of things like the creation or deletion of records and other events that might be triggered from layers that aren't necessarily only available in the interface. + +See [Backend tracking guide](backend.md). + +## Enabling tracking + +Tracking can be enabled at: + +- The instance level, which will enable tracking on both the frontend and backend layers. +- User level, though user tracking can be disabled on a per-user basis. GitLab tracking respects the [Do Not Track](https://www.eff.org/issues/do-not-track) standard, so any user who has enabled the Do Not Track option in their browser will also not be tracked from a user level. + +We utilize Snowplow for the majority of our tracking strategy, and it can be enabled by navigating to: + +- **Admin area > Settings > Integrations** in the UI. +- `admin/application_settings/integrations` in your browser. + +The following configuration is required: + +| Name | Value | +| ------------- | ------------------------- | +| Collector | `snowplow.trx.gitlab.net` | +| Site ID | `gitlab` | +| Cookie domain | `.gitlab.com` | + +Once enabled, tracking events can be inspected locally by either: + +- Looking at the network panel of the browser's development tools +- Using the [Snowplow Chrome Extension](https://chrome.google.com/webstore/detail/snowplow-inspector/maplkdomeamdlngconidoefjpogkmljm). + +## Additional libraries + +Session tracking is handled by [Pendo](https://www.pendo.io/), which is a purely client library and is a relatively minor development concern but is worth including in this documentation. diff --git a/doc/development/fe_guide/components.md b/doc/development/fe_guide/components.md index 096ce8ca25a..e88827f78c1 100644 --- a/doc/development/fe_guide/components.md +++ b/doc/development/fe_guide/components.md @@ -44,7 +44,7 @@ See also the [corresponding UX guide](https://design.gitlab.com/#/components/dro See also the [corresponding UX guide](https://design.gitlab.com/#/components/modals). -We have a reusable Vue component for modals: [vue_shared/components/gl_modal.vue](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/assets/javascripts/vue_shared/components/gl_modal.vue) +We have a reusable Vue component for modals: [vue_shared/components/gl_modal.vue](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/app/assets/javascripts/vue_shared/components/gl_modal.vue) Here is an example of how to use it: diff --git a/doc/development/fe_guide/design_patterns.md b/doc/development/fe_guide/design_patterns.md index 2f372f783f5..0893299540f 100644 --- a/doc/development/fe_guide/design_patterns.md +++ b/doc/development/fe_guide/design_patterns.md @@ -77,4 +77,4 @@ new Foo({ container: '.my-element' }); You can find an example of the above in this [class][container-class-example]; -[container-class-example]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/assets/javascripts/mini_pipeline_graph_dropdown.js +[container-class-example]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/app/assets/javascripts/mini_pipeline_graph_dropdown.js diff --git a/doc/development/fe_guide/development_process.md b/doc/development/fe_guide/development_process.md index 9224a2548ab..41513e6d57e 100644 --- a/doc/development/fe_guide/development_process.md +++ b/doc/development/fe_guide/development_process.md @@ -23,7 +23,7 @@ Please use your best judgement when to use it and please contribute new points t - [ ] Are all necessary UX specifications available that you will need in order to implement? Are there new UX components/patterns in the designs? Then contact the UI component team early on. How should error messages or validation be handled? - [ ] **Library usage** Use Vuex as soon as you have even a medium state to manage, use Vue router if you need to have different views internally and want to link from the outside. Check what libraries we already have for which occasions. - [ ] **Plan your implementation:** - - [ ] **Architecture plan:** Create a plan aligned with GitLab's architecture, how you are going to do the implementation, for example Vue application setup and its components (through [onion skinning](https://gitlab.com/gitlab-org/gitlab-ce/issues/35873#note_39994091)), Store structure and data flow, which existing Vue components can you reuse. It's a good idea to go through your plan with another engineer to refine it. + - [ ] **Architecture plan:** Create a plan aligned with GitLab's architecture, how you are going to do the implementation, for example Vue application setup and its components (through [onion skinning](https://gitlab.com/gitlab-org/gitlab-foss/issues/35873#note_39994091)), Store structure and data flow, which existing Vue components can you reuse. It's a good idea to go through your plan with another engineer to refine it. - [ ] **Backend:** The best way is to kickoff the implementation in a call and discuss with the assigned Backend engineer what you will need from the backend and also when. Can you reuse existing API's? How is the performance with the planned architecture? Maybe create together a JSON mock object to already start with development. - [ ] **Communication:** It also makes sense to have for bigger features an own slack channel (normally called #f_{feature_name}) and even weekly demo calls with all people involved. - [ ] **Dependency Plan:** Are there big dependencies in the plan between you and others, then maybe create an execution diagram to show what is blocking which part and the order of the different parts. diff --git a/doc/development/fe_guide/event_tracking.md b/doc/development/fe_guide/event_tracking.md index 1b417d4c8c2..13f107eebb1 100644 --- a/doc/development/fe_guide/event_tracking.md +++ b/doc/development/fe_guide/event_tracking.md @@ -1,88 +1,5 @@ -# Event tracking +--- +redirect_to: '../event_tracking/index.md' +--- -GitLab provides `Tracking`, an interface that wraps -[Snowplow](https://github.com/snowplow/snowplow) for tracking custom events. -It uses Snowplow's custom event tracking functions. - -The tracking interface can be imported in JS files as follows: - -```javascript -import Tracking from `~/tracking`; -``` - -## Tracking in HAML or Vue templates - -To avoid having to do create a bunch of custom javascript event handlers, when working within HAML or Vue templates, we can add `data-track-*` attributes to elements of interest. This way, all elements that have a `data-track-event` attribute to automatically have event tracking bound. - -Below is an example of `data-track-*` attributes assigned to a button in HAML: - -```haml -%button.btn{ data: { track_event: "click_button", track_label: "template_preview", track_property: "my-template", track_value: "" } } -``` - -We can then setup tracking for large sections of a page, or an entire page by telling the Tracking interface to bind to it. - -```javascript -import Tracking from '~/tracking'; - -// for the entire document -new Tracking().bind(); - -// for a container element -document.addEventListener('DOMContentLoaded', () => { - new Tracking('my_category').bind(document.getElementById('my-container')); -}); - -``` - -When you instantiate a Tracking instance you can provide a category. If none is provided, `document.body.dataset.page` will be used. When you bind the Tracking instance you can provide an element. If no element is provided to bind to, the `document` is assumed. - -Below is a list of supported `data-track-*` attributes: - -| attribute | required | description | -|:----------------------|:---------|:------------| -| `data-track-event` | true | Action the user is taking. Clicks should be `click` and activations should be `activate`, so for example, focusing a form field would be `activate_form_input`, and clicking a button would be `click_button`. | -| `data-track-label` | false | The `label` as described [in our Feature Instrumentation taxonomy](https://about.gitlab.com/handbook/product/feature-instrumentation/#taxonomy). | -| `data-track-property` | false | The `property` as described [in our Feature Instrumentation taxonomy](https://about.gitlab.com/handbook/product/feature-instrumentation/#taxonomy). | -| `data-track-value` | false | The `value` as described [in our Feature Instrumentation taxonomy](https://about.gitlab.com/handbook/product/feature-instrumentation/#taxonomy). If omitted, this will be the elements `value` property or an empty string. For checkboxes, the default value will be the element's checked attribute or `false` when unchecked. | - -## Tracking in raw Javascript - -Custom events can be tracked by directly calling the `Tracking.event` static function, which accepts the following arguments: - -| argument | type | default value | description | -|:-----------|:-------|:---------------------------|:------------| -| `category` | string | document.body.dataset.page | Page or subsection of a page that events are being captured within. | -| `event` | string | 'generic' | Action the user is taking. Clicks should be `click` and activations should be `activate`, so for example, focusing a form field would be `activate_form_input`, and clicking a button would be `click_button`. | -| `data` | object | {} | Additional data such as `label`, `property`, and `value` as described [in our Feature Instrumentation taxonomy](https://about.gitlab.com/handbook/product/feature-instrumentation/#taxonomy). These will be set as empty strings if you don't provide them. | - -Tracking can be programmatically added to an event of interest in Javascript, and the following example demonstrates tracking a click on a button by calling `Tracking.event` manually. - -```javascript -import Tracking from `~/tracking`; - -document.getElementById('my_button').addEventListener('click', () => { - Tracking.event('dashboard:projects:index', 'click_button', { - label: 'create_from_template', - property: 'template_preview', - value: 'rails', - }); -}) -``` - -## Toggling tracking on or off - -Snowplow can be enabled by navigating to: - -- **Admin area > Settings > Integrations** in the UI. -- `admin/application_settings/integrations` in your browser. - -The following configuration is required: - -| Name | Value | -| ------------- | ------------------------- | -| Collector | `snowplow.trx.gitlab.net` | -| Site ID | `gitlab` | -| Cookie domain | `.gitlab.com` | - -Now the implemented tracking events can be inspected locally by looking at the network panel of the browser's development tools. +This document was moved to [another location](../event_tracking/frontend.md). diff --git a/doc/development/fe_guide/frontend_faq.md b/doc/development/fe_guide/frontend_faq.md index 0d2aeffeac0..2ec3f8017a1 100644 --- a/doc/development/fe_guide/frontend_faq.md +++ b/doc/development/fe_guide/frontend_faq.md @@ -17,6 +17,8 @@ ### How do I find the Rails route for a page? +#### Check the 'page' data attribute + The easiest way is to type the following in the browser while on the page in question: @@ -24,7 +26,16 @@ question: document.body.dataset.page ``` -Find here the [source code setting the attribute](https://gitlab.com/gitlab-org/gitlab-ce/blob/cc5095edfce2b4d4083a4fb1cdc7c0a1898b9921/app/views/layouts/application.html.haml#L4). +Find here the [source code setting the attribute](https://gitlab.com/gitlab-org/gitlab-foss/blob/cc5095edfce2b4d4083a4fb1cdc7c0a1898b9921/app/views/layouts/application.html.haml#L4). + +#### Rails routes + +The `rake routes` command can be used to list all the routes available in the application, piping the output into `grep`, we can perform a search through the list of available routes. +The output includes the request types available, route parameters and the relevant controller. + +```sh +bundle exec rake routes | grep "issues" +``` ### `modal_copy_button` vs `clipboard_button` diff --git a/doc/development/fe_guide/graphql.md b/doc/development/fe_guide/graphql.md index 4fc5dfc8c3d..366c2894b81 100644 --- a/doc/development/fe_guide/graphql.md +++ b/doc/development/fe_guide/graphql.md @@ -119,6 +119,6 @@ Read more about the [Apollo] client in the [Apollo documentation](https://www.ap [Apollo]: https://www.apollographql.com/ [vue-apollo]: https://github.com/Akryum/vue-apollo/ [feature-flags]: ../feature_flags.md -[default-client]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/assets/javascripts/lib/graphql.js +[default-client]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/app/assets/javascripts/lib/graphql.js [vue-test-utils]: https://vue-test-utils.vuejs.org/ [apollo-link-state]: https://www.apollographql.com/docs/link/links/state.html diff --git a/doc/development/fe_guide/index.md b/doc/development/fe_guide/index.md index deaef8e768b..4cccd4aa5fb 100644 --- a/doc/development/fe_guide/index.md +++ b/doc/development/fe_guide/index.md @@ -69,10 +69,6 @@ How we use SVG for our Icons and Illustrations. How we use UI components. -## [Event Tracking](event_tracking.md) - -How we use Snowplow to track custom events. - ## Frontend FAQ Read the [frontend's FAQ](frontend_faq.md) for common small pieces of helpful information. diff --git a/doc/development/fe_guide/performance.md b/doc/development/fe_guide/performance.md index 3a8ea04407f..bcd22a170e1 100644 --- a/doc/development/fe_guide/performance.md +++ b/doc/development/fe_guide/performance.md @@ -65,7 +65,7 @@ within the `pages` directory correspond to Rails controllers and actions. These auto-generated bundles will be automatically included on the corresponding pages. -For example, if you were to visit [gitlab.com/gitlab-org/gitlab-ce/issues](https://gitlab.com/gitlab-org/gitlab-ce/issues), +For example, if you were to visit [gitlab.com/gitlab-org/gitlab-foss/issues](https://gitlab.com/gitlab-org/gitlab-foss/issues), you would be accessing the `app/controllers/projects/issues_controller.rb` controller with the `index` action. If a corresponding file exists at `pages/projects/issues/index/index.js`, it will be compiled into a webpack diff --git a/doc/development/fe_guide/style_guide_js.md b/doc/development/fe_guide/style_guide_js.md index 125b11afcd0..db076243812 100644 --- a/doc/development/fe_guide/style_guide_js.md +++ b/doc/development/fe_guide/style_guide_js.md @@ -7,7 +7,7 @@ See the relevant style guides for our guidelines and for information on linting: We defer to [Airbnb][airbnb-js-style-guide] on most style-related conventions and enforce them with eslint. -See [our current .eslintrc](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.eslintrc.yml) for specific rules and patterns. +See [our current .eslintrc](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/.eslintrc.yml) for specific rules and patterns. ### Common @@ -392,7 +392,7 @@ Please check this [rules][eslint-plugin-vue-rules] for more documentation. <component my-prop="prop" /> ``` -[#34371]: https://gitlab.com/gitlab-org/gitlab-ce/issues/34371 +[#34371]: https://gitlab.com/gitlab-org/gitlab-foss/issues/34371 #### Alignment @@ -713,7 +713,7 @@ The goal of this accord is to make sure we are all on the same page. - [SCSS](style_guide_scss.md) [airbnb-js-style-guide]: https://github.com/airbnb/javascript -[eslintrc]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.eslintrc +[eslintrc]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/.eslintrc [eslint-plugin-vue]: https://github.com/vuejs/eslint-plugin-vue [eslint-plugin-vue-rules]: https://github.com/vuejs/eslint-plugin-vue#bulb-rules [vue-order]: https://github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/order-in-components.md diff --git a/doc/development/fe_guide/style_guide_scss.md b/doc/development/fe_guide/style_guide_scss.md index 95c4a094c04..d5af19e0ea4 100644 --- a/doc/development/fe_guide/style_guide_scss.md +++ b/doc/development/fe_guide/style_guide_scss.md @@ -13,12 +13,12 @@ led by the [GitLab UI WG](https://gitlab.com/gitlab-com/www-gitlab-com/merge_req #### Where are utility classes defined? - [Bootstrap's Utility Classes](https://getbootstrap.com/docs/4.3/utilities/) -- [`common.scss`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/assets/stylesheets/framework/common.scss) (old) -- [`utilities.scss`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/assets/stylesheets/utilities.scss) (new) +- [`common.scss`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/app/assets/stylesheets/framework/common.scss) (old) +- [`utilities.scss`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/app/assets/stylesheets/utilities.scss) (new) #### Where should I put new utility classes? -New utility classes should be added to [`utilities.scss`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/assets/stylesheets/utilities.scss). Existing classes include: +New utility classes should be added to [`utilities.scss`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/app/assets/stylesheets/utilities.scss). Existing classes include: | Name | Pattern | Example | |------|---------|---------| @@ -41,8 +41,8 @@ This encourages an organic growth of component classes and prevents the creation Examples of component classes that were created using "utility-first" include: -- [`.circle-icon-container`](https://gitlab.com/gitlab-org/gitlab-ce/blob/579fa8b8ec7eb38d40c96521f517c9dab8c3b97a/app/assets/stylesheets/framework/icons.scss#L85) -- [`.d-flex-center`](https://gitlab.com/gitlab-org/gitlab-ce/blob/900083d89cd6af391d26ab7922b3f64fa2839bef/app/assets/stylesheets/framework/common.scss#L425) +- [`.circle-icon-container`](https://gitlab.com/gitlab-org/gitlab-foss/blob/579fa8b8ec7eb38d40c96521f517c9dab8c3b97a/app/assets/stylesheets/framework/icons.scss#L85) +- [`.d-flex-center`](https://gitlab.com/gitlab-org/gitlab-foss/blob/900083d89cd6af391d26ab7922b3f64fa2839bef/app/assets/stylesheets/framework/common.scss#L425) Inspiration: diff --git a/doc/development/fe_guide/vue.md b/doc/development/fe_guide/vue.md index 421b7265613..396467b47d1 100644 --- a/doc/development/fe_guide/vue.md +++ b/doc/development/fe_guide/vue.md @@ -6,9 +6,9 @@ To get started with Vue, read through [their documentation][vue-docs]. What is described in the following sections can be found in these examples: -- web ide: <https://gitlab.com/gitlab-org/gitlab-ce/tree/master/app/assets/javascripts/ide/stores> -- security products: <https://gitlab.com/gitlab-org/gitlab-ee/tree/master/ee/app/assets/javascripts/vue_shared/security_reports> -- registry: <https://gitlab.com/gitlab-org/gitlab-ce/tree/master/app/assets/javascripts/registry/stores> +- web ide: <https://gitlab.com/gitlab-org/gitlab-foss/tree/master/app/assets/javascripts/ide/stores> +- security products: <https://gitlab.com/gitlab-org/gitlab/tree/master/ee/app/assets/javascripts/vue_shared/security_reports> +- registry: <https://gitlab.com/gitlab-org/gitlab-foss/tree/master/app/assets/javascripts/registry/stores> ## Vue architecture @@ -246,8 +246,8 @@ One should apply to be a Vue.js expert by opening an MR when the Merge Request's - Knowledge about the existing Vue and Vuex applications and existing reusable components [vue-docs]: http://vuejs.org/guide/index.html -[issue-boards]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/app/assets/javascripts/boards -[environments-table]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/app/assets/javascripts/environments +[issue-boards]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master/app/assets/javascripts/boards +[environments-table]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master/app/assets/javascripts/environments [page_specific_javascript]: ./performance.md#page-specific-javascript [component-system]: https://vuejs.org/v2/guide/#Composing-with-Components [state-management]: https://vuejs.org/v2/guide/state-management.html#Simple-State-Management-from-Scratch diff --git a/doc/development/fe_guide/vuex.md b/doc/development/fe_guide/vuex.md index 336ef4ab278..bb131746ecf 100644 --- a/doc/development/fe_guide/vuex.md +++ b/doc/development/fe_guide/vuex.md @@ -26,7 +26,7 @@ When using Vuex at GitLab, separate these concerns into different files to impro ``` The following example shows an application that lists and adds users to the state. -(For a more complex example implementation take a look at the security applications store in [here](https://gitlab.com/gitlab-org/gitlab-ee/tree/master/ee/app/assets/javascripts/vue_shared/security_reports/store)) +(For a more complex example implementation take a look at the security applications store in [here](https://gitlab.com/gitlab-org/gitlab/tree/master/ee/app/assets/javascripts/vue_shared/security_reports/store)) ### `index.js` diff --git a/doc/development/feature_flags/development.md b/doc/development/feature_flags/development.md index 98773026122..b338a191f76 100644 --- a/doc/development/feature_flags/development.md +++ b/doc/development/feature_flags/development.md @@ -47,9 +47,9 @@ feature flag once the feature has reached general availability. You'd still want to use an explicit `Feature.enabled?` check if your new feature isn't gated by a License or Plan. -[project-fa]: https://gitlab.com/gitlab-org/gitlab-ee/blob/4cc1c62918aa4c31750cb21dfb1a6c3492d71080/app/models/project_feature.rb#L63-68 -[namespace-fa]: https://gitlab.com/gitlab-org/gitlab-ee/blob/4cc1c62918aa4c31750cb21dfb1a6c3492d71080/ee/app/models/ee/namespace.rb#L71-85 -[license-fa]: https://gitlab.com/gitlab-org/gitlab-ee/blob/4cc1c62918aa4c31750cb21dfb1a6c3492d71080/ee/app/models/license.rb#L293-300 +[project-fa]: https://gitlab.com/gitlab-org/gitlab/blob/4cc1c62918aa4c31750cb21dfb1a6c3492d71080/app/models/project_feature.rb#L63-68 +[namespace-fa]: https://gitlab.com/gitlab-org/gitlab/blob/4cc1c62918aa4c31750cb21dfb1a6c3492d71080/ee/app/models/ee/namespace.rb#L71-85 +[license-fa]: https://gitlab.com/gitlab-org/gitlab/blob/4cc1c62918aa4c31750cb21dfb1a6c3492d71080/ee/app/models/license.rb#L293-300 An important side-effect of the implicit feature flags mentioned above is that unless the feature is explicitly disabled or limited to a percentage of users, diff --git a/doc/development/feature_flags/process.md b/doc/development/feature_flags/process.md index 28d6080ce87..c64b14a05a4 100644 --- a/doc/development/feature_flags/process.md +++ b/doc/development/feature_flags/process.md @@ -54,9 +54,16 @@ absolutely no way to use the feature until it is enabled. In order to build a final release and present the feature for self-hosted users, the feature flag should be at least defaulted to **on**. If the feature is deemed stable and there is confidence that removing the feature flag is safe, -consider removing the feature flag altogether. Take into consideration that such -action can make the feature available on GitLab.com shortly after the change to -the feature flag is merged. +consider removing the feature flag altogether. + +The process for enabling features that are disabled by default can take 5-6 days +from when the merge request is first reviewed to when the change is deployed to +GitLab.com. However, it is recommended to allow 10-14 days for this activity to +account for unforeseen problems. + +NOTE: **Note:** +Take into consideration that such action can make the feature available on +GitLab.com shortly after the change to the feature flag is merged. Changing the default state or removing the feature flag has to be done before the 22nd of the month, _at least_ 2 working days before, in order for the change diff --git a/doc/development/file_storage.md b/doc/development/file_storage.md index 44af2b020a4..8d486df9a8a 100644 --- a/doc/development/file_storage.md +++ b/doc/development/file_storage.md @@ -146,4 +146,4 @@ end [CarrierWave]: https://github.com/carrierwaveuploader/carrierwave [Hashed Storage]: ../administration/repository_storage_types.md [all-in-one rake task]: ../administration/raketasks/uploads/migrate.md -[category list]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/tasks/gitlab/uploads/migrate.rake +[category list]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/tasks/gitlab/uploads/migrate.rake diff --git a/doc/development/filtering_by_label.md b/doc/development/filtering_by_label.md index dd8944ff1c8..6aa7e7a5293 100644 --- a/doc/development/filtering_by_label.md +++ b/doc/development/filtering_by_label.md @@ -40,14 +40,14 @@ In particular, note that: This is more complicated than is ideal. It makes the query construction more prone to errors (such as -[issue #15557](https://gitlab.com/gitlab-org/gitlab-ce/issues/15557)). +[issue #15557](https://gitlab.com/gitlab-org/gitlab-foss/issues/15557)). ## Attempt A: WHERE EXISTS ### Attempt A1: use multiple subqueries with WHERE EXISTS -In [issue #37137](https://gitlab.com/gitlab-org/gitlab-ce/issues/37137) -and its associated [merge request](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14022), +In [issue #37137](https://gitlab.com/gitlab-org/gitlab-foss/issues/37137) +and its associated [merge request](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/14022), we tried to replace the `GROUP BY` with multiple uses of `WHERE EXISTS`. For the example above, this would give: @@ -83,7 +83,7 @@ Having [removed MySQL support in GitLab 12.1](https://about.gitlab.com/2019/06/2 using [Postgres's arrays](https://www.postgresql.org/docs/9.6/arrays.html) became more tractable as we didn't have to support two databases. We discussed denormalizing the `label_links` table for querying in -[issue #49651](https://gitlab.com/gitlab-org/gitlab-ce/issues/49651), +[issue #49651](https://gitlab.com/gitlab-org/gitlab-foss/issues/49651), with two options: label IDs and titles. We can think of both of those as array columns on `issues`, `merge_requests`, @@ -147,7 +147,7 @@ WHERE label_titles @> ARRAY['Plan', 'backend'] ``` -And our [tests in issue #49651](https://gitlab.com/gitlab-org/gitlab-ce/issues/49651#note_188777346) +And our [tests in issue #49651](https://gitlab.com/gitlab-org/gitlab-foss/issues/49651#note_188777346) showed that this could be fast. However, at present, the disadvantages outweigh the advantages. diff --git a/doc/development/geo.md b/doc/development/geo.md index cc3e2d1ccc5..446d85fceed 100644 --- a/doc/development/geo.md +++ b/doc/development/geo.md @@ -192,8 +192,8 @@ needs to be applied to the tracking database on each **secondary** node. ### Configuration -The database configuration is set in [`config/database_geo.yml`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/config/database_geo.yml.postgresql). -The directory [`ee/db/geo`](https://gitlab.com/gitlab-org/gitlab-ee/tree/master/ee/db/geo) +The database configuration is set in [`config/database_geo.yml`](https://gitlab.com/gitlab-org/gitlab/blob/master/config/database_geo.yml.postgresql). +The directory [`ee/db/geo`](https://gitlab.com/gitlab-org/gitlab/tree/master/ee/db/geo) contains the schema and migrations for this database. To write a migration for the database, use the `GeoMigrationGenerator`: @@ -311,7 +311,7 @@ project_registry_table.join(fdw_project_table) ## Finders -Geo uses [Finders](https://gitlab.com/gitlab-org/gitlab-ee/tree/master/app/finders), +Geo uses [Finders](https://gitlab.com/gitlab-org/gitlab/tree/master/app/finders), which are classes take care of the heavy lifting of looking up projects/attachments/etc. in the tracking database and main database. @@ -432,7 +432,7 @@ The process running on the **secondary** node that looks for new ### `Gitlab::Geo` utilities Small utility methods related to Geo go into the -[`ee/lib/gitlab/geo.rb`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/lib/gitlab/geo.rb) +[`ee/lib/gitlab/geo.rb`](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/gitlab/geo.rb) file. Many of these methods are cached using the `RequestStore` class, to diff --git a/doc/development/gitaly.md b/doc/development/gitaly.md index 592fc13873b..792ddeed201 100644 --- a/doc/development/gitaly.md +++ b/doc/development/gitaly.md @@ -81,7 +81,7 @@ While Gitaly can handle all Git access, many of GitLab customers still run Gitaly atop NFS. The legacy Rugged implementation for Git calls may be faster than the Gitaly RPC due to N+1 Gitaly calls and other reasons. See [the -issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/57317) for more +issue](https://gitlab.com/gitlab-org/gitlab-foss/issues/57317) for more details. Until GitLab has eliminated most of these inefficiencies or the use of diff --git a/doc/development/go_guide/index.md b/doc/development/go_guide/index.md index 2df0e846671..1e230a54023 100644 --- a/doc/development/go_guide/index.md +++ b/doc/development/go_guide/index.md @@ -85,7 +85,7 @@ go lint: - golint -set_exit_status $(go list ./... | grep -v "vendor/") ``` -Once [recursive includes](https://gitlab.com/gitlab-org/gitlab-ce/issues/56836) +Once [recursive includes](https://gitlab.com/gitlab-org/gitlab-foss/issues/56836) become available, you will be able to share job templates like this [analyzer](https://gitlab.com/gitlab-org/security-products/ci-templates/raw/master/includes-dev/analyzer.yml). diff --git a/doc/development/gotchas.md b/doc/development/gotchas.md index 10e8008bad3..e492b8ea7c9 100644 --- a/doc/development/gotchas.md +++ b/doc/development/gotchas.md @@ -147,7 +147,7 @@ refresh_service.execute(oldrev, newrev, ref) See ["Why is it bad style to `rescue Exception => e` in Ruby?"][Exception]. _**Note:** This rule is [enforced automatically by -Rubocop](https://gitlab.com/gitlab-org/gitlab-ce/blob/8-4-stable/.rubocop.yml#L911-914)._ +Rubocop](https://gitlab.com/gitlab-org/gitlab-foss/blob/8-4-stable/.rubocop.yml#L911-914)._ [Exception]: http://stackoverflow.com/q/10048173/223897 @@ -156,7 +156,7 @@ Rubocop](https://gitlab.com/gitlab-org/gitlab-ce/blob/8-4-stable/.rubocop.yml#L9 Using the inline `:javascript` Haml filters comes with a performance overhead. Using inline JavaScript is not a good way to structure your code and should be avoided. -_**Note:** We've [removed these two filters](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/initializers/hamlit.rb) +_**Note:** We've [removed these two filters](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/config/initializers/hamlit.rb) in an initializer._ ### Further reading diff --git a/doc/development/i18n/externalization.md b/doc/development/i18n/externalization.md index 141f5a8d6d9..b5e1641abcb 100644 --- a/doc/development/i18n/externalization.md +++ b/doc/development/i18n/externalization.md @@ -1,6 +1,6 @@ # Internationalization for GitLab -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10669) in GitLab 9.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10669) in GitLab 9.2. For working with internationalization (i18n), [GNU gettext](https://www.gnu.org/software/gettext/) is used given it's the most @@ -9,7 +9,7 @@ work with it. ## Setting up GitLab Development Kit (GDK) -In order to be able to work on the [GitLab Community Edition](https://gitlab.com/gitlab-org/gitlab-ce) +In order to be able to work on the [GitLab Community Edition](https://gitlab.com/gitlab-org/gitlab-foss) project you must download and configure it through [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/set-up-gdk.md). Once you have the GitLab project ready, you can start working on the translation. @@ -236,11 +236,11 @@ This makes use of [`Intl.DateTimeFormat`]. - In Ruby/HAML, we have two ways of adding format to dates and times: 1. **Through the `l` helper**, i.e. `l(active_session.created_at, format: :short)`. We have some predefined formats for - [dates](https://gitlab.com/gitlab-org/gitlab-ce/blob/v11.7.0/config/locales/en.yml#L54) and [times](https://gitlab.com/gitlab-org/gitlab-ce/blob/v11.7.0/config/locales/en.yml#L261). + [dates](https://gitlab.com/gitlab-org/gitlab-foss/blob/v11.7.0/config/locales/en.yml#L54) and [times](https://gitlab.com/gitlab-org/gitlab-foss/blob/v11.7.0/config/locales/en.yml#L261). If you need to add a new format, because other parts of the code could benefit from it, - you'll need to add it to [en.yml](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/locales/en.yml) file. + you'll need to add it to [en.yml](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/config/locales/en.yml) file. 1. **Through `strftime`**, i.e. `milestone.start_date.strftime('%b %-d')`. We use `strftime` in case none of the formats - defined on [en.yml](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/locales/en.yml) matches the date/time + defined on [en.yml](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/config/locales/en.yml) matches the date/time specifications we need, and if there is no need to add it as a new format because is very particular (i.e. it's only used in a single view). ## Best practices diff --git a/doc/development/i18n/merging_translations.md b/doc/development/i18n/merging_translations.md index eadf1cd74c5..7a8046ccdd9 100644 --- a/doc/development/i18n/merging_translations.md +++ b/doc/development/i18n/merging_translations.md @@ -5,7 +5,7 @@ added translations to the community of translators. At the same time, it creates a merge request to merge all newly added & approved translations. Find the [merge request created by -`gitlab-crowdin-bot`](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&author_username=gitlab-crowdin-bot) +`gitlab-crowdin-bot`](https://gitlab.com/gitlab-org/gitlab/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&author_username=gitlab-crowdin-bot) to see new and merged merge requests. They are created in EE and need to be ported to CE manually. @@ -15,13 +15,13 @@ By default Crowdin commits translations with `[skip ci]` in the commit message. This is done to avoid a bunch of pipelines being run. Before merging translations, make sure to trigger a pipeline to validate translations, we have static analysis validating things Crowdin -doesn't do. Create a [new pipeline](https://gitlab.com/gitlab-org/gitlab-ee/pipelines/new) for the +doesn't do. Create a [new pipeline](https://gitlab.com/gitlab-org/gitlab/pipelines/new) for the `master-i18n` branch. If there are validation errors, the easiest solution is to disapprove the offending string in Crowdin, leaving a comment with what is required to fix the offense. There is an -[issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/49208) +[issue](https://gitlab.com/gitlab-org/gitlab-foss/issues/49208) suggesting to automate this process. Disapproving will exclude the invalid translation, the merge request will be updated within a few minutes. @@ -32,7 +32,7 @@ clicking `Pause sync` on the [Crowdin integration settings page](https://translate.gitlab.com/project/gitlab-ee/settings#integration). When all failures are resolved, the translations need to be double -checked once more as discussed in [confidential issue](../../user/project/issues/confidential_issues.md) `https://gitlab.com/gitlab-org/gitlab-ce/issues/37850`. +checked once more as discussed in [confidential issue](../../user/project/issues/confidential_issues.md) `https://gitlab.com/gitlab-org/gitlab-foss/issues/37850`. ## Merging translations @@ -44,16 +44,16 @@ source branch` checkbox, so Crowdin recreates the `master-i18n` from master after the new translation was merged. We are discussing automating this entire process -[here](https://gitlab.com/gitlab-org/gitlab-ce/issues/39309). +[here](https://gitlab.com/gitlab-org/gitlab-foss/issues/39309). ## Recreate the merge request Crowdin creates a new merge request as soon as the old one is closed or merged. But it won't recreate the `master-i18n` branch every time. To force Crowdin to recreate the branch, close any [open merge -request](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&author_username=gitlab-crowdin-bot) +request](https://gitlab.com/gitlab-org/gitlab/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&author_username=gitlab-crowdin-bot) and delete the -[`master-18n`](https://gitlab.com/gitlab-org/gitlab-ee/branches/all?utf8=%E2%9C%93&search=master-i18n). +[`master-18n`](https://gitlab.com/gitlab-org/gitlab/branches/all?utf8=%E2%9C%93&search=master-i18n). This might be needed when the merge request contains failures that have been fixed on master. diff --git a/doc/development/i18n/proofreader.md b/doc/development/i18n/proofreader.md index 492e3d48164..db15633fc73 100644 --- a/doc/development/i18n/proofreader.md +++ b/doc/development/i18n/proofreader.md @@ -134,4 +134,4 @@ are very appreciative of the work done by translators and proofreaders! - When a request is made for the first proofreader for a language and there are no [GitLab team members](https://about.gitlab.com/team/) or [Core team members](https://about.gitlab.com/core-team/) who speak the language, we will request links to previous translation work in other communities or projects. -[proofreader-src]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/i18n/proofreader.md +[proofreader-src]: https://gitlab.com/gitlab-org/gitlab/blob/master/doc/development/i18n/proofreader.md diff --git a/doc/development/i18n/translation.md b/doc/development/i18n/translation.md index 15b1af1aa8f..1793afcd86d 100644 --- a/doc/development/i18n/translation.md +++ b/doc/development/i18n/translation.md @@ -83,7 +83,7 @@ Therefore "create a new user" would translate into "Benutzer(in) anlegen". ### Updating the glossary To propose additions to the glossary please -[open an issue](https://gitlab.com/gitlab-org/gitlab-ce/issues). +[open an issue](https://gitlab.com/gitlab-org/gitlab-foss/issues). ## French Translation Guidelines diff --git a/doc/development/import_export.md b/doc/development/import_export.md index 0c343bc22e4..fcfb9bf4915 100644 --- a/doc/development/import_export.md +++ b/doc/development/import_export.md @@ -77,11 +77,11 @@ Marked stuck import jobs as failed. JIDs: xyz | Problem | Possible solutions | | -------- | -------- | -| [Slow JSON](https://gitlab.com/gitlab-org/gitlab-ce/issues/54084) loading/dumping models from the database | [split the worker](https://gitlab.com/gitlab-org/gitlab-ce/issues/54085) | +| [Slow JSON](https://gitlab.com/gitlab-org/gitlab-foss/issues/54084) loading/dumping models from the database | [split the worker](https://gitlab.com/gitlab-org/gitlab-foss/issues/54085) | | | Batch export | | Optimize SQL | | Move away from `ActiveRecord` callbacks (difficult) -| High memory usage (see also some [analysis](https://gitlab.com/gitlab-org/gitlab-ce/issues/35389) | DB Commit sweet spot that uses less memory | +| High memory usage (see also some [analysis](https://gitlab.com/gitlab-org/gitlab-foss/issues/35389) | DB Commit sweet spot that uses less memory | | | [Netflix Fast JSON API](https://github.com/Netflix/fast_jsonapi) may help | | | Batch reading/writing to disk and any SQL @@ -96,7 +96,7 @@ importing big projects, using a foreground import: ## Security The Import/Export feature is constantly updated (adding new things to export), however -the code hasn't been refactored in a long time. We should perform a [code audit](https://gitlab.com/gitlab-org/gitlab-ce/issues/42135) +the code hasn't been refactored in a long time. We should perform a [code audit](https://gitlab.com/gitlab-org/gitlab-foss/issues/42135) to make sure its dynamic nature does not increase the number of security concerns. ### Security in the code diff --git a/doc/development/kubernetes.md b/doc/development/kubernetes.md index f4528667814..5265e5b11cd 100644 --- a/doc/development/kubernetes.md +++ b/doc/development/kubernetes.md @@ -21,7 +21,7 @@ are created within the `gitlab-managed-apps` namespace. In terms of code organization, we generally add objects that represent Kubernetes resources in -[`lib/gitlab/kubernetes`](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/lib/gitlab/kubernetes). +[`lib/gitlab/kubernetes`](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/kubernetes). ### Client library @@ -29,12 +29,12 @@ We use the [`kubeclient`](https://rubygems.org/gems/kubeclient) gem to perform Kubernetes API calls. As the `kubeclient` gem does not support different API Groups (e.g. `apis/rbac.authorization.k8s.io`) from a single client, we have created a wrapper class, -[`Gitlab::Kubernetes::KubeClient`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/kubernetes/kube_client.rb) +[`Gitlab::Kubernetes::KubeClient`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/kubernetes/kube_client.rb) that will enable you to achieve this. Selected Kubernetes API groups are currently supported. Do add support for new API groups or methods to -[`Gitlab::Kubernetes::KubeClient`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/kubernetes/kube_client.rb) +[`Gitlab::Kubernetes::KubeClient`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/kubernetes/kube_client.rb) if you need to use them. New API groups or API group versions can be added to `SUPPORTED_API_GROUPS` - internally, this will create an internal client for that group. New methods can be added as a delegation @@ -54,7 +54,7 @@ worker](sidekiq_style_guide.md). There are instances where you would like to make calls to Kubernetes and return the response and as such a background worker does not seem to be a good fit. For such cases you should make use of [reactive -caching](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/models/concerns/reactive_caching.rb). +caching](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/app/models/concerns/reactive_caching.rb). For example: ```ruby @@ -72,7 +72,7 @@ For example: ### Testing We have some Webmock stubs in -[`KubernetesHelpers`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/spec/support/helpers/kubernetes_helpers.rb) +[`KubernetesHelpers`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/spec/support/helpers/kubernetes_helpers.rb) which can help with mocking out calls to Kubernetes API in your tests. ## Security @@ -87,7 +87,7 @@ a cluster. Mitigation strategies include: 1. Not allowing redirects to attacker controller resources: - [`Kubeclient::KubeClient`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/kubernetes/kube_client.rb#) + [`Kubeclient::KubeClient`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/kubernetes/kube_client.rb#) can be configured to disallow any redirects by passing in `http_max_redirects: 0` as an option. 1. Not exposing error messages: by doing so, we @@ -111,7 +111,7 @@ Logs related to the Kubernetes integration can be found in GDK install, this will be present in `log/kubernetes.log`. Some services such as -[`Clusters::Applications::InstallService`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/services/clusters/applications/install_service.rb#L18) +[`Clusters::Applications::InstallService`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/app/services/clusters/applications/install_service.rb#L18) rescues `StandardError` which can make it harder to debug issues in an development environment. The current workaround is to temporarily comment out the `rescue` in your local development source. diff --git a/doc/development/licensing.md b/doc/development/licensing.md index 0db90d2872f..538c8f2039b 100644 --- a/doc/development/licensing.md +++ b/doc/development/licensing.md @@ -1,6 +1,6 @@ # GitLab Licensing and Compatibility -[GitLab Community Edition](https://gitlab.com/gitlab-org/gitlab-ce/) (CE) is licensed [under the terms of the MIT License][CE]. [GitLab Enterprise Edition](https://gitlab.com/gitlab-org/gitlab-ee/) (EE) is licensed under "[The GitLab Enterprise Edition (EE) license][EE]" wherein there are more restrictions. +[GitLab Community Edition](https://gitlab.com/gitlab-org/gitlab-foss/) (CE) is licensed [under the terms of the MIT License][CE]. [GitLab Enterprise Edition](https://gitlab.com/gitlab-org/gitlab/) (EE) is licensed under "[The GitLab Enterprise Edition (EE) license][EE]" wherein there are more restrictions. ## Automated Testing @@ -106,8 +106,8 @@ Dependencies which are only used in development or test environment are exempt f **NOTE:** This document is **not** legal advice, nor is it comprehensive. It should not be taken as such. -[CE]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/LICENSE -[EE]: https://gitlab.com/gitlab-org/gitlab-ee/blob/master/LICENSE +[CE]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/LICENSE +[EE]: https://gitlab.com/gitlab-org/gitlab/blob/master/LICENSE [license_finder]: https://github.com/pivotal/LicenseFinder [MIT]: http://choosealicense.com/licenses/mit/ [LGPL]: http://choosealicense.com/licenses/lgpl-3.0/ diff --git a/doc/development/migration_style_guide.md b/doc/development/migration_style_guide.md index 4740cf4de7b..5fded9e3aed 100644 --- a/doc/development/migration_style_guide.md +++ b/doc/development/migration_style_guide.md @@ -303,7 +303,7 @@ end ``` If a computed update is needed, the value can be wrapped in `Arel.sql`, so Arel -treats it as an SQL literal. It's also a required deprecation for [Rails 6](https://gitlab.com/gitlab-org/gitlab-ce/issues/61451). +treats it as an SQL literal. It's also a required deprecation for [Rails 6](https://gitlab.com/gitlab-org/gitlab-foss/issues/61451). The below example is the same as the one above, but the value is set to the product of the `bar` and `baz` columns: diff --git a/doc/development/module_with_instance_variables.md b/doc/development/module_with_instance_variables.md index 443eee0b62c..1687a9f5ed4 100644 --- a/doc/development/module_with_instance_variables.md +++ b/doc/development/module_with_instance_variables.md @@ -30,11 +30,11 @@ People are saying multiple inheritance is bad. Mixing multiple modules with multiple instance variables scattering everywhere suffer from the same issue. The same applies to `ActiveSupport::Concern`. See: [Consider replacing concerns with dedicated classes & composition]( -https://gitlab.com/gitlab-org/gitlab-ce/issues/23786) +https://gitlab.com/gitlab-org/gitlab-foss/issues/23786) There's also a similar idea: [Use decorators and interface segregation to solve overgrowing models problem]( -https://gitlab.com/gitlab-org/gitlab-ce/issues/13484) +https://gitlab.com/gitlab-org/gitlab-foss/issues/13484) Note that `included` doesn't solve the whole issue. They define the dependencies, but they still allow each modules to talk implicitly via the diff --git a/doc/development/namespaces_storage_statistics.md b/doc/development/namespaces_storage_statistics.md index 2c7e5935435..f8aea10097d 100644 --- a/doc/development/namespaces_storage_statistics.md +++ b/doc/development/namespaces_storage_statistics.md @@ -14,18 +14,18 @@ storage consumed by a group, and allow easy management. ## Problem In GitLab, we update the project storage statistics through a -[callback](https://gitlab.com/gitlab-org/gitlab-ce/blob/v12.2.0.pre/app/models/project.rb#L90) +[callback](https://gitlab.com/gitlab-org/gitlab-foss/blob/v12.2.0.pre/app/models/project.rb#L90) every time the project is saved. The summary of those statistics per namespace is then retrieved -by [`Namespaces#with_statistics`](https://gitlab.com/gitlab-org/gitlab-ce/blob/v12.2.0.pre/app/models/namespace.rb#L70) scope. Analyzing this query we noticed that: +by [`Namespaces#with_statistics`](https://gitlab.com/gitlab-org/gitlab-foss/blob/v12.2.0.pre/app/models/namespace.rb#L70) scope. Analyzing this query we noticed that: - It takes up to `1.2` seconds for namespaces with over `15k` projects. - It can't be analyzed with [ChatOps](chatops_on_gitlabcom.md), as it times out. Additionally, the pattern that is currently used to update the project statistics (the callback) doesn't scale adequately. It is currently one of the largest -[database queries transactions on production](https://gitlab.com/gitlab-org/gitlab-ce/issues/62488) +[database queries transactions on production](https://gitlab.com/gitlab-org/gitlab-foss/issues/62488) that takes the most time overall. We can't add one more query to it as it will increase the transaction's length. @@ -131,7 +131,7 @@ WHERE namespace_id IN ( Even though this approach would make aggregating much easier, it has some major downsides: -- We'd have to migrate **all namespaces** by adding and filling a new column. Because of the size of the table, dealing with time/cost will not be great. The background migration will take approximately `153h`, see <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29772>. +- We'd have to migrate **all namespaces** by adding and filling a new column. Because of the size of the table, dealing with time/cost will not be great. The background migration will take approximately `153h`, see <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/29772>. - Background migration has to be shipped one release before, delaying the functionality by another milestone. ### Attempt E (final): Update the namespace storage statistics in async way @@ -142,7 +142,7 @@ but we refresh them through Sidekiq jobs and in different transactions: 1. Create a second table (`namespace_aggregation_schedules`) with two columns `id` and `namespace_id`. 1. Whenever the statistics of a project changes, insert a row into `namespace_aggregation_schedules` - We don't insert a new row if there's already one related to the root namespace. - - Keeping in mind the length of the transaction that involves updating `project_statistics`(<https://gitlab.com/gitlab-org/gitlab-ce/issues/62488>), the insertion should be done in a different transaction and through a Sidekiq Job. + - Keeping in mind the length of the transaction that involves updating `project_statistics`(<https://gitlab.com/gitlab-org/gitlab-foss/issues/62488>), the insertion should be done in a different transaction and through a Sidekiq Job. 1. After inserting the row, we schedule another worker to be executed async at two different moments: - One enqueued for immediate execution and another one scheduled in `1.5h` hours. - We only schedule the jobs, if we can obtain a `1.5h` lease on Redis on a key based on the root namespace ID. @@ -162,7 +162,7 @@ This implementation has the following benefits: The only downside of this approach is that namespaces' statistics are updated up to `1.5` hours after the change is done, which means there's a time window in which the statistics are inaccurate. Because we're still not -[enforcing storage limits](https://gitlab.com/gitlab-org/gitlab-ce/issues/30421), this is not a major problem. +[enforcing storage limits](https://gitlab.com/gitlab-org/gitlab-foss/issues/30421), this is not a major problem. ## Conclusion @@ -171,8 +171,8 @@ performant approach of aggregating the root namespaces. All the details regarding this use case can be found on: -- <https://gitlab.com/gitlab-org/gitlab-ce/issues/62214> -- Merge Request with the implementation: <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/28996> +- <https://gitlab.com/gitlab-org/gitlab-foss/issues/62214> +- Merge Request with the implementation: <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/28996> Performance of the namespace storage statistics were measured in staging and production (GitLab.com). All results were posted -on <https://gitlab.com/gitlab-org/gitlab-ce/issues/64092>: No problem has been reported so far. +on <https://gitlab.com/gitlab-org/gitlab-foss/issues/64092>: No problem has been reported so far. diff --git a/doc/development/new_fe_guide/modules/dirty_submit.md b/doc/development/new_fe_guide/modules/dirty_submit.md index 217743ea395..2ad6b8b60a3 100644 --- a/doc/development/new_fe_guide/modules/dirty_submit.md +++ b/doc/development/new_fe_guide/modules/dirty_submit.md @@ -1,6 +1,6 @@ # Dirty Submit -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21115) in GitLab 11.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/21115) in GitLab 11.3. ## Summary @@ -8,7 +8,7 @@ Prevent submitting forms with no changes. Currently handles `input`, `textarea` and `select` elements. -Also, see [the code](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/assets/javascripts/dirty_submit/) +Also, see [the code](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/app/assets/javascripts/dirty_submit/) within the GitLab project. ## Usage diff --git a/doc/development/packages.md b/doc/development/packages.md index 3d209c4a93c..2474392db62 100644 --- a/doc/development/packages.md +++ b/doc/development/packages.md @@ -9,9 +9,9 @@ package system support by solely backend changes. This guide is superficial and not cover the way the code should be written. However, you can find a good example by looking at existing merge requests with Maven and NPM support: -- [NPM registry support](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8673). -- [Maven repository](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6607). -- [Instance level endpoint for Maven repository](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8757) +- [NPM registry support](https://gitlab.com/gitlab-org/gitlab/merge_requests/8673). +- [Maven repository](https://gitlab.com/gitlab-org/gitlab/merge_requests/6607). +- [Instance level endpoint for Maven repository](https://gitlab.com/gitlab-org/gitlab/merge_requests/8757) ## General information diff --git a/doc/development/performance.md b/doc/development/performance.md index 6e6c80b7a7c..39fcc8ff806 100644 --- a/doc/development/performance.md +++ b/doc/development/performance.md @@ -425,8 +425,8 @@ might find using these gems more convenient: ### Examples You may find some useful examples in this snippet: -<https://gitlab.com/gitlab-org/gitlab-ce/snippets/33946> +<https://gitlab.com/gitlab-org/gitlab-foss/snippets/33946> -[#15607]: https://gitlab.com/gitlab-org/gitlab-ce/issues/15607 +[#15607]: https://gitlab.com/gitlab-org/gitlab-foss/issues/15607 [yorickpeterse]: https://gitlab.com/yorickpeterse [anti-pattern]: https://en.wikipedia.org/wiki/Anti-pattern diff --git a/doc/development/polling.md b/doc/development/polling.md index b664ddb9888..bc178f8cb21 100644 --- a/doc/development/polling.md +++ b/doc/development/polling.md @@ -56,4 +56,4 @@ For more information see: - [`Poll-Interval` header](fe_guide/performance.md#realtime-components) - [RFC 7232](https://tools.ietf.org/html/rfc7232) -- [ETag proposal](https://gitlab.com/gitlab-org/gitlab-ce/issues/26926) +- [ETag proposal](https://gitlab.com/gitlab-org/gitlab-foss/issues/26926) diff --git a/doc/development/prometheus_metrics.md b/doc/development/prometheus_metrics.md index 2a34851d21c..eecce9f4f11 100644 --- a/doc/development/prometheus_metrics.md +++ b/doc/development/prometheus_metrics.md @@ -2,7 +2,7 @@ ## Adding to the library -We strive to support the 2-4 most important metrics for each common system service that supports Prometheus. If you are looking for support for a particular exporter which has not yet been added to the library, additions can be made [to the `common_metrics.yml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/prometheus/common_metrics.yml) file. +We strive to support the 2-4 most important metrics for each common system service that supports Prometheus. If you are looking for support for a particular exporter which has not yet been added to the library, additions can be made [to the `common_metrics.yml`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/config/prometheus/common_metrics.yml) file. ### Query identifier @@ -53,7 +53,7 @@ to monitor itself. ### Adding a new metric This section describes how to add new metrics for self-monitoring -([example](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/15440)). +([example](https://gitlab.com/gitlab-org/gitlab/merge_requests/15440)). 1. Select the [type of metric](https://gitlab.com/gitlab-org/prometheus-client-mmap#metrics): diff --git a/doc/development/query_recorder.md b/doc/development/query_recorder.md index 3787e2ef187..3ed75c87f6f 100644 --- a/doc/development/query_recorder.md +++ b/doc/development/query_recorder.md @@ -2,7 +2,7 @@ QueryRecorder is a tool for detecting the [N+1 queries problem](https://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations) from tests. -> Implemented in [spec/support/query_recorder.rb](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/spec/support/helpers/query_recorder.rb) via [9c623e3e](https://gitlab.com/gitlab-org/gitlab-ce/commit/9c623e3e5d7434f2e30f7c389d13e5af4ede770a) +> Implemented in [spec/support/query_recorder.rb](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/spec/support/helpers/query_recorder.rb) via [9c623e3e](https://gitlab.com/gitlab-org/gitlab-foss/commit/9c623e3e5d7434f2e30f7c389d13e5af4ede770a) As a rule, merge requests [should not increase query counts](merge_request_performance_guidelines.md#query-counts). If you find yourself adding something like `.includes(:author, :assignee)` to avoid having `N+1` queries, consider using QueryRecorder to enforce this with a test. Without this, a new feature which causes an additional model to be accessed will silently reintroduce the problem. @@ -38,7 +38,7 @@ end ## Use request specs instead of controller specs -Use a [request spec](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/spec/requests) when writing a N+1 test on the controller level. +Use a [request spec](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/spec/requests) when writing a N+1 test on the controller level. Controller specs should not be used to write N+1 tests as the controller is only initialized once per example. This could lead to false successes where subsequent "requests" could have queries reduced (e.g. because of memoization). diff --git a/doc/development/routing.md b/doc/development/routing.md index a25eb48b73c..0b95477974b 100644 --- a/doc/development/routing.md +++ b/doc/development/routing.md @@ -70,4 +70,4 @@ you can help us migrate more of them! To migrate project routes: 1. Add redirects for legacy routes by using `Gitlab::Routing.redirect_legacy_paths`. 1. Create a technical debt issue to remove deprecated routes in later releases. -To get started, see an [example merge request](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/28435). +To get started, see an [example merge request](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/28435). diff --git a/doc/development/shell_scripting_guide/index.md b/doc/development/shell_scripting_guide/index.md index 0809f8b1a0a..60678497bb2 100644 --- a/doc/development/shell_scripting_guide/index.md +++ b/doc/development/shell_scripting_guide/index.md @@ -98,7 +98,7 @@ in GitLab Runner. This [may change](https://github.com/mvdan/sh/issues/68#issuec NOTE: **Note:** This is a work in progress. -It is an [ongoing effort](https://gitlab.com/gitlab-org/gitlab-ce/issues/64016) to evaluate different tools for the +It is an [ongoing effort](https://gitlab.com/gitlab-org/gitlab-foss/issues/64016) to evaluate different tools for the automated testing of shell scripts (like [BATS](https://github.com/sstephenson/bats)). ## Code Review diff --git a/doc/development/testing_guide/best_practices.md b/doc/development/testing_guide/best_practices.md index 0f982c3a48b..a8cbf3aaa5b 100644 --- a/doc/development/testing_guide/best_practices.md +++ b/doc/development/testing_guide/best_practices.md @@ -148,7 +148,7 @@ Add `screenshot_and_open_image` in a `:js` spec to screenshot what Capybara The HTML dumps created by this are missing CSS. This results in them looking very different from the actual application. -There is a [small hack](https://gitlab.com/gitlab-org/gitlab-ce/snippets/1718469) to add CSS which makes debugging easier. +There is a [small hack](https://gitlab.com/gitlab-org/gitlab-foss/snippets/1718469) to add CSS which makes debugging easier. ### Fast unit tests @@ -538,7 +538,7 @@ GitLab uses [factory_bot] as a test fixture replacement. - When instantiating from a factory, don't supply attributes that aren't required by the test. - Factories don't have to be limited to `ActiveRecord` objects. - [See example](https://gitlab.com/gitlab-org/gitlab-ce/commit/0b8cefd3b2385a21cfed779bd659978c0402766d). + [See example](https://gitlab.com/gitlab-org/gitlab-foss/commit/0b8cefd3b2385a21cfed779bd659978c0402766d). [factory_bot]: https://github.com/thoughtbot/factory_bot [traits]: http://www.rubydoc.info/gems/factory_bot/file/GETTING_STARTED.md#Traits diff --git a/doc/development/testing_guide/end_to_end/index.md b/doc/development/testing_guide/end_to_end/index.md index c00be77ce8c..9685a61d0c1 100644 --- a/doc/development/testing_guide/end_to_end/index.md +++ b/doc/development/testing_guide/end_to_end/index.md @@ -112,7 +112,7 @@ of the test scenarios you can run via the orchestrator](https://gitlab.com/gitla On the other hand, if you would like to run against a local development GitLab environment, you can use the [GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit/). -Please refer to the instructions in the [QA README](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/qa/README.md#how-can-i-use-it) +Please refer to the instructions in the [QA README](https://gitlab.com/gitlab-org/gitlab/tree/master/qa/README.md#how-can-i-use-it) and the section below. ## How do I write tests? @@ -147,10 +147,10 @@ you can find an issue you would like to work on in [review-apps]: ../review_apps.md [gitlab-qa-architecture]: https://gitlab.com/gitlab-org/gitlab-qa/blob/master/docs/architecture.md [gitlab-qa-issues]: https://gitlab.com/gitlab-org/gitlab-qa/issues?label_name%5B%5D=new+scenario -[gitlab-ce-issues]: https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name[]=QA&label_name[]=test -[gitlab-ee-issues]: https://gitlab.com/gitlab-org/gitlab-ee/issues?label_name[]=QA&label_name[]=test +[gitlab-ce-issues]: https://gitlab.com/gitlab-org/gitlab-foss/issues?label_name[]=QA&label_name[]=test +[gitlab-ee-issues]: https://gitlab.com/gitlab-org/gitlab/issues?label_name[]=QA&label_name[]=test [test environment orchestration scenarios]: https://gitlab.com/gitlab-org/gitlab-qa/tree/master/lib/gitlab/qa/scenario -[instance-level scenarios]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/qa/qa/specs/features -[Page objects documentation]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/qa/qa/page/README.md -[instance-qa-readme]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/qa/README.md -[instance-qa-examples]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/qa/qa +[instance-level scenarios]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master/qa/qa/specs/features +[Page objects documentation]: https://gitlab.com/gitlab-org/gitlab/tree/master/qa/qa/page/README.md +[instance-qa-readme]: https://gitlab.com/gitlab-org/gitlab/tree/master/qa/README.md +[instance-qa-examples]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master/qa/qa diff --git a/doc/development/testing_guide/end_to_end/quick_start_guide.md b/doc/development/testing_guide/end_to_end/quick_start_guide.md index d52d6db38b9..f5a46d574b0 100644 --- a/doc/development/testing_guide/end_to_end/quick_start_guide.md +++ b/doc/development/testing_guide/end_to_end/quick_start_guide.md @@ -24,7 +24,7 @@ If you don't exactly understand what we mean by **not everything needs to happen ### 0. Are end-to-end tests needed? -At GitLab we respect the [test pyramid](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/testing_guide/testing_levels.md), and so, we recommend you check the code coverage of a specific feature before writing end-to-end tests, for both [CE](https://gitlab-org.gitlab.io/gitlab-ce/coverage-ruby/#_AllFiles) and [EE](https://gitlab-org.gitlab.io/gitlab-ee/coverage-ruby/#_AllFiles) projects. +At GitLab we respect the [test pyramid](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/development/testing_guide/testing_levels.md), and so, we recommend you check the code coverage of a specific feature before writing end-to-end tests, for both [CE](https://gitlab-org.gitlab.io/gitlab-ce/coverage-ruby/#_AllFiles) and [EE](https://gitlab-org.gitlab.io/gitlab-ee/coverage-ruby/#_AllFiles) projects. Sometimes you may notice that there is already good coverage in other test levels, and we can stay confident that if we break a feature, we will still have quick feedback about it, even without having end-to-end tests. @@ -32,7 +32,7 @@ If after this analysis you still think that end-to-end tests are needed, keep re ### 1. Identifying the DevOps stage -The GitLab QA end-to-end tests are organized by the different [stages in the DevOps lifecycle](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/qa/qa/specs/features/browser_ui), and so, if you are creating tests for issue creation, for instance, you would locate the spec files under the `qa/qa/specs/features/browser_ui/2_plan/` directory since issue creation is part of the Plan stage. +The GitLab QA end-to-end tests are organized by the different [stages in the DevOps lifecycle](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/qa/qa/specs/features/browser_ui), and so, if you are creating tests for issue creation, for instance, you would locate the spec files under the `qa/qa/specs/features/browser_ui/2_plan/` directory since issue creation is part of the Plan stage. In another case of a test for listing merged merge requests (MRs), the test should go under the `qa/qa/specs/features/browser_ui/3_create/` directory since merge requests are a feature from the Create stage. @@ -40,9 +40,9 @@ The GitLab QA end-to-end tests are organized by the different [stages in the Dev Now, let's say we want to create tests for the [scoped labels](https://about.gitlab.com/2019/04/22/gitlab-11-10-released/#scoped-labels) feature, available on GitLab EE Premium (this feature is part of the Plan stage.) -> Because these tests are for a feature available only on GitLab EE, we need to create them in the [EE repository](https://gitlab.com/gitlab-org/gitlab-ee). +> Because these tests are for a feature available only on GitLab EE, we need to create them in the [EE repository](https://gitlab.com/gitlab-org/gitlab). -Since [there is no specific directory for this feature](https://gitlab.com/gitlab-org/gitlab-ee/tree/master/qa/qa/specs/features/browser_ui/2_plan), we should create a sub-directory for it. +Since [there is no specific directory for this feature](https://gitlab.com/gitlab-org/gitlab/tree/master/qa/qa/specs/features/browser_ui/2_plan), we should create a sub-directory for it. Under `.../browser_ui/2_plan/`, let's create a sub-directory called `ee_scoped_labels/`. @@ -222,7 +222,7 @@ As the pre-conditions for our test suite, the things that needs to happen before - A project being created with an issue and labels already set; - The issue page being opened with only one scoped label applied to it. -> When running end-to-end tests as part of the GitLab's continuous integration process [a license is already set as an environment variable](https://gitlab.com/gitlab-org/gitlab-ee/blob/1a60d926740db10e3b5724713285780a4f470531/qa/qa/ee/strategy.rb#L20). For running tests locally you can set up such license by following the document [what tests can be run?](https://gitlab.com/gitlab-org/gitlab-qa/blob/master/docs/what_tests_can_be_run.md), based on the [supported GitLab environment variables](https://gitlab.com/gitlab-org/gitlab-qa/blob/master/docs/what_tests_can_be_run.md#supported-gitlab-environment-variables). +> When running end-to-end tests as part of the GitLab's continuous integration process [a license is already set as an environment variable](https://gitlab.com/gitlab-org/gitlab/blob/1a60d926740db10e3b5724713285780a4f470531/qa/qa/ee/strategy.rb#L20). For running tests locally you can set up such license by following the document [what tests can be run?](https://gitlab.com/gitlab-org/gitlab-qa/blob/master/docs/what_tests_can_be_run.md), based on the [supported GitLab environment variables](https://gitlab.com/gitlab-org/gitlab-qa/blob/master/docs/what_tests_can_be_run.md#supported-gitlab-environment-variables). #### Implementation @@ -357,15 +357,15 @@ In the following we describe the changes needed in each of the resource files me Now, let's make it possible to create an issue resource through the API. -First, in the [issue resource](https://gitlab.com/gitlab-org/gitlab-ee/blob/d3584e80b4236acdf393d815d604801573af72cc/qa/qa/resource/issue.rb), let's expose its id and labels attributes. +First, in the [issue resource](https://gitlab.com/gitlab-org/gitlab/blob/d3584e80b4236acdf393d815d604801573af72cc/qa/qa/resource/issue.rb), let's expose its id and labels attributes. -Add the following `attribute :id` and `attribute :labels` right above the [`attribute :title`](https://gitlab.com/gitlab-org/gitlab-ee/blob/d3584e80b4236acdf393d815d604801573af72cc/qa/qa/resource/issue.rb#L15). +Add the following `attribute :id` and `attribute :labels` right above the [`attribute :title`](https://gitlab.com/gitlab-org/gitlab/blob/d3584e80b4236acdf393d815d604801573af72cc/qa/qa/resource/issue.rb#L15). > This line is needed to allow for the issue fabrication, and for labels to be automatically added to the issue when fabricating it via API. > > We add the attributes above the existing attribute to keep them alphabetically organized. -Then, let's initialize an instance variable for labels to allow an empty array as default value when such information is not passed during the resource fabrication, since this optional. [Between the attributes and the `fabricate!` method](https://gitlab.com/gitlab-org/gitlab-ee/blob/1a1f1408728f19b2aa15887cd20bddab7e70c8bd/qa/qa/resource/issue.rb#L18), add the following: +Then, let's initialize an instance variable for labels to allow an empty array as default value when such information is not passed during the resource fabrication, since this optional. [Between the attributes and the `fabricate!` method](https://gitlab.com/gitlab-org/gitlab/blob/1a1f1408728f19b2aa15887cd20bddab7e70c8bd/qa/qa/resource/issue.rb#L18), add the following: ```ruby def initialize @@ -373,7 +373,7 @@ def initialize end ``` -Next, add the following code right below the [`fabricate!`](https://gitlab.com/gitlab-org/gitlab-ee/blob/d3584e80b4236acdf393d815d604801573af72cc/qa/qa/resource/issue.rb#L27) method. +Next, add the following code right below the [`fabricate!`](https://gitlab.com/gitlab-org/gitlab/blob/d3584e80b4236acdf393d815d604801573af72cc/qa/qa/resource/issue.rb#L27) method. ```ruby def api_get_path @@ -392,15 +392,15 @@ def api_post_body end ``` -By defining the `api_get_path` method, we allow the [`ApiFabricator`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/qa/qa/resource/api_fabricator.rb) module to know which path to use to get a single issue. +By defining the `api_get_path` method, we allow the [`ApiFabricator`](https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/resource/api_fabricator.rb) module to know which path to use to get a single issue. > This `GET` path can be found in the [public API documentation](../../../api/issues.md#single-issue). -By defining the `api_post_path` method, we allow the [`ApiFabricator`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/qa/qa/resource/api_fabricator.rb) module to know which path to use to create a new issue in a specific project. +By defining the `api_post_path` method, we allow the [`ApiFabricator`](https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/resource/api_fabricator.rb) module to know which path to use to create a new issue in a specific project. > This `POST` path can be found in the [public API documentation](../../../api/issues.md#new-issue). -By defining the `api_post_body` method, we allow the [`ApiFabricator.api_post`](https://gitlab.com/gitlab-org/gitlab-ee/blob/a9177ca1812bac57e2b2fa4560e1d5dd8ffac38b/qa/qa/resource/api_fabricator.rb#L68) method to know which data to send when making the `POST` request. +By defining the `api_post_body` method, we allow the [`ApiFabricator.api_post`](https://gitlab.com/gitlab-org/gitlab/blob/a9177ca1812bac57e2b2fa4560e1d5dd8ffac38b/qa/qa/resource/api_fabricator.rb#L68) method to know which data to send when making the `POST` request. > Notice that we pass both `labels` and `title` attributes in the `api_post_body`, where `labels` receives an array of labels, and [`title` is required](../../../api/issues.md#new-issue). Also, notice that we keep them alphabetically organized. @@ -408,7 +408,7 @@ By defining the `api_post_body` method, we allow the [`ApiFabricator.api_post`]( Finally, let's make it possible to create label resources through the API. -Add the following code right below the [`fabricate!`](https://gitlab.com/gitlab-org/gitlab-ee/blob/a9177ca1812bac57e2b2fa4560e1d5dd8ffac38b/qa/qa/resource/label.rb#L36) method. +Add the following code right below the [`fabricate!`](https://gitlab.com/gitlab-org/gitlab/blob/a9177ca1812bac57e2b2fa4560e1d5dd8ffac38b/qa/qa/resource/label.rb#L36) method. ```ruby def resource_web_url(resource) @@ -433,13 +433,13 @@ def api_post_body end ``` -By defining the `resource_web_url(resource)` method, we override the one from the [`ApiFabricator`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/qa/qa/resource/api_fabricator.rb#L44) module. We do that to avoid failing the test due to this particular resource not exposing a `web_url` property. +By defining the `resource_web_url(resource)` method, we override the one from the [`ApiFabricator`](https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/resource/api_fabricator.rb#L44) module. We do that to avoid failing the test due to this particular resource not exposing a `web_url` property. -By defining the `api_get_path` method, we **would** allow for the [`ApiFabricator`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/qa/qa/resource/api_fabricator.rb) module to know which path to use to get a single label, but since there's no path available for that in the publich API, we raise a `NotImplementedError` instead. +By defining the `api_get_path` method, we **would** allow for the [`ApiFabricator`](https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/resource/api_fabricator.rb) module to know which path to use to get a single label, but since there's no path available for that in the publich API, we raise a `NotImplementedError` instead. -By defining the `api_post_path` method, we allow for the [`ApiFabricator`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/qa/qa/resource/api_fabricator.rb) module to know which path to use to create a new label in a specific project. +By defining the `api_post_path` method, we allow for the [`ApiFabricator`](https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/resource/api_fabricator.rb) module to know which path to use to create a new label in a specific project. -By defining the `api_post_body` method, we we allow for the [`ApiFabricator.api_post`](https://gitlab.com/gitlab-org/gitlab-ee/blob/a9177ca1812bac57e2b2fa4560e1d5dd8ffac38b/qa/qa/resource/api_fabricator.rb#L68) method to know which data to send when making the `POST` request. +By defining the `api_post_body` method, we we allow for the [`ApiFabricator.api_post`](https://gitlab.com/gitlab-org/gitlab/blob/a9177ca1812bac57e2b2fa4560e1d5dd8ffac38b/qa/qa/resource/api_fabricator.rb#L68) method to know which data to send when making the `POST` request. > Notice that we pass both `color` and `name` attributes in the `api_post_body` since [those are required](../../../api/labels.md#create-a-new-label). Also, notice that we keep them alphabetically organized. @@ -447,7 +447,7 @@ By defining the `api_post_body` method, we we allow for the [`ApiFabricator.api_ Page Objects are used in end-to-end tests for maintenance reasons, where a page's elements and methods are defined to be reused in any test. -> Page Objects are auto-loaded in the [`qa/qa.rb`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/qa/qa.rb) file and available in all the test files (`*_spec.rb`). +> Page Objects are auto-loaded in the [`qa/qa.rb`](https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa.rb) file and available in all the test files (`*_spec.rb`). Take a look at the [Page Objects] documentation. @@ -495,7 +495,7 @@ Let's now update the Issue Page Object. > Page Objects are located in the `qa/qa/page/` directory, and its sub-directories. -The file we will have to change is the [Issue Page Object](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/qa/qa/page/project/issue/show.rb). +The file we will have to change is the [Issue Page Object](https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/page/project/issue/show.rb). First, add the following code right below the definition of an already implemented view (keep in mind that view's definitions and their elements should be alphabetically ordered): @@ -554,7 +554,7 @@ The `text_of_labels_block` method is a simple method that returns the `:labels_b Now let's change the view and the `dropdowns_helper` files to add the selectors that relate to the [Page Objects]. -In [`app/views/shared/issuable/_sidebar.html.haml:105`](https://gitlab.com/gitlab-org/gitlab-ee/blob/7ca12defc7a965987b162a6ebef302f95dc8867f/app/views/shared/issuable/_sidebar.html.haml#L105), add a `data: { qa_selector: 'edit_link_labels' }` data attribute. +In [`app/views/shared/issuable/_sidebar.html.haml:105`](https://gitlab.com/gitlab-org/gitlab/blob/7ca12defc7a965987b162a6ebef302f95dc8867f/app/views/shared/issuable/_sidebar.html.haml#L105), add a `data: { qa_selector: 'edit_link_labels' }` data attribute. The code should look like this: @@ -562,7 +562,7 @@ The code should look like this: = link_to _('Edit'), '#', class: 'js-sidebar-dropdown-toggle edit-link float-right', data: { qa_selector: 'edit_link_labels' } ``` -In the same file, on [line 121](https://gitlab.com/gitlab-org/gitlab-ee/blob/7ca12defc7a965987b162a6ebef302f95dc8867f/app/views/shared/issuable/_sidebar.html.haml#L121), add a `data: { qa_selector: 'dropdown_menu_labels' }` data attribute. +In the same file, on [line 121](https://gitlab.com/gitlab-org/gitlab/blob/7ca12defc7a965987b162a6ebef302f95dc8867f/app/views/shared/issuable/_sidebar.html.haml#L121), add a `data: { qa_selector: 'dropdown_menu_labels' }` data attribute. The code should look like this: @@ -570,7 +570,7 @@ The code should look like this: .dropdown-menu.dropdown-select.dropdown-menu-paging.dropdown-menu-labels.dropdown-menu-selectable.dropdown-extended-height{ data: { qa_selector: 'dropdown_menu_labels' } } ``` -In [`app/helpers/dropdowns_helper.rb:94`](https://gitlab.com/gitlab-org/gitlab-ee/blob/7ca12defc7a965987b162a6ebef302f95dc8867f/app/helpers/dropdowns_helper.rb#L94), add a `data: { qa_selector: 'dropdown_input_field' }` data attribute. +In [`app/helpers/dropdowns_helper.rb:94`](https://gitlab.com/gitlab-org/gitlab/blob/7ca12defc7a965987b162a6ebef302f95dc8867f/app/helpers/dropdowns_helper.rb#L94), add a `data: { qa_selector: 'dropdown_input_field' }` data attribute. The code should look like this: @@ -581,7 +581,7 @@ filter_output = search_field_tag search_id, nil, class: "dropdown-input-field", > `data-qa-*` data attributes and CSS classes starting with `qa-` are used solely for the purpose of QA and testing. > By defining these, we add **testability** to the application. > -> When defining a data attribute like: `qa_selector: 'labels_block'`, it should match the element definition: `element :labels_block`. We use a [sanity test](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/qa/qa/page#how-did-we-solve-fragile-tests-problem) to check that defined elements have their respective selectors in the specified views. +> When defining a data attribute like: `qa_selector: 'labels_block'`, it should match the element definition: `element :labels_block`. We use a [sanity test](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/qa/qa/page#how-did-we-solve-fragile-tests-problem) to check that defined elements have their respective selectors in the specified views. #### Updates in the `QA::Page::Base` class diff --git a/doc/development/testing_guide/flaky_tests.md b/doc/development/testing_guide/flaky_tests.md index eb0bf6fc563..8e73b3d9ae9 100644 --- a/doc/development/testing_guide/flaky_tests.md +++ b/doc/development/testing_guide/flaky_tests.md @@ -48,51 +48,51 @@ examples in a JSON report file on `master` (`retrieve-tests-metadata` and `updat is detected in any other branch (`flaky-examples-check` job). In the future, the `flaky-examples-check` job will not be allowed to fail. -This was originally implemented in: <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13021>. +This was originally implemented in: <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/13021>. [rspec-retry]: https://github.com/NoRedInk/rspec-retry -[`spec/spec_helper.rb`]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/spec/spec_helper.rb +[`spec/spec_helper.rb`]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/spec/spec_helper.rb ## Problems we had in the past at GitLab -- [`rspec-retry` is bitting us when some API specs fail](https://gitlab.com/gitlab-org/gitlab-ce/issues/29242): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9825> -- [Sporadic RSpec failures due to `PG::UniqueViolation`](https://gitlab.com/gitlab-org/gitlab-ce/issues/28307#note_24958837): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9846> - - Follow-up: <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10688> - - [Capybara.reset_session! should be called before requests are blocked](https://gitlab.com/gitlab-org/gitlab-ce/issues/33779): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12224> +- [`rspec-retry` is bitting us when some API specs fail](https://gitlab.com/gitlab-org/gitlab-foss/issues/29242): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9825> +- [Sporadic RSpec failures due to `PG::UniqueViolation`](https://gitlab.com/gitlab-org/gitlab-foss/issues/28307#note_24958837): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9846> + - Follow-up: <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10688> + - [Capybara.reset_session! should be called before requests are blocked](https://gitlab.com/gitlab-org/gitlab-foss/issues/33779): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12224> - FFaker generates funky data that tests are not ready to handle (and tests should be predictable so that's bad!): - - [Make `spec/mailers/notify_spec.rb` more robust](https://gitlab.com/gitlab-org/gitlab-ce/issues/20121): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10015> - - [Transient failure in spec/requests/api/commits_spec.rb](https://gitlab.com/gitlab-org/gitlab-ce/issues/27988#note_25342521): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9944> - - [Replace FFaker factory data with sequences](https://gitlab.com/gitlab-org/gitlab-ce/issues/29643): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10184> - - [Transient failure in spec/finders/issues_finder_spec.rb](https://gitlab.com/gitlab-org/gitlab-ce/issues/30211#note_26707685): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10404> + - [Make `spec/mailers/notify_spec.rb` more robust](https://gitlab.com/gitlab-org/gitlab-foss/issues/20121): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10015> + - [Transient failure in spec/requests/api/commits_spec.rb](https://gitlab.com/gitlab-org/gitlab-foss/issues/27988#note_25342521): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9944> + - [Replace FFaker factory data with sequences](https://gitlab.com/gitlab-org/gitlab-foss/issues/29643): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10184> + - [Transient failure in spec/finders/issues_finder_spec.rb](https://gitlab.com/gitlab-org/gitlab-foss/issues/30211#note_26707685): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10404> ### Time-sensitive flaky tests -- <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10046> -- <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10306> +- <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10046> +- <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10306> ### Array order expectation -- <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10148> +- <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10148> ### Feature tests -- [Be sure to create all the data the test need before starting exercize](https://gitlab.com/gitlab-org/gitlab-ce/issues/32622#note_31128195): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12059> -- [Bis](https://gitlab.com/gitlab-org/gitlab-ce/issues/34609#note_34048715): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12604> -- [Bis](https://gitlab.com/gitlab-org/gitlab-ce/issues/34698#note_34276286): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12664> -- [Assert against the underlying database state instead of against a page's content](https://gitlab.com/gitlab-org/gitlab-ce/issues/31437): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10934> +- [Be sure to create all the data the test need before starting exercize](https://gitlab.com/gitlab-org/gitlab-foss/issues/32622#note_31128195): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12059> +- [Bis](https://gitlab.com/gitlab-org/gitlab-foss/issues/34609#note_34048715): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12604> +- [Bis](https://gitlab.com/gitlab-org/gitlab-foss/issues/34698#note_34276286): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12664> +- [Assert against the underlying database state instead of against a page's content](https://gitlab.com/gitlab-org/gitlab-foss/issues/31437): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10934> #### Capybara viewport size related issues -- [Transient failure of spec/features/issues/filtered_search/filter_issues_spec.rb](https://gitlab.com/gitlab-org/gitlab-ce/issues/29241#note_26743936): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10411> +- [Transient failure of spec/features/issues/filtered_search/filter_issues_spec.rb](https://gitlab.com/gitlab-org/gitlab-foss/issues/29241#note_26743936): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10411> #### Capybara JS driver related issues -- [Don't wait for AJAX when no AJAX request is fired](https://gitlab.com/gitlab-org/gitlab-ce/issues/30461): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10454> -- [Bis](https://gitlab.com/gitlab-org/gitlab-ce/issues/34647): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12626> +- [Don't wait for AJAX when no AJAX request is fired](https://gitlab.com/gitlab-org/gitlab-foss/issues/30461): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10454> +- [Bis](https://gitlab.com/gitlab-org/gitlab-foss/issues/34647): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12626> #### PhantomJS / WebKit related issues -- Memory is through the roof! (TL;DR: Load images but block images requests!): <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12003> +- Memory is through the roof! (TL;DR: Load images but block images requests!): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12003> ## Resources diff --git a/doc/development/testing_guide/frontend_testing.md b/doc/development/testing_guide/frontend_testing.md index 91004bf177d..da843218d8b 100644 --- a/doc/development/testing_guide/frontend_testing.md +++ b/doc/development/testing_guide/frontend_testing.md @@ -35,10 +35,10 @@ which could arise (especially with testing against browser specific features). ### Differences to Karma -- Jest runs in a Node.js environment, not in a browser. Support for running Jest tests in a browser [is planned](https://gitlab.com/gitlab-org/gitlab-ce/issues/58205). +- Jest runs in a Node.js environment, not in a browser. Support for running Jest tests in a browser [is planned](https://gitlab.com/gitlab-org/gitlab-foss/issues/58205). - Because Jest runs in a Node.js environment, it uses [jsdom](https://github.com/jsdom/jsdom) by default. See also its [limitations](#limitations-of-jsdom) below. - Jest does not have access to Webpack loaders or aliases. - The aliases used by Jest are defined in its [own config](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/jest.config.js). + The aliases used by Jest are defined in its [own config](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/jest.config.js). - All calls to `setTimeout` and `setInterval` are mocked away. See also [Jest Timer Mocks](https://jestjs.io/docs/en/timer-mocks). - `rewire` is not required because Jest supports mocking modules. See also [Manual Mocks](https://jestjs.io/docs/en/manual-mocks). - No [context object](https://jasmine.github.io/tutorials/your_first_suite#section-The_%3Ccode%3Ethis%3C/code%3E_keyword) is passed to tests in Jest. @@ -58,7 +58,7 @@ This comes with a number of limitations, namely: - [No element sizes or positions](https://github.com/jsdom/jsdom/blob/15.1.1/lib/jsdom/living/nodes/Element-impl.js#L334-L371) - [No layout engine](https://github.com/jsdom/jsdom/issues/1322) in general -See also the issue for [support running Jest tests in browsers](https://gitlab.com/gitlab-org/gitlab-ce/issues/58205). +See also the issue for [support running Jest tests in browsers](https://gitlab.com/gitlab-org/gitlab-foss/issues/58205). ### Debugging Jest tests @@ -67,13 +67,13 @@ Running `yarn jest-debug` will run Jest in debug mode, allowing you to debug/ins ### Timeout error The default timeout for Jest is set in -[`/spec/frontend/test_setup.js`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/spec/frontend/test_setup.js). +[`/spec/frontend/test_setup.js`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/spec/frontend/test_setup.js). If your test exceeds that time, it will fail. If you cannot improve the performance of the tests, you can increase the timeout for a specific test using -[`setTestTimeout`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/spec/frontend/helpers/timeout.js). +[`setTestTimeout`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/spec/frontend/helpers/timeout.js). ```javascript import { setTestTimeout } from 'helpers/timeout'; @@ -321,8 +321,7 @@ it('waits for an Ajax call', done => { }); ``` -If you are not able to register handlers to the `Promise`—for example because it is executed in a synchronous Vue life -cycle hook—you can flush all pending `Promise`s: +If you are not able to register handlers to the `Promise`, for example because it is executed in a synchronous Vue life cycle hook, please take a look at the [waitFor](#wait-until-axios-requests-finish) helpers or you can flush all pending `Promise`s: **in Jest:** @@ -389,7 +388,7 @@ it('renders something', done => { ##### `setTimeout()` / `setInterval()` in application If the application itself is waiting for some time, mock await the waiting. In Jest this is already -[done by default](https://gitlab.com/gitlab-org/gitlab-ce/blob/a2128edfee799e49a8732bfa235e2c5e14949c68/jest.config.js#L47) +[done by default](https://gitlab.com/gitlab-org/gitlab-foss/blob/a2128edfee799e49a8732bfa235e2c5e14949c68/jest.config.js#L47) (see also [Jest Timer Mocks](https://jestjs.io/docs/en/timer-mocks)). In Karma you can use the [Jasmine mock clock](https://jasmine.github.io/api/2.9/Clock.html). @@ -617,10 +616,10 @@ Tests relevant for frontend development can be found at the following places: - `spec/features/` which are run by RSpec and contain - [feature tests](#feature-tests) -All tests in `spec/javascripts/` will eventually be migrated to `spec/frontend/` (see also [#52483](https://gitlab.com/gitlab-org/gitlab-ce/issues/52483)). +All tests in `spec/javascripts/` will eventually be migrated to `spec/frontend/` (see also [#52483](https://gitlab.com/gitlab-org/gitlab-foss/issues/52483)). In addition, there used to be feature tests in `features/`, run by Spinach. -These were removed from the codebase in May 2018 ([#23036](https://gitlab.com/gitlab-org/gitlab-ce/issues/23036)). +These were removed from the codebase in May 2018 ([#23036](https://gitlab.com/gitlab-org/gitlab-foss/issues/23036)). See also [Notes on testing Vue components](../fe_guide/vue.html#testing-vue-components). @@ -1049,7 +1048,7 @@ testAction( ); ``` -Check an example in [spec/javascripts/ide/stores/actions_spec.jsspec/javascripts/ide/stores/actions_spec.js](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/spec/javascripts/ide/stores/actions_spec.js). +Check an example in [spec/javascripts/ide/stores/actions_spec.jsspec/javascripts/ide/stores/actions_spec.js](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/spec/javascripts/ide/stores/actions_spec.js). ### Vue Helper: `mountComponent` @@ -1088,6 +1087,16 @@ afterEach(() => { }); ``` +### Wait until axios requests finish + +The axios utils mock module located in `spec/frontend/mocks/ce/lib/utils/axios_utils.js` contains two helper methods for Jest tests that spawn HTTP requests. +These are very useful if you don't have a handle to the request's Promise, for example when a Vue component does a request as part of its life cycle. + +- `waitFor(url, callback)`: Runs `callback` after a request to `url` finishes (either successfully or unsuccessfully). +- `waitForAll(callback)`: Runs `callback` once all pending requests have finished. If no requests are pending, runs `callback` on the next tick. + +Both functions run `callback` on the next tick after the requests finish (using `setImmediate()`), to allow any `.then()` or `.catch()` handlers to run. + ## Testing with older browsers Some regressions only affect a specific browser version. We can install and test in particular browsers with either Firefox or Browserstack using the following steps: diff --git a/doc/development/testing_guide/review_apps.md b/doc/development/testing_guide/review_apps.md index 8698a1e4c2d..8ce25376a05 100644 --- a/doc/development/testing_guide/review_apps.md +++ b/doc/development/testing_guide/review_apps.md @@ -1,8 +1,7 @@ # Review Apps -Review Apps are automatically deployed by each pipeline, both in -[CE](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22010) and -[EE](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6665). +Review Apps are automatically deployed by [the +pipeline](https://gitlab.com/gitlab-org/gitlab/merge_requests/6665). ## How does it work? @@ -190,8 +189,8 @@ that the `review-apps-ce/ee` cluster is unhealthy. Leading indicators may be hea The following items may help diagnose this: -- [Instance group CPU Utilization in GCP](https://console.cloud.google.com/compute/instanceGroups/details/us-central1-a/gke-review-apps-ce-preemp-n1-standard-a4c9571c-grp?project=gitlab-review-apps&tab=monitoring&graph=GCE_CPU&duration=PT12H) - helpful to identify if nodes are problematic or the entire cluster is trending towards unhealthy -- [Instance Group size in GCP](https://console.cloud.google.com/compute/instanceGroups/details/us-central1-a/gke-review-apps-ce-preemp-n1-standard-a4c9571c-grp?project=gitlab-review-apps&tab=monitoring&graph=GCE_SIZE&duration=PT12H) - aids in identifying load spikes on the cluster. Kubernetes will add nodes up to 220 based on total resource requests. +- [Instance group CPU Utilization in GCP](https://console.cloud.google.com/compute/instanceGroups/details/us-central1-b/gke-review-apps-ee-preemp-n1-standard-8affc0f5-grp?project=gitlab-review-apps&tab=monitoring&graph=GCE_CPU&duration=P30D) - helpful to identify if nodes are problematic or the entire cluster is trending towards unhealthy +- [Instance Group size in GCP](https://console.cloud.google.com/compute/instanceGroups/details/us-central1-b/gke-review-apps-ee-preemp-n1-standard-8affc0f5-grp?project=gitlab-review-apps&tab=monitoring&graph=GCE_SIZE&duration=P30D) - aids in identifying load spikes on the cluster. Kubernetes will add nodes up to 220 based on total resource requests. - `kubectl top nodes --sort-by=cpu` - can identify if node spikes are common or load on specific nodes which may get rebalanced by the Kubernetes scheduler. - `kubectl top pods --sort-by=cpu` - - [K9s] - K9s is a powerful command line dashboard which allows you to filter by labels. This can help identify trends with apps exceeding the [review-app resource requests](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/scripts/review_apps/base-config.yaml). Kubernetes will schedule pods to nodes based on resource requests and allow for CPU usage up to the limits. @@ -206,7 +205,7 @@ The following items may help diagnose this: #### Finding the problem -[In the past](https://gitlab.com/gitlab-org/gitlab-ce/issues/62834), it happened +[In the past](https://gitlab.com/gitlab-org/gitlab-foss/issues/62834), it happened that the `dns-gitlab-review-app-external-dns` Deployment was in a pending state, effectively preventing all the Review Apps from getting a DNS record assigned, making them unreachable via domain name. @@ -299,10 +298,10 @@ find a way to limit it to only us.** - [Stern](https://github.com/wercker/stern) - enables cross pod log tailing based on label/field selectors [charts-1068]: https://gitlab.com/gitlab-org/charts/gitlab/issues/1068 -[gitlab-pipeline]: https://gitlab.com/gitlab-org/gitlab-ce/pipelines/44362587 -[gitlab:assets:compile]: https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/149511610 -[review-build-cng]: https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/149511623 -[review-deploy]: https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/149511624 +[gitlab-pipeline]: https://gitlab.com/gitlab-org/gitlab-foss/pipelines/44362587 +[gitlab:assets:compile]: https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/149511610 +[review-build-cng]: https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/149511623 +[review-deploy]: https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/149511624 [cng-mirror]: https://gitlab.com/gitlab-org/build/CNG-mirror [cng]: https://gitlab.com/gitlab-org/build/CNG [cng-mirror-pipeline]: https://gitlab.com/gitlab-org/build/CNG-mirror/pipelines/44364657 @@ -310,13 +309,13 @@ find a way to limit it to only us.** [helm-chart]: https://gitlab.com/gitlab-org/charts/gitlab/ [review-apps-ce]: https://console.cloud.google.com/kubernetes/clusters/details/us-central1-a/review-apps-ce?project=gitlab-review-apps [review-apps-ee]: https://console.cloud.google.com/kubernetes/clusters/details/us-central1-b/review-apps-ee?project=gitlab-review-apps -[review-apps.sh]: https://gitlab.com/gitlab-org/gitlab-ee/blob/master/scripts/review_apps/review-apps.sh -[automated_cleanup.rb]: https://gitlab.com/gitlab-org/gitlab-ee/blob/master/scripts/review_apps/automated_cleanup.rb -[Auto-DevOps.gitlab-ci.yml]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml -[gitlab-ci-yml]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab-ci.yml +[review-apps.sh]: https://gitlab.com/gitlab-org/gitlab/blob/master/scripts/review_apps/review-apps.sh +[automated_cleanup.rb]: https://gitlab.com/gitlab-org/gitlab/blob/master/scripts/review_apps/automated_cleanup.rb +[Auto-DevOps.gitlab-ci.yml]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml +[gitlab-ci-yml]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/.gitlab-ci.yml [gitlab-k8s-integration]: ../../user/project/clusters/index.md -[password-bug]: https://gitlab.com/gitlab-org/gitlab-ce/issues/53621 [K9s]: https://github.com/derailed/k9s +[password-bug]: https://gitlab.com/gitlab-org/gitlab-foss/issues/53621 --- diff --git a/doc/development/testing_guide/smoke.md b/doc/development/testing_guide/smoke.md index c9d3238fbe9..5a144b43478 100644 --- a/doc/development/testing_guide/smoke.md +++ b/doc/development/testing_guide/smoke.md @@ -12,6 +12,7 @@ Currently, our suite consists of this basic functionality coverage: - Project simple creation - Project creation with Auto-DevOps enabled - Issue creation +- Issue user mentions - Merge Request creation - Snippet creation diff --git a/doc/development/testing_guide/testing_levels.md b/doc/development/testing_guide/testing_levels.md index 1aee306f492..b9436abf856 100644 --- a/doc/development/testing_guide/testing_levels.md +++ b/doc/development/testing_guide/testing_levels.md @@ -44,7 +44,7 @@ records should use stubs/doubles as much as possible. | `config/routes.rb`, `config/routes/` | `spec/routing/` | RSpec | | | `config/puma.example.development.rb`, `config/unicorn.rb.example` | `spec/rack_servers/` | RSpec | | | `db/` | `spec/db/` | RSpec | | -| `db/{post_,}migrate/` | `spec/migrations/` | RSpec | More details at [`spec/migrations/README.md`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/spec/migrations/README.md). | +| `db/{post_,}migrate/` | `spec/migrations/` | RSpec | More details at [`spec/migrations/README.md`](https://gitlab.com/gitlab-org/gitlab/blob/master/spec/migrations/README.md). | | `Gemfile` | `spec/dependencies/`, `spec/sidekiq/` | RSpec | | | `lib/` | `spec/lib/` | RSpec | | | `lib/tasks/` | `spec/tasks/` | RSpec | | @@ -81,7 +81,7 @@ controller.instance_variable_set(:@user, user) and use methods which are deprecated in Rails 5 ([#23768]). -[#23768]: https://gitlab.com/gitlab-org/gitlab-ce/issues/23768 +[#23768]: https://gitlab.com/gitlab-org/gitlab-foss/issues/23768 ### About Karma @@ -190,8 +190,8 @@ confused with the application's [unit tests](#unit-tests) or [GitLab Pages]: https://gitlab.com/gitlab-org/gitlab-pages [GitLab Runner]: https://gitlab.com/gitlab-org/gitlab-runner [GitLab Omnibus]: https://gitlab.com/gitlab-org/omnibus-gitlab -[part of GitLab Rails]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/qa -[test plan]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/.gitlab/issue_templates/Test%20plan.md +[part of GitLab Rails]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master/qa +[test plan]: https://gitlab.com/gitlab-org/gitlab/tree/master/.gitlab/issue_templates/Test%20plan.md [Product category]: https://about.gitlab.com/handbook/product/categories/ ### Smoke tests diff --git a/doc/development/uploads.md b/doc/development/uploads.md index 681ce9d9fe8..1af3e9db954 100644 --- a/doc/development/uploads.md +++ b/doc/development/uploads.md @@ -209,8 +209,8 @@ This is the more advanced acceleration technique we have in place. Workhorse asks rails for temporary pre-signed object storage URLs and directly uploads to object storage. In this setup an extra rails route needs to be implemented in order to handle authorization, -you can see an example of this in [`Projects::LfsStorageController`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/controllers/projects/lfs_storage_controller.rb) -and [its routes](https://gitlab.com/gitlab-org/gitlab-ce/blob/v12.2.0/config/routes/git_http.rb#L31-32). +you can see an example of this in [`Projects::LfsStorageController`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/app/controllers/projects/lfs_storage_controller.rb) +and [its routes](https://gitlab.com/gitlab-org/gitlab-foss/blob/v12.2.0/config/routes/git_http.rb#L31-32). **note:** this will fallback to _Workhorse disk acceleration_ when object storage is not enabled in the gitlab instance. The answer to the `/authorize` call will only contain a file system path. diff --git a/doc/development/utilities.md b/doc/development/utilities.md index 4021756343c..11de0d56ef3 100644 --- a/doc/development/utilities.md +++ b/doc/development/utilities.md @@ -2,7 +2,7 @@ We developed a number of utilities to ease development. -## [`MergeHash`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/utils/merge_hash.rb) +## [`MergeHash`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/utils/merge_hash.rb) - Deep merges an array of hashes: @@ -45,7 +45,7 @@ We developed a number of utilities to ease development. [:hello, "world", :this, :crushes, "an entire", "hash"] ``` -## [`Override`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/utils/override.rb) +## [`Override`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/utils/override.rb) - This utility could help us check if a particular method would override another method or not. It has the same idea of Java's `@Override` annotation @@ -90,7 +90,7 @@ We developed a number of utilities to ease development. end ``` -## [`StrongMemoize`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/utils/strong_memoize.rb) +## [`StrongMemoize`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/utils/strong_memoize.rb) - Memoize the value even if it is `nil` or `false`. @@ -136,7 +136,7 @@ We developed a number of utilities to ease development. Find.new.clear_memoization(:result) ``` -## [`RequestCache`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/cache/request_cache.rb) +## [`RequestCache`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/cache/request_cache.rb) This module provides a simple way to cache values in RequestStore, and the cache key would be based on the class name, method name, diff --git a/doc/gitlab-basics/create-project.md b/doc/gitlab-basics/create-project.md index 18565daa900..de63abe2b14 100644 --- a/doc/gitlab-basics/create-project.md +++ b/doc/gitlab-basics/create-project.md @@ -80,7 +80,7 @@ You can improve the existing built-in templates or contribute new ones in the #### Custom project templates **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/6860) in +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/6860) in [GitLab Premium](https://about.gitlab.com/pricing) 11.2. Creating new projects based on custom project templates is a convenient option to @@ -101,7 +101,7 @@ To use a custom project template on the **New project** page: ## Push to create a new project -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/26388) in GitLab 10.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/26388) in GitLab 10.5. When you create a new repository locally, instead of going to GitLab to manually create a new project and then [clone the repo](start-using-git.md#clone-a-repository) diff --git a/doc/gitlab-basics/start-using-git.md b/doc/gitlab-basics/start-using-git.md index a289b90b81b..385f69e62ab 100644 --- a/doc/gitlab-basics/start-using-git.md +++ b/doc/gitlab-basics/start-using-git.md @@ -110,7 +110,7 @@ and paste in your command line. As an example, consider this repository path: -- HTTPS: `https://gitlab.com/gitlab-org/gitlab-ce.git` +- HTTPS: `https://gitlab.com/gitlab-org/gitlab-foss.git` - SSH: `git@gitlab.com:gitlab-org/gitlab-ce.git` To get started, open a terminal window in the directory you wish to clone the repository @@ -119,7 +119,7 @@ files into, and run one of the following commands. Clone via HTTPS: ```bash -git clone https://gitlab.com/gitlab-org/gitlab-ce.git +git clone https://gitlab.com/gitlab-org/gitlab-foss.git ``` Clone via SSH: diff --git a/doc/install/aws/index.md b/doc/install/aws/index.md index e47f1cb640e..d08a50b3804 100644 --- a/doc/install/aws/index.md +++ b/doc/install/aws/index.md @@ -657,7 +657,7 @@ And the more complex the solution, the more work is involved in setting up and maintaining it. Have a read through these other resources and feel free to -[open an issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/new) +[open an issue](https://gitlab.com/gitlab-org/gitlab-foss/issues/new) to request additional material: - [GitLab High Availability](../../administration/high_availability/README.md): diff --git a/doc/install/installation.md b/doc/install/installation.md index cf084ca74a9..41ce6cb2f8b 100644 --- a/doc/install/installation.md +++ b/doc/install/installation.md @@ -21,7 +21,7 @@ they changed the location of directories or run services as the wrong user. If you find a bug/error in this guide, **submit a merge request** following the -[contributing guide](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md). +[contributing guide](https://gitlab.com/gitlab-org/gitlab/blob/master/CONTRIBUTING.md). ## Consider the Omnibus package installation @@ -37,7 +37,7 @@ can't be terminated and its memory usage will grow over time. ## Select version to install -Make sure you view [this installation guide](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md) from the branch (version) of GitLab you would like to install (e.g., `11-7-stable`). +Make sure you view [this installation guide](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/install/installation.md) from the branch (version) of GitLab you would like to install (e.g., `11-7-stable`). You can select the branch in the version dropdown in the top left corner of GitLab (below the menu bar). If the highest number stable branch is unclear, check the [GitLab blog](https://about.gitlab.com/blog/) for installation guide links by version. @@ -190,7 +190,7 @@ needs to be installed. sudo apt-get install -y graphicsmagick ``` -**Note:** In order to receive mail notifications, make sure to install a mail server. By default, Debian is shipped with exim4 but this [has problems](https://gitlab.com/gitlab-org/gitlab-ce/issues/12754) while Ubuntu does not ship with one. The recommended mail server is postfix and you can install it with: +**Note:** In order to receive mail notifications, make sure to install a mail server. By default, Debian is shipped with exim4 but this [has problems](https://gitlab.com/gitlab-org/gitlab-foss/issues/12754) while Ubuntu does not ship with one. The recommended mail server is postfix and you can install it with: ```sh sudo apt-get install -y postfix @@ -405,7 +405,7 @@ cd /home/git ```sh # Clone GitLab repository -sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b X-Y-stable gitlab +sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-foss.git -b X-Y-stable gitlab ``` Make sure to replace `X-Y-stable` with the stable branch that matches the @@ -606,7 +606,7 @@ You will then need to update `gitlab.yml`'s `production -> elasticsearch -> inde ### Install GitLab Pages -GitLab Pages uses [GNU Make](https://www.gnu.org/software/make/). This step is optional and only needed if you wish to host static sites from within GitLab. The following commands will install GitLab Pages in `/home/git/gitlab-pages`. For additional setup steps, consult the [administration guide](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/administration/pages/source.md) for your version of GitLab as the GitLab Pages daemon can be run several different ways. +GitLab Pages uses [GNU Make](https://www.gnu.org/software/make/). This step is optional and only needed if you wish to host static sites from within GitLab. The following commands will install GitLab Pages in `/home/git/gitlab-pages`. For additional setup steps, consult the [administration guide](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/administration/pages/source.md) for your version of GitLab as the GitLab Pages daemon can be run several different ways. ```sh cd /home/git diff --git a/doc/install/requirements.md b/doc/install/requirements.md index 234e5acb394..21bee67ec1d 100644 --- a/doc/install/requirements.md +++ b/doc/install/requirements.md @@ -35,7 +35,7 @@ Please see the [installation from source guide](installation.md) and the [instal ### Microsoft Windows GitLab is developed for Linux-based operating systems. -It does **not** run on Microsoft Windows, and we have no plans to support it in the near future. For the latest development status view this [issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/46567). +It does **not** run on Microsoft Windows, and we have no plans to support it in the near future. For the latest development status view this [issue](https://gitlab.com/gitlab-org/gitlab-foss/issues/46567). Please consider using a virtual machine to run GitLab. ## Ruby versions diff --git a/doc/integration/bitbucket.md b/doc/integration/bitbucket.md index 5d8f2ebcb8b..1973d18ca34 100644 --- a/doc/integration/bitbucket.md +++ b/doc/integration/bitbucket.md @@ -137,7 +137,7 @@ you can [disable Sign-Ins in the admin panel](omniauth.md#enable-or-disable-sign [init-oauth]: omniauth.md#initial-omniauth-configuration [bb-import]: ../workflow/importing/import_projects_from_bitbucket.md -[bb-old]: https://gitlab.com/gitlab-org/gitlab-ce/blob/8-14-stable/doc/integration/bitbucket.md +[bb-old]: https://gitlab.com/gitlab-org/gitlab-foss/blob/8-14-stable/doc/integration/bitbucket.md [bitbucket-docs]: https://confluence.atlassian.com/bitbucket/use-the-ssh-protocol-with-bitbucket-cloud-221449711.html#UsetheSSHprotocolwithBitbucketCloud-KnownhostorBitbucket%27spublickeyfingerprints [reconfigure GitLab]: ../administration/restart_gitlab.md#omnibus-gitlab-reconfigure [restart]: ../administration/restart_gitlab.md#installations-from-source diff --git a/doc/integration/elasticsearch.md b/doc/integration/elasticsearch.md index c8c1bb00d83..000bb0c2def 100644 --- a/doc/integration/elasticsearch.md +++ b/doc/integration/elasticsearch.md @@ -1,7 +1,7 @@ # Elasticsearch integration **(STARTER ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/109 "Elasticsearch Merge Request") in GitLab [Starter](https://about.gitlab.com/pricing/) 8.4. Support -> for [Amazon Elasticsearch](http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-gsg.html) was [introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1305) in GitLab +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/109 "Elasticsearch Merge Request") in GitLab [Starter](https://about.gitlab.com/pricing/) 8.4. Support +> for [Amazon Elasticsearch](http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-gsg.html) was [introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/1305) in GitLab > [Starter](https://about.gitlab.com/pricing/) 9.0. This document describes how to set up Elasticsearch with GitLab. Once enabled, @@ -195,7 +195,7 @@ To backfill existing data, you can use one of the methods below to index it in b ### Indexing through the administration UI -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/15390) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/15390) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.3. To index via the admin area: @@ -395,27 +395,27 @@ For repository and snippet files, GitLab will only index up to 1 MiB of content, There are several rake tasks available to you via the command line: -- [`sudo gitlab-rake gitlab:elastic:index`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/lib/tasks/gitlab/elastic.rake) +- [`sudo gitlab-rake gitlab:elastic:index`](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/tasks/gitlab/elastic.rake) - This is a wrapper task. It does the following: - `sudo gitlab-rake gitlab:elastic:create_empty_index` - `sudo gitlab-rake gitlab:elastic:clear_index_status` - `sudo gitlab-rake gitlab:elastic:index_projects` - `sudo gitlab-rake gitlab:elastic:index_snippets` -- [`sudo gitlab-rake gitlab:elastic:index_projects`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/lib/tasks/gitlab/elastic.rake) +- [`sudo gitlab-rake gitlab:elastic:index_projects`](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/tasks/gitlab/elastic.rake) - This iterates over all projects and queues sidekiq jobs to index them in the background. -- [`sudo gitlab-rake gitlab:elastic:index_projects_status`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/lib/tasks/gitlab/elastic.rake) +- [`sudo gitlab-rake gitlab:elastic:index_projects_status`](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/tasks/gitlab/elastic.rake) - This determines the overall status of the indexing. It is done by counting the total number of indexed projects, dividing by a count of the total number of projects, then multiplying by 100. -- [`sudo gitlab-rake gitlab:elastic:create_empty_index`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/lib/tasks/gitlab/elastic.rake) +- [`sudo gitlab-rake gitlab:elastic:create_empty_index`](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/tasks/gitlab/elastic.rake) - This generates an empty index on the Elasticsearch side, deleting the existing one if present. -- [`sudo gitlab-rake gitlab:elastic:clear_index_status`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/lib/tasks/gitlab/elastic.rake) +- [`sudo gitlab-rake gitlab:elastic:clear_index_status`](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/tasks/gitlab/elastic.rake) - This deletes all instances of IndexStatus for all projects. -- [`sudo gitlab-rake gitlab:elastic:delete_index`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/lib/tasks/gitlab/elastic.rake) +- [`sudo gitlab-rake gitlab:elastic:delete_index`](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/tasks/gitlab/elastic.rake) - This removes the GitLab index on the Elasticsearch instance. -- [`sudo gitlab-rake gitlab:elastic:recreate_index`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/lib/tasks/gitlab/elastic.rake) +- [`sudo gitlab-rake gitlab:elastic:recreate_index`](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/tasks/gitlab/elastic.rake) - Does the same thing as `sudo gitlab-rake gitlab:elastic:create_empty_index` -- [`sudo gitlab-rake gitlab:elastic:index_snippets`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/lib/tasks/gitlab/elastic.rake) +- [`sudo gitlab-rake gitlab:elastic:index_snippets`](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/tasks/gitlab/elastic.rake) - Performs an Elasticsearch import that indexes the snippets data. -- [`sudo gitlab-rake gitlab:elastic:projects_not_indexed`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/lib/tasks/gitlab/elastic.rake) +- [`sudo gitlab-rake gitlab:elastic:projects_not_indexed`](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/tasks/gitlab/elastic.rake) - Displays which projects are not indexed. ### Environment Variables @@ -562,7 +562,7 @@ Here are some common pitfalls and how to overcome them: ``` This is because we changed the index mapping in GitLab 8.12 and the old indexes should be removed and built from scratch again, - see details in the [8-11-to-8-12 update guide](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/doc/update/8.11-to-8.12.md#11-elasticsearch-index-update-if-you-currently-use-elasticsearch). + see details in the [8-11-to-8-12 update guide](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/update/8.11-to-8.12.md#11-elasticsearch-index-update-if-you-currently-use-elasticsearch). - Exception `Elasticsearch::Transport::Transport::Errors::BadRequest` diff --git a/doc/integration/gmail_action_buttons_for_gitlab.md b/doc/integration/gmail_action_buttons_for_gitlab.md index cc5d444c069..3c01817032b 100644 --- a/doc/integration/gmail_action_buttons_for_gitlab.md +++ b/doc/integration/gmail_action_buttons_for_gitlab.md @@ -19,4 +19,4 @@ Pay close attention to: - Emails must be authenticated via DKIM or SPF. - Before sending the final form ("Gmail Schema Whitelist Request"), you must send a real email from your production server. This means that you will have to find a way to send this email from the email address you are registering. You can do this by, for example, forwarding the real email from the email address you are registering or going into the rails console on the GitLab server and triggering the email sending from there. -You can check how it looks going through all the steps laid out in the "Registering with Google" doc in [this GitLab.com issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/1517). +You can check how it looks going through all the steps laid out in the "Registering with Google" doc in [this GitLab.com issue](https://gitlab.com/gitlab-org/gitlab-foss/issues/1517). diff --git a/doc/integration/jira_development_panel.md b/doc/integration/jira_development_panel.md index c413e07ec93..a3a66cf6cf2 100644 --- a/doc/integration/jira_development_panel.md +++ b/doc/integration/jira_development_panel.md @@ -129,14 +129,14 @@ Click the links to see your GitLab repository data. ### 11.10 -- [Instance admins can now setup integration for all namespaces](https://gitlab.com/gitlab-org/gitlab-ee/issues/8902) +- [Instance admins can now setup integration for all namespaces](https://gitlab.com/gitlab-org/gitlab/issues/8902) ### 11.1 -- [Support GitLab subgroups in Jira development panel](https://gitlab.com/gitlab-org/gitlab-ee/issues/3561) +- [Support GitLab subgroups in Jira development panel](https://gitlab.com/gitlab-org/gitlab/issues/3561) [existing-jira]: ../user/project/integrations/jira.md [jira-development-panel]: https://confluence.atlassian.com/adminjiraserver070/integrating-with-development-tools-776637096.html#Integratingwithdevelopmenttools-Developmentpanelonissues [eep]: https://about.gitlab.com/pricing/ -[ee-2381]: https://gitlab.com/gitlab-org/gitlab-ee/issues/2381 +[ee-2381]: https://gitlab.com/gitlab-org/gitlab/issues/2381 [relative-url]: https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-a-relative-url-for-gitlab diff --git a/doc/integration/kerberos.md b/doc/integration/kerberos.md index 81a1e9b0067..1888d7c51d5 100644 --- a/doc/integration/kerberos.md +++ b/doc/integration/kerberos.md @@ -46,7 +46,7 @@ sudo chmod 0600 /etc/http.keytab For source installations, make sure the `kerberos` gem group [has been installed](../install/installation.md#install-gems). -1. Edit the `kerberos` section of [`gitlab.yml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/gitlab.yml.example) to enable Kerberos ticket-based +1. Edit the `kerberos` section of [`gitlab.yml`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/config/gitlab.yml.example) to enable Kerberos ticket-based authentication. In most cases, you only need to enable Kerberos and specify the location of the keytab: @@ -153,7 +153,7 @@ keep offering only `basic` authentication. listen [::]:8443 ipv6only=on ssl; ``` -1. Update the `kerberos` section of [`gitlab.yml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/gitlab.yml.example): +1. Update the `kerberos` section of [`gitlab.yml`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/config/gitlab.yml.example): ```yaml kerberos: @@ -203,7 +203,7 @@ remove the OmniAuth provider named `kerberos` from your `gitlab.yml` / **For installations from source** -1. Edit [`gitlab.yml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/gitlab.yml.example) and remove the `- { name: 'kerberos' }` line under omniauth +1. Edit [`gitlab.yml`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/config/gitlab.yml.example) and remove the `- { name: 'kerberos' }` line under omniauth providers: ```yaml diff --git a/doc/integration/omniauth.md b/doc/integration/omniauth.md index f1456146032..30a4c348c22 100644 --- a/doc/integration/omniauth.md +++ b/doc/integration/omniauth.md @@ -192,7 +192,7 @@ from the Omniauth provider's documentation. sudo service gitlab stop ``` -- Add the gem to your [Gemfile](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/Gemfile): +- Add the gem to your [Gemfile](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/Gemfile): ```sh gem "omniauth-your-auth-provider" diff --git a/doc/integration/saml.md b/doc/integration/saml.md index de160e72dda..23e9e44e076 100644 --- a/doc/integration/saml.md +++ b/doc/integration/saml.md @@ -414,7 +414,7 @@ args: { ### `uid_attribute` -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/43806) in GitLab 10.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/43806) in GitLab 10.7. By default, the `uid` is set as the `name_id` in the SAML response. If you'd like to designate a unique attribute for the `uid`, you can set the `uid_attribute`. In the example below, the value of `uid` attribute in the SAML response is set as the `uid_attribute`. diff --git a/doc/integration/slash_commands.md b/doc/integration/slash_commands.md index 86a66dc4569..b8842ef3a43 100644 --- a/doc/integration/slash_commands.md +++ b/doc/integration/slash_commands.md @@ -1,6 +1,6 @@ # Slash Commands -> The `run` command was [introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/4466) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.6. [Moved](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24780) to [GitLab Core](https://about.gitlab.com/pricing/) in 11.9. +> The `run` command was [introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/4466) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.6. [Moved](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/24780) to [GitLab Core](https://about.gitlab.com/pricing/) in 11.9. Slash commands in Mattermost and Slack allow you to control GitLab and view GitLab content right inside your chat client, without having to leave it. For Slack, this requires a [project service configuration](../user/project/integrations/slack_slash_commands.md). Simply type the command as a message in your chat client to activate it. diff --git a/doc/legal/README.md b/doc/legal/README.md index d991429a652..497a477419a 100644 --- a/doc/legal/README.md +++ b/doc/legal/README.md @@ -4,4 +4,4 @@ comments: false # Legal -Please read through the [GitLab License Agreement](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md). +Please read through the [GitLab License Agreement](https://gitlab.com/gitlab-org/gitlab/blob/master/CONTRIBUTING.md). diff --git a/doc/public_access/public_access.md b/doc/public_access/public_access.md index dc6ee9b2503..e7d29fb8018 100644 --- a/doc/public_access/public_access.md +++ b/doc/public_access/public_access.md @@ -33,7 +33,7 @@ NOTE: **Note:** From July 2019, the `Internal` visibility setting is disabled for new projects, groups, and snippets on GitLab.com. Existing projects, groups, and snippets using the `Internal` visibility setting keep this setting. You can read more about the change in the -[relevant issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/12388). +[relevant issue](https://gitlab.com/gitlab-org/gitlab/issues/12388). ### Private projects @@ -49,7 +49,7 @@ They will appear in the public access directory (`/public`) for project members ## Visibility of groups NOTE: **Note:** -[Starting with](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3323) GitLab 8.6, +[Starting with](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/3323) GitLab 8.6, the group visibility has changed and can be configured the same way as projects. In previous versions, a group's page was always visible to all users. diff --git a/doc/push_rules/push_rules.md b/doc/push_rules/push_rules.md index 7455b577af7..08484fb4187 100644 --- a/doc/push_rules/push_rules.md +++ b/doc/push_rules/push_rules.md @@ -167,7 +167,7 @@ but commented out to help encourage others to add to it in the future. --> [protected-branches]: ../user/project/protected_branches.md [signing-commits]: ../user/project/repository/gpg_signed_commits/index.md -[ee-385]: https://gitlab.com/gitlab-org/gitlab-ee/issues/385 -[list]: https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/lib/gitlab/checks/files_blacklist.yml +[ee-385]: https://gitlab.com/gitlab-org/gitlab/issues/385 +[list]: https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/gitlab/checks/files_blacklist.yml [hooks]: https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks [ee]: https://about.gitlab.com/pricing/ diff --git a/doc/raketasks/backup_restore.md b/doc/raketasks/backup_restore.md index bc9e429c431..cc43a120e22 100644 --- a/doc/raketasks/backup_restore.md +++ b/doc/raketasks/backup_restore.md @@ -185,7 +185,7 @@ The command line tool GitLab provides to backup your instance can take more opti ### Backup strategy option -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8728) in GitLab 8.17. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8728) in GitLab 8.17. The default backup strategy is to essentially stream data from the respective data locations to the backup using the Linux command `tar` and `gzip`. This works @@ -277,7 +277,7 @@ Starting with GitLab 7.4 you can let the backup script upload the '.tar' file it It uses the [Fog library](http://fog.io/) to perform the upload. In the example below we use Amazon S3 for storage, but Fog also lets you use [other storage providers](http://fog.io/storage/). GitLab -[imports cloud drivers](https://gitlab.com/gitlab-org/gitlab-ce/blob/30f5b9a5b711b46f1065baf755e413ceced5646b/Gemfile#L88) +[imports cloud drivers](https://gitlab.com/gitlab-org/gitlab-foss/blob/30f5b9a5b711b46f1065baf755e413ceced5646b/Gemfile#L88) for AWS, Google, OpenStack Swift, Rackspace and Aliyun as well. A local driver is [also available](#uploading-to-locally-mounted-shares). @@ -758,7 +758,7 @@ For GitLab 12.1 and earlier, use `gitlab-rake gitlab:backup:restore`. CAUTION: **Warning:** `gitlab-rake gitlab:backup:restore` does not set the right file system permissions on your Registry directory. -This is a [known issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/62759). On GitLab 12.2 or newer, you can +This is a [known issue](https://gitlab.com/gitlab-org/gitlab-foss/issues/62759). On GitLab 12.2 or newer, you can use `gitlab-backup restore` to avoid this issue. Next, restore `/etc/gitlab/gitlab-secrets.json` if necessary as mentioned above. @@ -800,7 +800,7 @@ For GitLab 12.1 and earlier, use `gitlab-rake gitlab:backup:restore`. CAUTION: **Warning:** `gitlab-rake gitlab:backup:restore` does not set the right file system permissions on your Registry directory. -This is a [known issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/62759). On GitLab 12.2 or newer, you can +This is a [known issue](https://gitlab.com/gitlab-org/gitlab-foss/issues/62759). On GitLab 12.2 or newer, you can use `gitlab-backup restore` to avoid this issue. The GitLab helm chart uses a different process, documented in @@ -1008,7 +1008,7 @@ err.message="unknown error" This is caused by the restore being run as the unprivileged user `git` which was unable to assign the correct ownership to the registry files during the restore -([issue 62759](https://gitlab.com/gitlab-org/gitlab-ce/issues/62759 "Incorrect permissions on registry filesystem after restore")). +([issue 62759](https://gitlab.com/gitlab-org/gitlab-foss/issues/62759 "Incorrect permissions on registry filesystem after restore")). To get your registry working again: diff --git a/doc/raketasks/import.md b/doc/raketasks/import.md index 326f7e4b982..b6253bbecdc 100644 --- a/doc/raketasks/import.md +++ b/doc/raketasks/import.md @@ -122,7 +122,7 @@ Bare repositories are **not** importable by GitLab 10.4 and later when all the f - Its ancestor namespaces were not renamed or transferred in GitLab 10.4 and later. There is an [open issue to add a migration to make all bare repositories -importable](https://gitlab.com/gitlab-org/gitlab-ce/issues/41776). +importable](https://gitlab.com/gitlab-org/gitlab-foss/issues/41776). Until then, you may wish to manually migrate repositories yourself. You can use [Rails console](https://docs.gitlab.com/omnibus/maintenance/#starting-a-rails-console-session) diff --git a/doc/security/crime_vulnerability.md b/doc/security/crime_vulnerability.md index 9665cc0337f..6e0a62b6510 100644 --- a/doc/security/crime_vulnerability.md +++ b/doc/security/crime_vulnerability.md @@ -60,7 +60,7 @@ vulnerability. - Tenable Network Security, Inc. ["Transport Layer Security (TLS) Protocol CRIME Vulnerability"][nessus] - Wikipedia contributors, ["CRIME"][wiki-crime] Wikipedia, The Free Encyclopedia -[source-nginx]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/support/nginx/gitlab-ssl +[source-nginx]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/support/nginx/gitlab-ssl [omnibus-nginx]: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-cookbooks/gitlab/templates/default/nginx-gitlab-http.conf.erb [ngx-spdy]: http://nginx.org/en/docs/http/ngx_http_spdy_module.html [nessus]: https://www.tenable.com/plugins/index.php?view=single&id=62565 diff --git a/doc/security/two_factor_authentication.md b/doc/security/two_factor_authentication.md index b08d9ffa26e..defc4669e69 100644 --- a/doc/security/two_factor_authentication.md +++ b/doc/security/two_factor_authentication.md @@ -40,7 +40,7 @@ If you want to enforce 2FA only for certain groups, you can: To change this setting, you need to be administrator or owner of the group. -> [From](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24965) GitLab 12.0, 2FA settings for a group are also applied to subgroups. +> [From](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/24965) GitLab 12.0, 2FA settings for a group are also applied to subgroups. If you want to enforce 2FA only for certain groups, you can enable it in the group settings and specify a grace period as above. To change this setting you diff --git a/doc/security/webhooks.md b/doc/security/webhooks.md index e39bc9a9626..b9af1ac108f 100644 --- a/doc/security/webhooks.md +++ b/doc/security/webhooks.md @@ -47,7 +47,7 @@ set up by administrators. However, you can turn this off by disabling the ## Whitelist for local requests -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/44496) in GitLab 12.2 +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/44496) in GitLab 12.2 You can allow certain domains and IP addresses to be accessible to both *system hooks* and *webhooks* even when local requests are not allowed by adding them to the diff --git a/doc/subscriptions/index.md b/doc/subscriptions/index.md index 576aad17c0a..950850536e9 100644 --- a/doc/subscriptions/index.md +++ b/doc/subscriptions/index.md @@ -275,7 +275,7 @@ However, depending on the tier and feature, your data may become inaccessible. Please note that some features may not behave as expected if a graceful fallback is not currently implemented. For example, -[environment specific variables not being passed](https://gitlab.com/gitlab-org/gitlab-ce/issues/52825). +[environment specific variables not being passed](https://gitlab.com/gitlab-org/gitlab-foss/issues/52825). If you renew or upgrade, your data will again be accessible. @@ -296,9 +296,9 @@ topics covering the use and administration of GitLab. We also encourage all users to search our project trackers for known issues and existing feature requests in: -- [GitLab CE](https://gitlab.com/gitlab-org/gitlab-ce/issues/) for features +- [GitLab CE](https://gitlab.com/gitlab-org/gitlab-foss/issues/) for features included in all tiers. -- [GitLab EE](https://gitlab.com/gitlab-org/gitlab-ee/issues/) for paid-tier +- [GitLab EE](https://gitlab.com/gitlab-org/gitlab/issues/) for paid-tier features. These issues are the best avenue for getting updates on specific product plans diff --git a/doc/system_hooks/system_hooks.md b/doc/system_hooks/system_hooks.md index 24a334e7067..30d080eab29 100644 --- a/doc/system_hooks/system_hooks.md +++ b/doc/system_hooks/system_hooks.md @@ -296,7 +296,7 @@ If the user is blocked via LDAP, `state` will be `ldap_blocked`. } ``` -`owner_name` and `owner_email` are always `null`. Please see <https://gitlab.com/gitlab-org/gitlab-ce/issues/39675>. +`owner_name` and `owner_email` are always `null`. Please see <https://gitlab.com/gitlab-org/gitlab-foss/issues/39675>. **Group removed:** @@ -313,7 +313,7 @@ If the user is blocked via LDAP, `state` will be `ldap_blocked`. } ``` -`owner_name` and `owner_email` are always `null`. Please see <https://gitlab.com/gitlab-org/gitlab-ce/issues/39675>. +`owner_name` and `owner_email` are always `null`. Please see <https://gitlab.com/gitlab-org/gitlab-foss/issues/39675>. **Group renamed:** @@ -333,7 +333,7 @@ If the user is blocked via LDAP, `state` will be `ldap_blocked`. } ``` -`owner_name` and `owner_email` are always `null`. Please see <https://gitlab.com/gitlab-org/gitlab-ce/issues/39675>. +`owner_name` and `owner_email` are always `null`. Please see <https://gitlab.com/gitlab-org/gitlab-foss/issues/39675>. **New Group Member:** diff --git a/doc/topics/autodevops/index.md b/doc/topics/autodevops/index.md index ebeb5270884..e42c89ac567 100644 --- a/doc/topics/autodevops/index.md +++ b/doc/topics/autodevops/index.md @@ -158,7 +158,7 @@ as other environment [variables](../../ci/variables/README.md#priority-of-enviro NOTE: **Note** `AUTO_DEVOPS_DOMAIN` environment variable is deprecated and -[is scheduled to be removed](https://gitlab.com/gitlab-org/gitlab-ce/issues/56959). +[is scheduled to be removed](https://gitlab.com/gitlab-org/gitlab-foss/issues/56959). A wildcard DNS A record matching the base domain(s) is required, for example, given a base domain of `example.com`, you'd need a DNS entry like: @@ -182,7 +182,7 @@ them to the Kubernetes pods that run your application(s). NOTE: **Note:** From GitLab 11.8, `KUBE_INGRESS_BASE_DOMAIN` replaces `AUTO_DEVOPS_DOMAIN`. Support for `AUTO_DEVOPS_DOMAIN` was [removed in GitLab -12.0](https://gitlab.com/gitlab-org/gitlab-ce/issues/56959). +12.0](https://gitlab.com/gitlab-org/gitlab-foss/issues/56959). ## Using multiple Kubernetes clusters **(PREMIUM)** @@ -252,7 +252,7 @@ Auto DevOps at the group and project level, respectively. ### At the group level -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/52447) in GitLab 11.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/52447) in GitLab 11.10. Only administrators and group owners can enable or disable Auto DevOps at the group level. @@ -289,7 +289,7 @@ This can be enabled from the console with the following, which uses the example ### Deployment strategy -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/38542) in GitLab 11.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/38542) in GitLab 11.0. You can change the deployment strategy used by Auto DevOps by going to your project's **Settings > CI/CD > Auto DevOps**. @@ -472,7 +472,7 @@ namespace](../../user/project/clusters/index.md#deployment-variables) for the environment. Since GitLab 11.4, a [local -Tiller](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22036) is +Tiller](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22036) is used. Previous versions of GitLab had a Tiller installed in the project namespace. @@ -538,7 +538,7 @@ namespace](../../user/project/clusters/index.md#deployment-variables) for the environment. Since GitLab 11.4, a [local -Tiller](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22036) is +Tiller](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22036) is used. Previous versions of GitLab had a Tiller installed in the project namespace. @@ -930,7 +930,7 @@ The following table lists variables used to disable jobs. #### Application secret variables -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/49056) in GitLab 11.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/49056) in GitLab 11.7. Some applications need to define secret variables that are accessible by the deployed application. Auto DevOps detects variables where the key starts with @@ -1075,7 +1075,7 @@ If `CANARY_ENABLED` is defined in your project (e.g., set `CANARY_ENABLED` to #### Incremental rollout to production **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5415) in GitLab 10.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5415) in GitLab 10.8. TIP: **Tip:** You can also set this inside your [project's settings](#deployment-strategy). @@ -1133,7 +1133,7 @@ This configuration is deprecated and will be removed in the future. #### Timed incremental rollout to production **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7545) in GitLab 11.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/7545) in GitLab 11.4. TIP: **Tip:** You can also set this inside your [project's settings](#deployment-strategy). @@ -1259,16 +1259,16 @@ Or through the HTTP API with an admin access token: curl --data "value=true" --header "PRIVATE-TOKEN: personal_access_token" https://gitlab.example.com/api/v4/features/auto_devops_banner_disabled ``` -[ce-37115]: https://gitlab.com/gitlab-org/gitlab-ce/issues/37115 +[ce-37115]: https://gitlab.com/gitlab-org/gitlab-foss/issues/37115 [kubernetes-clusters]: ../../user/project/clusters/index.md [docker-in-docker]: ../../docker/using_docker_build.md#use-docker-in-docker-executor [review-app]: ../../ci/review_apps/index.md [container-registry]: ../../user/packages/container_registry/index.md [postgresql]: https://www.postgresql.org/ -[Auto DevOps template]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml +[Auto DevOps template]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml [ee]: https://about.gitlab.com/pricing/ -[ce-21955]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21955 -[ce-19507]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/19507 +[ce-21955]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/21955 +[ce-19507]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/19507 ## Development guides diff --git a/doc/topics/git/numerous_undo_possibilities_in_git/index.md b/doc/topics/git/numerous_undo_possibilities_in_git/index.md index 5cae532bf54..2ab03df095c 100644 --- a/doc/topics/git/numerous_undo_possibilities_in_git/index.md +++ b/doc/topics/git/numerous_undo_possibilities_in_git/index.md @@ -401,11 +401,11 @@ the cleanup of detached commits (happens automatically). ### Where modifying history is generally acceptable Modified history breaks the development chain of other developers, as changed -history does not have matching commits'ids. For that reason it should not -be used on any public branch or on branch that *might* be used by other -developers. When contributing to big open source repositories (for example, [GitLab CE][gitlab-ce]), -it is acceptable to *squash* commits into a single one, to present -a nicer history of your contribution. +history does not have matching commits'ids. For that reason it should not be +used on any public branch or on branch that *might* be used by other developers. +When contributing to big open source repositories (for example, [GitLab][gitlab] +itself), it is acceptable to *squash* commits into a single one, to present a +nicer history of your contribution. Keep in mind that this also removes the comments attached to certain commits in merge requests, so if you need to retain traceability in GitLab, then @@ -520,6 +520,6 @@ but commented out to help encourage others to add to it in the future. --> [git-distributed]: https://git-scm.com/about/distributed [git-filters-manual]: https://git-scm.com/docs/git-filter-branch#_options [git-official]: https://git-scm.com/ -[gitlab-ce]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#contribution-acceptance-criteria +[gitlab]: https://gitlab.com/gitlab-org/gitlab/blob/master/CONTRIBUTING.md#contribution-acceptance-criteria [gitlab-flow]: https://about.gitlab.com/2014/09/29/gitlab-flow/ [gitlab-git-tips-n-tricks]: https://about.gitlab.com/2016/12/08/git-tips-and-tricks/ diff --git a/doc/university/README.md b/doc/university/README.md index 25f77906e68..2d2321ffc2d 100644 --- a/doc/university/README.md +++ b/doc/university/README.md @@ -11,7 +11,7 @@ If you're looking for a GitLab subscription for _your university_, see our [Educ CAUTION: **Caution:** Some of the content in GitLab University may be out of date and we plan to -[evaluate](https://gitlab.com/gitlab-org/gitlab-ce/issues/41064) it. +[evaluate](https://gitlab.com/gitlab-org/gitlab-foss/issues/41064) it. The GitLab University curriculum is composed of GitLab videos, screencasts, presentations, projects and external GitLab content hosted on other services and has been organized into the following sections: diff --git a/doc/university/process/README.md b/doc/university/process/README.md index 1a555f065ed..c3e023da655 100644 --- a/doc/university/process/README.md +++ b/doc/university/process/README.md @@ -13,7 +13,7 @@ please submit a merge request to add an upcoming class, assign to ## Adding classes -1. All training materials of any kind should be added to [GitLab CE](https://gitlab.com/gitlab-org/gitlab-ce/) +1. All training materials of any kind should be added to [GitLab CE](https://gitlab.com/gitlab-org/gitlab-foss/) to ensure they are available to a broad audience (don't use any other repo or storage for training materials). 1. Don't make materials that are needlessly specific to one group of people, try diff --git a/doc/university/support/README.md b/doc/university/support/README.md index 0634e01764f..76cc258355f 100644 --- a/doc/university/support/README.md +++ b/doc/university/support/README.md @@ -47,14 +47,14 @@ Sometimes we need to upgrade customers from old versions of GitLab to latest, so - [Installation Methods](https://about.gitlab.com/install/): - [Omnibus](https://gitlab.com/gitlab-org/omnibus-gitlab/) - - [Docker](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/docker) - - [Source](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md) + - [Docker](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/docker) + - [Source](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/install/installation.md) - Get yourself a Digital Ocean droplet, where you can install and maintain your own instance of GitLab - Ask in #infrastructure about this - Populate with some test data - Keep this up-to-date as patch and version releases become available, just like our customers would - Try out the following installation path - - [Install GitLab 4.2 from source](https://gitlab.com/gitlab-org/gitlab-ce/blob/d67117b5a185cfb15a1d7e749588ff981ffbf779/doc/install/installation.md) + - [Install GitLab 4.2 from source](https://gitlab.com/gitlab-org/gitlab-foss/blob/d67117b5a185cfb15a1d7e749588ff981ffbf779/doc/install/installation.md) - External MySQL database - External NGINX - Create some test data @@ -63,10 +63,10 @@ Sometimes we need to upgrade customers from old versions of GitLab to latest, so - Groups - Projects - [Backup using our Backup rake task](../../raketasks/backup_restore.md#creating-a-backup-of-the-gitlab-system) - - [Upgrade to 5.0 source using our Upgrade documentation](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/doc/update/4.2-to-5.0.md) - - [Upgrade to 5.1 source](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/doc/update/5.0-to-5.1.md) - - [Upgrade to 6.0 source](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/doc/update/5.1-to-6.0.md) - - [Upgrade to 7.14 source](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/doc/update/6.x-or-7.x-to-7.14.md) + - [Upgrade to 5.0 source using our Upgrade documentation](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/update/4.2-to-5.0.md) + - [Upgrade to 5.1 source](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/update/5.0-to-5.1.md) + - [Upgrade to 6.0 source](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/update/5.1-to-6.0.md) + - [Upgrade to 7.14 source](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/update/6.x-or-7.x-to-7.14.md) - [Perform the MySQL to PostgreSQL migration to convert your backup](../../update/mysql_to_postgresql.md) - [Upgrade to Omnibus 7.14](https://docs.gitlab.com/omnibus/update/README.html#upgrading-from-a-non-omnibus-installation-to-an-omnibus-installation) - [Restore backup using our Restore rake task](../../raketasks/backup_restore.md#restore) @@ -152,10 +152,10 @@ Some tickets need specific knowledge or a deep understanding of a particular com ### Learn about raising issues and fielding feature proposals - Understand what's in the pipeline and proposed features at GitLab: [Direction Page](https://about.gitlab.com/direction/) -- Practice searching issues and filtering using [labels](https://gitlab.com/gitlab-org/gitlab-ce/labels) to find existing feature proposals and bugs +- Practice searching issues and filtering using [labels](https://gitlab.com/gitlab-org/gitlab-foss/labels) to find existing feature proposals and bugs - If raising a new issue always provide a relevant label and a link to the relevant ticket in Zendesk -- Add [customer labels](https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name%5B%5D=customer) for those issues relevant to our subscribers -- Take a look at the [existing issue templates](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker) to see what is expected +- Add [customer labels](https://gitlab.com/gitlab-org/gitlab-foss/issues?label_name%5B%5D=customer) for those issues relevant to our subscribers +- Take a look at the [existing issue templates](https://gitlab.com/gitlab-org/gitlab/blob/master/CONTRIBUTING.md#issue-tracker) to see what is expected - Raise issues for bugs in a manner that would make the issue easily reproducible. A Developer or a contributor may work on your issue ### Goals @@ -176,8 +176,8 @@ Move on to understanding some of GitLab's more advanced features. You can make u - Set up [GitLab CI](../../ci/quick_start/README.md) - Create your first [GitLab Page](../../administration/pages/index.md) - Get to know the GitLab Codebase by reading through the source code: - - Find the differences between the [EE codebase](https://gitlab.com/gitlab-org/gitlab-ce) - and the [CE codebase](https://gitlab.com/gitlab-org/gitlab-ce) + - Find the differences between the [EE codebase](https://gitlab.com/gitlab-org/gitlab-foss) + and the [CE codebase](https://gitlab.com/gitlab-org/gitlab-foss) - Ask as many questions as you can think of on the `#support` chat channel ### Get initiated for on-call duty diff --git a/doc/university/training/end-user/README.md b/doc/university/training/end-user/README.md index 1218465c87a..0ea51a95445 100644 --- a/doc/university/training/end-user/README.md +++ b/doc/university/training/end-user/README.md @@ -186,7 +186,7 @@ git push origin squash_some_bugs - Review the Thoughtbot code-review guide for suggestions to follow when reviewing merge requests: [Thoughtbot](https://github.com/thoughtbot/guides/tree/master/code-review) -- See GitLab merge requests for examples: [Merge Requests](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests) +- See GitLab merge requests for examples: [Merge Requests](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests) ## Merge Conflicts diff --git a/doc/university/training/topics/merge_requests.md b/doc/university/training/topics/merge_requests.md index 656871ae5b2..357c845ba17 100644 --- a/doc/university/training/topics/merge_requests.md +++ b/doc/university/training/topics/merge_requests.md @@ -34,4 +34,4 @@ Review the Thoughtbot code-review guide for suggestions to follow when reviewing [https://github.com/thoughtbot/guides/tree/master/code-review](https://github.com/thoughtbot/guides/tree/master/code-review) See GitLab merge requests for examples: -[https://gitlab.com/gitlab-org/gitlab-ce/merge_requests](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests) +[https://gitlab.com/gitlab-org/gitlab-foss/merge_requests](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests) diff --git a/doc/university/training/user_training.md b/doc/university/training/user_training.md index 37107e13584..231039b0be8 100644 --- a/doc/university/training/user_training.md +++ b/doc/university/training/user_training.md @@ -214,7 +214,7 @@ Create your first merge request: Review the Thoughtbot code-review guide for suggestions to follow when reviewing merge requests: <https://github.com/thoughtbot/guides/tree/master/code-review>. -See GitLab merge requests for examples: <https://gitlab.com/gitlab-org/gitlab-ce/merge_requests>. +See GitLab merge requests for examples: <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests>. ## Explore GitLab projects diff --git a/doc/update/README.md b/doc/update/README.md index 42c43110a19..965f29bc8aa 100644 --- a/doc/update/README.md +++ b/doc/update/README.md @@ -168,8 +168,8 @@ or future versions. upgrading a PostgreSQL database with minimal downtime. [omnidocker]: https://docs.gitlab.com/omnibus/docker/README.html -[old-ee-upgrade-docs]: https://gitlab.com/gitlab-org/gitlab-ee/tree/11-8-stable-ee/doc/update -[old-ce-upgrade-docs]: https://gitlab.com/gitlab-org/gitlab-ce/tree/11-8-stable/doc/update +[old-ee-upgrade-docs]: https://gitlab.com/gitlab-org/gitlab/tree/11-8-stable-ee/doc/update +[old-ce-upgrade-docs]: https://gitlab.com/gitlab-org/gitlab-foss/tree/11-8-stable/doc/update [source-ce-to-ee]: upgrading_from_ce_to_ee.md [ee-ce]: ../downgrade_ee_to_ce/README.md [ce]: https://about.gitlab.com/features/#community diff --git a/doc/update/patch_versions.md b/doc/update/patch_versions.md index 3c9fcbf7c7d..a555f1c82bf 100644 --- a/doc/update/patch_versions.md +++ b/doc/update/patch_versions.md @@ -6,7 +6,7 @@ comments: false ## Select Version to Install -Make sure you view [this update guide](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/update/patch_versions.md) from the tag (version) of GitLab you would like to install. +Make sure you view [this update guide](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/update/patch_versions.md) from the tag (version) of GitLab you would like to install. In most cases this should be the highest numbered production tag (without rc in it). You can select the tag in the version dropdown in the top left corner of GitLab (below the menu bar). diff --git a/doc/update/upgrading_from_ce_to_ee.md b/doc/update/upgrading_from_ce_to_ee.md index 9ac73725f87..ea9235c6d2a 100644 --- a/doc/update/upgrading_from_ce_to_ee.md +++ b/doc/update/upgrading_from_ce_to_ee.md @@ -50,7 +50,7 @@ sudo service gitlab stop ```sh cd /home/git/gitlab -sudo -u git -H git remote add -f ee https://gitlab.com/gitlab-org/gitlab-ee.git +sudo -u git -H git remote add -f ee https://gitlab.com/gitlab-org/gitlab.git sudo -u git -H git checkout EE_BRANCH ``` @@ -131,4 +131,4 @@ Example: Additional instructions here. --> -[old-ee-upgrade-docs]: https://gitlab.com/gitlab-org/gitlab-ee/tree/11-8-stable-ee/doc/update +[old-ee-upgrade-docs]: https://gitlab.com/gitlab-org/gitlab/tree/11-8-stable-ee/doc/update diff --git a/doc/update/upgrading_from_source.md b/doc/update/upgrading_from_source.md index 890a5ec8698..d0265781777 100644 --- a/doc/update/upgrading_from_source.md +++ b/doc/update/upgrading_from_source.md @@ -122,7 +122,7 @@ rm go1.11.10.linux-amd64.tar.gz NOTE: **Note:** GitLab 11.11 and higher only supports Git 2.21.x and newer, and -[dropped support for older versions](https://gitlab.com/gitlab-org/gitlab-ce/issues/54255). +[dropped support for older versions](https://gitlab.com/gitlab-org/gitlab-foss/issues/54255). Be sure to upgrade your installation if necessary. ```bash @@ -274,7 +274,7 @@ longer handles setting it. If you are using Apache instead of NGINX please see the updated [Apache templates]. Also note that because Apache does not support upstreams behind Unix sockets you will need to let GitLab Workhorse listen on a TCP port. You can do this -via [`/etc/default/gitlab`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/support/init.d/gitlab.default.example#L38). +via [`/etc/default/gitlab`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/support/init.d/gitlab.default.example#L38). #### SMTP configuration @@ -400,7 +400,7 @@ sudo -u git -H bundle exec rake gitlab:backup:restore RAILS_ENV=production If you have more than one backup `*.tar` file(s) please add `BACKUP=timestamp_of_backup` to the command above. -[yaml]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/gitlab.yml.example -[gl-example]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/support/init.d/gitlab.default.example -[smtp_settings.rb.sample]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/initializers/smtp_settings.rb.sample#L13 +[yaml]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/config/gitlab.yml.example +[gl-example]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/support/init.d/gitlab.default.example +[smtp_settings.rb.sample]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/config/initializers/smtp_settings.rb.sample#L13 [Apache templates]: https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/web-server/apache diff --git a/doc/user/admin_area/abuse_reports.md b/doc/user/admin_area/abuse_reports.md index cd8dc7bcbf6..36de817a29b 100644 --- a/doc/user/admin_area/abuse_reports.md +++ b/doc/user/admin_area/abuse_reports.md @@ -44,7 +44,7 @@ Blocking a user: - Changes the **Block user** button to a disabled **Already blocked** button. The user will be notified with the -[following message](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/app/workers/email_receiver_worker.rb#L38): +[following message](https://gitlab.com/gitlab-org/gitlab/blob/master/app/workers/email_receiver_worker.rb#L38): ```text Your account has been blocked. If you believe this is in error, contact a staff member. diff --git a/doc/user/admin_area/custom_project_templates.md b/doc/user/admin_area/custom_project_templates.md index 02c2efaa4f3..8a0cc95ade0 100644 --- a/doc/user/admin_area/custom_project_templates.md +++ b/doc/user/admin_area/custom_project_templates.md @@ -4,7 +4,7 @@ type: reference # Custom instance-level project templates **(PREMIUM ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/6860) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/6860) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2. GitLab administrators can configure the group where all the custom project templates are sourced. diff --git a/doc/user/admin_area/geo_nodes.md b/doc/user/admin_area/geo_nodes.md index 39753fd885e..817b44bfdc8 100644 --- a/doc/user/admin_area/geo_nodes.md +++ b/doc/user/admin_area/geo_nodes.md @@ -45,7 +45,7 @@ download them all at once, so GitLab places an upper limit on the concurrency of these operations. How long the backfill takes is a function of the maximum concurrency, but higher -values place more strain on the **primary** node. From [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3107), +values place more strain on the **primary** node. From [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab/merge_requests/3107), the limits are configurable. If your **primary** node has lots of surplus capacity, you can increase the values to complete backfill in a shorter time. If it's under heavy load and backfill is reducing its availability for normal requests, diff --git a/doc/user/admin_area/monitoring/health_check.md b/doc/user/admin_area/monitoring/health_check.md index 52f24c602df..f5e812cad1b 100644 --- a/doc/user/admin_area/monitoring/health_check.md +++ b/doc/user/admin_area/monitoring/health_check.md @@ -172,8 +172,8 @@ Each scenario can be a third-level heading, e.g. `### Getting error message X`. If you have none to add when creating a doc, leave this section in place but commented out to help encourage others to add to it in the future. --> -[ce-10416]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10416 -[ce-3888]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3888 +[ce-10416]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10416 +[ce-3888]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/3888 [pingdom]: https://www.pingdom.com [nagios-health]: https://nagios-plugins.org/doc/man/check_http.html [newrelic-health]: https://docs.newrelic.com/docs/alerts/alert-policies/downtime-alerts/availability-monitoring diff --git a/doc/user/admin_area/settings/account_and_limit_settings.md b/doc/user/admin_area/settings/account_and_limit_settings.md index 20691210fbd..cdbc6346f3f 100644 --- a/doc/user/admin_area/settings/account_and_limit_settings.md +++ b/doc/user/admin_area/settings/account_and_limit_settings.md @@ -17,7 +17,7 @@ details. ## Repository size limit **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/740) in [GitLab Enterprise Edition 8.12](https://about.gitlab.com/2016/09/22/gitlab-8-12-released/#limit-project-size-ee). +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/740) in [GitLab Enterprise Edition 8.12](https://about.gitlab.com/2016/09/22/gitlab-8-12-released/#limit-project-size-ee). > Available in [GitLab Starter](https://about.gitlab.com/pricing/). Repositories within your GitLab instance can grow quickly, especially if you are diff --git a/doc/user/admin_area/settings/continuous_integration.md b/doc/user/admin_area/settings/continuous_integration.md index fa14ecdf7cb..6ba027dc24a 100644 --- a/doc/user/admin_area/settings/continuous_integration.md +++ b/doc/user/admin_area/settings/continuous_integration.md @@ -56,7 +56,7 @@ To disable the expiration, set it to `0`. The default unit is in seconds. ## Shared Runners pipeline minutes quota **(STARTER ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1078) +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/1078) in GitLab Starter 8.16. If you have enabled shared Runners for your GitLab instance, you can limit their diff --git a/doc/user/admin_area/settings/email.md b/doc/user/admin_area/settings/email.md index ddf989d0181..6026f9dc735 100644 --- a/doc/user/admin_area/settings/email.md +++ b/doc/user/admin_area/settings/email.md @@ -22,12 +22,12 @@ legal/auditing/compliance reasons. 1. Enter your text in the **Additional text** field. 1. Click **Save**. -[ee-5031]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5031 +[ee-5031]: https://gitlab.com/gitlab-org/gitlab/merge_requests/5031 [eep]: https://about.gitlab.com/pricing/ ## Custom hostname for private commit emails -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22560) in GitLab 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22560) in GitLab 11.5. This configuration option sets the email hostname for [private commit emails](../../profile/index.md#private-commit-email). By default it is set to `users.noreply.YOUR_CONFIGURED_HOSTNAME`. diff --git a/doc/user/admin_area/settings/external_authorization.md b/doc/user/admin_area/settings/external_authorization.md index 4fde7477490..d11f672ca5c 100644 --- a/doc/user/admin_area/settings/external_authorization.md +++ b/doc/user/admin_area/settings/external_authorization.md @@ -4,9 +4,9 @@ type: reference # External authorization control **(CORE ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4216) in +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/4216) in > [GitLab Premium](https://about.gitlab.com/pricing/) 10.6. -> [Moved](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27056) to +> [Moved](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/27056) to > [GitLab Core](https://about.gitlab.com/pricing/) in 11.10. In highly controlled environments, it may be necessary for access policy to be diff --git a/doc/user/admin_area/settings/instance_template_repository.md b/doc/user/admin_area/settings/instance_template_repository.md index f2ba131d17b..b3a861cac45 100644 --- a/doc/user/admin_area/settings/instance_template_repository.md +++ b/doc/user/admin_area/settings/instance_template_repository.md @@ -4,7 +4,7 @@ type: reference # Instance template repository **(PREMIUM ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5986) in +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5986) in > [GitLab Premium](https://about.gitlab.com/pricing/) 11.3. ## Overview diff --git a/doc/user/admin_area/settings/rate_limits_on_raw_endpoints.md b/doc/user/admin_area/settings/rate_limits_on_raw_endpoints.md index 6d2f74af660..3a6f3a8c20e 100644 --- a/doc/user/admin_area/settings/rate_limits_on_raw_endpoints.md +++ b/doc/user/admin_area/settings/rate_limits_on_raw_endpoints.md @@ -4,12 +4,12 @@ type: reference # Rate limits on raw endpoints **(CORE ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/30829) in GitLab 12.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/30829) in GitLab 12.2. This setting allows you to rate limit the requests to raw endpoints, defaults to `300` requests per minute. It can be modified in **Admin Area > Network > Performance Optimization**. -For example, requests over `300` per minute to `https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/controllers/application_controller.rb` will be blocked. Access to the raw file will be released after 1 minute. +For example, requests over `300` per minute to `https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/controllers/application_controller.rb` will be blocked. Access to the raw file will be released after 1 minute. ![Rate limits on raw endpoints](img/rate_limits_on_raw_endpoints.png) diff --git a/doc/user/admin_area/settings/sign_up_restrictions.md b/doc/user/admin_area/settings/sign_up_restrictions.md index aea717e806d..ff26a1ee09c 100644 --- a/doc/user/admin_area/settings/sign_up_restrictions.md +++ b/doc/user/admin_area/settings/sign_up_restrictions.md @@ -66,5 +66,5 @@ Each scenario can be a third-level heading, e.g. `### Getting error message X`. If you have none to add when creating a doc, leave this section in place but commented out to help encourage others to add to it in the future. --> -[ce-5259]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5259 -[ce-598]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/598 +[ce-5259]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5259 +[ce-598]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/598 diff --git a/doc/user/admin_area/settings/terms.md b/doc/user/admin_area/settings/terms.md index 0b5f9a13b03..5b123799842 100644 --- a/doc/user/admin_area/settings/terms.md +++ b/doc/user/admin_area/settings/terms.md @@ -4,7 +4,7 @@ type: reference # Enforce accepting Terms of Service **(CORE ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18570) in [GitLab Core](https://about.gitlab.com/pricing/) 10.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18570) in [GitLab Core](https://about.gitlab.com/pricing/) 10.8. An admin can enforce acceptance of a terms of service and privacy policy. When this option is enabled, new and existing users must accept the terms. diff --git a/doc/user/admin_area/settings/third_party_offers.md b/doc/user/admin_area/settings/third_party_offers.md index 50dea8f50a2..54ecac9c39d 100644 --- a/doc/user/admin_area/settings/third_party_offers.md +++ b/doc/user/admin_area/settings/third_party_offers.md @@ -4,7 +4,7 @@ type: reference # Third party offers **(CORE ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/20379) in [GitLab Core](https://about.gitlab.com/pricing/) 11.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/20379) in [GitLab Core](https://about.gitlab.com/pricing/) 11.1. Within GitLab, we inform users of available third-party offers they might find valuable in order to enhance the development of their projects. An example is the Google Cloud Platform free credit diff --git a/doc/user/admin_area/settings/usage_statistics.md b/doc/user/admin_area/settings/usage_statistics.md index efac7e699f3..98126f72a78 100644 --- a/doc/user/admin_area/settings/usage_statistics.md +++ b/doc/user/admin_area/settings/usage_statistics.md @@ -99,7 +99,7 @@ Each scenario can be a third-level heading, e.g. `### Getting error message X`. If you have none to add when creating a doc, leave this section in place but commented out to help encourage others to add to it in the future. --> -[ee-557]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/557 -[ee-735]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/735 -[ce-23361]: https://gitlab.com/gitlab-org/gitlab-ce/issues/23361 -[ee-6602]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6602 +[ee-557]: https://gitlab.com/gitlab-org/gitlab/merge_requests/557 +[ee-735]: https://gitlab.com/gitlab-org/gitlab/merge_requests/735 +[ce-23361]: https://gitlab.com/gitlab-org/gitlab-foss/issues/23361 +[ee-6602]: https://gitlab.com/gitlab-org/gitlab/merge_requests/6602 diff --git a/doc/user/admin_area/settings/visibility_and_access_controls.md b/doc/user/admin_area/settings/visibility_and_access_controls.md index 1e2f5705728..ad08c852332 100644 --- a/doc/user/admin_area/settings/visibility_and_access_controls.md +++ b/doc/user/admin_area/settings/visibility_and_access_controls.md @@ -11,7 +11,7 @@ GitLab allows administrators to: - Select the protocols permitted to access GitLab. - Enable or disable repository mirroring. - Prevent non-administrators from deleting projects - ([introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5615) in GitLab 12.0). + ([introduced](https://gitlab.com/gitlab-org/gitlab/issues/5615) in GitLab 12.0). **(PREMIUM ONLY)** To access the visibility and access control options: @@ -87,6 +87,6 @@ Each scenario can be a third-level heading, e.g. `### Getting error message X`. If you have none to add when creating a doc, leave this section in place but commented out to help encourage others to add to it in the future. --> -[ce-4696]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4696 -[ce-18021]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18021 -[ee-3586]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3586 +[ce-4696]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/4696 +[ce-18021]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18021 +[ee-3586]: https://gitlab.com/gitlab-org/gitlab/merge_requests/3586 diff --git a/doc/user/analytics/cycle_analytics.md b/doc/user/analytics/cycle_analytics.md index 377af433342..7a966f92934 100644 --- a/doc/user/analytics/cycle_analytics.md +++ b/doc/user/analytics/cycle_analytics.md @@ -1,27 +1,27 @@ # Cycle Analytics -> - Introduced prior to GitLab 12.2 at the project level. -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/12077) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2 at the group level. - -NOTE: **Note:** -As of GitLab 12.3 this feature is enabled by the `cycle_analytics` feature flag. +> - Introduced prior to GitLab 12.3 at the project level. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/12077) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3 at the group level. Cycle Analytics measures the time spent to go from an [idea to production] - also known as cycle time - for each of your projects. Cycle Analytics displays the median time for an idea to reach production, along with the time typically spent in each DevOps stage along the way. +NOTE: **Note:** +Use the `cycle_analytics` feature flag to enable at the group level. + Cycle Analytics is useful in order to quickly determine the velocity of a given project. It points to bottlenecks in the development process, enabling management to uncover, triage, and identify the root cause of slowdowns in the software development life cycle. -Cycle Analytics is tightly coupled with the [GitLab flow] and -calculates a separate median for each stage. +Cycle Analytics is tightly coupled with the [GitLab flow] and calculates a separate median for each +stage. ## Overview Cycle Analytics is available: -- From GitLab 12.2, at the group level in the analytics workspace at +- From GitLab 12.3, at the group level in the analytics workspace (top navigation bar) at **Analytics > Cycle Analytics**. **(PREMIUM)** In the future, multiple groups will be selectable which will effectively make this an @@ -147,19 +147,19 @@ A few notes: The current permissions on the Project Cycle Analytics dashboard are: -- Public projects - anyone can access -- Internal projects - any authenticated user can access -- Private projects - any member Guest and above can access +- Public projects - anyone can access. +- Internal projects - any authenticated user can access. +- Private projects - any member Guest and above can access. You can [read more about permissions][permissions] in general. NOTE: **Note:** -As of GitLab 12.2, the project-level page is deprecated. You should access +As of GitLab 12.3, the project-level page is deprecated. You should access project-level Cycle Analytics from **Analytics > Cycle Analytics** in the top navigation bar. We will ensure that the same project-level functionality is available to CE users in the new analytics space. -For Cycle Analytics functionality introduced in GitLab 12.2 and later: +For Cycle Analytics functionality introduced in GitLab 12.3 and later: - Users must have Reporter access or above. - Features are available only on @@ -173,8 +173,8 @@ Learn more about Cycle Analytics in the following resources: - [Cycle Analytics feature preview](https://about.gitlab.com/2016/09/16/feature-preview-introducing-cycle-analytics/) - [Cycle Analytics feature highlight](https://about.gitlab.com/2016/09/21/cycle-analytics-feature-highlight/) -[ce-5986]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5986 -[ce-20975]: https://gitlab.com/gitlab-org/gitlab-ce/issues/20975 +[ce-5986]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5986 +[ce-20975]: https://gitlab.com/gitlab-org/gitlab-foss/issues/20975 [environment]: ../../ci/yaml/README.md#environment [GitLab flow]: ../../workflow/gitlab_flow.md [idea to production]: https://about.gitlab.com/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/#from-idea-to-production-with-gitlab diff --git a/doc/user/analytics/index.md b/doc/user/analytics/index.md index ba2735dc324..8e88d8fd7b6 100644 --- a/doc/user/analytics/index.md +++ b/doc/user/analytics/index.md @@ -1,21 +1,31 @@ # Analytics workspace -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/12077) in GitLab 12.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/12077) in GitLab 12.2. The Analytics workspace will make it possible to aggregate analytics across GitLab, so that users can view information across multiple projects and groups in one place. -To access the centralized analytics workspace, click on **Analytics** from the top navigation bar. +To access the centralized analytics workspace, enable at least +[one of the features](#available-analytics) under the workspace. + +Once enabled, click on **Analytics** from the top navigation bar. ## Available analytics From the centralized analytics workspace, the following analytics are available: -- [Cycle Analytics](cycle_analytics.md): - -1. Requires a GitLab administrator to enable it with the `cycle_analytics` feature flag. -1. Once enabled, click on **Analytics** and then **Cycle Analytics** from the top navigation bar. +- [Cycle Analytics](cycle_analytics.md), enabled with the `cycle_analytics` + [feature flag](../../development/feature_flags/development.html#enabling-a-feature-flag-in-development). **(PREMIUM)** +- [Productivity Analytics](productivity_analytics.md), enabled with the `productivity_analytics` + [feature flag](../../development/feature_flags/development.html#enabling-a-feature-flag-in-development). **(PREMIUM)** NOTE: **Note:** Project-level Cycle Analytics are still available at a project's **Project > Cycle Analytics**. + +## Other analytics tools + +In addition to the tools available in the Analytics workspace, GitLab provides: + +- [Contribution analytics](../group/contribution_analytics/index.md). **(STARTER)** +- [Issue analytics](../group/issues_analytics/index.md). **(PREMIUM)** diff --git a/doc/user/analytics/productivity_analytics.md b/doc/user/analytics/productivity_analytics.md new file mode 100644 index 00000000000..a53ef56bbf7 --- /dev/null +++ b/doc/user/analytics/productivity_analytics.md @@ -0,0 +1,52 @@ +# Productivity Analytics **(PREMIUM)** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/12079) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3 (enabled by feature flags `productivity_analytics`). + +Track development velocity with Productivity Analytics. + +For many companies, the development cycle is a blackbox and getting an estimate of how +long, on average, it takes to deliver features is an enormous endeavor. + +While [Cycle Analytics](../project/cycle_analytics.md) focuses on the entire +Software Development Life Cycle (SDLC) process, Productivity Analytics provides a way for Engineering Management to drill down in a systematic way to uncover patterns and causes for success or failure at an individual, project or group level. + +Productivity can slow down for many reasons ranging from degrading code base to quickly growing teams. In order to investigate, department or team leaders can start by visualizing the time it takes for merge requests to be merged. + +## Supported features + +Productivity Analytics allows GitLab users to: + +- Visualize typical merge request (MR) lifetime and statistics. Use a histogram that shows the distribution of the time elapsed between creating and merging merge requests. +- Drill down into the most time consuming merge requests, select a number of outliers, and filter down all subsequent charts to investigate potential causes. +- Filter by group, project, author, label, milestone, or a specific date range. Filter down, for example, to the merge requests of a specific author in a group or project during a milestone or specific date range. +- Measure velocity over time. Visualize the trends of each metric from the charts above over time in order to observe progress. Zoom in on a particular date range if you notice outliers. + +## Accessing metrics and visualizations + +To access the **Productivity Analytics** page: + +1. Go to **Analytics** from the top navigation bar. +1. Select **Productivity Analytics** from the menu. + +The following metrics and visualizations are available on a project or group level - currently only covering **merged** merge requests: + +- Histogram showing the number of merge request that took a specified number of days to merge after creation. Select a specific column to filter down subsequent charts. +- Histogram showing a breakdown of the time taken (in hours) to merge a merge request. The following intervals are available: + - Time from first commit to first comment. + - Time from first comment until last commit. + - Time from last commit to merge. +- Histogram showing the size or complexity of a merge request, using the following: + - Number of commits per merge request. + - Number of lines of code per commit. + - Number of files touched. +- Scatterplot showing all MRs merged on a certain date, together with the days it took to complete the action and a 30 day rolling median. + - Users can zoom in and out on specific days of interest. +- Table showing list of merge requests with their respective times and size metrics. + - Users can sort by any of the above metrics. + +## Permissions + +The **Productivity Analytics** dashboard can be accessed only: + +- On [Premium or Silver tier](https://about.gitlab.com/pricing/) and above. +- By users with [Reporter access](../permissions.md) and above. diff --git a/doc/user/application_security/container_scanning/index.md b/doc/user/application_security/container_scanning/index.md index 7c24edb8558..ad3f0663ed5 100644 --- a/doc/user/application_security/container_scanning/index.md +++ b/doc/user/application_security/container_scanning/index.md @@ -4,7 +4,7 @@ type: reference, howto # Container Scanning **(ULTIMATE)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3672) +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/3672) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.4. ## Overview @@ -63,7 +63,7 @@ To enable Container Scanning in your pipeline, you need: For GitLab 11.9 and later, to enable Container Scanning, you must [include](../../../ci/yaml/README.md#includetemplate) the -[`Container-Scanning.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/lib/gitlab/ci/templates/Security/Container-Scanning.gitlab-ci.yml) +[`Container-Scanning.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/Container-Scanning.gitlab-ci.yml) that's provided as a part of your GitLab installation. For GitLab versions earlier than 11.9, you can copy and use the job as defined in that template. @@ -176,4 +176,4 @@ docker: Error response from daemon: failed to copy xattrs: failed to set xattr " This is a result of a bug in Docker which is now [fixed](https://github.com/containerd/continuity/pull/138 "fs: add WithAllowXAttrErrors CopyOpt"). To prevent the error, ensure the Docker version that the Runner is using is `18.09.03` or higher. For more information, see -[issue #10241](https://gitlab.com/gitlab-org/gitlab-ee/issues/10241 "Investigate why Container Scanning is not working with NFS mounts"). +[issue #10241](https://gitlab.com/gitlab-org/gitlab/issues/10241 "Investigate why Container Scanning is not working with NFS mounts"). diff --git a/doc/user/application_security/dast/index.md b/doc/user/application_security/dast/index.md index 2d9f522c4f0..afeef2a04ba 100644 --- a/doc/user/application_security/dast/index.md +++ b/doc/user/application_security/dast/index.md @@ -4,7 +4,7 @@ type: reference, howto # Dynamic Application Security Testing (DAST) **(ULTIMATE)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4348) +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/4348) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.4. NOTE: **4 of the top 6 attacks were application based.** @@ -64,7 +64,7 @@ To run a DAST job, you need GitLab Runner with the For GitLab 11.9 and later, to enable DAST, you must [include](../../../ci/yaml/README.md#includetemplate) the -[`DAST.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/lib/gitlab/ci/templates/Security/DAST.gitlab-ci.yml) +[`DAST.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/DAST.gitlab-ci.yml) that's provided as a part of your GitLab installation. For GitLab versions earlier than 11.9, you can copy and use the job as defined in that template. diff --git a/doc/user/application_security/dependency_list/index.md b/doc/user/application_security/dependency_list/index.md index 4f51ff4a50b..8366e943ccc 100644 --- a/doc/user/application_security/dependency_list/index.md +++ b/doc/user/application_security/dependency_list/index.md @@ -1,6 +1,6 @@ # Dependency List **(ULTIMATE)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/10075) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/10075) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.0. The Dependency list allows you to see your project's dependencies, and key details about them, including their known vulnerabilities. To see it, @@ -46,7 +46,7 @@ vulnerability will then be displayed below it. ## Licenses -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/10536) in GitLab Ultimate 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/10536) in GitLab Ultimate 12.3. If the [License Compliance](../license_compliance/index.md) CI job is configured, the [discovered licenses](../license_compliance/index.md#supported-languages-and-package-managers) will be displayed on this page. diff --git a/doc/user/application_security/dependency_scanning/index.md b/doc/user/application_security/dependency_scanning/index.md index 5baaa92d3d8..b2f754c17bd 100644 --- a/doc/user/application_security/dependency_scanning/index.md +++ b/doc/user/application_security/dependency_scanning/index.md @@ -4,7 +4,7 @@ type: reference, howto # Dependency Scanning **(ULTIMATE)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5105) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5105) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.7. Dependency Scanning helps to automatically find security vulnerabilities in your dependencies while you are developing and testing your applications, for example when your @@ -53,14 +53,14 @@ The following languages and dependency managers are supported. | Language (package managers) | Supported | Scan tool(s) | |----------------------------- | --------- | ------------ | -| Java ([Gradle](https://gradle.org/)) | not currently ([issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/13075 "Dependency Scanning for Gradle" )) | not available | +| Java ([Gradle](https://gradle.org/)) | not currently ([issue](https://gitlab.com/gitlab-org/gitlab/issues/13075 "Dependency Scanning for Gradle" )) | not available | | Java ([Maven](https://maven.apache.org/)) | yes | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium) | | JavaScript ([npm](https://www.npmjs.com/), [yarn](https://yarnpkg.com/en/)) | yes | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium), [Retire.js](https://retirejs.github.io/retire.js) | -| Go ([Golang](https://golang.org/)) | not currently ([issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/7132 "Dependency Scanning for Go")) | not available | +| Go ([Golang](https://golang.org/)) | not currently ([issue](https://gitlab.com/gitlab-org/gitlab/issues/7132 "Dependency Scanning for Go")) | not available | | PHP ([Composer](https://getcomposer.org/)) | yes | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium) | | Python ([pip](https://pip.pypa.io/en/stable/)) | yes | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium) | -| Python ([Pipfile](https://docs.pipenv.org/en/latest/basics/)) | not currently ([issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/11756 "Pipfile.lock support for Dependency Scanning"))| not available | -| Python ([poetry](https://poetry.eustace.io/)) | not currently ([issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/7006 "Support Poetry in Dependency Scanning")) | not available | +| Python ([Pipfile](https://docs.pipenv.org/en/latest/basics/)) | not currently ([issue](https://gitlab.com/gitlab-org/gitlab/issues/11756 "Pipfile.lock support for Dependency Scanning"))| not available | +| Python ([poetry](https://poetry.eustace.io/)) | not currently ([issue](https://gitlab.com/gitlab-org/gitlab/issues/7006 "Support Poetry in Dependency Scanning")) | not available | | Ruby ([gem](https://rubygems.org/)) | yes | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium), [bundler-audit](https://github.com/rubysec/bundler-audit) | ## Remote checks @@ -84,7 +84,7 @@ the `DS_DISABLE_REMOTE_CHECKS` environment variable and setting it to `"true"`. For GitLab 11.9 and later, to enable Dependency Scanning, you must [include](../../../ci/yaml/README.md#includetemplate) the -[`Dependency-Scanning.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/lib/gitlab/ci/templates/Security/Dependency-Scanning.gitlab-ci.yml) +[`Dependency-Scanning.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/Dependency-Scanning.gitlab-ci.yml) that's provided as a part of your GitLab installation. For GitLab versions earlier than 11.9, you can copy and use the job as defined that template. @@ -147,8 +147,8 @@ using environment variables. | `DS_ANALYZER_IMAGES` | Comma separated list of custom images. The official default images are still enabled. Read more about [customizing analyzers](analyzers.md). | | | `DS_ANALYZER_IMAGE_PREFIX` | Override the name of the Docker registry providing the official default images (proxy). Read more about [customizing analyzers](analyzers.md). | | | `DS_ANALYZER_IMAGE_TAG` | Override the Docker tag of the official default images. Read more about [customizing analyzers](analyzers.md). | | -| `DS_PYTHON_VERSION` | Version of Python. If set to 2, dependencies are installed using Python 2.7 instead of Python 3.6. ([Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/12296) in GitLab 12.1)| | -| `DS_PIP_DEPENDENCY_PATH` | Path to load Python pip dependencies from. ([Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/12412) in GitLab 12.2) | | +| `DS_PYTHON_VERSION` | Version of Python. If set to 2, dependencies are installed using Python 2.7 instead of Python 3.6. ([Introduced](https://gitlab.com/gitlab-org/gitlab/issues/12296) in GitLab 12.1)| | +| `DS_PIP_DEPENDENCY_PATH` | Path to load Python pip dependencies from. ([Introduced](https://gitlab.com/gitlab-org/gitlab/issues/12412) in GitLab 12.2) | | | `DS_DEFAULT_ANALYZERS` | Override the names of the official default images. Read more about [customizing analyzers](analyzers.md). | | | `DS_DISABLE_REMOTE_CHECKS` | Do not send any data to GitLab. Used in the [Gemnasium analyzer](#remote-checks). | | | `DS_PULL_ANALYZER_IMAGES` | Pull the images from the Docker registry (set to `0` to disable). | | @@ -358,4 +358,4 @@ You can also [submit new vulnerabilities](https://gitlab.com/gitlab-org/security This error occurs when the Docker version used to run the SAST job is `19.03.00`. You are advised to update to Docker `19.03.01` or greater. Older versions are not affected. Read more in -[this issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/13830#note_211354992 "Current SAST container fails"). +[this issue](https://gitlab.com/gitlab-org/gitlab/issues/13830#note_211354992 "Current SAST container fails"). diff --git a/doc/user/application_security/index.md b/doc/user/application_security/index.md index f25d792cb90..0e52496ec43 100644 --- a/doc/user/application_security/index.md +++ b/doc/user/application_security/index.md @@ -38,7 +38,7 @@ The various scanning tools and the vulnerabilities database are updated regularl | Secure scanning tool | Vulnerabilities database updates | |:-------------------------------------------------------------|-------------------------------------------| -| [Container Scanning](container_scanning/index.md) | Uses `clair` underneath and the latest `clair-db` version is used for each job run by running the [`latest` docker image tag](https://gitlab.com/gitlab-org/gitlab-ee/blob/438a0a56dc0882f22bdd82e700554525f552d91b/lib/gitlab/ci/templates/Security/Container-Scanning.gitlab-ci.yml#L37). The `clair-db` database [is updated daily according to the author](https://github.com/arminc/clair-local-scan#clair-server-or-local). | +| [Container Scanning](container_scanning/index.md) | Uses `clair` underneath and the latest `clair-db` version is used for each job run by running the [`latest` docker image tag](https://gitlab.com/gitlab-org/gitlab/blob/438a0a56dc0882f22bdd82e700554525f552d91b/lib/gitlab/ci/templates/Security/Container-Scanning.gitlab-ci.yml#L37). The `clair-db` database [is updated daily according to the author](https://github.com/arminc/clair-local-scan#clair-server-or-local). | | [Dependency Scanning](dependency_scanning/index.md) | Relies on `bundler-audit` (for Rubygems), `retire.js` (for NPM packages) and `gemnasium` (GitLab's own tool for all libraries). `bundler-audit` and `retire.js` both fetch their vulnerabilities data from GitHub repositories, so vulnerabilities added to `ruby-advisory-db` and `retire.js` are immediately available. The tools themselves are updated once per month if there's a new version. The [Gemnasium DB](https://gitlab.com/gitlab-org/security-products/gemnasium-db) is updated at least once a week. | | [Dynamic Application Security Testing (DAST)](dast/index.md) | Updated weekly on Sundays. The underlying tool, `zaproxy`, downloads fresh rules at startup. | | [Static Application Security Testing (SAST)](sast/index.md) | Relies exclusively on [the tools GitLab is wrapping](sast/index.md#supported-languages-and-frameworks). The underlying analyzers are updated at least once per month if a relevant update is available. The vulnerabilities database is updated by the upstream tools. | @@ -53,7 +53,7 @@ previous GitLab releases, so they automatically get the latest versions of the scanning tools without the user having to do anything. This workflow comes with some drawbacks and there's a -[plan to change this](https://gitlab.com/gitlab-org/gitlab-ee/issues/9725). +[plan to change this](https://gitlab.com/gitlab-org/gitlab/issues/9725). ## Interacting with the vulnerabilities @@ -88,7 +88,7 @@ If you wish to undo this dismissal, you can click the **Undo dismiss** button. When dismissing a vulnerability, it's often helpful to provide a reason for doing so. If you press the comment button next to **Dismiss vulnerability** in the modal, a text box will appear, allowing you to add a comment with your dismissal. -This comment can not currently be edited or removed, but [future versions](https://gitlab.com/gitlab-org/gitlab-ee/issues/11721) will add this functionality. +This comment can not currently be edited or removed, but [future versions](https://gitlab.com/gitlab-org/gitlab/issues/11721) will add this functionality. ![Dismissed vulnerability comment](img/dismissed_info.png) @@ -110,7 +110,7 @@ the vulnerability will now have an associated issue next to the name. ### Solutions for vulnerabilities (auto-remediation) -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5656) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5656) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.7. Some vulnerabilities can be fixed by applying the solution that GitLab automatically generates. The following scanners are supported: @@ -134,7 +134,7 @@ generated by GitLab. To apply the fix: #### Creating a merge request from a vulnerability -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9224) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.9. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9224) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.9. In certain cases, GitLab will allow you to create a merge request that will automatically remediate the vulnerability. Any vulnerability that has a @@ -148,7 +148,7 @@ Clicking on this button will create a merge request to apply the solution onto t ## Security approvals in merge requests **(ULTIMATE)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9928) in [GitLab Ultimate](https://about.gitlab.com/pricing) 12.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9928) in [GitLab Ultimate](https://about.gitlab.com/pricing) 12.2. Merge Request Approvals can be configured to require approval from a member of your security team when a vulnerability would be introduced by a merge request. diff --git a/doc/user/application_security/license_compliance/index.md b/doc/user/application_security/license_compliance/index.md index 6de1db8650d..fb361acf6e8 100644 --- a/doc/user/application_security/license_compliance/index.md +++ b/doc/user/application_security/license_compliance/index.md @@ -4,7 +4,7 @@ type: reference, howto # License Compliance **(ULTIMATE)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5483) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5483) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.0. ## Overview @@ -72,7 +72,7 @@ To run a License Compliance scanning job, you need GitLab Runner with the For GitLab 11.9 and later, to enable License Compliance, you must [include](../../../ci/yaml/README.md#includetemplate) the -[`License-Management.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/lib/gitlab/ci/templates/Security/License-Management.gitlab-ci.yml) +[`License-Management.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/License-Management.gitlab-ci.yml) that's provided as a part of your GitLab installation. For GitLab versions earlier than 11.9, you can copy and use the job as defined that template. @@ -184,7 +184,7 @@ license_management: ## Project policies for License Compliance -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5940) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5940) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.4. From the project's settings: @@ -222,7 +222,7 @@ Searching for Licenses: ## License Compliance report under pipelines -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5491) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5491) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.2. From your project's left sidebar, navigate to **CI/CD > Pipelines** and click on the pipeline ID that has a `license_management` job to see the Licenses tab with the listed diff --git a/doc/user/application_security/sast/index.md b/doc/user/application_security/sast/index.md index 956d3ef7c8c..0618c14a3d1 100644 --- a/doc/user/application_security/sast/index.md +++ b/doc/user/application_security/sast/index.md @@ -4,7 +4,7 @@ type: reference, howto # Static Application Security Testing (SAST) **(ULTIMATE)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/3775) +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/3775) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.3. NOTE: **4 of the top 6 attacks were application based.** @@ -86,7 +86,7 @@ The Java analyzers can also be used for variants like the For GitLab 11.9 and later, to enable SAST, you must [include](../../../ci/yaml/README.md#includetemplate) the -[`SAST.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml) +[`SAST.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml) that's provided as a part of your GitLab installation. For GitLab versions earlier than 11.9, you can copy and use the job as defined that template. @@ -361,4 +361,4 @@ For more information about the vulnerabilities database update, check the This error occurs when the Docker version used to run the SAST job is `19.03.00`. You are advised to update to Docker `19.03.01` or greater. Older versions are not affected. Read more in -[this issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/13830#note_211354992 "Current SAST container fails"). +[this issue](https://gitlab.com/gitlab-org/gitlab/issues/13830#note_211354992 "Current SAST container fails"). diff --git a/doc/user/application_security/security_dashboard/index.md b/doc/user/application_security/security_dashboard/index.md index ac539509e22..999b98bfa3d 100644 --- a/doc/user/application_security/security_dashboard/index.md +++ b/doc/user/application_security/security_dashboard/index.md @@ -36,7 +36,7 @@ To use the group, project or pipeline security dashboard: ## Pipeline Security Dashboard -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/13496) in [GitLab Ultimate](https://about.gitlab.com/pricing) 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/13496) in [GitLab Ultimate](https://about.gitlab.com/pricing) 12.3. At the pipeline level, the Security Dashboard displays the vulnerabilities present in the branch of the project the pipeline was run against. @@ -46,7 +46,7 @@ Visit the page for any pipeline which has run any of the [supported reports](#su ## Project Security Dashboard -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/6165) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/6165) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.1. At the project level, the Security Dashboard displays the latest security reports for your project. Use it to find and fix vulnerabilities affecting the @@ -56,7 +56,7 @@ for your project. Use it to find and fix vulnerabilities affecting the ## Group Security Dashboard -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/6709) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/6709) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.5. The group Security Dashboard gives an overview of the vulnerabilities of all the projects in a group and its subgroups. diff --git a/doc/user/award_emojis.md b/doc/user/award_emojis.md index 1b1d126b726..255994be193 100644 --- a/doc/user/award_emojis.md +++ b/doc/user/award_emojis.md @@ -1,7 +1,7 @@ # Award emoji -> - First [introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/1825) in GitLab 8.2. -> - GitLab 9.0 [introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9570) the usage of native emoji if the platform +> - First [introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/1825) in GitLab 8.2. +> - GitLab 9.0 [introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9570) the usage of native emoji if the platform > supports them and falls back to images or CSS sprites. This change greatly > improved award emoji performance overall. @@ -18,7 +18,7 @@ For information on the relevant API, see [Award Emoji API](../api/award_emoji.md ## Sort issues and merge requests on vote count -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2781) in GitLab 8.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/2781) in GitLab 8.5. You can quickly sort issues and merge requests by the number of votes they have received. The sort options can be found in the dropdown menu as "Most @@ -32,7 +32,7 @@ downvotes. ## Award emoji for comments -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4291) in GitLab 8.9. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/4291) in GitLab 8.9. Award emoji can also be applied to individual comments when you want to celebrate an accomplishment or agree with an opinion. diff --git a/doc/user/clusters/applications.md b/doc/user/clusters/applications.md index 17d430cf1f2..8a53b4c0e47 100644 --- a/doc/user/clusters/applications.md +++ b/doc/user/clusters/applications.md @@ -49,7 +49,7 @@ Some applications are installable only for a project-level cluster. Support for installing these applications in a group-level cluster is planned for future releases. For updates, see [the issue tracking -progress](https://gitlab.com/gitlab-org/gitlab-ce/issues/51989). +progress](https://gitlab.com/gitlab-org/gitlab-foss/issues/51989). CAUTION: **Caution:** If you have an existing Kubernetes cluster with Helm already installed, @@ -86,7 +86,7 @@ NOTE: **Note:** The [jetstack/cert-manager](https://github.com/jetstack/cert-manager) chart is used to install this application with a -[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/cert_manager/values.yaml) +[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/vendor/cert_manager/values.yaml) file. Prior to GitLab 12.3, the [stable/cert-manager](https://github.com/helm/charts/tree/master/stable/cert-manager) chart was used. @@ -109,7 +109,7 @@ NOTE: **Note:** The [runner/gitlab-runner](https://gitlab.com/gitlab-org/charts/gitlab-runner) chart is used to install this application with a -[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/runner/values.yaml) +[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/vendor/runner/values.yaml) file. ### Ingress @@ -126,9 +126,37 @@ NOTE: **Note:** The [stable/nginx-ingress](https://github.com/helm/charts/tree/master/stable/nginx-ingress) chart is used to install this application with a -[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/ingress/values.yaml) +[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/vendor/ingress/values.yaml) file. +#### Modsecurity Application Firewall + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/65192) in GitLab 12.3 (enabled using `ingress_modsecurity` [feature flag](../../development/feature_flags/development.md#enabling-a-feature-flag-in-development)). + +GitLab supports +[`modsecurity`](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#modsecurity) +to check requests against [OWASP's Core Rule Set](https://www.modsecurity.org/CRS/Documentation/). +This feature: + +- Runs in "Detection-only mode" unless configured otherwise. +- Is viewable by checking your ingress controller's `modsec` log for rule violations. + For example: + + ```sh + kubectl -n gitlab-managed-apps exec -it $(kubectl get pods -n gitlab-managed-apps | grep 'ingress-controller' | awk '{print $1}') -- tail -f /var/log/modsec_audit.log + ``` + +There is a small performance overhead by enabling `modsecurity`. However, if this is +considered significant for your application, you can toggle the feature flag back to +false by running the following command within the Rails console: + +```ruby +Feature.disable(:ingress_modsecurity) +``` + +Once disabled, you must [uninstall](#uninstalling-applications) and reinstall your Ingress +application for the changes to take effect. + ### JupyterHub > - Introduced in GitLab 11.0 for project-level clusters. @@ -160,12 +188,12 @@ NOTE: **Note:** The [jupyter/jupyterhub](https://jupyterhub.github.io/helm-chart/) chart is used to install this application with a -[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/jupyter/values.yaml) +[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/vendor/jupyter/values.yaml) file. #### Jupyter Git Integration -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/28783) in GitLab 12.0 for project-level clusters. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/28783) in GitLab 12.0 for project-level clusters. When installing JupyterHub onto your Kubernetes cluster, [JupyterLab's Git extension](https://github.com/jupyterlab/jupyterlab-git) is automatically provisioned and configured using the authenticated user's: @@ -227,12 +255,12 @@ NOTE: **Note:** The [stable/prometheus](https://github.com/helm/charts/tree/master/stable/prometheus) chart is used to install this application with a -[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/prometheus/values.yaml) +[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/vendor/prometheus/values.yaml) file. ## Upgrading applications -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24789) in GitLab 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/24789) in GitLab 11.8. The applications below can be upgraded. @@ -253,11 +281,11 @@ To upgrade an application: NOTE: **Note:** Upgrades will reset values back to the values built into the `runner` chart plus the values set by -[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/runner/values.yaml) +[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/vendor/runner/values.yaml) ## Uninstalling applications -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/60665) in GitLab 11.11. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/60665) in GitLab 11.11. The applications below can be uninstalled. diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index a198d83fac5..98f744e6e04 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -291,7 +291,7 @@ Additionally, locked issues and merge requests can not be reopened. ## Merge Request Reviews **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/4213) in GitLab 11.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/4213) in GitLab 11.4. When looking at a Merge Request diff, you are able to start a review. This allows you to create comments inside a Merge Request that are **only visible to you** until published, @@ -360,7 +360,7 @@ Replying to this email will, consequentially, create a new comment on the associ ## Filtering notes -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/26723) in GitLab 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/26723) in GitLab 11.5. For issues with many comments like activity notes and user comments, sometimes finding useful information can be hard. There is a way to filter comments from single notes and threads for merge requests and issues. @@ -380,7 +380,7 @@ from any device you're logged into. ## Suggest Changes -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/18008) in GitLab 11.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/18008) in GitLab 11.6. As a reviewer, you're able to suggest code changes with a simple markdown syntax in Merge Request Diff threads. Then, the @@ -413,11 +413,11 @@ directly into the codebase in the merge request's branch. > **Note:** Custom commit messages will be introduced by -[#54404](https://gitlab.com/gitlab-org/gitlab-ce/issues/54404). +[#54404](https://gitlab.com/gitlab-org/gitlab-foss/issues/54404). ### Multi-line suggestions -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/53310) in GitLab 11.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/53310) in GitLab 11.10. Reviewers can also suggest changes to multiple lines with a single suggestion within Merge Request diff threads by adjusting the range offsets. The @@ -439,7 +439,7 @@ suggestion. ## Start a thread by replying to a standard comment -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30299) in GitLab 11.9 +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/30299) in GitLab 11.9 To reply to a standard (non-thread) comment, you can use the **Reply to comment** button. @@ -458,15 +458,15 @@ to the original comment, so a note about when it was last edited will appear und This feature only exists for Issues, Merge requests, and Epics. Commits, Snippets and Merge request diff threads are not supported yet. -[ce-5022]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5022 -[ce-7125]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7125 -[ce-7527]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7527 -[ce-7180]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7180 -[ce-8266]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8266 -[ce-14053]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14053 -[ce-14061]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14061 -[ce-14531]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14531 -[ce-31847]: https://gitlab.com/gitlab-org/gitlab-ce/issues/31847 +[ce-5022]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5022 +[ce-7125]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/7125 +[ce-7527]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/7527 +[ce-7180]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/7180 +[ce-8266]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8266 +[ce-14053]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/14053 +[ce-14061]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/14061 +[ce-14531]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/14531 +[ce-31847]: https://gitlab.com/gitlab-org/gitlab-foss/issues/31847 [resolve-discussion-button]: img/resolve_discussion_button.png [resolve-comment-button]: img/resolve_comment_button.png [discussion-view]: img/discussion_view.png diff --git a/doc/user/feature_highlight.md b/doc/user/feature_highlight.md index bd98ea00757..513ec90d442 100644 --- a/doc/user/feature_highlight.md +++ b/doc/user/feature_highlight.md @@ -12,4 +12,4 @@ after it has been dismissed. ![Clusters feature highlight](img/feature_highlight_example.png) -[ce-16379]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/16379 +[ce-16379]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/16379 diff --git a/doc/user/gitlab_com/index.md b/doc/user/gitlab_com/index.md index 2f2955f5a1c..463ce2056fc 100644 --- a/doc/user/gitlab_com/index.md +++ b/doc/user/gitlab_com/index.md @@ -398,4 +398,4 @@ On GitLab.com, projects, groups, and snippets created after July 2019 have the `Internal` visibility setting disabled. You can read more about the change in the -[relevant issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/12388). +[relevant issue](https://gitlab.com/gitlab-org/gitlab/issues/12388). diff --git a/doc/user/group/bulk_editing/index.md b/doc/user/group/bulk_editing/index.md index ea48b0b9fef..a90097c848f 100644 --- a/doc/user/group/bulk_editing/index.md +++ b/doc/user/group/bulk_editing/index.md @@ -1,8 +1,8 @@ # Bulk editing issues, merge requests, and epics at the group level **(PREMIUM)** -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7249) for issues in [GitLab Premium](https://about.gitlab.com/pricing/) 12.1. -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/12719) for merge requests in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2. -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7250) for epics in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/7249) for issues in [GitLab Premium](https://about.gitlab.com/pricing/) 12.1. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/12719) for merge requests in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/7250) for epics in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2. ## Editing milestones and labels diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index d41f44f85cc..1eed1281bba 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -4,7 +4,7 @@ type: reference # Group-level Kubernetes clusters -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/34758) in GitLab 11.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/34758) in GitLab 11.6. ## Overview @@ -29,9 +29,9 @@ in the project namespace. NOTE: **Note:** RBAC support was introduced in -[GitLab 11.4](https://gitlab.com/gitlab-org/gitlab-ce/issues/29398), and +[GitLab 11.4](https://gitlab.com/gitlab-org/gitlab-foss/issues/29398), and Project namespace restriction was introduced in -[GitLab 11.5](https://gitlab.com/gitlab-org/gitlab-ce/issues/51716). +[GitLab 11.5](https://gitlab.com/gitlab-org/gitlab-foss/issues/51716). ## Cluster precedence @@ -53,8 +53,8 @@ differentiate the new cluster from the rest. ## GitLab-managed clusters -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22011) in GitLab 11.5. -> Became [optional](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/26565) in GitLab 11.11. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22011) in GitLab 11.5. +> Became [optional](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/26565) in GitLab 11.11. You can choose to allow GitLab to manage your cluster for you. If your cluster is managed by GitLab, resources for your projects will be automatically created. See the @@ -72,7 +72,7 @@ the resources required to run these even if you have chosen to manage your own c ## Base domain -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24580) in GitLab 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/24580) in GitLab 11.8. Domains at the cluster level permit support for multiple domains per [multiple Kubernetes clusters](#multiple-kubernetes-clusters-premium). When specifying a domain, @@ -137,6 +137,10 @@ The result will then be: - The Staging cluster will be used for the `deploy to staging` job. - The Production cluster will be used for the `deploy to production` job. +## Cluster environments **(PREMIUM)** + +Please see the documentation for [cluster environments](../../clusters/environments.md). + ## Security of Runners For important information about securely configuring GitLab Runners, see diff --git a/doc/user/group/contribution_analytics/index.md b/doc/user/group/contribution_analytics/index.md index a0dd5cd497d..4411c7834a4 100644 --- a/doc/user/group/contribution_analytics/index.md +++ b/doc/user/group/contribution_analytics/index.md @@ -5,7 +5,7 @@ type: reference # Contribution Analytics **(STARTER)** > - Introduced in [GitLab Starter](https://about.gitlab.com/pricing/) 8.3. -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/3090) for subgroups in GitLab 12.2. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/3090) for subgroups in GitLab 12.2. ## Overview diff --git a/doc/user/group/custom_project_templates.md b/doc/user/group/custom_project_templates.md index 7cdba8cf2b5..094732e6a93 100644 --- a/doc/user/group/custom_project_templates.md +++ b/doc/user/group/custom_project_templates.md @@ -4,7 +4,7 @@ type: reference # Custom group-level project templates **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/6861) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/6861) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.6. When you create a new [project](../project/index.md), creating it based on custom project templates is a convenient bootstrap option. diff --git a/doc/user/group/epics/index.md b/doc/user/group/epics/index.md index b947a587b2b..d04ecedc7a2 100644 --- a/doc/user/group/epics/index.md +++ b/doc/user/group/epics/index.md @@ -53,7 +53,7 @@ the issue or the epic is automatically removed from the previous epic. ## Multi-level child epics -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/8333) in GitLab Ultimate 11.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/8333) in GitLab Ultimate 11.7. Much like adding issues to an epic, an epic can have multiple child epics with the maximum depth being 5. To add a child epic: @@ -85,7 +85,7 @@ the re-calculation will happen immediately to set a new dynamic date. ## Roadmap in epics -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7327) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/7327) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.10. If your epic contains one or more [child epics](#multi-level-child-epics) which have a [start or due date](#start-date-and-due-date), then you can see a @@ -150,7 +150,7 @@ link in the issue sidebar. ## Promoting an issue to an epic -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/3777) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/3777) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.6. If you have [permissions](../../permissions.md) to close an issue and create an epic in the parent group, you can promote an issue to an epic with the `/promote` diff --git a/doc/user/group/index.md b/doc/user/group/index.md index a0bdb737466..036730ba700 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -17,7 +17,7 @@ Find your groups by clicking **Groups > Your Groups** in the top navigation. ![GitLab Groups](img/groups.png) -> The **Groups** dropdown in the top navigation was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/36234) in [GitLab 11.1](https://about.gitlab.com/2018/07/22/gitlab-11-1-released/#groups-dropdown-in-navigation). +> The **Groups** dropdown in the top navigation was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/36234) in [GitLab 11.1](https://about.gitlab.com/2018/07/22/gitlab-11-1-released/#groups-dropdown-in-navigation). The **Groups** page displays: @@ -180,7 +180,7 @@ There are two different ways to add a new project to a group: > [Introduced][ee-2534] in [GitLab Premium][ee] 10.5. > Brought to [GitLab Starter][ee] in 10.7. -> [Moved](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25975) to [GitLab Core](https://about.gitlab.com/pricing/) in 11.10. +> [Moved](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/25975) to [GitLab Core](https://about.gitlab.com/pricing/) in 11.10. Group owners and administrators can allow users with the Developer role to create projects under groups. @@ -336,7 +336,7 @@ request to add a new user to a project through API will not be possible. #### IP access restriction **(ULTIMATE ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/1985) in +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/1985) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.0. To make sure only people from within your organization can access particular @@ -355,7 +355,7 @@ the group regardless of the IP restriction. #### Allowed domain restriction **(PREMIUM ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7297) in +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/7297) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2. You can restrict access to groups and their underlying projects by @@ -437,7 +437,7 @@ To enable this feature: #### Storage usage quota **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13294) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/13294) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.0. A group owner can check the aggregated storage usage for all the project in a group, sub-groups included, in the **Storage** tab of the **Usage Quotas** page available to the group page settings list. @@ -476,4 +476,4 @@ If you have none to add when creating a doc, leave this section in place but commented out to help encourage others to add to it in the future. --> [ee]: https://about.gitlab.com/pricing/ -[ee-2534]: https://gitlab.com/gitlab-org/gitlab-ee/issues/2534 +[ee-2534]: https://gitlab.com/gitlab-org/gitlab/issues/2534 diff --git a/doc/user/group/insights/index.md b/doc/user/group/insights/index.md index f0e7f7239c1..7e933c66789 100644 --- a/doc/user/group/insights/index.md +++ b/doc/user/group/insights/index.md @@ -27,7 +27,7 @@ the project that holds your `.gitlab/insights.yml` configuration file: ![group insights configuration](img/insights_group_configuration.png) If no configuration was set, a [default configuration file]( -https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/fixtures/insights/default.yml) +https://gitlab.com/gitlab-org/gitlab/blob/master/ee/fixtures/insights/default.yml) will be used. See the [Project's Insights documentation](../../project/insights/index.md) for diff --git a/doc/user/group/issues_analytics/index.md b/doc/user/group/issues_analytics/index.md index dc4b057789f..f84a3a3c286 100644 --- a/doc/user/group/issues_analytics/index.md +++ b/doc/user/group/issues_analytics/index.md @@ -4,7 +4,7 @@ type: reference # Issues Analytics **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7478) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/7478) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.5. Issues Analytics is a bar graph which illustrates the number of issues created each month. The default timespan is 13 months, which includes the current month, and the 12 months diff --git a/doc/user/group/saml_sso/index.md b/doc/user/group/saml_sso/index.md index bd50367681e..90e4dacbd76 100644 --- a/doc/user/group/saml_sso/index.md +++ b/doc/user/group/saml_sso/index.md @@ -30,14 +30,14 @@ SAML SSO for GitLab.com groups does not sync users between providers without usi SSO enforcement was: -- [Introduced in GitLab 11.8](https://gitlab.com/gitlab-org/gitlab-ee/issues/5291). -- [Improved upon in GitLab 11.11 with ongoing enforcement in the GitLab UI](https://gitlab.com/gitlab-org/gitlab-ee/issues/9255). +- [Introduced in GitLab 11.8](https://gitlab.com/gitlab-org/gitlab/issues/5291). +- [Improved upon in GitLab 11.11 with ongoing enforcement in the GitLab UI](https://gitlab.com/gitlab-org/gitlab/issues/9255). With this option enabled, users must use your group's GitLab single sign on URL to be added to the group or be added via SCIM. Users cannot be added manually, and may only access project/group resources via the UI by signing in through the SSO URL. However, users will not be prompted to log via SSO on each visit. GitLab will check whether a user has authenticated through the SSO link, and will only prompt the user to login via SSO if it has been longer than 7 days. -We intend to add a similar SSO requirement for [Git and API activity](https://gitlab.com/gitlab-org/gitlab-ee/issues/9152) in the future. +We intend to add a similar SSO requirement for [Git and API activity](https://gitlab.com/gitlab-org/gitlab/issues/9152) in the future. #### Group-managed accounts diff --git a/doc/user/group/saml_sso/scim_setup.md b/doc/user/group/saml_sso/scim_setup.md index 5d136ad62da..60b779b3f70 100644 --- a/doc/user/group/saml_sso/scim_setup.md +++ b/doc/user/group/saml_sso/scim_setup.md @@ -4,7 +4,7 @@ type: howto, reference # SCIM provisioning using SAML SSO for Groups **(SILVER ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9388) in [GitLab.com Silver](https://about.gitlab.com/pricing/) 11.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/9388) in [GitLab.com Silver](https://about.gitlab.com/pricing/) 11.10. System for Cross-domain Identity Management (SCIM), is an open standard that enables the automation of user provisioning. When SCIM is provisioned for a GitLab group, membership of diff --git a/doc/user/group/subgroups/index.md b/doc/user/group/subgroups/index.md index 2eb3fae1a85..eec929e3309 100644 --- a/doc/user/group/subgroups/index.md +++ b/doc/user/group/subgroups/index.md @@ -5,7 +5,7 @@ type: reference, howto, concepts # Subgroups NOTE: **Note:** -[Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/2772) in GitLab 9.0. +[Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/2772) in GitLab 9.0. Subgroups, also known as nested groups or hierarchical groups, allow you to have up to 20 levels of groups. @@ -181,10 +181,10 @@ Here's a list of what you can't do with subgroups: with `group`, but can be shared with `group/subgroup02` or `group/subgroup01/subgroup03`. -[ce-2772]: https://gitlab.com/gitlab-org/gitlab-ce/issues/2772 +[ce-2772]: https://gitlab.com/gitlab-org/gitlab-foss/issues/2772 [permissions]: ../../permissions.md#group-members-permissions [reserved]: ../../reserved_names.md -[issue]: https://gitlab.com/gitlab-org/gitlab-ce/issues/30472#note_27747600 +[issue]: https://gitlab.com/gitlab-org/gitlab-foss/issues/30472#note_27747600 <!-- ## Troubleshooting diff --git a/doc/user/instance/clusters/index.md b/doc/user/instance/clusters/index.md index cb1bfc69826..56693a1db1f 100644 --- a/doc/user/instance/clusters/index.md +++ b/doc/user/instance/clusters/index.md @@ -1,6 +1,6 @@ # Instance-level Kubernetes clusters -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/39840) in GitLab 11.11. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/39840) in GitLab 11.11. ## Overview diff --git a/doc/user/instance_statistics/convdev.md b/doc/user/instance_statistics/convdev.md index d486ecc39a4..705f9be3d94 100644 --- a/doc/user/instance_statistics/convdev.md +++ b/doc/user/instance_statistics/convdev.md @@ -1,6 +1,6 @@ # Conversational Development Index -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30469) in GitLab 9.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/30469) in GitLab 9.3. NOTE: **Note:** Your GitLab instance's [usage ping](../admin_area/settings/usage_statistics.md#usage-ping-core-only) must be activated in order to use this feature. diff --git a/doc/user/instance_statistics/index.md b/doc/user/instance_statistics/index.md index 22f76f728e3..fe8e8c96f81 100644 --- a/doc/user/instance_statistics/index.md +++ b/doc/user/instance_statistics/index.md @@ -1,6 +1,6 @@ # Instance statistics -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/41416) +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/41416) in GitLab 11.2. Instance statistics gives users or admins access to instance-wide analytics. diff --git a/doc/user/instance_statistics/user_cohorts.md b/doc/user/instance_statistics/user_cohorts.md index e76363a6d9f..033460f3f73 100644 --- a/doc/user/instance_statistics/user_cohorts.md +++ b/doc/user/instance_statistics/user_cohorts.md @@ -1,6 +1,6 @@ # Cohorts -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/23361) +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/23361) in GitLab 9.1. As a benefit of having the [usage ping active](../admin_area/settings/usage_statistics.md), @@ -25,4 +25,4 @@ How do we measure the activity of users? GitLab considers a user active if: - The user signs in. - The user has Git activity (whether push or pull). -- The user visits pages related to Dashboards, Projects, Issues and Merge Requests ([introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/54947) in GitLab 11.8). +- The user visits pages related to Dashboards, Projects, Issues and Merge Requests ([introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/54947) in GitLab 11.8). diff --git a/doc/user/markdown.md b/doc/user/markdown.md index d3cbe4d545f..3f77431aa69 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -8,7 +8,7 @@ website uses an extended Kramdown gem, [GitLab Kramdown](https://gitlab.com/gitl Consult the [GitLab Kramdown Guide](https://about.gitlab.com/handbook/product/technical-writing/markdown-guide/) for a complete Kramdown reference. -NOTE: **Note:** We encourage you to view this document as [rendered by GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md). +NOTE: **Note:** We encourage you to view this document as [rendered by GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md). ## GitLab Flavored Markdown (GFM) @@ -116,7 +116,7 @@ changing how standard markdown is used: ### Colors -> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#colors). +> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md#colors). It is possible to have color written in HEX, RGB or HSL format rendered with a color indicator. @@ -153,7 +153,7 @@ Color written inside backticks will be followed by a color "chip": ### Diagrams and flowcharts using Mermaid -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15107) in +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/15107) in GitLab 10.3. It is possible to generate diagrams and flowcharts from text using [Mermaid](https://mermaidjs.github.io/). @@ -221,7 +221,7 @@ end ### Emoji -> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#emoji). +> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md#emoji). ```md Sometimes you want to :monkey: around a bit and add some :star2: to your :speech_balloon:. Well we have a gift for you: @@ -235,15 +235,15 @@ If you are new to this, don't be :fearful:. You can easily join the emoji :famil Consult the [Emoji Cheat Sheet](https://www.emojicopy.com) for a list of all supported emoji codes. :thumbsup: ``` -Sometimes you want to <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/monkey.png" width="20px" height="20px" style="display:inline;margin:0"> around a bit and add some <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/star2.png" width="20px" height="20px" style="display:inline;margin:0"> to your <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/speech_balloon.png" width="20px" height="20px" style="display:inline;margin:0">. Well we have a gift for you: +Sometimes you want to <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/assets/images/emoji/monkey.png" width="20px" height="20px" style="display:inline;margin:0"> around a bit and add some <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/assets/images/emoji/star2.png" width="20px" height="20px" style="display:inline;margin:0"> to your <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/assets/images/emoji/speech_balloon.png" width="20px" height="20px" style="display:inline;margin:0">. Well we have a gift for you: -<img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/zap.png" width="20px" height="20px" style="display:inline;margin:0">You can use emoji anywhere GFM is supported. <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/v.png" width="20px" height="20px" style="display:inline;margin:0"> +<img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/assets/images/emoji/zap.png" width="20px" height="20px" style="display:inline;margin:0">You can use emoji anywhere GFM is supported. <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/assets/images/emoji/v.png" width="20px" height="20px" style="display:inline;margin:0"> -You can use it to point out a <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/bug.png" width="20px" height="20px" style="display:inline;margin:0"> or warn about <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/speak_no_evil.png" width="20px" height="20px" style="display:inline;margin:0"> patches. And if someone improves your really <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/snail.png" width="20px" height="20px" style="display:inline;margin:0"> code, send them some <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/birthday.png" width="20px" height="20px" style="display:inline;margin:0">. People will <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/heart.png" width="20px" height="20px" style="display:inline;margin:0"> you for that. +You can use it to point out a <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/assets/images/emoji/bug.png" width="20px" height="20px" style="display:inline;margin:0"> or warn about <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/assets/images/emoji/speak_no_evil.png" width="20px" height="20px" style="display:inline;margin:0"> patches. And if someone improves your really <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/assets/images/emoji/snail.png" width="20px" height="20px" style="display:inline;margin:0"> code, send them some <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/assets/images/emoji/birthday.png" width="20px" height="20px" style="display:inline;margin:0">. People will <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/assets/images/emoji/heart.png" width="20px" height="20px" style="display:inline;margin:0"> you for that. -If you are new to this, don't be <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/fearful.png" width="20px" height="20px" style="display:inline;margin:0">. You can easily join the emoji <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/family.png" width="20px" height="20px" style="display:inline;margin:0">. All you need to do is to look up one of the supported codes. +If you are new to this, don't be <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/assets/images/emoji/fearful.png" width="20px" height="20px" style="display:inline;margin:0">. You can easily join the emoji <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/assets/images/emoji/family.png" width="20px" height="20px" style="display:inline;margin:0">. All you need to do is to look up one of the supported codes. -Consult the [Emoji Cheat Sheet](https://www.webfx.com/tools/emoji-cheat-sheet/) for a list of all supported emoji codes. <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/thumbsup.png" width="20px" height="20px" style="display:inline;margin:0"> +Consult the [Emoji Cheat Sheet](https://www.webfx.com/tools/emoji-cheat-sheet/) for a list of all supported emoji codes. <img src="https://gitlab.com/gitlab-org/gitlab-foss/raw/master/app/assets/images/emoji/thumbsup.png" width="20px" height="20px" style="display:inline;margin:0"> > **Note:** The emoji example above uses hard-coded images for this documentation. The emoji, when rendered within GitLab, may appear different depending on the OS and browser used. @@ -256,7 +256,7 @@ this font installed by default. ### Front matter -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23331) in GitLab 11.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/23331) in GitLab 11.6. Front matter is metadata included at the beginning of a markdown document, preceding its content. This data can be used by static site generators such as [Jekyll](https://jekyllrb.com/docs/front-matter/), @@ -264,7 +264,7 @@ its content. This data can be used by static site generators such as [Jekyll](ht When you view a Markdown file rendered by GitLab, any front matter is displayed as-is, in a box at the top of the document, before the rendered HTML content. To view an example, -you can toggle between the source and rendered version of a [GitLab documentation file](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/README.md). +you can toggle between the source and rendered version of a [GitLab documentation file](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/README.md). In GitLab, front matter is only used in Markdown files and wiki pages, not the other places where Markdown formatting is supported. It must be at the very top of the document, @@ -319,7 +319,7 @@ $example = array( ### Inline diff -> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#inline-diff). +> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md#inline-diff). With inline diff tags you can display `{+ additions +}` or `[- deletions -]`. @@ -350,7 +350,7 @@ However the wrapping tags cannot be mixed: ### Math -> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#math). +> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md#math). It is possible to have math written with LaTeX syntax rendered using [KaTeX](https://github.com/Khan/KaTeX). @@ -415,7 +415,7 @@ GFM will recognize the following: ### Task lists -> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#task-lists). +> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md#task-lists). You can add task lists anywhere markdown is supported, but you can only "click" to toggle the boxes if they are in issues, merge requests, or comments. In other places @@ -556,7 +556,7 @@ Quote break. #### Multiline blockquote -> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#multiline-blockquote). +> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md#multiline-blockquote). GFM extends the standard markdown standard by also supporting multiline blockquotes fenced by `>>>`: @@ -637,7 +637,7 @@ Tildes are OK too. #### Colored code and syntax highlighting -> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#colored-code-and-syntax-highlighting). +> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md#colored-code-and-syntax-highlighting). GitLab uses the [Rouge Ruby library](http://rouge.jneen.net/) for more colorful syntax highlighting in code blocks. For a list of supported languages visit the @@ -729,7 +729,7 @@ NOTE: **Note:** Strikethrough is not part of the core Markdown standard, but is #### Multiple underscores in words and mid-word emphasis -> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#multiple-underscores-in-words). +> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md#multiple-underscores-in-words). It is not usually useful to italicize just _part_ of a word, especially when you're dealing with code and names that often appear with multiple underscores. As a result, @@ -884,7 +884,7 @@ Reference-style (hover to see title text): #### Videos -> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#videos). +> If this is not rendered correctly, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md#videos). Image tags that link to files with a video extension are automatically converted to a video player. The valid video extensions are `.mp4`, `.m4v`, `.mov`, `.webm`, and `.ogv`: @@ -901,7 +901,7 @@ Here's a sample video: ### Inline HTML -> To see the markdown rendered within HTML in the second example, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#inline-html). +> To see the markdown rendered within HTML in the second example, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md#inline-html). You can also use raw HTML in your Markdown, and it'll usually work pretty well. @@ -962,7 +962,7 @@ are separated into their own lines: #### Details and Summary -> To see the markdown rendered within HTML in the second example, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#details-and-summary). +> To see the markdown rendered within HTML in the second example, [view it in GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md#details-and-summary). Content can be collapsed using HTML's [`<details>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details) and [`<summary>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/summary) @@ -1320,7 +1320,7 @@ Example: Additionally, you can choose the alignment of text within columns by adding colons (`:`) to the sides of the "dash" lines in the second row. This will affect every cell in the column. -> Note that the headers are always right aligned [within GitLab itself](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#tables). +> Note that the headers are always right aligned [within GitLab itself](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/user/markdown.md#tables). ```markdown | Left Aligned | Centered | Right Aligned | Left Aligned | Centered | Right Aligned | diff --git a/doc/user/operations_dashboard/index.md b/doc/user/operations_dashboard/index.md index 8c4d387190a..649a95a5f3a 100644 --- a/doc/user/operations_dashboard/index.md +++ b/doc/user/operations_dashboard/index.md @@ -1,6 +1,6 @@ # Operations Dashboard **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5781) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.5. [Moved](https://gitlab.com/gitlab-org/gitlab-ee/issues/9218) to [GitLab Premium](https://about.gitlab.com/pricing/) in 11.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5781) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.5. [Moved](https://gitlab.com/gitlab-org/gitlab/issues/9218) to [GitLab Premium](https://about.gitlab.com/pricing/) in 11.10. The Operations Dashboard provides a summary of each project's operational health, including pipeline and alert status. diff --git a/doc/user/packages/container_registry/index.md b/doc/user/packages/container_registry/index.md index 710e7bd405b..f6c9a2c9e34 100644 --- a/doc/user/packages/container_registry/index.md +++ b/doc/user/packages/container_registry/index.md @@ -1,6 +1,6 @@ # GitLab Container Registry -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4040) in GitLab 8.8. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/4040) in GitLab 8.8. > - Docker Registry manifest `v1` support was added in GitLab 8.9 to support Docker > versions earlier than 1.10. > - Starting from GitLab 8.12, if you have 2FA enabled in your account, you need @@ -118,8 +118,8 @@ Alternatively, you can [build images with Kaniko](../../../ci/docker/using_kanik ## Using with private projects -> Personal Access tokens were [introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11845) in GitLab 9.3. -> Project Deploy Tokens were [introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17894) in GitLab 10.7 +> Personal Access tokens were [introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/11845) in GitLab 9.3. +> Project Deploy Tokens were [introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17894) in GitLab 10.7 If a project is private, credentials will need to be provided for authorization. There are two ways to do this: diff --git a/doc/user/packages/dependency_proxy/index.md b/doc/user/packages/dependency_proxy/index.md index 8c337f74dcf..d6358d72348 100644 --- a/doc/user/packages/dependency_proxy/index.md +++ b/doc/user/packages/dependency_proxy/index.md @@ -1,6 +1,6 @@ # Dependency Proxy **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7934) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.11. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/7934) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.11. NOTE: **Note:** This is the user guide. In order to use the dependency proxy, an administrator diff --git a/doc/user/packages/maven_repository/index.md b/doc/user/packages/maven_repository/index.md index 2c400653fcc..0c0b44b3cd8 100644 --- a/doc/user/packages/maven_repository/index.md +++ b/doc/user/packages/maven_repository/index.md @@ -1,6 +1,6 @@ # GitLab Maven Repository **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5811) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5811) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.3. With the GitLab [Maven](https://maven.apache.org) Repository, every project can have its own space to store its Maven artifacts. @@ -149,7 +149,7 @@ project's ID can be used for uploading. ### Group level Maven endpoint -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8798) in GitLab Premium 11.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/8798) in GitLab Premium 11.7. If you rely on many packages, it might be inefficient to include the `repository` section with a unique URL for each package. Instead, you can use the group level endpoint for @@ -201,7 +201,7 @@ For retrieving artifacts, you can use either the ### Instance level Maven endpoint -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8274) in GitLab Premium 11.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/8274) in GitLab Premium 11.7. If you rely on many packages, it might be inefficient to include the `repository` section with a unique URL for each package. Instead, you can use the instance level endpoint for @@ -213,9 +213,9 @@ the instance level endpoint. | Project | Package | Instance level endpoint available | | ------- | ------- | --------------------------------- | -| `foo/bar` | `foo/bar/1.0-SNAPSHOT` | Yes | -| `gitlab-org/gitlab-ce` | `foo/bar/1.0-SNAPSHOT` | No | -| `gitlab-org/gitlab-ce` | `gitlab-org/gitlab-ce/1.0-SNAPSHOT` | Yes | +| `foo/bar` | `foo/bar/1.0-SNAPSHOT` | Yes | +| `gitlab-org/gitlab` | `foo/bar/1.0-SNAPSHOT` | No | +| `gitlab-org/gitlab` | `gitlab-org/gitlab/1.0-SNAPSHOT` | Yes | The example below shows how the relevant `repository` section of your `pom.xml` would look like. You still need a project specific URL for uploading a package in diff --git a/doc/user/packages/npm_registry/index.md b/doc/user/packages/npm_registry/index.md index 30de301b96a..6d11ab603ef 100644 --- a/doc/user/packages/npm_registry/index.md +++ b/doc/user/packages/npm_registry/index.md @@ -1,6 +1,6 @@ # GitLab NPM Registry **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5934) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5934) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.7. With the GitLab NPM Registry, every project can have its own space to store NPM packages. @@ -39,8 +39,8 @@ it is not possible due to a naming collision. For example: | `foo/bar` | `@foo/bar` | Yes | | `foo/bar/baz` | `@foo/baz` | Yes | | `foo/bar/buz` | `@foo/anything` | Yes | -| `gitlab-org/gitlab-ce` | `@gitlab-org/gitlab-ce` | Yes | -| `gitlab-org/gitlab-ce` | `@foo/bar` | No | +| `gitlab-org/gitlab` | `@gitlab-org/gitlab` | Yes | +| `gitlab-org/gitlab` | `@foo/bar` | No | Now, you can configure your project to authenticate with the GitLab NPM Registry. diff --git a/doc/user/permissions.md b/doc/user/permissions.md index 8232ae44c68..4f660d07071 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -290,7 +290,7 @@ Please be aware that this regex could lead to a DOS attack, [see](https://en.wik ## Auditor users **(PREMIUM ONLY)** ->[Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/998) in [GitLab Premium](https://about.gitlab.com/pricing/) 8.17. +>[Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/998) in [GitLab Premium](https://about.gitlab.com/pricing/) 8.17. Auditor users are given read-only access to all projects, groups, and other resources on the GitLab instance. diff --git a/doc/user/profile/account/delete_account.md b/doc/user/profile/account/delete_account.md index 5b0954195f8..9b72956a55e 100644 --- a/doc/user/profile/account/delete_account.md +++ b/doc/user/profile/account/delete_account.md @@ -45,13 +45,13 @@ a user can be blocked directly from the Admin area. To do this: ## Associated Records > - Introduced for issues in -> [GitLab 9.0](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7393). +> [GitLab 9.0](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/7393). > - Introduced for merge requests, award emoji, notes, and abuse reports in -> [GitLab 9.1](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10467). +> [GitLab 9.1](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10467). > - Hard deletion from abuse reports and spam logs was introduced in -> [GitLab 9.1](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10273), +> [GitLab 9.1](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10273), > and from the API in -> [GitLab 9.3](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11853). +> [GitLab 9.3](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/11853). When a user account is deleted, not all associated records are deleted with it. Here's a list of things that will **not** be deleted: diff --git a/doc/user/profile/active_sessions.md b/doc/user/profile/active_sessions.md index 2d7bd25fc27..fe2eeebdb99 100644 --- a/doc/user/profile/active_sessions.md +++ b/doc/user/profile/active_sessions.md @@ -4,7 +4,7 @@ type: howto # Active Sessions -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17867) +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17867) > in GitLab 10.8. GitLab lists all devices that have logged into your account. This allows you to diff --git a/doc/user/profile/index.md b/doc/user/profile/index.md index d9144f9b5fd..9c4001f0a79 100644 --- a/doc/user/profile/index.md +++ b/doc/user/profile/index.md @@ -129,7 +129,7 @@ To add links to other accounts: ## Private contributions -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/14078) in GitLab 11.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/14078) in GitLab 11.3. Enabling private contributions will include contributions to private projects, in the user contribution calendar graph and user recent activity. @@ -173,7 +173,7 @@ You can also set your current status [using the API](../../api/users.md#user-sta ## Commit email -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21598) in GitLab 11.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/21598) in GitLab 11.4. A commit email is an email address displayed in every Git-related action carried out through the GitLab interface. @@ -190,7 +190,7 @@ To change your commit email: ### Private commit email -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22560) in GitLab 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22560) in GitLab 11.5. GitLab provides the user with an automatically generated private commit email option, which allows the user to keep their email information private. diff --git a/doc/user/profile/personal_access_tokens.md b/doc/user/profile/personal_access_tokens.md index ffe6104698f..4c99d58e51d 100644 --- a/doc/user/profile/personal_access_tokens.md +++ b/doc/user/profile/personal_access_tokens.md @@ -43,16 +43,16 @@ the following table. | Scope | Introduced in | Description | | ------------------ | ------------- | ----------- | -| `read_user` | [GitLab 8.15](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5951) | Allows access to the read-only endpoints under `/users`. Essentially, any of the `GET` requests in the [Users API][users] are allowed. | -| `api` | [GitLab 8.15](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5951) | Grants complete read/write access to the API, including all groups and projects, the container registry, and the package registry. | -| `read_registry` | [GitLab 9.3](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11845) | Allows to read (pull) [container registry] images if a project is private and authorization is required. | -| `sudo` | [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14838) | Allows performing API actions as any user in the system (if the authenticated user is an admin). | -| `read_repository` | [GitLab 10.7](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17894) | Allows read-only access (pull) to the repository through git clone. | -| `write_repository` | [GitLab 11.11](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/26021) | Allows read-write access (pull, push) to the repository through git clone. Required for accessing Git repositories over HTTP when 2FA is enabled. | +| `read_user` | [GitLab 8.15](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5951) | Allows access to the read-only endpoints under `/users`. Essentially, any of the `GET` requests in the [Users API][users] are allowed. | +| `api` | [GitLab 8.15](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5951) | Grants complete read/write access to the API, including all groups and projects, the container registry, and the package registry. | +| `read_registry` | [GitLab 9.3](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/11845) | Allows to read (pull) [container registry] images if a project is private and authorization is required. | +| `sudo` | [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/14838) | Allows performing API actions as any user in the system (if the authenticated user is an admin). | +| `read_repository` | [GitLab 10.7](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17894) | Allows read-only access (pull) to the repository through git clone. | +| `write_repository` | [GitLab 11.11](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/26021) | Allows read-write access (pull, push) to the repository through git clone. Required for accessing Git repositories over HTTP when 2FA is enabled. | [2fa]: ../account/two_factor_authentication.md [api]: ../../api/README.md -[ce-3749]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3749 +[ce-3749]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/3749 [container registry]: ../packages/container_registry/index.md [users]: ../../api/users.md [usage]: ../../api/README.md#personal-access-tokens diff --git a/doc/user/project/badges.md b/doc/user/project/badges.md index cd3e5f5a63c..afd8def0245 100644 --- a/doc/user/project/badges.md +++ b/doc/user/project/badges.md @@ -1,6 +1,6 @@ # Badges -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/41174) +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/41174) in GitLab 10.7. Badges are a unified way to present condensed pieces of information about your diff --git a/doc/user/project/canary_deployments.md b/doc/user/project/canary_deployments.md index d4c8bf0d309..95ed511d0b3 100644 --- a/doc/user/project/canary_deployments.md +++ b/doc/user/project/canary_deployments.md @@ -63,7 +63,7 @@ can easily notice them. ![Canary deployments on Deploy Board](img/deploy_boards_canary_deployments.png) [eep]: https://about.gitlab.com/pricing/ -[ee-1659]: https://gitlab.com/gitlab-org/gitlab-ee/issues/1659 +[ee-1659]: https://gitlab.com/gitlab-org/gitlab/issues/1659 [kube-canary]: https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/#canary-deployments [deploy board]: deploy_boards.md [cd-blog]: https://about.gitlab.com/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/ diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 3bde0a375c6..97fa973d3e3 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -1,9 +1,9 @@ # Kubernetes clusters -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/35954) in GitLab 10.1 for projects. -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/34758) in +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/35954) in GitLab 10.1 for projects. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/34758) in > GitLab 11.6 for [groups](../../group/clusters/index.md). -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/39840) in +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/39840) in > GitLab 11.11 for [instances](../../instance/clusters/index.md). GitLab provides many features with a Kubernetes integration. Kubernetes can be @@ -164,17 +164,17 @@ NOTE: **Note:** GitLab requires basic authentication enabled and a client certificate issued for the cluster in order to setup an [initial service account](#access-controls). Starting from [GitLab -11.10](https://gitlab.com/gitlab-org/gitlab-ce/issues/58208), the cluster +11.10](https://gitlab.com/gitlab-org/gitlab-foss/issues/58208), the cluster creation process will explicitly request that basic authentication and client certificate is enabled. NOTE: **Note:** -Starting from [GitLab 12.1](https://gitlab.com/gitlab-org/gitlab-ce/issues/55902), all GKE clusters created by GitLab are RBAC enabled. Take a look at the [RBAC section](#rbac-cluster-resources) for more information. +Starting from [GitLab 12.1](https://gitlab.com/gitlab-org/gitlab-foss/issues/55902), all GKE clusters created by GitLab are RBAC enabled. Take a look at the [RBAC section](#rbac-cluster-resources) for more information. ### Add existing Kubernetes cluster NOTE: **Note:** -Kubernetes integration is not supported for arm64 clusters. See the issue [Helm Tiller fails to install on arm64 cluster](https://gitlab.com/gitlab-org/gitlab-ce/issues/64044) for details. +Kubernetes integration is not supported for arm64 clusters. See the issue [Helm Tiller fails to install on arm64 cluster](https://gitlab.com/gitlab-org/gitlab-foss/issues/64044) for details. To add an existing Kubernetes cluster to your project: @@ -341,8 +341,8 @@ applications running on the cluster. ### GitLab-managed clusters -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22011) in GitLab 11.5. -> Became [optional](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/26565) in GitLab 11.11. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22011) in GitLab 11.5. +> Became [optional](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/26565) in GitLab 11.11. You can choose to allow GitLab to manage your cluster for you. If your cluster is managed by GitLab, resources for your projects will be automatically created. See the @@ -360,7 +360,7 @@ the resources required to run these even if you have chosen to manage your own c ### Base domain -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24580) in GitLab 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/24580) in GitLab 11.8. NOTE: **Note:** You do not need to specify a base domain on cluster settings when using GitLab Serverless. The domain in that case @@ -392,7 +392,7 @@ a `gitlab` service account with `cluster-admin` privileges is created in the `de to manage the newly created cluster. NOTE: **Note:** - Restricted service account for deployment was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/51716) in GitLab 11.5. + Restricted service account for deployment was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/51716) in GitLab 11.5. When you install Helm into your cluster, the `tiller` service account is created with `cluster-admin` privileges in the `gitlab-managed-apps` @@ -553,7 +553,7 @@ address or a hostname associated with your load balancer. #### Automatically determining the external endpoint -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17052) in GitLab 10.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17052) in GitLab 10.6. After you install [Ingress or Knative](#installing-applications), Gitlab attempts to determine the external endpoint and it should be available within a few minutes. If the endpoint doesn't appear @@ -690,7 +690,7 @@ namespaces and service accounts yourself. ## Monitoring your Kubernetes cluster **(ULTIMATE)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/4701) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/4701) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.6. When [Prometheus is deployed](#installing-applications), GitLab will automatically monitor the cluster's health. At the top of the cluster settings page, CPU and Memory utilization is displayed, along with the total amount available. Keeping an eye on cluster resources can be important, if the cluster runs out of memory pods may be shutdown or fail to start. diff --git a/doc/user/project/clusters/kubernetes_pod_logs.md b/doc/user/project/clusters/kubernetes_pod_logs.md index 163f3befeee..82f658ce724 100644 --- a/doc/user/project/clusters/kubernetes_pod_logs.md +++ b/doc/user/project/clusters/kubernetes_pod_logs.md @@ -1,6 +1,6 @@ # Kubernetes Pod Logs **(ULTIMATE)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4752) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/4752) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.0. GitLab makes it easy to view the logs of running pods in [connected Kubernetes clusters](index.md). By displaying the logs directly in GitLab, developers can avoid having to manage console tools or jump to a different interface. @@ -17,7 +17,7 @@ Everything you need to build, test, deploy, and run your app at scale. 1. On the **Environments** page, you should see the status of the environment's pods with [Deploy Boards](../deploy_boards.md). 1. When mousing over the list of pods, a tooltip will appear with the exact pod name and status. ![Deploy Boards pod list](img/pod_logs_deploy_board.png) -1. Click on the desired pod to bring up the logs view, which will contain the last 500 lines for that pod. Support for pods with multiple containers is coming [in a future release](https://gitlab.com/gitlab-org/gitlab-ee/issues/6502). +1. Click on the desired pod to bring up the logs view, which will contain the last 500 lines for that pod. Support for pods with multiple containers is coming [in a future release](https://gitlab.com/gitlab-org/gitlab/issues/6502). ![Deploy Boards pod list](img/kubernetes_pod_logs.png) ## Requirements diff --git a/doc/user/project/clusters/runbooks/index.md b/doc/user/project/clusters/runbooks/index.md index 8df27976662..7e5c1b3d4ed 100644 --- a/doc/user/project/clusters/runbooks/index.md +++ b/doc/user/project/clusters/runbooks/index.md @@ -18,7 +18,7 @@ pre-written code blocks or database queries against a given environment. ## Executable Runbooks -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/45912) in GitLab 11.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/45912) in GitLab 11.4. The JupyterHub app offered via GitLab’s Kubernetes integration now ships with Nurtch’s Rubix library, providing a simple way to create DevOps diff --git a/doc/user/project/clusters/serverless/aws.md b/doc/user/project/clusters/serverless/aws.md new file mode 100644 index 00000000000..2c16748a3ee --- /dev/null +++ b/doc/user/project/clusters/serverless/aws.md @@ -0,0 +1,163 @@ +# Deploying AWS Lambda function using GitLab CI/CD + +GitLab allows users to easily deploy AWS Lambda functions and create rich serverless applications. + +GitLab supports deployment of functions to AWS Lambda using a combination of: + +- [Serverless Framework](https://serverless.com) +- GitLab CI/CD + +## Example + +In the following example, you will: + +1. Create a basic AWS Lambda Node.js function. +1. Link the function to an API Gateway `GET` endpoint. + +### Steps + +The example consists of the following steps: + +1. Creating a Lambda handler function +1. Creating a `serverless.yml` file +1. Crafting the `.gitlab-ci.yml` file +1. Setting up your AWS credentials with your GitLab account +1. Deploying your function +1. Testing your function + +Lets take it step by step. + +### Creating a Lambda handler function + +Your Lambda function will be the primary handler of requests. In this case we will create a very simple Node.js "Hello" function: + +```javascript +'use strict'; + +module.exports.hello = async event => { + return { + statusCode: 200, + body: JSON.stringify( + { + message: 'Your function executed successfully!' + }, + null, + 2 + ), + }; +}; + + +``` + +Place this code in the file `src/handler.js`. + +`src` is the standard location for serverless functions, but is customizable should you desire that. + +In our case, `module.exports.hello` defines the `hello` handler that will be referenced later in the `serverless.yml` + +You can learn more about the AWS Lambda Node.js function handler and all its various options here: <https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html> + +### Creating a serverless.yml file + +In the root of your project, create a `serverless.yml` file that will contain configuration specifics for the Serverless Framework. + +Put the following code in the file: + +```yaml +service: gitlab-example +provider: + name: aws + runtime: nodejs10.x + +functions: + hello: + handler: src/handler.hello + events: + - http: GET hello +``` + +Our function contains a handler and a event. + +The handler definition will provision the Lambda function using the source code located `src/handler.hello`. + +The `events` declaration will create a AWS API Gateway `GET` endpoint to receive external requests and hand them over to the Lambda function via a service integration. + +You can read more about the available properties and additional configuration possibilities of the Serverless Framework here: <https://serverless.com/framework/docs/providers/aws/guide/serverless.yml/> + +### Crafting the .gitlab-ci.yml file + +In a `.gitlab-ci.yml` file, place the following code: + +```yaml +image: node:latest + +stages: + - deploy + +production: + stage: deploy + before_script: + - npm config set prefix /usr/local + - npm install -g serverless + script: + - serverless deploy --stage production --verbose + environment: production +``` + +This example code does the following: + +1. Uses the `node:latest` image for all GitLab CI builds +1. The `deploy` stage: + +- Installs the `serverless framework`. +- Deploys the serverless function to your AWS account using the AWS credentials defined above. + +### Setting up your AWS credentials with your GitLab account + +In order to interact with your AWS account, the .gitlab-ci.yml requires both `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` be defined in your GitLab settings under **Settings > CI/CD > Variables**. +For more information please see: <https://docs.gitlab.com/ee/ci/variables/README.html#via-the-ui> + +NOTE: **Note:** + The AWS credentials you provide must include IAM policies that provision correct access control to AWS Lambda, API Gateway, and CloudFormation resources. + +### Deploying your function + +Deploying your function is very simple, just `git push` to your GitLab repository and the GitLab build pipeline will automatically deploy your function. + +In your GitLab deploy stage log, there will be output containing your AWS Lambda endpoint URL. +The log line will look similar to this: + +``` +endpoints: + GET - https://u768nzby1j.execute-api.us-east-1.amazonaws.com/production/hello +``` + +### Testing your function + +Running the following `curl` command should trigger your function. + +NOTE: **Note:** + Your url should be the one retrieved from the GitLab deploy stage log. + +```sh +curl https://u768nzby1j.execute-api.us-east-1.amazonaws.com/production/hello +``` + +Should output: + +```json +{ + "message": "Your function executed successfully!" +} +``` + +Hooray! You now have a AWS Lambda function deployed via GitLab CI. + +Nice work! + +## Example code + +To see the example code for this example please follow the link below: + +- [Node.js example](https://gitlab.com/gitlab-org/serverless/examples/serverless-framework-js): Deploy a AWS Lambda Javascript function + API Gateway using Serverless Framework and GitLab CI/CD diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index bcf9a677a40..5d91b01e5b0 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -5,10 +5,21 @@ CAUTION: **Caution:** Serverless is currently in [alpha](https://about.gitlab.com/handbook/product/#alpha). -Run serverless workloads on Kubernetes using [Knative](https://cloud.google.com/knative/). - ## Overview +Serverless architectures offer Operators and Developers the ability write highly scalable applications without provisioning a single server. + +Gitlab supports several ways deploy Serverless applications in both Kubernetes Environments and also major cloud FAAS environments. + +Currently we support: + +- [Knative](#knative): Build Knative applications with Knative and gitlabktl on GKE +- [AWS Lambda](aws.md): Create serverless applications via the Serverless Framework and gitlab-ci + +## Knative + +Run serverless workloads on Kubernetes using [Knative](https://cloud.google.com/knative/). + Knative extends Kubernetes to provide a set of middleware components that are useful to build modern, source-centric, container-based applications. Knative brings some significant benefits out of the box through its main components: - [Serving](https://github.com/knative/serving): Request-driven compute that can scale to zero. @@ -84,7 +95,7 @@ on a given project but not both. The current implementation makes use of a `serv ## Using an existing installation of Knative -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/58941) in GitLab 12.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/58941) in GitLab 12.0. NOTE: **Note:** The "invocations" monitoring feature of GitLab serverless will not work when @@ -102,7 +113,7 @@ You must do the following: 1. Ensure GitLab can manage Knative: - For a non-GitLab managed cluster, ensure that the service account for the token provided can manage resources in the `serving.knative.dev` API group. - - For a GitLab managed cluster, if you added the cluster in [GitLab 12.1 or later](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/30235), + - For a GitLab managed cluster, if you added the cluster in [GitLab 12.1 or later](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/30235), then GitLab will already have the required access and you can proceed to the next step. Otherwise, you need to manually grant GitLab's service account the ability to manage diff --git a/doc/user/project/code_owners.md b/doc/user/project/code_owners.md index 79f0bb4db72..0d422612f02 100644 --- a/doc/user/project/code_owners.md +++ b/doc/user/project/code_owners.md @@ -1,8 +1,8 @@ # Code Owners **(STARTER)** -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6916) +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/6916) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.3. -> - [Support for group namespaces](https://gitlab.com/gitlab-org/gitlab-ce/issues/53182) added in GitLab Starter 12.1. +> - [Support for group namespaces](https://gitlab.com/gitlab-org/gitlab-foss/issues/53182) added in GitLab Starter 12.1. You can use a `CODEOWNERS` file to specify users or [shared groups](members/share_project_with_groups.md) diff --git a/doc/user/project/deploy_boards.md b/doc/user/project/deploy_boards.md index 0a83f2e894a..23d11c87676 100644 --- a/doc/user/project/deploy_boards.md +++ b/doc/user/project/deploy_boards.md @@ -68,7 +68,7 @@ To display the Deploy Boards for a specific [environment] you should: instead of `DeploymentConfiguration`, otherwise the Deploy Boards won't render correctly. For more information, read the [OpenShift docs](https://docs.openshift.com/container-platform/3.7/dev_guide/deployments/kubernetes_deployments.html#kubernetes-deployments-vs-deployment-configurations) - and [GitLab issue #4584](https://gitlab.com/gitlab-org/gitlab-ee/issues/4584). + and [GitLab issue #4584](https://gitlab.com/gitlab-org/gitlab/issues/4584). 1. [Configure GitLab Runner][runners] with the [Docker][docker-exec] or [Kubernetes][kube-exec] executor. @@ -89,7 +89,7 @@ To display the Deploy Boards for a specific [environment] you should: NOTE: **Note:** Matching based on the Kubernetes `app` label was removed in [GitLab - 12.1](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/14020). + 12.1](https://gitlab.com/gitlab-org/gitlab/merge_requests/14020). To migrate, please apply the required annotations (see above) and re-deploy your application. @@ -115,7 +115,7 @@ version of your application. - [Environments and deployments][environment] - [Kubernetes deploy example][kube-deploy] -[ee-1589]: https://gitlab.com/gitlab-org/gitlab-ee/issues/1589 "Deploy Boards initial issue" +[ee-1589]: https://gitlab.com/gitlab-org/gitlab/issues/1589 "Deploy Boards initial issue" [ee]: https://about.gitlab.com/pricing/ "GitLab Enterprise Edition landing page" [kube-deploy]: https://gitlab.com/gitlab-examples/kubernetes-deploy "Kubernetes deploy example project" [kubernetes]: https://kubernetes.io "Kubernetes website" diff --git a/doc/user/project/deploy_tokens/index.md b/doc/user/project/deploy_tokens/index.md index ca5b2f54e30..6dcf56da4f0 100644 --- a/doc/user/project/deploy_tokens/index.md +++ b/doc/user/project/deploy_tokens/index.md @@ -41,7 +41,7 @@ the following table. ## Deploy token custom username -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29639) in GitLab 12.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/29639) in GitLab 12.1. The default username format is `gitlab+deploy-token-#{n}`. Some tools or platforms may not support this format, in such case you can specify custom username to be used when creating the deploy token. @@ -94,7 +94,7 @@ those variables: docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY ``` -[ce-17894]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17894 -[ce-11845]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11845 -[ce-18414]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18414 +[ce-17894]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17894 +[ce-11845]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/11845 +[ce-18414]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18414 [container registry]: ../../packages/container_registry/index.md diff --git a/doc/user/project/description_templates.md b/doc/user/project/description_templates.md index a79f368499c..50c38ec06b4 100644 --- a/doc/user/project/description_templates.md +++ b/doc/user/project/description_templates.md @@ -84,7 +84,7 @@ pre-filled with the text you entered in the template(s). ## Description template example -We make use of Description Templates for Issues and Merge Requests within the GitLab Community Edition project. Please refer to the [`.gitlab` folder][gitlab-ce-templates] for some examples. +We make use of Description Templates for Issues and Merge Requests within the GitLab Community Edition project. Please refer to the [`.gitlab` folder][gitlab-templates] for some examples. > **Tip:** It is possible to use [quick actions](quick_actions.md) within description templates to quickly add labels, assignees, and milestones. The quick actions will only be executed if the user submitting the Issue or Merge Request has the permissions to perform the relevant actions. @@ -134,8 +134,8 @@ Possible fixes /assign @qa-tester ``` -[ce-4981]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4981 -[gitlab-ce-templates]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/.gitlab -[ee-28]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/28 "Merge Request for adding issues template" -[ee-7478ece]: https://gitlab.com/gitlab-org/gitlab-ee/commit/7478ece8b48e80782b5465b96c79f85cc91d391b "Commit that introduced merge requests templates" +[ce-4981]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/4981 +[gitlab-templates]: https://gitlab.com/gitlab-org/gitlab/tree/master/.gitlab +[ee-28]: https://gitlab.com/gitlab-org/gitlab/merge_requests/28 "Merge Request for adding issues template" +[ee-7478ece]: https://gitlab.com/gitlab-org/gitlab/commit/7478ece8b48e80782b5465b96c79f85cc91d391b "Commit that introduced merge requests templates" [products]: https://about.gitlab.com/pricing/ diff --git a/doc/user/project/file_lock.md b/doc/user/project/file_lock.md index dce8c3a97bc..045f2c8049b 100644 --- a/doc/user/project/file_lock.md +++ b/doc/user/project/file_lock.md @@ -1,6 +1,6 @@ # File Locking **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/440) in [GitLab Premium](https://about.gitlab.com/pricing/) 8.9. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/440) in [GitLab Premium](https://about.gitlab.com/pricing/) 8.9. File Locking helps you avoid merge conflicts and better manage your binary files. Lock any file or directory, make your changes, and then unlock it so another @@ -88,9 +88,9 @@ Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 320 bytes | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) remote: GitLab: The path '.gitignore' is locked by Administrator -To https://example.com/gitlab-org/gitlab-ce.git +To https://example.com/gitlab-org/gitlab-foss.git ! [remote rejected] master -> master (pre-receive hook declined) - error: failed to push some refs to 'https://example.com/gitlab-org/gitlab-ce.git' + error: failed to push some refs to 'https://example.com/gitlab-org/gitlab-foss.git' ``` Similarly, when a user that is not the author of the locked state of a file diff --git a/doc/user/project/import/bitbucket_server.md b/doc/user/project/import/bitbucket_server.md index 28e211ee2ba..7f2c6005cd4 100644 --- a/doc/user/project/import/bitbucket_server.md +++ b/doc/user/project/import/bitbucket_server.md @@ -1,6 +1,6 @@ # Import your project from Bitbucket Server to GitLab -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/20164) +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/20164) in GitLab 11.2. NOTE: **Note:** diff --git a/doc/user/project/import/manifest.md b/doc/user/project/import/manifest.md index 161a4163e42..86c8b276887 100644 --- a/doc/user/project/import/manifest.md +++ b/doc/user/project/import/manifest.md @@ -1,6 +1,6 @@ # Import multiple repositories by uploading a manifest file -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/28811) in GitLab 11.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/28811) in GitLab 11.2. GitLab allows you to import all the required Git repositories based on a manifest file like the one used by the diff --git a/doc/user/project/import/phabricator.md b/doc/user/project/import/phabricator.md index b8f89caba24..5015c5390de 100644 --- a/doc/user/project/import/phabricator.md +++ b/doc/user/project/import/phabricator.md @@ -1,6 +1,6 @@ # Import Phabricator tasks into a GitLab project -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/60562) in +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/60562) in GitLab 12.0. GitLab allows you to import all tasks from a Phabricator instance into diff --git a/doc/user/project/import/svn.md b/doc/user/project/import/svn.md index d175ee87f26..267dca5bf4d 100644 --- a/doc/user/project/import/svn.md +++ b/doc/user/project/import/svn.md @@ -101,7 +101,7 @@ Running SubGit in a mirror mode requires a source, academic and startup projects. We're currently working on deeper GitLab/SubGit integration. You may track our -progress at [this issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/990). +progress at [this issue](https://gitlab.com/gitlab-org/gitlab/issues/990). ### SubGit support diff --git a/doc/user/project/index.md b/doc/user/project/index.md index 53c2194cd90..2700d43ed10 100644 --- a/doc/user/project/index.md +++ b/doc/user/project/index.md @@ -192,14 +192,14 @@ password <personal_access_token> ## Access project page with project ID -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/53671) in GitLab 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/53671) in GitLab 11.8. To quickly access a project from the GitLab UI using the project ID, visit the `/projects/:id` URL in your browser or other tool accessing the project. ## Project aliases **(PREMIUM ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/3264) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/3264) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.1. When migrating repositories to GitLab and they are being accessed by other systems, it's very useful to be able to access them using the same name especially when @@ -215,7 +215,7 @@ Follow the [Project Aliases API documentation](../../api/project_aliases.md) for more details. Once an alias has been created for a project (e.g., an alias `gitlab-ce` for the -project `https://gitlab.com/gitlab-org/gitlab-ce`), the repository can be cloned +project `https://gitlab.com/gitlab-org/gitlab-foss`), the repository can be cloned using the alias (e.g `git clone git@gitlab.com:gitlab-ce.git` instead of `git clone git@gitlab.com:gitlab-org/gitlab-ce.git`). diff --git a/doc/user/project/integrations/discord_notifications.md b/doc/user/project/integrations/discord_notifications.md index cb98105e0c0..6fa80f39e68 100644 --- a/doc/user/project/integrations/discord_notifications.md +++ b/doc/user/project/integrations/discord_notifications.md @@ -1,6 +1,6 @@ # Discord Notifications service -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22684) in GitLab 11.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22684) in GitLab 11.6. The Discord Notifications service sends event notifications from GitLab to the channel for which the webhook was created. diff --git a/doc/user/project/integrations/generic_alerts.md b/doc/user/project/integrations/generic_alerts.md new file mode 100644 index 00000000000..37fe5132ec2 --- /dev/null +++ b/doc/user/project/integrations/generic_alerts.md @@ -0,0 +1,54 @@ +# Generic alerts integration **(ULTIMATE)** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/13203) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.3. + +GitLab can accept alerts from any source via a generic webhook receiver. +When you set up the generic alerts integration, a unique endpoint will +be created which can receive a payload in JSON format, and will in turn +create an issue with the payload in the body of the issue. You can always +[customize the payload](#customizing-the-payload) to your liking. + +The entire payload will be posted in the issue discussion as a comment +authored by the GitLab Alert Bot. + +## Setting up generic alerts + +To set up the generic alerts integration: + +1. Navigate to **Settings > Integrations** in a project. +1. Click on **Alert endpoint**. +1. Toggle the **Active** alert setting. The `URL` and `Authorization Key` for the webhook configuration can be found there. + +## Customizing the payload + +You can customize the payload by sending the following parameters. All fields are optional: + +| Property | Type | Description | +| -------- | ---- | ----------- | +| `title` | String | The title of the incident. If none is provided, then `New: Incident #N` will be used, where `#N` is the number of incident | +| `description` | String | A high-level summary of the problem. | +| `start_time` | DateTime | The time of the incident. If none is provided, a timestamp of the issue will be used. | +| `service` | String | The affected service. | +| `monitoring_tool` | String | The name of the associated monitoring tool. | +| `hosts` | String or Array | One or more hosts, as to where this incident ocurred. | + +Example request: + +```sh +curl --request POST --data '{"title": "Incident title"}' --header "Authorization: Bearer <autorization_key>" <url> +``` + +The `<autorization_key>` and `<url>` values can be found when [setting up generic alerts](#setting-up-generic-alerts). + +Example payload: + +```json +{ + "title": "Incident title", + "description": "Short description of the incident", + "start_time": "2019-09-12T06:00:55Z", + "service": "service affected", + "monitoring_tool": "value", + "hosts": "value", +} +``` diff --git a/doc/user/project/integrations/github.md b/doc/user/project/integrations/github.md index 1a2c45a3b33..9d16748085c 100644 --- a/doc/user/project/integrations/github.md +++ b/doc/user/project/integrations/github.md @@ -1,6 +1,6 @@ # GitHub project integration **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/3836) in GitLab Premium 10.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/3836) in GitLab Premium 10.6. GitLab provides an integration for updating the pipeline statuses on GitHub. This is especially useful if using GitLab for CI/CD only. @@ -36,7 +36,7 @@ with `repo:status` access granted: #### Static / dynamic status check names > - Introduced in GitLab 11.5: using static status check names as opt-in option. -> - [In GitLab 12.4](https://gitlab.com/gitlab-org/gitlab-ee/issues/9931), static status check names is default behavior for new projects. +> - [In GitLab 12.4](https://gitlab.com/gitlab-org/gitlab/issues/9931), static status check names is default behavior for new projects. This makes it possible to mark these status checks as _Required_ on GitHub. With **Static status check names** enabled on the integration page, your diff --git a/doc/user/project/integrations/hangouts_chat.md b/doc/user/project/integrations/hangouts_chat.md index 20a71da927c..6e77708162d 100644 --- a/doc/user/project/integrations/hangouts_chat.md +++ b/doc/user/project/integrations/hangouts_chat.md @@ -1,6 +1,6 @@ # Hangouts Chat service -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/43756) in GitLab 11.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/43756) in GitLab 11.2. The Hangouts Chat service sends notifications from GitLab to the room for which the webhook was created. diff --git a/doc/user/project/integrations/jira.md b/doc/user/project/integrations/jira.md index 61f6f6c9412..1b8af89de61 100644 --- a/doc/user/project/integrations/jira.md +++ b/doc/user/project/integrations/jira.md @@ -205,4 +205,4 @@ authenticate with the Jira site. You will need to log in to your Jira instance and complete the CAPTCHA. [services-templates]: services_templates.md -[jira-repo-old-docs]: https://gitlab.com/gitlab-org/gitlab-ce/blob/8-13-stable/doc/project_services/jira.md +[jira-repo-old-docs]: https://gitlab.com/gitlab-org/gitlab-foss/blob/8-13-stable/doc/project_services/jira.md diff --git a/doc/user/project/integrations/project_services.md b/doc/user/project/integrations/project_services.md index 67274e8d924..168ec1b15ea 100644 --- a/doc/user/project/integrations/project_services.md +++ b/doc/user/project/integrations/project_services.md @@ -34,6 +34,7 @@ Click on the service links to see further configuration instructions and details | [Emails on push](emails_on_push.md) | Email the commits and diff of each push to a list of recipients | | External Wiki | Replaces the link to the internal wiki with a link to an external wiki | | Flowdock | Flowdock is a collaboration web app for technical teams | +| [Generic alerts](generic_alerts.md) **(ULTIMATE)** | Receive alerts on GitLab from any source | | [GitHub](github.md) **(PREMIUM)** | Sends pipeline notifications to GitHub | | [Hangouts Chat](hangouts_chat.md) | Receive events notifications in Google Hangouts Chat | | [HipChat](hipchat.md) | Private group chat and IM | @@ -73,5 +74,5 @@ For an overview of what projects services are available, please see the Contributions are welcome! -[projects-code]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/app/models/project_services +[projects-code]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master/app/models/project_services [permissions]: ../../permissions.md diff --git a/doc/user/project/integrations/prometheus.md b/doc/user/project/integrations/prometheus.md index 56176da382f..1ecefa210a0 100644 --- a/doc/user/project/integrations/prometheus.md +++ b/doc/user/project/integrations/prometheus.md @@ -19,7 +19,7 @@ Once enabled, GitLab will automatically detect metrics from known services in th ### Managed Prometheus on Kubernetes -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/28916) in GitLab 10.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/28916) in GitLab 10.5. GitLab can seamlessly deploy and manage Prometheus on a [connected Kubernetes cluster](../clusters/index.md), making monitoring of your apps easy. @@ -113,7 +113,7 @@ You can view the performance dashboard for an environment by [clicking on the mo ### Adding additional metrics **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3799) in [GitLab Premium](https://about.gitlab.com/pricing/) 10.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/3799) in [GitLab Premium](https://about.gitlab.com/pricing/) 10.6. Custom metrics can be monitored by adding them on the Prometheus integration page. Once saved, they will be displayed on the environment performance dashboard provided that either: @@ -143,7 +143,7 @@ To specify a variable in a query, enclose it in curly braces with a leading perc ### Defining custom dashboards per project -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/59974) in GitLab 12.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/59974) in GitLab 12.1. By default, all projects include a GitLab-defined Prometheus dashboard, which includes a few key metrics, but you can also define your own custom dashboards. @@ -221,7 +221,7 @@ The following tables outline the details of expected properties. | Property | Type | Required | Description | | ------ | ------ | ------ | ------ | -| `id` | string | no | Used for associating dashboard metrics with database records. Must be unique across dashboard configuration files. Required for [alerting](#setting-up-alerts-for-prometheus-metrics-ultimate) (support not yet enabled, see [relevant issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/60319)). | +| `id` | string | no | Used for associating dashboard metrics with database records. Must be unique across dashboard configuration files. Required for [alerting](#setting-up-alerts-for-prometheus-metrics-ultimate) (support not yet enabled, see [relevant issue](https://gitlab.com/gitlab-org/gitlab-foss/issues/60319)). | | `unit` | string | yes | Defines the unit of the query's return data. | | `label` | string | no, but highly encouraged | Defines the legend-label for the query. Should be unique within the panel's metrics. | | `query` | string | yes if `query_range` is not defined | Defines the Prometheus query to be used to populate the chart/panel. If defined, the `query` endpoint of the [Prometheus API](https://prometheus.io/docs/prometheus/latest/querying/api/) will be utilized. | @@ -296,7 +296,7 @@ Data from Prometheus charts on the metrics dashboard can be downloaded as CSV. #### Managed Prometheus instances -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6590) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.2 for [custom metrics](#adding-additional-metrics-premium), and 11.3 for [library metrics](prometheus_library/metrics.md). +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/6590) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.2 for [custom metrics](#adding-additional-metrics-premium), and 11.3 for [library metrics](prometheus_library/metrics.md). For managed Prometheus instances using auto configuration, alerts for metrics [can be configured](#adding-additional-metrics-premium) directly in the performance dashboard. @@ -309,7 +309,7 @@ To remove the alert, click back on the alert icon for the desired metric, and cl #### External Prometheus instances -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9258) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9258) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.8. For manually configured Prometheus servers, a notify endpoint is provided to use with Prometheus webhooks. If you have manual configuration enabled, an **Alerts** section is added to **Settings > Integrations > Prometheus**. This contains the *URL* and *Authorization Key*. The **Reset Key** button will invalidate the key and generate a new one. @@ -330,7 +330,7 @@ receivers: ### Taking action on incidents **(ULTIMATE)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4925) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.11. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/4925) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.11. Alerts can be used to trigger actions, like open an issue automatically (enabled by default since `12.1`). To configure the actions: @@ -353,14 +353,14 @@ Once enabled, an issue will be opened automatically when an alert is triggered w To further customize the issue, you can add labels, mentions, or any other supported [quick action](../quick_actions.md) in the selected issue template, which will apply to all incidents. To limit quick actions or other information to only specific types of alerts, use the `annotations/gitlab_incident_markdown` field. -Since [version 12.2](https://gitlab.com/gitlab-org/gitlab-ce/issues/63373), GitLab will tag each incident issue with the `incident` label automatically. If the label does not yet exist, it will be created automatically as well. +Since [version 12.2](https://gitlab.com/gitlab-org/gitlab-foss/issues/63373), GitLab will tag each incident issue with the `incident` label automatically. If the label does not yet exist, it will be created automatically as well. If the metric exceeds the threshold of the alert for over 5 minutes, an email will be sent to all [Maintainers and Owners](../../permissions.md#project-members-permissions) of the project. ## Determining the performance impact of a merge > - [Introduced][ce-10408] in GitLab 9.2. -> - GitLab 9.3 added the [numeric comparison](https://gitlab.com/gitlab-org/gitlab-ce/issues/27439) of the 30 minute averages. +> - GitLab 9.3 added the [numeric comparison](https://gitlab.com/gitlab-org/gitlab-foss/issues/27439) of the 30 minute averages. Developers can view the performance impact of their changes within the merge request workflow. @@ -451,7 +451,7 @@ If the "No data found" screen continues to appear, it could be due to: [prometheus-yml]:samples/prometheus.yml [gitlab.com-ip-range]: https://gitlab.com/gitlab-com/infrastructure/issues/434 [ci-environment-slug]: ../../../ci/variables/#predefined-environment-variables -[ce-8935]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8935 -[ce-10408]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10408 -[ce-29691]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29691 +[ce-8935]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8935 +[ce-10408]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10408 +[ce-29691]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/29691 [promgldocs]: ../../../administration/monitoring/prometheus/index.md diff --git a/doc/user/project/integrations/prometheus_library/cloudwatch.md b/doc/user/project/integrations/prometheus_library/cloudwatch.md index 5049733abdd..d0148828a21 100644 --- a/doc/user/project/integrations/prometheus_library/cloudwatch.md +++ b/doc/user/project/integrations/prometheus_library/cloudwatch.md @@ -1,6 +1,6 @@ # Monitoring AWS Resources -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12621) in GitLab 9.4 +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12621) in GitLab 9.4 GitLab has support for automatically detecting and monitoring AWS resources, starting with the [Elastic Load Balancer](https://aws.amazon.com/elasticloadbalancing/). This is provided by leveraging the official [Cloudwatch exporter](https://github.com/prometheus/cloudwatch_exporter), which translates [Cloudwatch metrics](https://aws.amazon.com/cloudwatch/) into a Prometheus readable form. diff --git a/doc/user/project/integrations/prometheus_library/haproxy.md b/doc/user/project/integrations/prometheus_library/haproxy.md index 90a725f271b..fe58cfadb52 100644 --- a/doc/user/project/integrations/prometheus_library/haproxy.md +++ b/doc/user/project/integrations/prometheus_library/haproxy.md @@ -1,6 +1,6 @@ # Monitoring HAProxy -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12621) in GitLab 9.4 +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12621) in GitLab 9.4 GitLab has support for automatically detecting and monitoring HAProxy. This is provided by leveraging the [HAProxy Exporter](https://github.com/prometheus/haproxy_exporter), which translates HAProxy statistics into a Prometheus readable form. diff --git a/doc/user/project/integrations/prometheus_library/index.md b/doc/user/project/integrations/prometheus_library/index.md index f47884996d8..c27517e2ff3 100644 --- a/doc/user/project/integrations/prometheus_library/index.md +++ b/doc/user/project/integrations/prometheus_library/index.md @@ -1,6 +1,6 @@ # Prometheus Metrics library -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8935) in GitLab 9.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8935) in GitLab 9.0. GitLab offers automatic detection of select [Prometheus exporters](https://prometheus.io/docs/instrumenting/exporters/). diff --git a/doc/user/project/integrations/prometheus_library/kubernetes.md b/doc/user/project/integrations/prometheus_library/kubernetes.md index 9e17edf7d36..e645f3d1547 100644 --- a/doc/user/project/integrations/prometheus_library/kubernetes.md +++ b/doc/user/project/integrations/prometheus_library/kubernetes.md @@ -1,6 +1,6 @@ # Monitoring Kubernetes -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8935) in GitLab 9.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/8935) in GitLab 9.0. GitLab has support for automatically detecting and monitoring Kubernetes metrics. @@ -38,7 +38,7 @@ Instead, the [Deployment](https://kubernetes.io/docs/concepts/workloads/controll ## Displaying Canary metrics **(PREMIUM)** -> Introduced in [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15201). +> Introduced in [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/15201). GitLab also gathers Kubernetes metrics for [canary deployments](../../canary_deployments.md), allowing easy comparison between the current deployed version and the canary. diff --git a/doc/user/project/integrations/prometheus_library/nginx.md b/doc/user/project/integrations/prometheus_library/nginx.md index 7db9629c002..3c6919561fd 100644 --- a/doc/user/project/integrations/prometheus_library/nginx.md +++ b/doc/user/project/integrations/prometheus_library/nginx.md @@ -1,6 +1,6 @@ # Monitoring NGINX -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12621) in GitLab 9.4 +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12621) in GitLab 9.4 GitLab has support for automatically detecting and monitoring NGINX. This is provided by leveraging the [NGINX VTS exporter](https://github.com/hnlq715/nginx-vts-exporter), which translates [VTS statistics](https://github.com/vozlt/nginx-module-vts) into a Prometheus readable form. diff --git a/doc/user/project/integrations/prometheus_library/nginx_ingress.md b/doc/user/project/integrations/prometheus_library/nginx_ingress.md index fd743855a8c..1966fc1d289 100644 --- a/doc/user/project/integrations/prometheus_library/nginx_ingress.md +++ b/doc/user/project/integrations/prometheus_library/nginx_ingress.md @@ -1,6 +1,6 @@ # Monitoring NGINX Ingress Controller -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22133) in GitLab 11.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22133) in GitLab 11.7. NOTE: **Note:** NGINX Ingress versions prior to 0.16.0 offer an included [VTS Prometheus metrics exporter](nginx_ingress_vts.md), which exports metrics different than the built-in metrics. diff --git a/doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md b/doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md index b03787b3e0d..0c848496149 100644 --- a/doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md +++ b/doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md @@ -1,6 +1,6 @@ # Monitoring NGINX Ingress Controller with VTS metrics -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13438) in GitLab 9.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/13438) in GitLab 9.5. NOTE: **Note:** [NGINX Ingress version 0.16](nginx_ingress.md) and above have built-in Prometheus metrics, which are different than the VTS based metrics. diff --git a/doc/user/project/integrations/webhooks.md b/doc/user/project/integrations/webhooks.md index b508d904606..ae6a215fc34 100644 --- a/doc/user/project/integrations/webhooks.md +++ b/doc/user/project/integrations/webhooks.md @@ -86,7 +86,7 @@ You can turn this off in the webhook settings in your GitLab projects. ## Branch filtering -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/20338) in GitLab 11.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/20338) in GitLab 11.3. Push events can be filtered by branch using a branch name or wildcard pattern to limit which push events are sent to your webhook endpoint. By default the diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md index 519c02cf0ad..0c0068ddd09 100644 --- a/doc/user/project/issue_board.md +++ b/doc/user/project/issue_board.md @@ -160,7 +160,7 @@ For a collection of [features per tier](#summary-of-features-per-tier), check th ### Multiple Issue Boards -> - Multiple Issue Boards per project [moved](https://gitlab.com/gitlab-org/gitlab-ce/issues/53811) to [GitLab Core](https://about.gitlab.com/pricing/) in GitLab 12.1. +> - Multiple Issue Boards per project [moved](https://gitlab.com/gitlab-org/gitlab-foss/issues/53811) to [GitLab Core](https://about.gitlab.com/pricing/) in GitLab 12.1. > - Multiple Issue Boards per group is available in [GitLab Premium Edition](https://about.gitlab.com/pricing/). Multiple Issue Boards, as the name suggests, allow for more than one Issue Board @@ -234,7 +234,7 @@ one group issue board per group was made available in GitLab 10.6 Core. ### Assignee lists **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5784) in GitLab 11.0 Premium. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5784) in GitLab 11.0 Premium. Like a regular list that shows all issues that have the list label, you can add an assignee list that shows all issues assigned to the given user. @@ -253,7 +253,7 @@ To remove an assignee list, just as with a label list, click the trash icon. ### Milestone lists **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/6469) in GitLab 11.2 Premium. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/6469) in GitLab 11.2 Premium. As of 11.2, you're also able to create lists of a milestone. As the name states, these are lists that filter issues by the assigned milestone, giving you more @@ -451,6 +451,6 @@ A few things to remember: by default. If you have more than 20 issues start scrolling down and the next 20 will appear. -[ce-5554]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5554 +[ce-5554]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5554 [scrum]: https://en.wikipedia.org/wiki/Scrum_(software_development) [kanban]: https://en.wikipedia.org/wiki/Kanban_(development) diff --git a/doc/user/project/issues/confidential_issues.md b/doc/user/project/issues/confidential_issues.md index c10ef564f0d..71b51437436 100644 --- a/doc/user/project/issues/confidential_issues.md +++ b/doc/user/project/issues/confidential_issues.md @@ -1,6 +1,6 @@ # Confidential issues -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3282) in GitLab 8.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/3282) in GitLab 8.6. Confidential issues are issues visible only to members of a project with [sufficient permissions](#permissions-and-access-to-confidential-issues). @@ -80,7 +80,7 @@ project's search results respectively. ## Merge Requests for Confidential Issues -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/58583) in GitLab 12.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/58583) in GitLab 12.1. To help prevent confidential information being leaked from a public project in the process of resolving a confidential issue, confidential issues can be diff --git a/doc/user/project/issues/csv_export.md b/doc/user/project/issues/csv_export.md index 27ce3a814f9..6ad96f41572 100644 --- a/doc/user/project/issues/csv_export.md +++ b/doc/user/project/issues/csv_export.md @@ -1,6 +1,6 @@ # Export Issues to CSV **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1126) in [GitLab Starter 9.0](https://about.gitlab.com/2017/03/22/gitlab-9-0-released/#export-issues-ees-eep). +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/1126) in [GitLab Starter 9.0](https://about.gitlab.com/2017/03/22/gitlab-9-0-released/#export-issues-ees-eep). Issues can be exported as CSV from GitLab and are sent to your default notification email as an attachment. @@ -42,9 +42,9 @@ Exported issues are always sorted by `Issue ID`. ## Format -> **Time Estimate** and **Time Spent** columns were [introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2627) in GitLab Starter 10.0. +> **Time Estimate** and **Time Spent** columns were [introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/2627) in GitLab Starter 10.0. > -> **Weight** and **Locked** columns were [introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5300) in GitLab Starter 10.8. +> **Weight** and **Locked** columns were [introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/5300) in GitLab Starter 10.8. Data will be encoded with a comma as the column delimiter, with `"` used to quote fields if needed, and newlines to separate rows. The first row will be the headers, which are listed in the following table along with a description of the values: diff --git a/doc/user/project/issues/csv_import.md b/doc/user/project/issues/csv_import.md index cc0d5ac9028..a0ad9ddff34 100644 --- a/doc/user/project/issues/csv_import.md +++ b/doc/user/project/issues/csv_import.md @@ -1,6 +1,6 @@ # Importing issues from CSV -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23532) in GitLab 11.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/23532) in GitLab 11.7. Issues can be imported to a project by uploading a CSV file with the columns `title` and `description`, in that order. diff --git a/doc/user/project/issues/design_management.md b/doc/user/project/issues/design_management.md index 1324a90e00b..9850b401b6f 100644 --- a/doc/user/project/issues/design_management.md +++ b/doc/user/project/issues/design_management.md @@ -36,15 +36,15 @@ to be enabled: ## Limitations - Files uploaded must have a file extension of either `png`, `jpg`, `jpeg`, `gif`, `bmp`, `tiff` or `ico`. - The [`svg` extension is not yet supported](https://gitlab.com/gitlab-org/gitlab-ee/issues/12771). + The [`svg` extension is not yet supported](https://gitlab.com/gitlab-org/gitlab/issues/12771). - Design uploads are limited to 10 files at a time. -- [Designs cannot yet be deleted](https://gitlab.com/gitlab-org/gitlab-ee/issues/11089). +- [Designs cannot yet be deleted](https://gitlab.com/gitlab-org/gitlab/issues/11089). - Design Management is - [not yet supported in the project export](https://gitlab.com/gitlab-org/gitlab-ee/issues/11090). + [not yet supported in the project export](https://gitlab.com/gitlab-org/gitlab/issues/11090). - Design Management data - [isn't deleted when a project is destroyed](https://gitlab.com/gitlab-org/gitlab-ee/issues/13429) yet. -- Design Management data [won't be moved](https://gitlab.com/gitlab-org/gitlab-ee/issues/13426) - when an issue is moved, nor [deleted](https://gitlab.com/gitlab-org/gitlab-ee/issues/13427) + [isn't deleted when a project is destroyed](https://gitlab.com/gitlab-org/gitlab/issues/13429) yet. +- Design Management data [won't be moved](https://gitlab.com/gitlab-org/gitlab/issues/13426) + when an issue is moved, nor [deleted](https://gitlab.com/gitlab-org/gitlab/issues/13427) when an issue is deleted. - Design Management [isn't supported by Geo](https://gitlab.com/groups/gitlab-org/-/epics/1633) yet. @@ -53,7 +53,7 @@ to be enabled: Navigate to the **Design Management** page from any issue by clicking the **Designs** tab: -![Designs tab](img/design_management_v12_2.png) +![Designs tab](img/design_management_v12_3.png) ## Adding designs @@ -64,7 +64,19 @@ of the design, and will replace the previous version. ## Viewing designs -Images on the Design Management page can be enlarged by clicking on them. +Images on the Design Management page can be enlarged by clicking on them. + +The number of comments on a design — if any — is listed to the right +of the design filename. Clicking on this number enlarges the design +just like clicking anywhere else on the design. +When a design is added or modified, an icon is displayed on the item +to help summarize changes between versions. + +| Indicator | Example | +| --------- | ------- | +| Comments | ![Comments Icon](img/design_comments_v12_3.png) | +| Modified (in the selected version) | ![Design Modified](img/design_modified_v12_3.png) | +| Added (in the selected version) | ![Design Added](img/design_added_v12_3.png) | ## Adding annotations to designs diff --git a/doc/user/project/issues/due_dates.md b/doc/user/project/issues/due_dates.md index bd3298497d2..240859651e2 100644 --- a/doc/user/project/issues/due_dates.md +++ b/doc/user/project/issues/due_dates.md @@ -1,6 +1,6 @@ # Due dates -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3614) in GitLab 8.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/3614) in GitLab 8.7. Please read through the [GitLab Issue Documentation](index.md) for an overview on GitLab Issues. diff --git a/doc/user/project/issues/img/design_added_v12_3.png b/doc/user/project/issues/img/design_added_v12_3.png Binary files differnew file mode 100644 index 00000000000..92aa953db8e --- /dev/null +++ b/doc/user/project/issues/img/design_added_v12_3.png diff --git a/doc/user/project/issues/img/design_comments_v12_3.png b/doc/user/project/issues/img/design_comments_v12_3.png Binary files differnew file mode 100644 index 00000000000..c01a8bb7ba7 --- /dev/null +++ b/doc/user/project/issues/img/design_comments_v12_3.png diff --git a/doc/user/project/issues/img/design_management_v12_2.png b/doc/user/project/issues/img/design_management_v12_2.png Binary files differdeleted file mode 100644 index ad803df4e63..00000000000 --- a/doc/user/project/issues/img/design_management_v12_2.png +++ /dev/null diff --git a/doc/user/project/issues/img/design_management_v12_3.png b/doc/user/project/issues/img/design_management_v12_3.png Binary files differnew file mode 100644 index 00000000000..b3647aa97c1 --- /dev/null +++ b/doc/user/project/issues/img/design_management_v12_3.png diff --git a/doc/user/project/issues/img/design_modified_v12_3.png b/doc/user/project/issues/img/design_modified_v12_3.png Binary files differnew file mode 100644 index 00000000000..01b752fa531 --- /dev/null +++ b/doc/user/project/issues/img/design_modified_v12_3.png diff --git a/doc/user/project/issues/index.md b/doc/user/project/issues/index.md index bf04ed2d2d0..eaf4922bec9 100644 --- a/doc/user/project/issues/index.md +++ b/doc/user/project/issues/index.md @@ -146,7 +146,7 @@ message in the Activity stream about the reference, with a link to the other iss ### Similar issues -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22866) in GitLab 11.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22866) in GitLab 11.6. To prevent duplication of issues for the same topic, GitLab searches for similar issues when new issues are being created. diff --git a/doc/user/project/issues/managing_issues.md b/doc/user/project/issues/managing_issues.md index e9b4e591384..38649b05593 100644 --- a/doc/user/project/issues/managing_issues.md +++ b/doc/user/project/issues/managing_issues.md @@ -99,9 +99,9 @@ in the same URL (since a description template also populates the description fie Follow these examples to form your new issue URL with prefilled fields. - For a new issue in the GitLab Community Edition project with a pre-filled title - and a pre-filled description, the URL would be `https://gitlab.com/gitlab-org/gitlab-ce/issues/new?issue[title]=Validate%20new%20concept&issue[description]=Research%20idea` + and a pre-filled description, the URL would be `https://gitlab.com/gitlab-org/gitlab-foss/issues/new?issue[title]=Validate%20new%20concept&issue[description]=Research%20idea` - For a new issue in the GitLab Community Edition project with a pre-filled title - and a pre-filled description template, the URL would be `https://gitlab.com/gitlab-org/gitlab-ce/issues/new?issue[title]=Validate%20new%20concept&issuable_template=Research%20proposal` + and a pre-filled description template, the URL would be `https://gitlab.com/gitlab-org/gitlab-foss/issues/new?issue[title]=Validate%20new%20concept&issuable_template=Research%20proposal` ## Moving Issues @@ -219,7 +219,7 @@ of your installation. ## Deleting Issues -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2982) in GitLab 8.6 +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/2982) in GitLab 8.6 Users with [project owner permission](../../permissions.md) can delete an issue by editing it and clicking on the delete button. diff --git a/doc/user/project/issues/multiple_assignees_for_issues.md b/doc/user/project/issues/multiple_assignees_for_issues.md index c9efe9f5031..a1b16457a0d 100644 --- a/doc/user/project/issues/multiple_assignees_for_issues.md +++ b/doc/user/project/issues/multiple_assignees_for_issues.md @@ -1,7 +1,7 @@ # Multiple Assignees for Issues **(STARTER)** > **Note:** -[Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/1904) +[Introduced](https://gitlab.com/gitlab-org/gitlab/issues/1904) in [GitLab Starter 9.2](https://about.gitlab.com/2017/05/22/gitlab-9-2-released/#multiple-assignees-for-issues). ## Overview diff --git a/doc/user/project/issues/related_issues.md b/doc/user/project/issues/related_issues.md index d7178506b64..61a31c353c8 100644 --- a/doc/user/project/issues/related_issues.md +++ b/doc/user/project/issues/related_issues.md @@ -1,6 +1,6 @@ # Related issues **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1797) in [GitLab Starter](https://about.gitlab.com/pricing/) 9.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/1797) in [GitLab Starter](https://about.gitlab.com/pricing/) 9.4. Related issues are a bi-directional relationship between any two issues and appear in a block below the issue description. Issues can be across groups diff --git a/doc/user/project/issues/sorting_issue_lists.md b/doc/user/project/issues/sorting_issue_lists.md index 6e31acf80bc..076d9545b29 100644 --- a/doc/user/project/issues/sorting_issue_lists.md +++ b/doc/user/project/issues/sorting_issue_lists.md @@ -9,7 +9,7 @@ similar to [issue boards](../issue_board.md#issue-ordering-in-a-list). ## Manual sorting -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/62178) in GitLab 12.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/62178) in GitLab 12.2. When you select **Manual** sorting, you can change the order by dragging and dropping the issues. The changed order will persist. Everyone who visits the same list will see the reordered list, with some exceptions. diff --git a/doc/user/project/labels.md b/doc/user/project/labels.md index cc1274faa2c..32c8c4d0453 100644 --- a/doc/user/project/labels.md +++ b/doc/user/project/labels.md @@ -18,7 +18,7 @@ In GitLab, you can create project and group labels: ## Scoped labels **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9175) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9175) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. Scoped labels allow teams to use the simple and familiar label feature to annotate their issues, merge requests, and epics to achieve custom fields and @@ -223,7 +223,7 @@ that the label has been assigned to an issue or merge request. >**Notes:** > > - Introduced in GitLab 8.9. -> - Priority sorting is based on the highest priority label only. [This discussion](https://gitlab.com/gitlab-org/gitlab-ce/issues/18554) considers changing this. +> - Priority sorting is based on the highest priority label only. [This discussion](https://gitlab.com/gitlab-org/gitlab-foss/issues/18554) considers changing this. Labels can have relative priorities, which are used in the "Label priority" and "Priority" sort orders of the issue and merge request list pages. @@ -252,7 +252,7 @@ If you sort by `Label priority`, GitLab considers this sort comparison order: - Object without a prioritized label. Ties are broken arbitrarily. Note that we _only_ consider the highest prioritized label -in an object, and not any of the lower prioritized labels. [This discussion](https://gitlab.com/gitlab-org/gitlab-ce/issues/18554) +in an object, and not any of the lower prioritized labels. [This discussion](https://gitlab.com/gitlab-org/gitlab-foss/issues/18554) considers changing this. ![Labels sort label priority](img/labels_sort_label_priority.png) diff --git a/doc/user/project/merge_requests/allow_collaboration.md b/doc/user/project/merge_requests/allow_collaboration.md index a88fb4fc6f8..3a389eb1e3a 100644 --- a/doc/user/project/merge_requests/allow_collaboration.md +++ b/doc/user/project/merge_requests/allow_collaboration.md @@ -4,7 +4,7 @@ type: reference, howto # Allow collaboration on merge requests across forks -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17395) in GitLab 10.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17395) in GitLab 10.6. When a user opens a merge request from a fork, they are given the option to allow upstream members to collaborate with them on the source branch. This allows diff --git a/doc/user/project/merge_requests/browser_performance_testing.md b/doc/user/project/merge_requests/browser_performance_testing.md index 2339cfa0db8..de8a47f3d73 100644 --- a/doc/user/project/merge_requests/browser_performance_testing.md +++ b/doc/user/project/merge_requests/browser_performance_testing.md @@ -4,7 +4,7 @@ type: reference, howto # Browser Performance Testing **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3507) in [GitLab Premium](https://about.gitlab.com/pricing/) 10.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/3507) in [GitLab Premium](https://about.gitlab.com/pricing/) 10.3. If your application offers a web interface and you are using [GitLab CI/CD](../../../ci/README.md), you can quickly determine the performance @@ -20,7 +20,7 @@ outputs the performance score for each page that is analyzed. The [Sitespeed.io performance score](https://examples.sitespeed.io/6.0/2017-11-23-23-43-35/help.html) is a composite value based on best practices, and we will be expanding support -for [additional metrics](https://gitlab.com/gitlab-org/gitlab-ee/issues/4370) +for [additional metrics](https://gitlab.com/gitlab-org/gitlab/issues/4370) in a future release. Going a step further, GitLab can show the Performance report right @@ -175,7 +175,7 @@ performance: performance: performance.json ``` -A complete example can be found in our [Auto DevOps CI YML](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml). +A complete example can be found in our [Auto DevOps CI YML](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml). ### Previous job definitions diff --git a/doc/user/project/merge_requests/code_quality.md b/doc/user/project/merge_requests/code_quality.md index e7ecd173597..3c667755787 100644 --- a/doc/user/project/merge_requests/code_quality.md +++ b/doc/user/project/merge_requests/code_quality.md @@ -4,7 +4,7 @@ type: reference, howto # Code Quality **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1984) in [GitLab Starter](https://about.gitlab.com/pricing/) 9.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/1984) in [GitLab Starter](https://about.gitlab.com/pricing/) 9.3. With the help of [GitLab CI/CD](../../../ci/README.md), you can analyze your source code quality using GitLab Code Quality. diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index c19e96b4482..3f563d58287 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -186,7 +186,7 @@ The diff view includes the following: ## Commenting on any file line in merge requests -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/13950) in GitLab 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/13950) in GitLab 11.5. GitLab provides a way of leaving comments in any part of the file being changed in a Merge Request. To do so, click the **...** button in the gutter of the Merge Request diff UI to expand the diff lines and leave a comment, just as you would for a changed line. @@ -210,7 +210,7 @@ commit when merging, to allow for a neater commit history. ## Suggest changes -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/18008) in GitLab 11.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/18008) in GitLab 11.6. As a reviewer, you can add suggestions to change the content in merge request threads, and users with appropriate [permission](../../permissions.md) @@ -220,7 +220,7 @@ to learn more. ## Multiple assignees **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/2004) +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/2004) in [GitLab Starter 11.11](https://about.gitlab.com/pricing). Multiple people often review merge requests at the same time. GitLab allows you to have multiple assignees for merge requests to indicate everyone that is reviewing or accountable for it. @@ -275,7 +275,7 @@ or contacts to continue working._ ### Adding patches when creating a merge request via e-mail -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22723) in GitLab 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22723) in GitLab 11.5. You can add commits to the merge request being created by adding patches as attachments to the email. All attachments with a filename @@ -292,7 +292,7 @@ branch already exists, the patches will be applied on top of it. ## Git push options -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/26752) in GitLab 11.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/26752) in GitLab 11.10. NOTE: **Note:** Git push options are only available with Git 2.10 or newer. With Git older than 2.18 @@ -355,7 +355,7 @@ git push -o merge_request.create -o merge_request.merge_when_pipeline_succeeds ### Set removing the source branch using git push options -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/64320) in GitLab 12.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/64320) in GitLab 12.2. To set an existing merge request to remove the source branch when the merge request is merged, the @@ -370,7 +370,7 @@ You can also use this push option in addition to the ### Set merge request title using git push options -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/64320) in GitLab 12.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/64320) in GitLab 12.2. To set the title of an existing merge request, use the `merge_request.title` push option: @@ -384,7 +384,7 @@ You can also use this push option in addition to the ### Set merge request description using git push options -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/64320) in GitLab 12.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/64320) in GitLab 12.2. To set the description of an existing merge request, use the `merge_request.description` push option: @@ -398,7 +398,7 @@ You can also use this push option in addition to the ### Add or remove labels using git push options -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/31831) in GitLab 12.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/31831) in GitLab 12.3. You can add or remove labels from merge requests using push options. @@ -427,7 +427,7 @@ git push -o merge_request.create -o merge_request.label="label1" -o merge_reques ## Find the merge request that introduced a change -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/2383) in GitLab 10.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/2383) in GitLab 10.5. When viewing the commit details page, GitLab will link to the merge request (or merge requests, if it's in more than one) containing that commit. @@ -490,7 +490,7 @@ can show the Code Climate report right in the merge request widget area. ## Metrics Reports **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9788) in [GitLab Premium][products] 11.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9788) in [GitLab Premium][products] 11.10. Requires GitLab Runner 11.10 and above. If you are using [GitLab CI][ci], you can configure your job to output custom @@ -693,7 +693,7 @@ like this: ``` [remote "origin"] - url = https://gitlab.com/gitlab-org/gitlab-ce.git + url = https://gitlab.com/gitlab-org/gitlab-foss.git fetch = +refs/heads/*:refs/remotes/origin/* ``` @@ -713,7 +713,7 @@ In the end, it should look like this: ``` [remote "origin"] - url = https://gitlab.com/gitlab-org/gitlab-ce.git + url = https://gitlab.com/gitlab-org/gitlab-foss.git fetch = +refs/heads/*:refs/remotes/origin/* fetch = +refs/merge-requests/*/head:refs/remotes/origin/merge-requests/* ``` @@ -724,7 +724,7 @@ Now you can fetch all the merge requests: git fetch origin ... -From https://gitlab.com/gitlab-org/gitlab-ce.git +From https://gitlab.com/gitlab-org/gitlab-foss.git * [new ref] refs/merge-requests/1/head -> origin/merge-requests/1 * [new ref] refs/merge-requests/2/head -> origin/merge-requests/2 ... diff --git a/doc/user/project/merge_requests/merge_request_approvals.md b/doc/user/project/merge_requests/merge_request_approvals.md index a18c2d3a21f..6f8d821e1c6 100644 --- a/doc/user/project/merge_requests/merge_request_approvals.md +++ b/doc/user/project/merge_requests/merge_request_approvals.md @@ -66,13 +66,13 @@ suitable to your workflow: ## Editing approvals **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/1979) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/1979) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.8. CAUTION: **Caution:** -There was a [regression affecting this feature in 11.8](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9648). We recommend upgrading _at least_ to version 11.8.2. to avoid any issues. +There was a [regression affecting this feature in 11.8](https://gitlab.com/gitlab-org/gitlab/merge_requests/9648). We recommend upgrading _at least_ to version 11.8.2. to avoid any issues. NOTE: **Note:** -In 11.8 this feature does not work in [private groups](https://gitlab.com/gitlab-org/gitlab-ee/issues/10356). +In 11.8 this feature does not work in [private groups](https://gitlab.com/gitlab-org/gitlab/issues/10356). For GitLab Premium, [multiple approver rules](#multiple-approval-rules-premium) can be configured. To configure the merge request approval rules: @@ -87,7 +87,7 @@ request approval rules: ## Multiple approval rules **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/1979) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/1979) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.8. For GitLab Premium, a merge request's overall approval status is determined by a set of rules. Each rule contains: @@ -107,7 +107,7 @@ any [eligible approver](#eligible-approvers) may approve. The following can approve merge requests: - Users being added as approvers at project or merge request level. -- [Code owners](../code_owners.md) related to the merge request ([introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/7933) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.5). +- [Code owners](../code_owners.md) related to the merge request ([introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/7933) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.5). An individual user can be added as an approver for a project if they are a member of: @@ -115,7 +115,7 @@ An individual user can be added as an approver for a project if they are a membe - The project's immediate parent group. - A group that has access to the project via a [share](../members/share_project_with_groups.md). -A group can also be added as an approver. [In the future](https://gitlab.com/gitlab-org/gitlab-ee/issues/2048), +A group can also be added as an approver. [In the future](https://gitlab.com/gitlab-org/gitlab/issues/2048), group approvers will be restricted. If a user is added as an individual approver and is also part of a group approver, @@ -170,7 +170,7 @@ or a [failed CI/CD pipeline](merge_when_pipeline_succeeds.md). ## Code Owners approvals **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4418) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.9. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/4418) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.9. It is possible to require at least one approval for each entry in the [`CODEOWNERS` file](../code_owners.md) that matches a file changed in @@ -269,7 +269,7 @@ turn this setting to off by unchecking the box and saving the changes. ## Allowing merge request authors to approve their own merge requests -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/3349) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/3349) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.3. You can allow merge request authors to self-approve merge requests by enabling it [at the project level](#editing-approvals). Authors @@ -282,7 +282,7 @@ approve their merge request. ## Prevent approval of merge requests by their committers -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/10441) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/10441) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.10. You can prevent users that have committed to a merge request from approving it by enabling [**Prevent approval of merge requests by their committers**](#prevent-approval-of-merge-requests-by-their-committers). @@ -293,7 +293,7 @@ enabling [**Prevent approval of merge requests by their committers**](#prevent-a ## Require authentication when approving a merge request **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5981) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5981) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.0. You can force the approver to enter a password in order to authenticate who is approving the merge request by enabling **Require user password to approve**. This enables an Electronic Signature @@ -320,7 +320,7 @@ Approvers are suggested for merge requests based on the previous authors of the ## Filtering merge requests by approvers -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9468) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.9. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/9468) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.9. To filter merge requests by an individual approver, you can type (or select from the dropdown) `approver` and select the user. diff --git a/doc/user/project/merge_requests/merge_request_dependencies.md b/doc/user/project/merge_requests/merge_request_dependencies.md index b30e24b2386..c982bd7f78d 100644 --- a/doc/user/project/merge_requests/merge_request_dependencies.md +++ b/doc/user/project/merge_requests/merge_request_dependencies.md @@ -4,7 +4,7 @@ type: reference, concepts # Cross-project Merge Request dependencies **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9688) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9688) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2. Cross-project merge request dependencies allows a required order of merging between merge requests in different projects to be expressed. If a @@ -97,9 +97,9 @@ merge. ## Limitations -- API support: [gitlab-ee#12551](https://gitlab.com/gitlab-org/gitlab-ee/issues/12551) -- Dependencies are not preserved across project export/import: [gitlab-ee#12549](https://gitlab.com/gitlab-org/gitlab-ee/issues/12549) -- Complex merge order dependencies are not supported: [gitlab-ee#11393](https://gitlab.com/gitlab-org/gitlab-ee/issues/11393) +- API support: [gitlab-ee#12551](https://gitlab.com/gitlab-org/gitlab/issues/12551) +- Dependencies are not preserved across project export/import: [gitlab-ee#12549](https://gitlab.com/gitlab-org/gitlab/issues/12549) +- Complex merge order dependencies are not supported: [gitlab-ee#11393](https://gitlab.com/gitlab-org/gitlab/issues/11393) The last item merits a little more explanation. Dependencies between merge requests can be described as a graph of relationships. The simplest possible diff --git a/doc/user/project/merge_requests/merge_when_build_succeeds.md b/doc/user/project/merge_requests/merge_when_build_succeeds.md index cf5e3af16c9..8820b344acd 100644 --- a/doc/user/project/merge_requests/merge_when_build_succeeds.md +++ b/doc/user/project/merge_requests/merge_when_build_succeeds.md @@ -4,4 +4,4 @@ redirect_to: 'merge_when_pipeline_succeeds.md' This document was moved to [merge_when_pipeline_succeeds](merge_when_pipeline_succeeds.md). ->[Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7135) by the "Rename MWBS service to Merge When Pipeline Succeeds" change. +>[Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/7135) by the "Rename MWBS service to Merge When Pipeline Succeeds" change. diff --git a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md index 50a4e514d49..b717cb0ec24 100644 --- a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md +++ b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md @@ -55,7 +55,7 @@ merge request from the UI, until you make all relevant jobs pass. When this setting is enabled, a merge request is prevented from being merged if there is no pipeline. This may conflict with some use cases where [`only/except`](../../../ci/yaml/README.md#onlyexcept-advanced) rules are used and they don't generate any pipelines. -Users that expect to be able to merge a merge request in this scenario should ensure that [there is always a pipeline](https://gitlab.com/gitlab-org/gitlab-ce/issues/54226) and that it's succesful. +Users that expect to be able to merge a merge request in this scenario should ensure that [there is always a pipeline](https://gitlab.com/gitlab-org/gitlab-foss/issues/54226) and that it's succesful. For example, to that on merge requests there is always a passing job even though `only/except` rules may not generate any other jobs: diff --git a/doc/user/project/merge_requests/resolve_conflicts.md b/doc/user/project/merge_requests/resolve_conflicts.md index 6a0f2d18629..3ae60d0cf55 100644 --- a/doc/user/project/merge_requests/resolve_conflicts.md +++ b/doc/user/project/merge_requests/resolve_conflicts.md @@ -28,7 +28,7 @@ build. ## Resolve conflicts: interactive mode -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5479) in GitLab 8.11. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5479) in GitLab 8.11. Clicking this will show a list of files with conflicts, with conflict sections highlighted: @@ -43,7 +43,7 @@ this is similar to performing `git checkout feature; git merge master` locally. ## Resolve conflicts: inline editor -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6374) in GitLab 8.13. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/6374) in GitLab 8.13. The merge conflict resolution editor allows for more complex merge conflicts, which require the user to manually modify a file in order to resolve a conflict, diff --git a/doc/user/project/merge_requests/squash_and_merge.md b/doc/user/project/merge_requests/squash_and_merge.md index 38459584eed..ae13642a29b 100644 --- a/doc/user/project/merge_requests/squash_and_merge.md +++ b/doc/user/project/merge_requests/squash_and_merge.md @@ -4,8 +4,8 @@ type: reference, concepts # Squash and merge -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1024) in [GitLab Starter](https://about.gitlab.com/pricing/) 8.17. -> - [Ported](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18956) to GitLab Core 11.0. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/1024) in [GitLab Starter](https://about.gitlab.com/pricing/) 8.17. +> - [Ported](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18956) to GitLab Core 11.0. With squash and merge you can combine all your merge request's commits into one and retain a clean history. diff --git a/doc/user/project/milestones/burndown_charts.md b/doc/user/project/milestones/burndown_charts.md index d4dd9c7d4c3..11df58fb29e 100644 --- a/doc/user/project/milestones/burndown_charts.md +++ b/doc/user/project/milestones/burndown_charts.md @@ -4,9 +4,9 @@ type: reference # Burndown Charts **(STARTER)** -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1540) in [GitLab Starter](https://about.gitlab.com/pricing/) 9.1 for project milestones. -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5354) in [GitLab Premium](https://about.gitlab.com/pricing/) 10.8 for group milestones. -> - [Added](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6495) to [GitLab Starter](https://about.gitlab.com/pricing/) 11.2 for group milestones. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/1540) in [GitLab Starter](https://about.gitlab.com/pricing/) 9.1 for project milestones. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/5354) in [GitLab Premium](https://about.gitlab.com/pricing/) 10.8 for group milestones. +> - [Added](https://gitlab.com/gitlab-org/gitlab/merge_requests/6495) to [GitLab Starter](https://about.gitlab.com/pricing/) 11.2 for group milestones. > - Closed or reopened issues prior to GitLab 9.1 won't have a `closed_at` > value, so the burndown chart considers them as closed on the milestone > `start_date`. In that case, a warning will be displayed. diff --git a/doc/user/project/new_ci_build_permissions_model.md b/doc/user/project/new_ci_build_permissions_model.md index 8606d92f20c..0e60c4eca75 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -4,7 +4,7 @@ GitLab 8.12 has a completely redesigned [job permissions] system. You can find all discussion and all our concerns when choosing the current approach in issue -[#18994](https://gitlab.com/gitlab-org/gitlab-ce/issues/18994). +[#18994](https://gitlab.com/gitlab-org/gitlab-foss/issues/18994). Jobs permissions should be tightly integrated with the permissions of a user who is triggering a job. @@ -68,7 +68,7 @@ Let's consider the following scenario: A unique job token is generated for each job and provides the user read access all projects that would be normally accessible to the user creating that job. The unique job token does not have any write permissions, but there -is a [proposal to add support](https://gitlab.com/gitlab-org/gitlab-ce/issues/18106). +is a [proposal to add support](https://gitlab.com/gitlab-org/gitlab-foss/issues/18106). We try to make sure that this token doesn't leak by: @@ -102,7 +102,7 @@ allowing pulling and pushing Docker images from within the CI job. GitLab would create a special checkout URL like: ``` -https://gitlab-ci-token:<project-runners-token>/gitlab.com/gitlab-org/gitlab-ce.git +https://gitlab-ci-token:<project-runners-token>/gitlab.com/gitlab-org/gitlab-foss.git ``` And then the users could also use it in their CI jobs all Docker related @@ -229,15 +229,15 @@ to projects and their project permissions. ### API -GitLab API cannot be used via `CI_JOB_TOKEN` but there is a [proposal](https://gitlab.com/gitlab-org/gitlab-ce/issues/29566) +GitLab API cannot be used via `CI_JOB_TOKEN` but there is a [proposal](https://gitlab.com/gitlab-org/gitlab-foss/issues/29566) to support it. [job permissions]: ../permissions.md#job-permissions -[comment]: https://gitlab.com/gitlab-org/gitlab-ce/issues/22484#note_16648302 +[comment]: https://gitlab.com/gitlab-org/gitlab-foss/issues/22484#note_16648302 [gitsub]: ../../ci/git_submodules.md [https]: ../admin_area/settings/visibility_and_access_controls.md#enabled-git-access-protocols [triggers]: ../../ci/triggers/README.md#ci-job-token -[update-docs]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/update +[update-docs]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master/doc/update [workhorse]: https://gitlab.com/gitlab-org/gitlab-workhorse [jobenv]: ../../ci/variables/README.md#predefined-environment-variables [2fa]: ../profile/account/two_factor_authentication.md diff --git a/doc/user/project/operations/feature_flags.md b/doc/user/project/operations/feature_flags.md index 1c9157b0f67..97b3ca0067e 100644 --- a/doc/user/project/operations/feature_flags.md +++ b/doc/user/project/operations/feature_flags.md @@ -1,6 +1,6 @@ # Feature Flags **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11845) in GitLab 11.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/11845) in GitLab 11.4. Feature flags allow you to ship a project in different flavors by dynamically toggling certain functionality. @@ -55,7 +55,7 @@ and toggle the status for each [spec](#define-environment-specs). ## Define environment specs -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/8621) in GitLab 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/8621) in GitLab 11.8. In general, an application is deployed to multiple environments, such as production, staging and [review apps](../../../ci/review_apps/index.md). @@ -83,7 +83,7 @@ feature in order to quickly assess which flag is enabled per environment. ## Rollout strategy -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/8240) in GitLab 12.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/8240) in GitLab 12.2. The selected rollout strategy affects which users will experience the feature enabled. @@ -114,7 +114,7 @@ ID for the feature to be enabled. See the [Ruby example](#ruby-application-examp ## Target users -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/8240) in GitLab 12.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/8240) in GitLab 12.2. A feature flag may be enabled for a list of target users. It is implemented using the Unleash [`userWithId`](https://unleash.github.io/docs/activation_strategy#userwithid) diff --git a/doc/user/project/operations/linking_to_an_external_dashboard.md b/doc/user/project/operations/linking_to_an_external_dashboard.md index 0371a40a217..620d9d70e4d 100644 --- a/doc/user/project/operations/linking_to_an_external_dashboard.md +++ b/doc/user/project/operations/linking_to_an_external_dashboard.md @@ -1,6 +1,6 @@ # Linking to an external dashboard -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/57171) in GitLab 12.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/57171) in GitLab 12.0. You can add a button to the Monitoring dashboard linking directly to your existing external dashboards. diff --git a/doc/user/project/operations/tracing.md b/doc/user/project/operations/tracing.md index 91d0ae9d272..149c48e17f9 100644 --- a/doc/user/project/operations/tracing.md +++ b/doc/user/project/operations/tracing.md @@ -1,6 +1,6 @@ # Tracing **(ULTIMATE)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/7903) in GitLab Ultimate 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/7903) in GitLab Ultimate 11.5. Tracing provides insight into the performance and health of a deployed application, tracking each function or microservice which handles a given request. diff --git a/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md b/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md index f68dfdf02cc..849cd1a8ee4 100644 --- a/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md +++ b/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md @@ -249,7 +249,7 @@ Sublime Text, Atom, Dreamweaver, Brackets, etc). ## Force HTTPS for GitLab Pages websites -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/28857) in GitLab 10.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/28857) in GitLab 10.7. To make your website's visitors even more secure, you can choose to force HTTPS for GitLab Pages. By doing so, all attempts to visit your diff --git a/doc/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md b/doc/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md index f2b3d005be8..ef5466f03c4 100644 --- a/doc/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md +++ b/doc/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md @@ -5,7 +5,7 @@ description: "Automatic Let's Encrypt SSL certificates for GitLab Pages." # GitLab Pages integration with Let's Encrypt -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/28996) in GitLab 12.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/28996) in GitLab 12.1. The GitLab Pages integration with Let's Encrypt (LE) allows you to use LE certificates for your Pages website with custom domains @@ -17,8 +17,8 @@ open source Certificate Authority. CAUTION: **Caution:** This feature is in **beta** and might present bugs and UX issues -such as [#64870](https://gitlab.com/gitlab-org/gitlab-ce/issues/64870). -See all the related issues linked from this [issue's description](https://gitlab.com/gitlab-org/gitlab-ce/issues/28996) +such as [#64870](https://gitlab.com/gitlab-org/gitlab-foss/issues/64870). +See all the related issues linked from this [issue's description](https://gitlab.com/gitlab-org/gitlab-foss/issues/28996) for more information. CAUTION: **Caution:** diff --git a/doc/user/project/pages/getting_started_part_two.md b/doc/user/project/pages/getting_started_part_two.md index 3bab652ca39..cb80bf1c433 100644 --- a/doc/user/project/pages/getting_started_part_two.md +++ b/doc/user/project/pages/getting_started_part_two.md @@ -35,7 +35,7 @@ same way you do for the other ones. To get started with GitLab Pages, you have t ### Use one of the popular Pages templates bundled with GitLab -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/47857) +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/47857) in GitLab 11.8. The simplest way to create a GitLab Pages site is to diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md index a9fd6544e64..41a89a2130d 100644 --- a/doc/user/project/pages/index.md +++ b/doc/user/project/pages/index.md @@ -6,11 +6,11 @@ type: index, reference # GitLab Pages -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/80) in GitLab Enterprise Edition 8.3. -> - Custom CNAMEs with TLS support were [introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/173) in GitLab Enterprise Edition 8.5. -> - [Ported](https://gitlab.com/gitlab-org/gitlab-ce/issues/14605) to GitLab Community Edition in GitLab 8.17. -> - Support for subgroup project's websites was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30548) in GitLab 11.8. -> - Bundled project templates were [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/47857) in GitLab 11.8. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/80) in GitLab Enterprise Edition 8.3. +> - Custom CNAMEs with TLS support were [introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/173) in GitLab Enterprise Edition 8.5. +> - [Ported](https://gitlab.com/gitlab-org/gitlab-foss/issues/14605) to GitLab Community Edition in GitLab 8.17. +> - Support for subgroup project's websites was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/30548) in GitLab 11.8. +> - Bundled project templates were [introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/47857) in GitLab 11.8. **GitLab Pages is a feature that allows you to publish static websites directly from a repository in GitLab.** diff --git a/doc/user/project/pages/introduction.md b/doc/user/project/pages/introduction.md index e8984cb8b9f..e197d7c588f 100644 --- a/doc/user/project/pages/introduction.md +++ b/doc/user/project/pages/introduction.md @@ -69,7 +69,7 @@ don't have to create and edit HTML files manually. For example, Jekyll has the ## GitLab Pages Access Control **(CORE ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/33422) in GitLab 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/33422) in GitLab 11.5. NOTE: **Note:** GitLab Pages access control is not activated on GitLab.com. You can check its @@ -335,7 +335,7 @@ For a list of known issues, visit GitLab's [public issue tracker]. [staticgen]: https://www.staticgen.com/ [pages-jekyll]: https://gitlab.com/pages/jekyll [metarefresh]: https://en.wikipedia.org/wiki/Meta_refresh -[public issue tracker]: https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name=pages +[public issue tracker]: https://gitlab.com/gitlab-org/gitlab-foss/issues?label_name=pages [quick start guide]: ../../../ci/quick_start/README.md [pages-index-guide]: index.md [pages-quick]: getting_started_part_one.md diff --git a/doc/user/project/pipelines/job_artifacts.md b/doc/user/project/pipelines/job_artifacts.md index 3c15d41e1ba..703b0a94470 100644 --- a/doc/user/project/pipelines/job_artifacts.md +++ b/doc/user/project/pipelines/job_artifacts.md @@ -127,14 +127,14 @@ the `master` branch of the `gitlab-ce` project that belongs to the `gitlab-org` namespace, the URL would be: ``` -https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/artifacts/master/download?job=coverage +https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/artifacts/master/download?job=coverage ``` To download the file `coverage/index.html` from the same artifacts use the following URL: ``` -https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/artifacts/master/raw/coverage/index.html?job=coverage +https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/artifacts/master/raw/coverage/index.html?job=coverage ``` There is also a URL to browse the latest job artifacts: @@ -146,7 +146,7 @@ https://example.com/<namespace>/<project>/-/jobs/artifacts/<ref>/browse?job=<job For example: ``` -https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/artifacts/master/browse?job=coverage +https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/artifacts/master/browse?job=coverage ``` There is also a URL to specific files, including html files that @@ -160,7 +160,7 @@ For example, when a job `coverage` creates the artifact `htmlcov/index.html`, you can access it at: ``` -https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/artifacts/master/file/htmlcov/index.html?job=coverage +https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/artifacts/master/file/htmlcov/index.html?job=coverage ``` The latest builds are also exposed in the UI in various places. Specifically, @@ -197,7 +197,7 @@ To erase a job: In order to retrieve a job artifact of a different project, you might need to use a private token in order to [authenticate and download](../../../api/jobs.md#get-job-artifacts) the artifacts. [expiry date]: ../../../ci/yaml/README.md#artifactsexpire_in -[ce-14399]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14399 +[ce-14399]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/14399 <!-- ## Troubleshooting diff --git a/doc/user/project/pipelines/schedules.md b/doc/user/project/pipelines/schedules.md index f3e9c950efd..bb3e37ef2bf 100644 --- a/doc/user/project/pipelines/schedules.md +++ b/doc/user/project/pipelines/schedules.md @@ -4,8 +4,8 @@ type: reference, howto # Pipeline schedules -> - Introduced in GitLab 9.1 as [Trigger Schedule](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10533). -> - [Renamed to Pipeline Schedule](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10853) in GitLab 9.2. +> - Introduced in GitLab 9.1 as [Trigger Schedule](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10533). +> - [Renamed to Pipeline Schedule](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10853) in GitLab 9.2. NOTE: **Note:** Cron notation is parsed by [Fugit](https://github.com/floraison/fugit). @@ -42,7 +42,7 @@ is installed on. ### Using variables -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12328) in GitLab 9.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12328) in GitLab 9.4. You can pass any number of arbitrary variables and they will be available in GitLab CI so that they can be used in your [`.gitlab-ci.yml` file](../../../ci/yaml/README.md). @@ -94,7 +94,7 @@ Once configured, GitLab supports many functions for working with scheduled pipel ### Running manually -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15700) in GitLab 10.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/15700) in GitLab 10.4. To trigger a pipeline schedule manually, click the "Play" button: diff --git a/doc/user/project/pipelines/settings.md b/doc/user/project/pipelines/settings.md index 78b6d202b32..26ea328c730 100644 --- a/doc/user/project/pipelines/settings.md +++ b/doc/user/project/pipelines/settings.md @@ -30,7 +30,7 @@ in `.gitlab-ci.yml`. ## Git shallow clone -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/28919) in GitLab 12.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/28919) in GitLab 12.0. NOTE: **Note**: As of GitLab 12.0, newly created projects will automatically have a default @@ -55,14 +55,14 @@ if the job surpasses the threshold, it is marked as failed. ### Timeout overriding on Runner level -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17221) in GitLab 10.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/17221) in GitLab 10.7. Project defined timeout (either specific timeout set by user or the default 60 minutes timeout) may be [overridden on Runner level](../../../ci/runners/README.html#setting-maximum-job-timeout-for-a-runner). ## Custom CI config path -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12509) in GitLab 9.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12509) in GitLab 9.4. By default we look for the `.gitlab-ci.yml` file in the project's root directory. If you require a different location **within** the repository, @@ -149,7 +149,7 @@ If **Public pipelines** is disabled: ## Auto-cancel pending pipelines -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9362) in GitLab 9.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9362) in GitLab 9.1. If you want to auto-cancel all pending non-HEAD pipelines on branch, when new pipeline will be created (after your git push or manually from UI), @@ -203,7 +203,7 @@ Markdown code will embed the test coverage report badge of the `coverage` job into your `README.md`: ```markdown -![coverage](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg?job=coverage) +![coverage](https://gitlab.com/gitlab-org/gitlab-foss/badges/master/coverage.svg?job=coverage) ``` ### Badge styles @@ -216,17 +216,17 @@ Pipeline badges can be rendered in different styles by adding the `style=style_n https://example.gitlab.com/<namespace>/<project>/badges/<branch>/coverage.svg?style=flat ``` -![Badge flat style](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg?job=coverage&style=flat) +![Badge flat style](https://gitlab.com/gitlab-org/gitlab-foss/badges/master/coverage.svg?job=coverage&style=flat) #### Flat square -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30120) in GitLab 11.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/30120) in GitLab 11.8. ```text https://example.gitlab.com/<namespace>/<project>/badges/<branch>/coverage.svg?style=flat-square ``` -![Badge flat square style](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg?job=coverage&style=flat-square) +![Badge flat square style](https://gitlab.com/gitlab-org/gitlab-foss/badges/master/coverage.svg?job=coverage&style=flat-square) ## Environment Variables diff --git a/doc/user/project/protected_branches.md b/doc/user/project/protected_branches.md index 1de3e3b5387..cf4afef15cd 100644 --- a/doc/user/project/protected_branches.md +++ b/doc/user/project/protected_branches.md @@ -112,7 +112,7 @@ all matching branches: ## Creating a protected branch -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/53361) in GitLab 11.9. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/53361) in GitLab 11.9. When a protected branch or wildcard protected branches are set to [**No one** is **Allowed to push**](#using-the-allowed-to-merge-and-allowed-to-push-settings), @@ -162,7 +162,7 @@ for details about the pipelines security model. **11.9** -- [Allow protected branches to be created](https://gitlab.com/gitlab-org/gitlab-ce/issues/53361) by Developers (and users with higher permission levels) through the API and the user interface. +- [Allow protected branches to be created](https://gitlab.com/gitlab-org/gitlab-foss/issues/53361) by Developers (and users with higher permission levels) through the API and the user interface. **9.2** @@ -177,10 +177,10 @@ for details about the pipelines security model. - Allow developers to merge into a protected branch without having push access [gitlab-org/gitlab-ce!4892][ce-4892] - Allow specifying protected branches using wildcards [gitlab-org/gitlab-ce!4665][ce-4665] -[ce-4665]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4665 "Allow specifying protected branches using wildcards" -[ce-4892]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4892 "Allow developers to merge into a protected branch without having push access" -[ce-5081]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5081 "Allow creating protected branches that can't be pushed to" -[ce-21393]: https://gitlab.com/gitlab-org/gitlab-ce/issues/21393 +[ce-4665]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/4665 "Allow specifying protected branches using wildcards" +[ce-4892]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/4892 "Allow developers to merge into a protected branch without having push access" +[ce-5081]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/5081 "Allow creating protected branches that can't be pushed to" +[ce-21393]: https://gitlab.com/gitlab-org/gitlab-foss/issues/21393 [perm]: ../permissions.md [ee]: https://about.gitlab.com/pricing/ diff --git a/doc/user/project/protected_tags.md b/doc/user/project/protected_tags.md index 9651c8824ab..cd5c321a535 100644 --- a/doc/user/project/protected_tags.md +++ b/doc/user/project/protected_tags.md @@ -68,4 +68,4 @@ Each scenario can be a third-level heading, e.g. `### Getting error message X`. If you have none to add when creating a doc, leave this section in place but commented out to help encourage others to add to it in the future. --> -[ce-10356]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10356 "Protected Tags" +[ce-10356]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10356 "Protected Tags" diff --git a/doc/user/project/quick_actions.md b/doc/user/project/quick_actions.md index a1c65ddea76..0078e9ea417 100644 --- a/doc/user/project/quick_actions.md +++ b/doc/user/project/quick_actions.md @@ -10,7 +10,7 @@ You can enter these commands while creating a new issue or merge request, or in comments of issues, epics, merge requests, and commits. Each command should be on a separate line in order to be properly detected and executed. Once executed, -> From [GitLab 12.1](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/26672), an alert is displayed when a quick action is successfully applied. +> From [GitLab 12.1](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/26672), an alert is displayed when a quick action is successfully applied. ## Quick Actions for issues, merge requests and epics @@ -70,10 +70,10 @@ The following quick actions are applicable to descriptions, discussions and thre | `/wip` | | ✓ | | Toggle the Work In Progress status | | `/approve` | | ✓ | | Approve the merge request | | `/merge` | | ✓ | | Merge (when pipeline succeeds) | -| `/child_epic <epic>` | | | ✓ | Add child epic to `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic. ([Introduced in GitLab 12.0](https://gitlab.com/gitlab-org/gitlab-ee/issues/7330)) **(ULTIMATE)** | -| `/remove_child_epic <epic>` | | | ✓ | Remove child epic from `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic. ([Introduced in GitLab 12.0](https://gitlab.com/gitlab-org/gitlab-ee/issues/7330)) **(ULTIMATE)** | -| `/parent_epic <epic>` | | | ✓ | Set parent epic to `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic. ([introduced in GitLab 12.1](https://gitlab.com/gitlab-org/gitlab-ee/issues/10556)) **(ULTIMATE)** | -| `/remove_parent_epic` | | | ✓ | Remove parent epic from epic ([introduced in GitLab 12.1](https://gitlab.com/gitlab-org/gitlab-ee/issues/10556)) **(ULTIMATE)** | +| `/child_epic <epic>` | | | ✓ | Add child epic to `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic. ([Introduced in GitLab 12.0](https://gitlab.com/gitlab-org/gitlab/issues/7330)) **(ULTIMATE)** | +| `/remove_child_epic <epic>` | | | ✓ | Remove child epic from `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic. ([Introduced in GitLab 12.0](https://gitlab.com/gitlab-org/gitlab/issues/7330)) **(ULTIMATE)** | +| `/parent_epic <epic>` | | | ✓ | Set parent epic to `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic. ([introduced in GitLab 12.1](https://gitlab.com/gitlab-org/gitlab/issues/10556)) **(ULTIMATE)** | +| `/remove_parent_epic` | | | ✓ | Remove parent epic from epic ([introduced in GitLab 12.1](https://gitlab.com/gitlab-org/gitlab/issues/10556)) **(ULTIMATE)** | ## Autocomplete characters diff --git a/doc/user/project/releases/index.md b/doc/user/project/releases/index.md index aae253467f0..d5ac6f99e7f 100644 --- a/doc/user/project/releases/index.md +++ b/doc/user/project/releases/index.md @@ -4,7 +4,7 @@ type: reference, howto # Releases -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/41766) in GitLab 11.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/41766) in GitLab 11.7. It's typical to create a [Git tag](../../../university/training/topics/tags.md) at the moment of release to introduce a checkpoint in your source code diff --git a/doc/user/project/repository/branches/index.md b/doc/user/project/repository/branches/index.md index a864665602e..f380791e8fb 100644 --- a/doc/user/project/repository/branches/index.md +++ b/doc/user/project/repository/branches/index.md @@ -66,7 +66,7 @@ To compare branches in a repository: ## Delete merged branches -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6449) in GitLab 8.14. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/6449) in GitLab 8.14. ![Delete merged branches](img/delete_merged_branches.png) @@ -79,7 +79,7 @@ automatically when a merge request was merged. ## Branch filter search box -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22166) in GitLab 11.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22166) in GitLab 11.5. ![Branch filter search box](img/branch_filter_search_box.png) diff --git a/doc/user/project/repository/gpg_signed_commits/index.md b/doc/user/project/repository/gpg_signed_commits/index.md index b929c6a681a..0cbede4a372 100644 --- a/doc/user/project/repository/gpg_signed_commits/index.md +++ b/doc/user/project/repository/gpg_signed_commits/index.md @@ -4,7 +4,7 @@ type: concepts, howto # Signing commits with GPG -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9546) in GitLab 9.5. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9546) in GitLab 9.5. > - Subkeys support was added in GitLab 10.1. You can use a GPG key to sign Git commits made in a GitLab repository. Signed diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md index a838f06b2fd..c14783b72bd 100644 --- a/doc/user/project/repository/index.md +++ b/doc/user/project/repository/index.md @@ -99,7 +99,7 @@ Some things to note about precedence: ### Jupyter Notebook files -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/2508) in GitLab 9.1 +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/2508) in GitLab 9.1 [Jupyter](https://jupyter.org) Notebook (previously IPython Notebook) files are used for interactive computing in many fields and contain a complete record of the @@ -202,7 +202,7 @@ You can access your repos via [repository API](../../../api/repositories.md). ## Clone in Apple Xcode -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/45820) in GitLab 11.0 +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/45820) in GitLab 11.0 Projects that contain a `.xcodeproj` or `.xcworkspace` directory can now be cloned in Xcode using the new **Open in Xcode** button, located next to the Git URL @@ -210,7 +210,7 @@ used for cloning your project. The button is only shown on macOS. ## Download Source Code -> Support for directory download was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/24704) in GitLab 11.11. +> Support for directory download was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/24704) in GitLab 11.11. The source code stored in a repository can be downloaded from the UI. By clicking the download icon, a dropdown will open with links to download the following: diff --git a/doc/user/project/repository/reducing_the_repo_size_using_git.md b/doc/user/project/repository/reducing_the_repo_size_using_git.md index 3adf66e4b6f..fb07981e033 100644 --- a/doc/user/project/repository/reducing_the_repo_size_using_git.md +++ b/doc/user/project/repository/reducing_the_repo_size_using_git.md @@ -52,7 +52,7 @@ removed from the repository. ## Using the BFG Repo-Cleaner -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/19376) in GitLab 11.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/19376) in GitLab 11.6. 1. [Install BFG](https://rtyley.github.io/bfg-repo-cleaner/). diff --git a/doc/user/project/repository/web_editor.md b/doc/user/project/repository/web_editor.md index b5299eaca27..a3cfa48e27e 100644 --- a/doc/user/project/repository/web_editor.md +++ b/doc/user/project/repository/web_editor.md @@ -172,7 +172,7 @@ If you'd prefer _not_ to use your primary email address for commits created through the web editor, you can choose to use another of your linked email addresses from the **User Settings > Edit Profile** page. -[ce-2808]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2808 +[ce-2808]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/2808 <!-- ## Troubleshooting diff --git a/doc/user/project/service_desk.md b/doc/user/project/service_desk.md index 645b9bffcc1..3f3536838e7 100644 --- a/doc/user/project/service_desk.md +++ b/doc/user/project/service_desk.md @@ -1,6 +1,6 @@ # Service Desk **(PREMIUM)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/149) in [GitLab Premium 9.1](https://about.gitlab.com/2017/04/22/gitlab-9-1-released/#service-desk-eep). +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/149) in [GitLab Premium 9.1](https://about.gitlab.com/2017/04/22/gitlab-9-1-released/#service-desk-eep). ## Overview @@ -115,7 +115,10 @@ you can read and write comments as you normally do: ![Service Desk issue thread](img/service_desk_thread.png) -> Note that the project's visibility (private, internal, public) does not affect Service Desk. +Note that: + +- The project's visibility (private, internal, public) does not affect Service Desk. +- The path to the project, including its group or namespace, will be shown on emails. ### Support Bot user diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md index 9c1a31fb7c3..948102110f3 100644 --- a/doc/user/project/settings/import_export.md +++ b/doc/user/project/settings/import_export.md @@ -2,7 +2,7 @@ >**Notes:** > -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/3050) in GitLab 8.9. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/3050) in GitLab 8.9. > - Importing will not be possible if the import instance version differs from > that of the exporter. > - For GitLab admins, please read through @@ -81,7 +81,7 @@ The following items will NOT be exported: NOTE: **Note:** For more details on the specific data persisted in a project export, see the -[`import_export.yml`](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/lib/gitlab/import_export/import_export.yml) file. +[`import_export.yml`](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/import_export/import_export.yml) file. ## Exporting a project and its data diff --git a/doc/user/project/web_ide/index.md b/doc/user/project/web_ide/index.md index bebb17e6381..ee96fca7fd1 100644 --- a/doc/user/project/web_ide/index.md +++ b/doc/user/project/web_ide/index.md @@ -1,7 +1,7 @@ # Web IDE -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4539) in [GitLab Ultimate][ee] 10.4. -> [Brought to GitLab Core](https://gitlab.com/gitlab-org/gitlab-ce/issues/44157) in 10.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/4539) in [GitLab Ultimate][ee] 10.4. +> [Brought to GitLab Core](https://gitlab.com/gitlab-org/gitlab-foss/issues/44157) in 10.7. The Web IDE editor makes it faster and easier to contribute changes to your projects by providing an advanced editor with commit staging. @@ -15,7 +15,7 @@ and from merge requests. ## File finder -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18323) in [GitLab Core][ce] 10.8. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18323) in [GitLab Core][ce] 10.8. The file finder allows you to quickly open files in the current branch by searching. The file finder is launched using the keyboard shortcut `Command-p`, @@ -69,7 +69,7 @@ shows you a preview of the merge request diff if you commit your changes. ## View CI job logs -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/19279) in [GitLab Core][ce] 11.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/19279) in [GitLab Core][ce] 11.0. You can use the Web IDE to quickly fix failing tests by opening the branch or merge request in the Web IDE and opening the logs of the failed @@ -82,7 +82,7 @@ left. ## Switching merge requests -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/19318) in [GitLab Core][ce] 11.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/19318) in [GitLab Core][ce] 11.0. To switch between your authored and assigned merge requests, click the dropdown in the top of the sidebar to open a list of merge requests. You will @@ -91,7 +91,7 @@ request. ## Switching branches -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/20850) in [GitLab Core][ce] 11.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/20850) in [GitLab Core][ce] 11.2. To switch between branches of the current project repository, click the dropdown in the top of the sidebar to open a list of branches. @@ -100,7 +100,7 @@ different branch. ## Client Side Evaluation -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/19764) in [GitLab Core][ce] 11.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/19764) in [GitLab Core][ce] 11.2. You can use the Web IDE to preview JavaScript projects right in the browser. This feature uses CodeSandbox to compile and bundle the JavaScript used to @@ -135,11 +135,11 @@ below. ## Interactive Web Terminals for the Web IDE **(ULTIMATE ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5426) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5426) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.6. CAUTION: **Warning:** Interactive Web Terminals for the Web IDE is currently in **Beta**. -Shared Runners [do not yet support Interactive Web Terminals](https://gitlab.com/gitlab-org/gitlab-ce/issues/52611), +Shared Runners [do not yet support Interactive Web Terminals](https://gitlab.com/gitlab-org/gitlab-foss/issues/52611), so you would need to use your own private Runner(s) to make use of this feature. [Interactive Web Terminals](../../../ci/interactive_web_terminal/index.md) @@ -233,7 +233,7 @@ click **Restart Terminal** to start a new terminal session. ### File syncing to web terminal -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5276) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5276) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.0. File changes in the Web IDE can be synced to a running web terminal. This enables users to test their code changes in a preconfigured terminal diff --git a/doc/user/project/wiki/index.md b/doc/user/project/wiki/index.md index c0159230fec..687e1850289 100644 --- a/doc/user/project/wiki/index.md +++ b/doc/user/project/wiki/index.md @@ -50,7 +50,7 @@ When you're ready, click the **Create page** and the new page will be created. ![New page](img/wiki_create_new_page.png) -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/33475) in GitLab 11.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/33475) in GitLab 11.3. Starting with GitLab 11.3, any file that is uploaded to the wiki via GitLab's interface will be stored in the wiki Git repository, and it will be available diff --git a/doc/user/reserved_names.md b/doc/user/reserved_names.md index 45ece5f048e..16d032217b3 100644 --- a/doc/user/reserved_names.md +++ b/doc/user/reserved_names.md @@ -88,4 +88,4 @@ These group names are unavailable as subgroup names: - \- -[reserved]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/path_regex.rb +[reserved]: https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/path_regex.rb diff --git a/doc/user/search/advanced_global_search.md b/doc/user/search/advanced_global_search.md index 52da6d65000..4fa9463f773 100644 --- a/doc/user/search/advanced_global_search.md +++ b/doc/user/search/advanced_global_search.md @@ -62,11 +62,11 @@ to the repository tree and switch the branch from the default to something else, then the "Code" tab in the search result page will be served by the regular search even if Elasticsearch is enabled. -[ee-1305]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1305 +[ee-1305]: https://gitlab.com/gitlab-org/gitlab/merge_requests/1305 [aws-elastic]: http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-gsg.html [aws-iam]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html [aws-instance-profile]: http://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-iam-instance-profile.html#getting-started-create-iam-instance-profile-cli -[ee-109]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/109 "Elasticsearch Merge Request" +[ee-109]: https://gitlab.com/gitlab-org/gitlab/merge_requests/109 "Elasticsearch Merge Request" [elasticsearch]: https://www.elastic.co/products/elasticsearch "Elasticsearch website" [install]: https://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html "Elasticsearch installation documentation" [pkg]: https://about.gitlab.com/downloads/ "Download Omnibus GitLab" diff --git a/doc/user/snippets.md b/doc/user/snippets.md index 74f58a1a92b..e55a407295e 100644 --- a/doc/user/snippets.md +++ b/doc/user/snippets.md @@ -41,7 +41,7 @@ different visibility level from the dropdown menu. ## Snippet comments -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/12910) in GitLab 9.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/12910) in GitLab 9.2. With GitLab Snippets you engage in a conversation about that piece of code, facilitating the collaboration among users. @@ -82,7 +82,7 @@ Here's how an example code looks like: Here's how an embedded snippet looks like: -<script src="https://gitlab.com/gitlab-org/gitlab-ce/snippets/1717978.js"></script> +<script src="https://gitlab.com/gitlab-org/gitlab-foss/snippets/1717978.js"></script> Embedded snippets are displayed with a header that shows the file name if defined, the snippet size, a link to GitLab, and the actual snippet content. Actions in diff --git a/doc/workflow/file_finder.md b/doc/workflow/file_finder.md index 52c83caeea8..324989c173b 100644 --- a/doc/workflow/file_finder.md +++ b/doc/workflow/file_finder.md @@ -39,4 +39,4 @@ Using fuzzy search, we start by typing letters that get us closer to the file. [gh-9889]: https://github.com/gitlabhq/gitlabhq/pull/9889 "File finder pull request" [fuzzy filter]: https://github.com/jeancroy/fuzzaldrin-plus "fuzzaldrin-plus on GitHub" -[ce]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master "GitLab CE repository" +[ce]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master "GitLab CE repository" diff --git a/doc/workflow/git_annex.md b/doc/workflow/git_annex.md index c3865aa953b..84d49569a95 100644 --- a/doc/workflow/git_annex.md +++ b/doc/workflow/git_annex.md @@ -229,7 +229,7 @@ push origin ``` [annex-upgrade]: https://git-annex.branchable.com/upgrades/ -[deprecate-annex-issue]: https://gitlab.com/gitlab-org/gitlab-ee/issues/1648 +[deprecate-annex-issue]: https://gitlab.com/gitlab-org/gitlab/issues/1648 [git-annex]: https://git-annex.branchable.com/ "git-annex website" [gitlab shell]: https://gitlab.com/gitlab-org/gitlab-shell "GitLab Shell repository" [guide]: lfs/migrate_from_git_annex_to_git_lfs.html diff --git a/doc/workflow/issue_weight.md b/doc/workflow/issue_weight.md index 291646a430e..79b8e5f5164 100644 --- a/doc/workflow/issue_weight.md +++ b/doc/workflow/issue_weight.md @@ -1,6 +1,6 @@ # Issue weight **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/76) in [GitLab Starter](https://about.gitlab.com/pricing/) 8.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/76) in [GitLab Starter](https://about.gitlab.com/pricing/) 8.3. When you have a lot of issues, it can be hard to get an overview. By adding a weight to each issue, you can get a better idea of how much time, diff --git a/doc/workflow/lfs/lfs_administration.md b/doc/workflow/lfs/lfs_administration.md index 8db62997b51..1a7c87c1c5c 100644 --- a/doc/workflow/lfs/lfs_administration.md +++ b/doc/workflow/lfs/lfs_administration.md @@ -245,17 +245,17 @@ $ sudo gitlab-rails console # Login to rails console > end ``` -See more information in [!19581](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/19581) +See more information in [!19581](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/19581) ## Known limitations - Support for removing unreferenced LFS objects was added in 8.14 onwards. - LFS authentications via SSH was added with GitLab 8.12. -- Only compatible with the GitLFS client versions 1.1.0 and up, or 1.0.2. +- Only compatible with the Git LFS client versions 1.1.0 and up, or 1.0.2. - The storage statistics currently count each LFS object multiple times for every project linking to it. [reconfigure gitlab]: ../../administration/restart_gitlab.md#omnibus-gitlab-reconfigure "How to reconfigure Omnibus GitLab" [restart gitlab]: ../../administration/restart_gitlab.md#installations-from-source "How to restart GitLab" [eep]: https://about.gitlab.com/pricing/ "GitLab Premium" -[ee-2760]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2760 +[ee-2760]: https://gitlab.com/gitlab-org/gitlab/merge_requests/2760 diff --git a/doc/workflow/lfs/manage_large_binaries_with_git_lfs.md b/doc/workflow/lfs/manage_large_binaries_with_git_lfs.md index 36db4f73885..10728f79b6c 100644 --- a/doc/workflow/lfs/manage_large_binaries_with_git_lfs.md +++ b/doc/workflow/lfs/manage_large_binaries_with_git_lfs.md @@ -91,7 +91,7 @@ Read the documentation on how to [migrate an existing Git repo with Git LFS](../ ## File Locking -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/35856) in GitLab 10.5. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/35856) in GitLab 10.5. The first thing to do before using File Locking is to tell Git LFS which kind of files are lockable. The following command will store PNG files diff --git a/doc/workflow/lfs/migrate_from_git_annex_to_git_lfs.md b/doc/workflow/lfs/migrate_from_git_annex_to_git_lfs.md index 5ceeb3253f1..905d5624688 100644 --- a/doc/workflow/lfs/migrate_from_git_annex_to_git_lfs.md +++ b/doc/workflow/lfs/migrate_from_git_annex_to_git_lfs.md @@ -246,7 +246,7 @@ git annex uninit [Git Annex]: http://git-annex.branchable.com/ [Git LFS]: https://git-lfs.github.com/ [install-lfs]: https://git-lfs.github.com/ -[issue-remove-annex]: https://gitlab.com/gitlab-org/gitlab-ee/issues/1648 +[issue-remove-annex]: https://gitlab.com/gitlab-org/gitlab/issues/1648 [lfs-track]: https://about.gitlab.com/2017/01/30/getting-started-with-git-lfs-tutorial/#tracking-files-with-lfs [post-1]: https://about.gitlab.com/2017/01/30/getting-started-with-git-lfs-tutorial/ [post-2]: https://about.gitlab.com/2015/11/23/announcing-git-lfs-support-in-gitlab/ diff --git a/doc/workflow/notifications.md b/doc/workflow/notifications.md index 5abae929355..6205ef7b4c3 100644 --- a/doc/workflow/notifications.md +++ b/doc/workflow/notifications.md @@ -168,4 +168,4 @@ reason `assigned` will have this sentence in the footer: NOTE: **Note:** Only reasons listed above have been implemented so far. -Further implementation is [being discussed](https://gitlab.com/gitlab-org/gitlab-ce/issues/42062). +Further implementation is [being discussed](https://gitlab.com/gitlab-org/gitlab-foss/issues/42062). diff --git a/doc/workflow/repository_mirroring.md b/doc/workflow/repository_mirroring.md index a00d7d6f775..cfa846a9c12 100644 --- a/doc/workflow/repository_mirroring.md +++ b/doc/workflow/repository_mirroring.md @@ -37,8 +37,8 @@ The following are some possible use cases for repository mirroring: ## Pushing to a remote repository **(CORE)** -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/249) in GitLab Enterprise Edition 8.7. -> - [Moved to GitLab Core](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18715) in 10.8. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/249) in GitLab Enterprise Edition 8.7. +> - [Moved to GitLab Core](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18715) in 10.8. For an existing project, you can set up push mirroring as follows: @@ -67,8 +67,8 @@ section. ### Push only protected branches **(CORE)** -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3350) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.3. -> - [Moved to GitLab Core](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18715) in 10.8. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/3350) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.3. +> - [Moved to GitLab Core](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18715) in 10.8. You can choose to only push your protected branches from GitLab to your remote repository. @@ -98,10 +98,10 @@ The repository will push soon. To force a push, click the appropriate button. ## Pulling from a remote repository **(STARTER)** -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/51) in GitLab Enterprise Edition 8.2. -> - [Added Git LFS support](https://gitlab.com/gitlab-org/gitlab-ee/issues/10871) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.11. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/51) in GitLab Enterprise Edition 8.2. +> - [Added Git LFS support](https://gitlab.com/gitlab-org/gitlab/issues/10871) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.11. -NOTE: **Note:** This feature [is available for free](https://gitlab.com/gitlab-org/gitlab-ee/issues/10361) to +NOTE: **Note:** This feature [is available for free](https://gitlab.com/gitlab-org/gitlab/issues/10361) to GitLab.com users until March 22nd, 2020. You can set up a repository to automatically have its branches, tags, and commits updated from an @@ -157,8 +157,8 @@ Repository mirrors are updated as Sidekiq becomes available to process them. If ### SSH authentication -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2551) for Pull mirroring in [GitLab Starter](https://about.gitlab.com/pricing/) 9.5. -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22982) for Push mirroring in [GitLab Core](https://about.gitlab.com/pricing/) 11.6 +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/2551) for Pull mirroring in [GitLab Starter](https://about.gitlab.com/pricing/) 9.5. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22982) for Push mirroring in [GitLab Core](https://about.gitlab.com/pricing/) 11.6 SSH authentication is mutual: @@ -245,7 +245,7 @@ key to keep the mirror running. ### Overwrite diverged branches **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/4559) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/4559) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.6. You can choose to always update your local branches with remote versions, even if they have diverged from the remote. @@ -257,7 +257,7 @@ To use this option, check the **Overwrite diverged branches** box when creating ### Only mirror protected branches **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3326) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/3326) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.3. You can choose to pull mirror only the protected branches from your remote repository to GitLab. Non-protected branches are not mirrored and can diverge. @@ -266,7 +266,7 @@ To use this option, check the **Only mirror protected branches** box when creati ### Hard failure **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3117) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.2. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/3117) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.2. Once the mirroring process is unsuccessfully retried 14 times in a row, it will get marked as hard failed. This will become visible in either the: @@ -279,7 +279,7 @@ project mirroring again by [Forcing an update](#forcing-an-update-core). ### Trigger update using API **(STARTER)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3453) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/3453) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.3. Pull mirroring uses polling to detect new branches and commits added upstream, often minutes afterwards. If you notify GitLab by [API](../api/projects.md#start-the-pull-mirroring-process-for-a-project-starter), diff --git a/doc/workflow/time_tracking.md b/doc/workflow/time_tracking.md index 7404d9be210..8c57c43b7d6 100644 --- a/doc/workflow/time_tracking.md +++ b/doc/workflow/time_tracking.md @@ -79,7 +79,7 @@ Default conversion rates are 1mo = 4w, 1w = 5d and 1d = 8h. ### Limit displayed units to hours **(CORE ONLY)** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29469/) in GitLab 12.1. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/29469/) in GitLab 12.1. In GitLab self-managed instances, the display of time units can be limited to hours through the option in **Admin Area > Settings > Preferences** under **Localization**. diff --git a/doc/workflow/timezone.md b/doc/workflow/timezone.md index 4101f891484..3594ba19181 100644 --- a/doc/workflow/timezone.md +++ b/doc/workflow/timezone.md @@ -15,7 +15,7 @@ To see all available time zones, run `bundle exec rake time:zones:all`. For Omnibus installations, run `gitlab-rake time:zones:all`. NOTE: **Note:** -Currently, this rake task does not list timezones in TZInfo format required by GitLab Omnibus during a reconfigure: [#58672](https://gitlab.com/gitlab-org/gitlab-ce/issues/58672). +Currently, this rake task does not list timezones in TZInfo format required by GitLab Omnibus during a reconfigure: [#58672](https://gitlab.com/gitlab-org/gitlab-foss/issues/58672). ## Changing time zone in Omnibus installations diff --git a/doc/workflow/todos.md b/doc/workflow/todos.md index 211d242e2d3..5d576d8ff35 100644 --- a/doc/workflow/todos.md +++ b/doc/workflow/todos.md @@ -134,5 +134,5 @@ There are four kinds of filters you can use on your To-Do List. You can also filter by more than one of these at the same time. The possible Actions are `Any Action`, `Assigned`, `Mentioned`, `Added`, `Pipelines`, and `Directly Addressed`, [as described above](#what-triggers-a-to-do). -[ce-2817]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2817 -[ce-7926]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7926 +[ce-2817]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/2817 +[ce-7926]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/7926 diff --git a/jest.config.js b/jest.config.js index 646648c6928..34581c6532a 100644 --- a/jest.config.js +++ b/jest.config.js @@ -41,6 +41,7 @@ module.exports = { '^vendor(/.*)$': '<rootDir>/vendor/assets/javascripts$1', '\\.(jpg|jpeg|png|svg)$': '<rootDir>/spec/frontend/__mocks__/file_mock.js', 'emojis(/.*).json': '<rootDir>/fixtures/emojis$1.json', + '^spec/test_constants$': '<rootDir>/spec/frontend/helpers/test_constants', }, collectCoverageFrom: ['<rootDir>/app/assets/javascripts/**/*.{js,vue}'], coverageDirectory: '<rootDir>/coverage-frontend/', @@ -62,3 +63,15 @@ module.exports = { IS_EE, }, }; + +const karmaTestFile = process.argv.find(arg => arg.includes('spec/javascripts/')); +if (karmaTestFile) { + console.error(` +Files in spec/javascripts/ and ee/spec/javascripts need to be run with Karma. +Please use the following command instead: + +yarn karma -f ${karmaTestFile} + +`); + process.exit(1); +} diff --git a/lib/api/branches.rb b/lib/api/branches.rb index c3821630b6b..f8f79ab6f5a 100644 --- a/lib/api/branches.rb +++ b/lib/api/branches.rb @@ -32,7 +32,7 @@ module API use :filter_params end get ':id/repository/branches' do - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42329') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42329') repository = user_project.repository diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 9e820f00c42..89951498489 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -216,7 +216,7 @@ module API # Preloading tags, should be done with using only `:tags`, # as `:tags` are defined as: `has_many :tags, through: :taggings` # N+1 is solved then by using `subject.tags.map(&:name)` - # MR describing the solution: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/20555 + # MR describing the solution: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/20555 projects_relation.preload(:project_feature, :route) .preload(:import_state, :tags) .preload(:auto_devops) @@ -322,7 +322,7 @@ module API # Preloading tags, should be done with using only `:tags`, # as `:tags` are defined as: `has_many :tags, through: :taggings` # N+1 is solved then by using `subject.tags.map(&:name)` - # MR describing the solution: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/20555 + # MR describing the solution: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/20555 super(projects_relation).preload(:group) .preload(:ci_cd_settings) .preload(:auto_devops) @@ -738,7 +738,7 @@ module API # Ideally we should deprecate `MergeRequest#merge_status` exposure and # use `MergeRequest#mergeable?` instead (boolean). - # See https://gitlab.com/gitlab-org/gitlab-ce/issues/42344 for more + # See https://gitlab.com/gitlab-org/gitlab-foss/issues/42344 for more # information. expose :merge_status do |merge_request| merge_request.check_mergeability @@ -980,7 +980,7 @@ module API def todo_target_class(target_type) # false as second argument prevents looking up in module hierarchy - # see also https://gitlab.com/gitlab-org/gitlab-ce/issues/59719 + # see also https://gitlab.com/gitlab-org/gitlab-foss/issues/59719 ::API::Entities.const_get(target_type, false) end end diff --git a/lib/api/groups.rb b/lib/api/groups.rb index 9d1628de7e5..6c88b61eee8 100644 --- a/lib/api/groups.rb +++ b/lib/api/groups.rb @@ -187,7 +187,7 @@ module API group = find_group!(params[:id]) authorize! :admin_group, group - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/46285') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/46285') destroy_conditionally!(group) do |group| ::Groups::DestroyService.new(group, current_user).async_execute end diff --git a/lib/api/helpers/internal_helpers.rb b/lib/api/helpers/internal_helpers.rb index 9a80671f996..4c575381d30 100644 --- a/lib/api/helpers/internal_helpers.rb +++ b/lib/api/helpers/internal_helpers.rb @@ -56,7 +56,7 @@ module API end def process_mr_push_options(push_options, project, user, changes) - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/61359') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/61359') service = ::MergeRequests::PushOptionsHandlerService.new( project, diff --git a/lib/api/helpers/projects_helpers.rb b/lib/api/helpers/projects_helpers.rb index 07f0386d14d..94619204274 100644 --- a/lib/api/helpers/projects_helpers.rb +++ b/lib/api/helpers/projects_helpers.rb @@ -38,7 +38,7 @@ module API optional :only_allow_merge_if_pipeline_succeeds, type: Boolean, desc: 'Only allow to merge if builds succeed' optional :only_allow_merge_if_all_discussions_are_resolved, type: Boolean, desc: 'Only allow to merge if all discussions are resolved' optional :tag_list, type: Array[String], desc: 'The list of tags for a project' - # TODO: remove rubocop disable - https://gitlab.com/gitlab-org/gitlab-ee/issues/14960 + # TODO: remove rubocop disable - https://gitlab.com/gitlab-org/gitlab/issues/14960 optional :avatar, type: File, desc: 'Avatar image for project' # rubocop:disable Scalability/FileUploads optional :printing_merge_request_link_enabled, type: Boolean, desc: 'Show link to create/view merge request when pushing from the command line' optional :merge_method, type: String, values: %w(ff rebase_merge merge), desc: 'The merge method used when merging merge requests' diff --git a/lib/api/issues.rb b/lib/api/issues.rb index d06550191ad..de6af980896 100644 --- a/lib/api/issues.rb +++ b/lib/api/issues.rb @@ -215,7 +215,7 @@ module API use :issue_params end post ':id/issues' do - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42320') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42320') authorize! :create_issue, user_project @@ -257,7 +257,7 @@ module API end # rubocop: disable CodeReuse/ActiveRecord put ':id/issues/:issue_iid' do - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42322') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42322') issue = user_project.issues.find_by!(iid: params.delete(:issue_iid)) authorize! :update_issue, issue @@ -293,7 +293,7 @@ module API end # rubocop: disable CodeReuse/ActiveRecord post ':id/issues/:issue_iid/move' do - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42323') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42323') issue = user_project.issues.find_by(iid: params[:issue_iid]) not_found!('Issue') unless issue diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb index f317ae717bd..1436238c5cf 100644 --- a/lib/api/merge_requests.rb +++ b/lib/api/merge_requests.rb @@ -229,7 +229,7 @@ module API use :optional_params end post ":id/merge_requests" do - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42316') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42316') authorize! :create_merge_request_from, user_project @@ -353,7 +353,7 @@ module API at_least_one_of(*::API::MergeRequests.update_params_at_least_one_of) end put ':id/merge_requests/:merge_request_iid' do - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42318') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42318') merge_request = find_merge_request_with_access(params.delete(:merge_request_iid), :update_merge_request) @@ -384,7 +384,7 @@ module API optional :squash, type: Grape::API::Boolean, desc: 'When true, the commits will be squashed into a single commit on merge' end put ':id/merge_requests/:merge_request_iid/merge' do - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42317') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42317') merge_request = find_project_merge_request(params[:merge_request_iid]) merge_when_pipeline_succeeds = to_boolean(params[:merge_when_pipeline_succeeds]) diff --git a/lib/api/pages_domains.rb b/lib/api/pages_domains.rb index 40b133e8959..ec2fe8270b7 100644 --- a/lib/api/pages_domains.rb +++ b/lib/api/pages_domains.rb @@ -91,7 +91,7 @@ module API params do requires :domain, type: String, desc: 'The domain' # rubocop:disable Scalability/FileUploads - # TODO: remove rubocop disable - https://gitlab.com/gitlab-org/gitlab-ee/issues/14960 + # TODO: remove rubocop disable - https://gitlab.com/gitlab-org/gitlab/issues/14960 optional :certificate, allow_blank: false, types: [File, String], desc: 'The certificate', as: :user_provided_certificate optional :key, allow_blank: false, types: [File, String], desc: 'The key', as: :user_provided_key # rubocop:enable Scalability/FileUploads @@ -115,7 +115,7 @@ module API params do requires :domain, type: String, desc: 'The domain' # rubocop:disable Scalability/FileUploads - # TODO: remove rubocop disable - https://gitlab.com/gitlab-org/gitlab-ee/issues/14960 + # TODO: remove rubocop disable - https://gitlab.com/gitlab-org/gitlab/issues/14960 optional :certificate, allow_blank: false, types: [File, String], desc: 'The certificate', as: :user_provided_certificate optional :key, allow_blank: false, types: [File, String], desc: 'The key', as: :user_provided_key # rubocop:enable Scalability/FileUploads diff --git a/lib/api/pipelines.rb b/lib/api/pipelines.rb index e09d226a13f..7c87a9878bf 100644 --- a/lib/api/pipelines.rb +++ b/lib/api/pipelines.rb @@ -46,9 +46,8 @@ module API requires :ref, type: String, desc: 'Reference' optional :variables, Array, desc: 'Array of variables available in the pipeline' end - # rubocop: disable CodeReuse/ActiveRecord post ':id/pipeline' do - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42124') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42124') authorize! :create_pipeline, user_project @@ -67,7 +66,6 @@ module API render_validation_error!(new_pipeline) end end - # rubocop: enable CodeReuse/ActiveRecord desc 'Gets a the latest pipeline for the project branch' do detail 'This feature was introduced in GitLab 12.3' diff --git a/lib/api/project_container_repositories.rb b/lib/api/project_container_repositories.rb index 6d53abcc500..c10ef96922c 100644 --- a/lib/api/project_container_repositories.rb +++ b/lib/api/project_container_repositories.rb @@ -75,7 +75,7 @@ module API render_api_error!(message, 400) unless obtain_new_cleanup_container_lease CleanupContainerRepositoryWorker.perform_async(current_user.id, repository.id, - declared_params.except(:repository_id)) # rubocop: disable CodeReuse/ActiveRecord + declared_params.except(:repository_id)) status :accepted end diff --git a/lib/api/project_import.rb b/lib/api/project_import.rb index 9b5e0727184..7f1ae5ffbe6 100644 --- a/lib/api/project_import.rb +++ b/lib/api/project_import.rb @@ -27,7 +27,7 @@ module API resource :projects, requirements: API::NAMESPACE_OR_PROJECT_REQUIREMENTS do params do requires :path, type: String, desc: 'The new project path and name' - # TODO: remove rubocop disable - https://gitlab.com/gitlab-org/gitlab-ee/issues/14960 + # TODO: remove rubocop disable - https://gitlab.com/gitlab-org/gitlab/issues/14960 requires :file, type: File, desc: 'The project export file to be imported' # rubocop:disable Scalability/FileUploads optional :namespace, type: String, desc: "The ID or name of the namespace that the project will be imported into. Defaults to the current user's namespace." optional :overwrite, type: Boolean, default: false, desc: 'If there is a project in the same namespace and with the same name overwrite it' @@ -44,7 +44,7 @@ module API post 'import' do validate_file! - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42437') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42437') namespace = if import_params[:namespace] find_namespace!(import_params[:namespace]) diff --git a/lib/api/projects.rb b/lib/api/projects.rb index c28b03ac6c9..d2dacafe7f9 100644 --- a/lib/api/projects.rb +++ b/lib/api/projects.rb @@ -249,7 +249,7 @@ module API optional :name, type: String, desc: 'The name that will be assigned to the fork' end post ':id/fork' do - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42284') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42284') fork_params = declared_params(include_missing: false) namespace_id = fork_params[:namespace] @@ -480,7 +480,7 @@ module API desc 'Upload a file' params do - # TODO: remove rubocop disable - https://gitlab.com/gitlab-org/gitlab-ee/issues/14960 + # TODO: remove rubocop disable - https://gitlab.com/gitlab-org/gitlab/issues/14960 requires :file, type: File, desc: 'The file to be uploaded' # rubocop:disable Scalability/FileUploads end post ":id/uploads" do diff --git a/lib/api/triggers.rb b/lib/api/triggers.rb index eeecc390256..ab83d84284f 100644 --- a/lib/api/triggers.rb +++ b/lib/api/triggers.rb @@ -17,7 +17,7 @@ module API optional :variables, type: Hash, desc: 'The list of variables to be injected into build' end post ":id/(ref/:ref/)trigger/pipeline", requirements: { ref: /.+/ } do - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42283') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42283') # validate variables params[:variables] = params[:variables].to_h diff --git a/lib/api/users.rb b/lib/api/users.rb index 99295888c8c..ff8b82e1898 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -50,7 +50,7 @@ module API optional :admin, type: Boolean, desc: 'Flag indicating the user is an administrator' optional :can_create_group, type: Boolean, desc: 'Flag indicating the user can create groups' optional :external, type: Boolean, desc: 'Flag indicating the user is an external user' - # TODO: remove rubocop disable - https://gitlab.com/gitlab-org/gitlab-ee/issues/14960 + # TODO: remove rubocop disable - https://gitlab.com/gitlab-org/gitlab/issues/14960 optional :avatar, type: File, desc: 'Avatar image for user' # rubocop:disable Scalability/FileUploads optional :private_profile, type: Boolean, default: false, desc: 'Flag indicating the user has a private profile' all_or_none_of :extern_uid, :provider @@ -446,7 +446,7 @@ module API end # rubocop: disable CodeReuse/ActiveRecord delete ":id" do - Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-ce/issues/42279') + Gitlab::QueryLimiting.whitelist('https://gitlab.com/gitlab-org/gitlab-foss/issues/42279') authenticated_as_admin! diff --git a/lib/banzai/filter/relative_link_filter.rb b/lib/banzai/filter/relative_link_filter.rb index 2b734db5cfb..e8001889ca3 100644 --- a/lib/banzai/filter/relative_link_filter.rb +++ b/lib/banzai/filter/relative_link_filter.rb @@ -153,7 +153,7 @@ module Banzai end def uri_type(path) - # https://gitlab.com/gitlab-org/gitlab-ce/issues/58657 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/58657 Gitlab::GitalyClient.allow_n_plus_1_calls do @uri_types[path] ||= current_commit.uri_type(path) end diff --git a/lib/declarative_policy.rb b/lib/declarative_policy.rb index 7ba48ae9c79..d99a209dc87 100644 --- a/lib/declarative_policy.rb +++ b/lib/declarative_policy.rb @@ -24,7 +24,7 @@ module DeclarativePolicy cache[key] ||= # to avoid deadlocks in multi-threaded environment when # autoloading is enabled, we allow concurrent loads, - # https://gitlab.com/gitlab-org/gitlab-ce/issues/48263 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/48263 ActiveSupport::Dependencies.interlock.permit_concurrent_loads do class_for(subject).new(user, subject, opts) end diff --git a/lib/file_size_validator.rb b/lib/file_size_validator.rb index 70a145cd5bd..71908d2130f 100644 --- a/lib/file_size_validator.rb +++ b/lib/file_size_validator.rb @@ -34,7 +34,6 @@ class FileSizeValidator < ActiveModel::EachValidator end end - # rubocop: disable CodeReuse/ActiveRecord def validate_each(record, attribute, value) raise(ArgumentError, "A CarrierWave::Uploader::Base object was expected") unless value.is_a? CarrierWave::Uploader::Base @@ -65,7 +64,6 @@ class FileSizeValidator < ActiveModel::EachValidator record.errors.add(attribute, MESSAGES[key], errors_options) end end - # rubocop: enable CodeReuse/ActiveRecord def help Helper.instance diff --git a/lib/gitlab/background_migration/add_gitlab_instance_administration_project.rb b/lib/gitlab/background_migration/add_gitlab_instance_administration_project.rb deleted file mode 100644 index 730f1acee98..00000000000 --- a/lib/gitlab/background_migration/add_gitlab_instance_administration_project.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true -# rubocop:disable Style/Documentation - -module Gitlab - module BackgroundMigration - class AddGitlabInstanceAdministrationProject - def perform - Rails.logger.info("Creating Gitlab instance administration project") # rubocop:disable Gitlab/RailsLogger - - Gitlab::DatabaseImporters::SelfMonitoring::Project::CreateService.new.execute! - end - end - end -end diff --git a/lib/gitlab/background_migration/encrypt_runners_tokens.rb b/lib/gitlab/background_migration/encrypt_runners_tokens.rb index 91e559a8765..ec64a73542e 100644 --- a/lib/gitlab/background_migration/encrypt_runners_tokens.rb +++ b/lib/gitlab/background_migration/encrypt_runners_tokens.rb @@ -13,7 +13,7 @@ module Gitlab # # We can solve this differently, see tech debt issue: # - # https://gitlab.com/gitlab-org/gitlab-ce/issues/54328 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/54328 # class EncryptRunnersTokens < EncryptColumns def perform(model, from, to) diff --git a/lib/gitlab/background_migration/fix_user_namespace_names.rb b/lib/gitlab/background_migration/fix_user_namespace_names.rb index 1a207121be0..d767cbfd8f5 100644 --- a/lib/gitlab/background_migration/fix_user_namespace_names.rb +++ b/lib/gitlab/background_migration/fix_user_namespace_names.rb @@ -5,7 +5,7 @@ module Gitlab # This migration fixes the namespaces.name for all user-namespaces that have names # that aren't equal to the users name. # Then it uses the updated names of the namespaces to update the associated routes - # For more info see https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23272 + # For more info see https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/23272 class FixUserNamespaceNames def perform(from_id, to_id) fix_namespace_names(from_id, to_id) diff --git a/lib/gitlab/background_migration/fix_user_project_route_names.rb b/lib/gitlab/background_migration/fix_user_project_route_names.rb index b84ff32e712..6b99685fd68 100644 --- a/lib/gitlab/background_migration/fix_user_project_route_names.rb +++ b/lib/gitlab/background_migration/fix_user_project_route_names.rb @@ -4,7 +4,7 @@ module Gitlab module BackgroundMigration # This migration fixes the routes.name for all user-projects that have names # that don't start with the users name. - # For more info see https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23272 + # For more info see https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/23272 class FixUserProjectRouteNames def perform(from_id, to_id) ActiveRecord::Base.connection.execute <<~ROUTES_UPDATE diff --git a/lib/gitlab/checks/diff_check.rb b/lib/gitlab/checks/diff_check.rb index 6372d96c07d..5de71addd5f 100644 --- a/lib/gitlab/checks/diff_check.rb +++ b/lib/gitlab/checks/diff_check.rb @@ -62,7 +62,7 @@ module Gitlab def process_commits logger.log_timed(LOG_MESSAGES[:diff_content_check]) do - # n+1: https://gitlab.com/gitlab-org/gitlab-ee/issues/3593 + # n+1: https://gitlab.com/gitlab-org/gitlab/issues/3593 ::Gitlab::GitalyClient.allow_n_plus_1_calls do commits.each do |commit| logger.check_timeout_reached diff --git a/lib/gitlab/ci/config/entry/job.rb b/lib/gitlab/ci/config/entry/job.rb index 5874b01ef2a..07d5be86b1e 100644 --- a/lib/gitlab/ci/config/entry/job.rb +++ b/lib/gitlab/ci/config/entry/job.rb @@ -149,7 +149,7 @@ module Gitlab @entries.delete(:type) # This is something of a hack, see issue for details: - # https://gitlab.com/gitlab-org/gitlab-ce/issues/67150 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/67150 if !only_defined? && has_rules? @entries.delete(:only) @entries.delete(:except) diff --git a/lib/gitlab/ci/config/entry/root.rb b/lib/gitlab/ci/config/entry/root.rb index 0589ad3edf9..07022ff7b54 100644 --- a/lib/gitlab/ci/config/entry/root.rb +++ b/lib/gitlab/ci/config/entry/root.rb @@ -132,12 +132,12 @@ module Gitlab return unless @config.is_a?(Hash) @jobs_config = @config - .except(*self.class.reserved_nodes_names) # rubocop: disable CodeReuse/ActiveRecord + .except(*self.class.reserved_nodes_names) .select do |name, config| Entry::Jobs.find_type(name, config).present? end - @config = @config.except(*@jobs_config.keys) # rubocop: disable CodeReuse/ActiveRecord + @config = @config.except(*@jobs_config.keys) end end end diff --git a/lib/gitlab/ci/templates/Android-Fastlane.gitlab-ci.yml b/lib/gitlab/ci/templates/Android-Fastlane.gitlab-ci.yml index 2ca6e73a803..be584814271 100644 --- a/lib/gitlab/ci/templates/Android-Fastlane.gitlab-ci.yml +++ b/lib/gitlab/ci/templates/Android-Fastlane.gitlab-ci.yml @@ -37,7 +37,7 @@ ensureContainer: - "mkdir -p ~/.docker && echo '{\"experimental\": \"enabled\"}' > ~/.docker/config.json" - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY # Skip update container `script` if the container already exists - # via https://gitlab.com/gitlab-org/gitlab-ce/issues/26866#note_97609397 -> https://stackoverflow.com/a/52077071/796832 + # via https://gitlab.com/gitlab-org/gitlab-foss/issues/26866#note_97609397 -> https://stackoverflow.com/a/52077071/796832 - docker manifest inspect $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG > /dev/null && exit || true diff --git a/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml b/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml index f704266b73d..1ad9dd2913e 100644 --- a/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml +++ b/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml @@ -73,16 +73,16 @@ stages: - cleanup include: - - template: Jobs/Build.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Jobs/Build.gitlab-ci.yml - - template: Jobs/Test.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Jobs/Test.gitlab-ci.yml - - template: Jobs/Code-Quality.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Jobs/Code-Quality.gitlab-ci.yml - - template: Jobs/Deploy.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml - - template: Jobs/Browser-Performance-Testing.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.gitlab-ci.yml - - template: Security/DAST.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Security/DAST.gitlab-ci.yml - - template: Security/Container-Scanning.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Security/Container-Scanning.gitlab-ci.yml - - template: Security/Dependency-Scanning.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Security/Dependency-Scanning.gitlab-ci.yml - - template: Security/License-Management.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Security/License-Management.gitlab-ci.yml - - template: Security/SAST.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml + - template: Jobs/Build.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Jobs/Build.gitlab-ci.yml + - template: Jobs/Test.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Jobs/Test.gitlab-ci.yml + - template: Jobs/Code-Quality.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Jobs/Code-Quality.gitlab-ci.yml + - template: Jobs/Deploy.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml + - template: Jobs/Browser-Performance-Testing.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.gitlab-ci.yml + - template: Security/DAST.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Security/DAST.gitlab-ci.yml + - template: Security/Container-Scanning.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Security/Container-Scanning.gitlab-ci.yml + - template: Security/Dependency-Scanning.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Security/Dependency-Scanning.gitlab-ci.yml + - template: Security/License-Management.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Security/License-Management.gitlab-ci.yml + - template: Security/SAST.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml # Override DAST job to exclude master branch dast: diff --git a/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml b/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml index a61731a24b7..88f4b72044c 100644 --- a/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml +++ b/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml @@ -4,13 +4,28 @@ # List of the variables: https://gitlab.com/gitlab-org/security-products/sast#settings # How to set: https://docs.gitlab.com/ee/ci/yaml/#variables -sast: +.sast: stage: test + allow_failure: true + artifacts: + reports: + sast: gl-sast-report.json + only: + refs: + - branches + variables: + - $GITLAB_FEATURES =~ /\bsast\b/ + +variables: + SAST_ANALYZER_IMAGE_PREFIX: "registry.gitlab.com/gitlab-org/security-products/analyzers" + SAST_DISABLE_DIND: "false" + +sast: + extends: .sast image: docker:stable variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" - allow_failure: true services: - docker:stable-dind script: @@ -63,15 +78,116 @@ sast: --volume "$PWD:/code" \ --volume /var/run/docker.sock:/var/run/docker.sock \ "registry.gitlab.com/gitlab-org/security-products/sast:$SAST_VERSION" /app/bin/run /code - artifacts: - reports: - sast: gl-sast-report.json - dependencies: [] - only: - refs: - - branches - variables: - - $GITLAB_FEATURES =~ /\bsast\b/ except: variables: - $SAST_DISABLED + - $SAST_DISABLE_DIND == 'true' + +.analyzer: + extends: .sast + except: + variables: + - $SAST_DISABLE_DIND == 'false' + script: + - /analyzer run + +bandit-sast: + extends: .analyzer + image: + name: "$SAST_ANALYZER_IMAGE_PREFIX/bandit" + only: + variables: + - '$CI_PROJECT_REPOSITORY_LANGUAGES =~ /python/' + +brakeman-sast: + extends: .analyzer + image: + name: "$SAST_ANALYZER_IMAGE_PREFIX/brakeman" + only: + variables: + - '$CI_PROJECT_REPOSITORY_LANGUAGES =~ /ruby/' + +eslint-sast: + extends: .analyzer + image: + name: "$SAST_ANALYZER_IMAGE_PREFIX/eslint" + only: + variables: + - '$CI_PROJECT_REPOSITORY_LANGUAGES =~ /javascript/' + +flawfinder-sast: + extends: .analyzer + image: + name: "$SAST_ANALYZER_IMAGE_PREFIX/flawfinder" + only: + variables: + - '$CI_PROJECT_REPOSITORY_LANGUAGES =~ /\b(c\+\+|c\b)/' + +gosec-sast: + extends: .analyzer + image: + name: "$SAST_ANALYZER_IMAGE_PREFIX/gosec" + only: + variables: + - '$CI_PROJECT_REPOSITORY_LANGUAGES =~ /go/' + +nodejs-scan-sast: + extends: .analyzer + image: + name: "$SAST_ANALYZER_IMAGE_PREFIX/nodejs-scan" + only: + variables: + - '$CI_PROJECT_REPOSITORY_LANGUAGES =~ /javascript/' + +phpcs-security-audit-sast: + extends: .analyzer + image: + name: "$SAST_ANALYZER_IMAGE_PREFIX/phpcs-security-audit" + only: + variables: + - '$CI_PROJECT_REPOSITORY_LANGUAGES =~ /php/' + +pmd-apex-sast: + extends: .analyzer + image: + name: "$SAST_ANALYZER_IMAGE_PREFIX/pmd-apex" + only: + variables: + - '$CI_PROJECT_REPOSITORY_LANGUAGES =~ /apex/' + +secrets-sast: + extends: .analyzer + image: + name: "$SAST_ANALYZER_IMAGE_PREFIX/secrets" + +security-code-scan-sast: + extends: .analyzer + image: + name: "$SAST_ANALYZER_IMAGE_PREFIX/security-code-scan" + only: + variables: + - '$CI_PROJECT_REPOSITORY_LANGUAGES =~ /c\#/ || $CI_PROJECT_REPOSITORY_LANGUAGES =~ /visual basic/' + +sobelow-sast: + extends: .analyzer + image: + name: "$SAST_ANALYZER_IMAGE_PREFIX/sobelow" + only: + variables: + - '$CI_PROJECT_REPOSITORY_LANGUAGES =~ /elixir/' + +spotbugs-sast: + extends: .analyzer + image: + name: "$SAST_ANALYZER_IMAGE_PREFIX/spotbugs" + only: + variables: + - '$CI_PROJECT_REPOSITORY_LANGUAGES =~ /java\b/' + +tslint-sast: + extends: .analyzer + image: + name: "$SAST_ANALYZER_IMAGE_PREFIX/tslint" + only: + variables: + - '$CI_PROJECT_REPOSITORY_LANGUAGES =~ /typescript/' diff --git a/lib/gitlab/ci/trace.rb b/lib/gitlab/ci/trace.rb index 9550bc6d39c..5b8c2d2f7c7 100644 --- a/lib/gitlab/ci/trace.rb +++ b/lib/gitlab/ci/trace.rb @@ -188,7 +188,7 @@ module Gitlab def create_build_trace!(job, path) File.open(path) do |stream| # TODO: Set `file_format: :raw` after we've cleaned up legacy traces migration - # https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/20307 + # https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/20307 job.create_job_artifacts_trace!( project: job.project, file_type: :trace, diff --git a/lib/gitlab/data_builder/push.rb b/lib/gitlab/data_builder/push.rb index 75d9a2d55b9..3460e07fdc5 100644 --- a/lib/gitlab/data_builder/push.rb +++ b/lib/gitlab/data_builder/push.rb @@ -73,7 +73,7 @@ module Gitlab # For performance purposes maximum 20 latest commits # will be passed as post receive hook data. - # n+1: https://gitlab.com/gitlab-org/gitlab-ce/issues/38259 + # n+1: https://gitlab.com/gitlab-org/gitlab-foss/issues/38259 commit_attrs = Gitlab::GitalyClient.allow_n_plus_1_calls do commits_limited.map do |commit| commit.hook_attrs(with_changed_files: with_changed_files) diff --git a/lib/gitlab/database.rb b/lib/gitlab/database.rb index e4e93b59a36..bea9eb8cb31 100644 --- a/lib/gitlab/database.rb +++ b/lib/gitlab/database.rb @@ -14,7 +14,7 @@ module Gitlab MAX_TIMESTAMP_VALUE = Time.at((1 << 31) - 1).freeze # The maximum number of characters for text fields, to avoid DoS attacks via parsing huge text fields - # https://gitlab.com/gitlab-org/gitlab-ce/issues/61974 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/61974 MAX_TEXT_SIZE_LIMIT = 1_000_000 # Minimum schema version from which migrations are supported diff --git a/lib/gitlab/diff/highlight.rb b/lib/gitlab/diff/highlight.rb index d2484217ab9..ca7974930af 100644 --- a/lib/gitlab/diff/highlight.rb +++ b/lib/gitlab/diff/highlight.rb @@ -35,7 +35,7 @@ module Gitlab # match the blob, which is a bug. But we shouldn't fail to render # completely in that case, even though we want to report the error. rescue RangeError => e - Gitlab::Sentry.track_exception(e, issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/45441') + Gitlab::Sentry.track_exception(e, issue_url: 'https://gitlab.com/gitlab-org/gitlab-foss/issues/45441') end end diff --git a/lib/gitlab/ee_compat_check.rb b/lib/gitlab/ee_compat_check.rb index 5cd90814ca3..707e45dfb71 100644 --- a/lib/gitlab/ee_compat_check.rb +++ b/lib/gitlab/ee_compat_check.rb @@ -4,8 +4,8 @@ module Gitlab # Checks if a set of migrations requires downtime or not. class EeCompatCheck - CANONICAL_CE_PROJECT_URL = 'https://gitlab.com/gitlab-org/gitlab-ce' - CANONICAL_EE_REPO_URL = 'https://gitlab.com/gitlab-org/gitlab-ee.git' + CANONICAL_CE_PROJECT_URL = 'https://gitlab.com/gitlab-org/gitlab-foss' + CANONICAL_EE_REPO_URL = 'https://gitlab.com/gitlab-org/gitlab.git' CHECK_DIR = Rails.root.join('ee_compat_check') IGNORED_FILES_REGEX = /VERSION|CHANGELOG\.md|doc\/.+/i.freeze PLEASE_READ_THIS_BANNER = %Q{ diff --git a/lib/gitlab/etag_caching/router.rb b/lib/gitlab/etag_caching/router.rb index 7b921ab6199..3d14a8dde8d 100644 --- a/lib/gitlab/etag_caching/router.rb +++ b/lib/gitlab/etag_caching/router.rb @@ -53,6 +53,10 @@ module Gitlab 'project_build' ), Gitlab::EtagCaching::Router::Route.new( + %r(#{RESERVED_WORDS_PREFIX}/clusters/\d+/environments\z), + 'cluster_environments' + ), + Gitlab::EtagCaching::Router::Route.new( %r(#{RESERVED_WORDS_PREFIX}/environments\.json\z), 'environments' ), diff --git a/lib/gitlab/git/keep_around.rb b/lib/gitlab/git/keep_around.rb new file mode 100644 index 00000000000..d58f10bdbb7 --- /dev/null +++ b/lib/gitlab/git/keep_around.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +# Makes sure a commit is kept around when Git garbage collection runs. +# Git GC will delete commits from the repository that are no longer in any +# branches or tags, but we want to keep some of these commits around, for +# example if they have comments or CI builds. +# +# For Geo's sake, pass in multiple shas rather than calling it multiple times, +# to avoid unnecessary syncing. +module Gitlab + module Git + class KeepAround + def self.execute(repository, shas) + new(repository).execute(shas) + end + + def initialize(repository) + @repository = repository + end + + def execute(shas) + shas.each do |sha| + next unless sha.present? && commit_by(oid: sha) + + next if kept_around?(sha) + + # This will still fail if the file is corrupted (e.g. 0 bytes) + raw_repository.write_ref(keep_around_ref_name(sha), sha) + rescue Gitlab::Git::CommandError => ex + Rails.logger.error "Unable to create keep-around reference for repository #{disk_path}: #{ex}" # rubocop:disable Gitlab/RailsLogger + end + end + + def kept_around?(sha) + ref_exists?(keep_around_ref_name(sha)) + end + + delegate :commit_by, :raw_repository, :ref_exists?, :disk_path, to: :@repository + private :commit_by, :raw_repository, :ref_exists?, :disk_path + + private + + def keep_around_ref_name(sha) + "refs/#{::Repository::REF_KEEP_AROUND}/#{sha}" + end + end + end +end diff --git a/lib/gitlab/gpg/commit.rb b/lib/gitlab/gpg/commit.rb index 1d317c389d2..4b797a0e397 100644 --- a/lib/gitlab/gpg/commit.rb +++ b/lib/gitlab/gpg/commit.rb @@ -80,7 +80,7 @@ module Gitlab def gpgme_signature GPGME::Crypto.new.verify(signature_text, signed_text: signed_text) do |verified_signature| - # Return the first signature for now: https://gitlab.com/gitlab-org/gitlab-ce/issues/54932 + # Return the first signature for now: https://gitlab.com/gitlab-org/gitlab-foss/issues/54932 break verified_signature end rescue GPGME::Error diff --git a/lib/gitlab/graphql/authorize/authorize_resource.rb b/lib/gitlab/graphql/authorize/authorize_resource.rb index 6844367454f..df60b9d8346 100644 --- a/lib/gitlab/graphql/authorize/authorize_resource.rb +++ b/lib/gitlab/graphql/authorize/authorize_resource.rb @@ -46,7 +46,7 @@ module Gitlab # this was named `#authorized?`, however it conflicts with the native # graphql gem version # TODO consider adopting the gem's built in authorization system - # https://gitlab.com/gitlab-org/gitlab-ee/issues/13984 + # https://gitlab.com/gitlab-org/gitlab/issues/13984 def authorized_resource?(object) # Sanity check. We don't want to accidentally allow a developer to authorize # without first adding permissions to authorize against diff --git a/lib/gitlab/import_export/lfs_restorer.rb b/lib/gitlab/import_export/lfs_restorer.rb index 1de8a5bf9ec..ef83cdf24b1 100644 --- a/lib/gitlab/import_export/lfs_restorer.rb +++ b/lib/gitlab/import_export/lfs_restorer.rb @@ -50,7 +50,7 @@ module Gitlab # with a single `lfs_objects_projects` relation. # # This allows us backwards-compatibility without version bumping. - # See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/30830#note_192608870 + # See https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/30830#note_192608870 return ['project'] unless has_lfs_json? lfs_json[oid] diff --git a/lib/gitlab/json_cache.rb b/lib/gitlab/json_cache.rb index 84c6817f3c7..9aa71db6b18 100644 --- a/lib/gitlab/json_cache.rb +++ b/lib/gitlab/json_cache.rb @@ -79,7 +79,7 @@ module Gitlab # is being applied on ActiveRecord::Associations::CollectionAssociation#scope # when the new_record? method incorrectly returns false. # - # See https://gitlab.com/gitlab-org/gitlab-ee/issues/9903#note_145329964 + # See https://gitlab.com/gitlab-org/gitlab/issues/9903#note_145329964 klass .allocate .init_with( diff --git a/lib/gitlab/kubernetes/helm/reset_command.rb b/lib/gitlab/kubernetes/helm/reset_command.rb index a35ffa34c58..c8349639ec3 100644 --- a/lib/gitlab/kubernetes/helm/reset_command.rb +++ b/lib/gitlab/kubernetes/helm/reset_command.rb @@ -33,10 +33,10 @@ module Gitlab private # This method can be delete once we upgrade Helm to > 12.13.0 - # https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27096#note_159695900 + # https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/27096#note_159695900 # # Tracking this method to be removed here: - # https://gitlab.com/gitlab-org/gitlab-ce/issues/52791#note_199374155 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/52791#note_199374155 def delete_tiller_replicaset delete_args = %w[replicaset -n gitlab-managed-apps -l name=tiller] diff --git a/lib/gitlab/legacy_github_import/label_formatter.rb b/lib/gitlab/legacy_github_import/label_formatter.rb index 89200e794d8..0b6e4612843 100644 --- a/lib/gitlab/legacy_github_import/label_formatter.rb +++ b/lib/gitlab/legacy_github_import/label_formatter.rb @@ -15,7 +15,6 @@ module Gitlab :labels end - # rubocop: disable CodeReuse/ActiveRecord def create! params = attributes.except(:project) service = ::Labels::FindOrCreateService.new(nil, project, params) @@ -25,7 +24,6 @@ module Gitlab label end - # rubocop: enable CodeReuse/ActiveRecord private diff --git a/lib/gitlab/metrics/dashboard/errors.rb b/lib/gitlab/metrics/dashboard/errors.rb index 1739a4e6738..d41bd2c43c7 100644 --- a/lib/gitlab/metrics/dashboard/errors.rb +++ b/lib/gitlab/metrics/dashboard/errors.rb @@ -7,14 +7,16 @@ module Gitlab module Metrics module Dashboard module Errors + DashboardProcessingError = Class.new(StandardError) PanelNotFoundError = Class.new(StandardError) + LayoutError = Class.new(DashboardProcessingError) + MissingQueryError = Class.new(DashboardProcessingError) - PROCESSING_ERROR = Gitlab::Metrics::Dashboard::Stages::BaseStage::DashboardProcessingError NOT_FOUND_ERROR = Gitlab::Template::Finders::RepoTemplateFinder::FileNotFoundError def handle_errors(error) case error - when PROCESSING_ERROR + when DashboardProcessingError error(error.message, :unprocessable_entity) when NOT_FOUND_ERROR error("#{dashboard_path} could not be found.", :not_found) diff --git a/lib/gitlab/metrics/dashboard/finder.rb b/lib/gitlab/metrics/dashboard/finder.rb index 66c4d662a6c..c3169418371 100644 --- a/lib/gitlab/metrics/dashboard/finder.rb +++ b/lib/gitlab/metrics/dashboard/finder.rb @@ -28,9 +28,9 @@ module Gitlab # @param options - y_label [String] Y-Axis label of # a panel. Used by embedded dashboards. # @return [Hash] - def find(project, user, environment, options = {}) + def find(project, user, options = {}) service_for(options) - .new(project, user, options.merge(environment: environment)) + .new(project, user, options) .get_dashboard end diff --git a/lib/gitlab/metrics/dashboard/processor.rb b/lib/gitlab/metrics/dashboard/processor.rb index c0fa3bb2f3a..bfdee76a818 100644 --- a/lib/gitlab/metrics/dashboard/processor.rb +++ b/lib/gitlab/metrics/dashboard/processor.rb @@ -8,43 +8,23 @@ module Gitlab # the UI. These includes shared metric info, custom metrics # info, and alerts (only in EE). class Processor - SYSTEM_SEQUENCE = [ - Stages::CommonMetricsInserter, - Stages::ProjectMetricsInserter, - Stages::EndpointInserter, - Stages::Sorter - ].freeze - - PROJECT_SEQUENCE = [ - Stages::CommonMetricsInserter, - Stages::EndpointInserter, - Stages::Sorter - ].freeze - - def initialize(project, environment, dashboard) + def initialize(project, dashboard, sequence, params) @project = project - @environment = environment @dashboard = dashboard + @sequence = sequence + @params = params end # Returns a new dashboard hash with the results of # running transforms on the dashboard. - def process(insert_project_metrics:) + def process @dashboard.deep_symbolize_keys.tap do |dashboard| - sequence(insert_project_metrics).each do |stage| - stage.new(@project, @environment, dashboard).transform! + @sequence.each do |stage| + stage.new(@project, dashboard, @params).transform! end end end - - private - - def sequence(insert_project_metrics) - insert_project_metrics ? SYSTEM_SEQUENCE : PROJECT_SEQUENCE - end end end end end - -Gitlab::Metrics::Dashboard::Processor.prepend_if_ee('EE::Gitlab::Metrics::Dashboard::Processor') diff --git a/lib/gitlab/metrics/dashboard/service_selector.rb b/lib/gitlab/metrics/dashboard/service_selector.rb index 934ba9145a2..10b686fbb81 100644 --- a/lib/gitlab/metrics/dashboard/service_selector.rb +++ b/lib/gitlab/metrics/dashboard/service_selector.rb @@ -48,3 +48,5 @@ module Gitlab end end end + +Gitlab::Metrics::Dashboard::ServiceSelector.prepend_if_ee('EE::Gitlab::Metrics::Dashboard::ServiceSelector') diff --git a/lib/gitlab/metrics/dashboard/stages/base_stage.rb b/lib/gitlab/metrics/dashboard/stages/base_stage.rb index 514ed50e58d..f9e4ae4b4b5 100644 --- a/lib/gitlab/metrics/dashboard/stages/base_stage.rb +++ b/lib/gitlab/metrics/dashboard/stages/base_stage.rb @@ -7,15 +7,12 @@ module Gitlab class BaseStage include Gitlab::Metrics::Dashboard::Defaults - DashboardProcessingError = Class.new(StandardError) - LayoutError = Class.new(DashboardProcessingError) + attr_reader :project, :dashboard, :params - attr_reader :project, :environment, :dashboard - - def initialize(project, environment, dashboard) + def initialize(project, dashboard, params) @project = project - @environment = environment @dashboard = dashboard + @params = params end # Entry-point to the stage @@ -26,15 +23,15 @@ module Gitlab protected def missing_panel_groups! - raise LayoutError.new('Top-level key :panel_groups must be an array') + raise Errors::LayoutError.new('Top-level key :panel_groups must be an array') end def missing_panels! - raise LayoutError.new('Each "panel_group" must define an array :panels') + raise Errors::LayoutError.new('Each "panel_group" must define an array :panels') end def missing_metrics! - raise LayoutError.new('Each "panel" must define an array :metrics') + raise Errors::LayoutError.new('Each "panel" must define an array :metrics') end def for_metrics diff --git a/lib/gitlab/metrics/dashboard/stages/endpoint_inserter.rb b/lib/gitlab/metrics/dashboard/stages/endpoint_inserter.rb index 2a959854be0..c00ef208848 100644 --- a/lib/gitlab/metrics/dashboard/stages/endpoint_inserter.rb +++ b/lib/gitlab/metrics/dashboard/stages/endpoint_inserter.rb @@ -5,9 +5,9 @@ module Gitlab module Dashboard module Stages class EndpointInserter < BaseStage - MissingQueryError = Class.new(DashboardProcessingError) - def transform! + raise Errors::DashboardProcessingError.new('Environment is required for Stages::EndpointInserter') unless params[:environment] + for_metrics do |metric| metric[:prometheus_endpoint_path] = endpoint_for_metric(metric) end @@ -18,7 +18,7 @@ module Gitlab def endpoint_for_metric(metric) Gitlab::Routing.url_helpers.prometheus_api_project_environment_path( project, - environment, + params[:environment], proxy_path: query_type(metric), query: query_for_metric(metric) ) @@ -31,7 +31,7 @@ module Gitlab def query_for_metric(metric) query = metric[query_type(metric)] - raise MissingQueryError.new('Each "metric" must define one of :query or :query_range') unless query + raise Errors::MissingQueryError.new('Each "metric" must define one of :query or :query_range') unless query query end diff --git a/lib/gitlab/middleware/basic_health_check.rb b/lib/gitlab/middleware/basic_health_check.rb index 84e49805428..1f8f87fc33f 100644 --- a/lib/gitlab/middleware/basic_health_check.rb +++ b/lib/gitlab/middleware/basic_health_check.rb @@ -27,7 +27,7 @@ module Gitlab # We should be using ActionDispatch::Request instead of # Rack::Request to be consistent with Rails, but due to a Rails # bug described in - # https://gitlab.com/gitlab-org/gitlab-ce/issues/58573#note_149799010 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/58573#note_149799010 # hosts behind a load balancer will only see 127.0.0.1 for the # load balancer's IP. request = Rack::Request.new(env) diff --git a/lib/gitlab/multi_collection_paginator.rb b/lib/gitlab/multi_collection_paginator.rb index 5375077d7dc..33e0c6aa9b7 100644 --- a/lib/gitlab/multi_collection_paginator.rb +++ b/lib/gitlab/multi_collection_paginator.rb @@ -55,7 +55,6 @@ module Gitlab @first_collection_page_count = first_collection_page.total_pages end - # rubocop: disable CodeReuse/ActiveRecord def first_collection_last_page_size return @first_collection_last_page_size if defined?(@first_collection_last_page_size) @@ -63,6 +62,5 @@ module Gitlab .except(:select) .size end - # rubocop: enable CodeReuse/ActiveRecord end end diff --git a/lib/gitlab/pages_client.rb b/lib/gitlab/pages_client.rb index 281eafb142f..30a1f9ede25 100644 --- a/lib/gitlab/pages_client.rb +++ b/lib/gitlab/pages_client.rb @@ -109,7 +109,7 @@ module Gitlab File.link(f.path, token_path) end rescue Errno::EACCES => ex - # TODO stop rescuing this exception in GitLab 11.0 https://gitlab.com/gitlab-org/gitlab-ce/issues/45672 + # TODO stop rescuing this exception in GitLab 11.0 https://gitlab.com/gitlab-org/gitlab-foss/issues/45672 Rails.logger.error("Could not write pages admin token file: #{ex}") # rubocop:disable Gitlab/RailsLogger rescue Errno::EEXIST # Another process wrote the token file concurrently with us. Use their token, not ours. diff --git a/lib/gitlab/patch/active_record_query_cache.rb b/lib/gitlab/patch/active_record_query_cache.rb index 71d66bdbe02..d6b649cdea7 100644 --- a/lib/gitlab/patch/active_record_query_cache.rb +++ b/lib/gitlab/patch/active_record_query_cache.rb @@ -4,7 +4,7 @@ # ActiveRecord connection used in tests # https://github.com/rails/rails/issues/36587 -# To be removed with https://gitlab.com/gitlab-org/gitlab-ce/issues/64413 +# To be removed with https://gitlab.com/gitlab-org/gitlab-foss/issues/64413 module Gitlab module Patch diff --git a/lib/gitlab/phabricator_import/issues/task_importer.rb b/lib/gitlab/phabricator_import/issues/task_importer.rb index 77ee11c7cdd..c17f3e1729a 100644 --- a/lib/gitlab/phabricator_import/issues/task_importer.rb +++ b/lib/gitlab/phabricator_import/issues/task_importer.rb @@ -12,7 +12,7 @@ module Gitlab # TODO: Reformat the description with attachments, escaping accidental # links and add attachments - # https://gitlab.com/gitlab-org/gitlab-ce/issues/60603 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/60603 issue.assign_attributes(task.issue_attributes) save! diff --git a/lib/gitlab/request_context.rb b/lib/gitlab/request_context.rb index f6d289476c5..ab2549d5e68 100644 --- a/lib/gitlab/request_context.rb +++ b/lib/gitlab/request_context.rb @@ -16,7 +16,7 @@ module Gitlab # We should be using ActionDispatch::Request instead of # Rack::Request to be consistent with Rails, but due to a Rails # bug described in - # https://gitlab.com/gitlab-org/gitlab-ce/issues/58573#note_149799010 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/58573#note_149799010 # hosts behind a load balancer will only see 127.0.0.1 for the # load balancer's IP. req = Rack::Request.new(env) diff --git a/lib/gitlab/shell.rb b/lib/gitlab/shell.rb index 9e813968093..7dbed591b84 100644 --- a/lib/gitlab/shell.rb +++ b/lib/gitlab/shell.rb @@ -232,7 +232,7 @@ module Gitlab # add_namespace("default", "gitlab") # def add_namespace(storage, name) - # https://gitlab.com/gitlab-org/gitlab-ce/issues/58012 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/58012 Gitlab::GitalyClient.allow_n_plus_1_calls do Gitlab::GitalyClient::NamespaceService.new(storage).add(name) end diff --git a/lib/gitlab/tracking.rb b/lib/gitlab/tracking.rb index ef669b03c87..78177c6d306 100644 --- a/lib/gitlab/tracking.rb +++ b/lib/gitlab/tracking.rb @@ -24,8 +24,8 @@ module Gitlab hostname: Gitlab::CurrentSettings.snowplow_collector_hostname, cookie_domain: Gitlab::CurrentSettings.snowplow_cookie_domain, app_id: Gitlab::CurrentSettings.snowplow_site_id, - page_tracking_enabled: additional_features, - activity_tracking_enabled: additional_features + form_tracking: additional_features, + link_click_tracking: additional_features }.transform_keys! { |key| key.to_s.camelize(:lower).to_sym } end diff --git a/lib/gitlab/url_blockers/url_whitelist.rb b/lib/gitlab/url_blockers/url_whitelist.rb index a0cfcbc49a3..7622de4fdbe 100644 --- a/lib/gitlab/url_blockers/url_whitelist.rb +++ b/lib/gitlab/url_blockers/url_whitelist.rb @@ -30,7 +30,7 @@ module Gitlab # Gitlab::CurrentSettings creates an ApplicationSetting which then # calls this method. # - # See https://gitlab.com/gitlab-org/gitlab-ee/issues/9833 + # See https://gitlab.com/gitlab-org/gitlab/issues/9833 def outbound_local_requests_whitelist_arrays return [[], []] unless ApplicationSetting.current diff --git a/lib/gitlab/utils/override.rb b/lib/gitlab/utils/override.rb index f5299439fce..35aea209cb9 100644 --- a/lib/gitlab/utils/override.rb +++ b/lib/gitlab/utils/override.rb @@ -115,7 +115,7 @@ module Gitlab # end # # This would make sure we're overriding something. See: - # https://gitlab.com/gitlab-org/gitlab-ee/issues/1819 + # https://gitlab.com/gitlab-org/gitlab/issues/1819 def override(method_name) return unless ENV['STATIC_VERIFICATION'] diff --git a/lib/support/nginx/registry-ssl b/lib/support/nginx/registry-ssl index 908d26a0da2..df126919866 100644 --- a/lib/support/nginx/registry-ssl +++ b/lib/support/nginx/registry-ssl @@ -16,7 +16,7 @@ server { } server { - # If a different port is specified in https://gitlab.com/gitlab-org/gitlab-ce/blob/8-8-stable/config/gitlab.yml.example#L182, + # If a different port is specified in https://gitlab.com/gitlab-org/gitlab-foss/blob/8-8-stable/config/gitlab.yml.example#L182, # it should be declared here as well listen *:443 ssl http2; server_name registry.gitlab.example.com; diff --git a/lib/tasks/downtime_check.rake b/lib/tasks/downtime_check.rake index 557f4fef10b..ce97ed50fc7 100644 --- a/lib/tasks/downtime_check.rake +++ b/lib/tasks/downtime_check.rake @@ -1,9 +1,9 @@ desc 'Checks if migrations in a branch require downtime' task downtime_check: :environment do repo = if defined?(Gitlab::License) - 'gitlab-ee' + 'gitlab' else - 'gitlab-ce' + 'gitlab-foss' end `git fetch https://gitlab.com/gitlab-org/#{repo}.git --depth 1` diff --git a/lib/tasks/gettext.rake b/lib/tasks/gettext.rake index 91a52144dd2..dfc0047e753 100644 --- a/lib/tasks/gettext.rake +++ b/lib/tasks/gettext.rake @@ -13,7 +13,7 @@ namespace :gettext do end task :compile do - # See: https://gitlab.com/gitlab-org/gitlab-ce/issues/33014#note_31218998 + # See: https://gitlab.com/gitlab-org/gitlab-foss/issues/33014#note_31218998 FileUtils.touch(File.join(Rails.root, 'locale/gitlab.pot')) Rake::Task['gettext:po_to_json'].invoke diff --git a/lib/tasks/gitlab/dev.rake b/lib/tasks/gitlab/dev.rake index 77c28615856..17d3ac74375 100644 --- a/lib/tasks/gitlab/dev.rake +++ b/lib/tasks/gitlab/dev.rake @@ -18,7 +18,7 @@ namespace :gitlab do args end - if File.basename(Rails.root) == 'gitlab-ee' + if File.basename(Rails.root) == 'gitlab' puts "Skipping EE projects" exit 0 elsif Gitlab::EeCompatCheck.new(opts || {}).check diff --git a/lib/tasks/gitlab/shell.rake b/lib/tasks/gitlab/shell.rake index 487808a7baa..abd47f018f1 100644 --- a/lib/tasks/gitlab/shell.rake +++ b/lib/tasks/gitlab/shell.rake @@ -135,7 +135,7 @@ namespace :gitlab do then you may have been affected by the 9.3.0 bug in which the new setting was disabled by default. - https://gitlab.com/gitlab-org/gitlab-ee/issues/2738 + https://gitlab.com/gitlab-org/gitlab/issues/2738 It was reverted in 9.3.1 and fixed in 9.3.3, however, if Settings were saved while the setting was unchecked, then it is still disabled. diff --git a/locale/gitlab.pot b/locale/gitlab.pot index bdd4805997c..d123ac4ee8c 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -992,6 +992,9 @@ msgstr "" msgid "Added at" msgstr "" +msgid "Added in this version" +msgstr "" + msgid "Adding new applications is disabled in your GitLab instance. Please contact your GitLab administrator to get the permission" msgstr "" @@ -1450,6 +1453,9 @@ msgstr "" msgid "An error occurred while fetching this tab." msgstr "" +msgid "An error occurred while generating a username. Please try again." +msgstr "" + msgid "An error occurred while getting projects" msgstr "" @@ -4782,6 +4788,9 @@ msgstr "" msgid "Deleted chat nickname: %{chat_name}!" msgstr "" +msgid "Deleted in this version" +msgstr "" + msgid "Deleting the license failed." msgstr "" @@ -6729,6 +6738,9 @@ msgstr "" msgid "First day of the week" msgstr "" +msgid "First name" +msgstr "" + msgid "Fixed date" msgstr "" @@ -7917,9 +7929,6 @@ msgstr "" msgid "HealthCheck|Unhealthy" msgstr "" -msgid "Hello World!" -msgstr "" - msgid "Hello there" msgstr "" @@ -8015,6 +8024,9 @@ msgstr "" msgid "However, you are already a member of this %{member_source}. Sign in using a different account to accept the invitation." msgstr "" +msgid "I accept the %{terms_link_start}Terms of Service and Privacy Policy%{terms_link_end}" +msgstr "" + msgid "I accept the %{terms_link}" msgstr "" @@ -8027,6 +8039,9 @@ msgstr "" msgid "I have read and agree to the Let's Encrypt %{link_start}Terms of Service%{link_end}" msgstr "" +msgid "I'd like to receive updates via email about GitLab" +msgstr "" + msgid "ID" msgstr "" @@ -8913,6 +8928,9 @@ msgstr "" msgid "Last edited by %{name}" msgstr "" +msgid "Last name" +msgstr "" + msgid "Last reply by" msgstr "" @@ -9534,6 +9552,9 @@ msgstr "" msgid "Merge request" msgstr "" +msgid "Merge request %{iid} authored by %{authorName}" +msgstr "" + msgid "Merge request approvals" msgstr "" @@ -9897,6 +9918,9 @@ msgstr "" msgid "Modal|Close" msgstr "" +msgid "Modified in this version" +msgstr "" + msgid "Modify commit message" msgstr "" @@ -10205,6 +10229,9 @@ msgstr "" msgid "No application_settings found" msgstr "" +msgid "No authentication methods configured." +msgstr "" + msgid "No available namespaces to fork the project." msgstr "" @@ -10358,6 +10385,9 @@ msgstr "" msgid "None" msgstr "" +msgid "Not all data has been processed yet, the accuracy of the chart for the selected timeframe is limited." +msgstr "" + msgid "Not available" msgstr "" @@ -10732,6 +10762,9 @@ msgstr "" msgid "Other visibility settings have been disabled by the administrator." msgstr "" +msgid "Our Privacy Policy has changed, please visit %{privacy_policy_link} to review these changes." +msgstr "" + msgid "Outbound requests" msgstr "" @@ -12699,6 +12732,9 @@ msgstr "" msgid "Releases mark specific points in a project's development history, communicate information about the type of change, and deliver on prepared, often compiled, versions of the software to be reused elsewhere. Currently, releases can only be created through the API." msgstr "" +msgid "Remember me" +msgstr "" + msgid "Remind later" msgstr "" @@ -13041,6 +13077,9 @@ msgstr "" msgid "Require users to prove ownership of custom domains" msgstr "" +msgid "Required argument 'targetElement' is missing" +msgstr "" + msgid "Requires approval from %{names}." msgid_plural "Requires %{count} more approvals from %{names}." msgstr[0] "" @@ -14198,6 +14237,12 @@ msgstr "" msgid "Sign-up restrictions" msgstr "" +msgid "SignUp|First Name is too long (maximum is %{max_length} characters)." +msgstr "" + +msgid "SignUp|Last Name is too long (maximum is %{max_length} characters)." +msgstr "" + msgid "SignUp|Name is too long (maximum is %{max_length} characters)." msgstr "" @@ -14642,6 +14687,9 @@ msgstr "" msgid "Start a %{new_merge_request} with these changes" msgstr "" +msgid "Start a Free Trial" +msgstr "" + msgid "Start a new discussion..." msgstr "" @@ -15223,6 +15271,9 @@ msgid_plural "The %{type} contains the following errors:" msgstr[0] "" msgstr[1] "" +msgid "The API path was not specified." +msgstr "" + msgid "The Advanced Global Search in GitLab is a powerful search service that saves you time. Instead of creating duplicate code and wasting time, you can now search for code within other teams that can help your own project." msgstr "" @@ -15454,6 +15505,9 @@ msgstr "" msgid "The staging stage shows the time between merging the MR and deploying code to the production environment. The data will be automatically added once you deploy to production for the first time." msgstr "" +msgid "The target element is missing." +msgstr "" + msgid "The testing stage shows the time GitLab CI takes to run every pipeline for the related merge request. The data will automatically be added after your first pipeline finishes running." msgstr "" @@ -15547,6 +15601,12 @@ msgstr "" msgid "There is already a repository with that name on disk" msgstr "" +msgid "There is no data available. Please change your selection." +msgstr "" + +msgid "There is no data for the selected metric. Please change your selection." +msgstr "" + msgid "There was a problem communicating with your device." msgstr "" @@ -16211,6 +16271,12 @@ msgstr "" msgid "To see all the user's personal access tokens you must impersonate them first." msgstr "" +msgid "To see this project's operational details, %{linkStart}upgrade its group plan to Silver%{linkEnd}. You can also remove the project from the dashboard." +msgstr "" + +msgid "To see this project's operational details, contact an owner of group %{groupName} to upgrade the plan. You can also remove the project from the dashboard." +msgstr "" + msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" msgstr "" @@ -17812,7 +17878,10 @@ msgstr "" msgid "You can only edit files when you are on a branch" msgstr "" -msgid "You can only merge once the items above are resolved" +msgid "You can only merge once the items above are resolved." +msgstr "" + +msgid "You can only merge once this merge request is approved." msgstr "" msgid "You can only transfer the project to namespaces you manage." diff --git a/qa/qa/runtime/browser.rb b/qa/qa/runtime/browser.rb index 197008ed8bf..77d04aa7594 100644 --- a/qa/qa/runtime/browser.rb +++ b/qa/qa/runtime/browser.rb @@ -82,7 +82,7 @@ module QA options.add_argument("disable-gpu") end - # Disable /dev/shm use in CI. See https://gitlab.com/gitlab-org/gitlab-ee/issues/4252 + # Disable /dev/shm use in CI. See https://gitlab.com/gitlab-org/gitlab/issues/4252 options.add_argument("disable-dev-shm-usage") if QA::Runtime::Env.running_in_ci? end diff --git a/qa/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb b/qa/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb index 4f8c46cbd5f..4f68500974e 100644 --- a/qa/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb +++ b/qa/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module QA - # https://gitlab.com/gitlab-org/gitlab-ce/issues/58158 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/58158 context 'Manage', :github, :quarantine do describe 'Project import from GitHub' do let(:imported_project) do @@ -98,12 +98,12 @@ module QA end def verify_labels_import - # TODO: Waiting on https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/19228 + # TODO: Waiting on https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/19228 # to build upon it. end def verify_milestones_import - # TODO: Waiting on https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18727 + # TODO: Waiting on https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18727 # to build upon it. end diff --git a/qa/qa/specs/features/browser_ui/2_plan/issue/close_issue_spec.rb b/qa/qa/specs/features/browser_ui/2_plan/issue/close_issue_spec.rb index 83cf164ccb0..2bcc89cb338 100644 --- a/qa/qa/specs/features/browser_ui/2_plan/issue/close_issue_spec.rb +++ b/qa/qa/specs/features/browser_ui/2_plan/issue/close_issue_spec.rb @@ -19,7 +19,7 @@ module QA # Initial commit should be pushed because # the very first commit to the project doesn't close the issue - # https://gitlab.com/gitlab-org/gitlab-ce/issues/38965 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/38965 push_commit('Initial commit') end diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb index 36cbd1b81f0..bb1e3ced333 100644 --- a/qa/qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb @@ -42,7 +42,7 @@ module QA # of the second branch, and when the second branch is merged to master it will # show the 'merged' badge on it. # Refer to the below issue note: - # https://gitlab.com/gitlab-org/gitlab-ce/issues/55524#note_126100848 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/55524#note_126100848 commit_file(file_2_master, 'Other test file content', second_commit_message_of_master_branch) push_changes merge(second_branch) diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb index 01a367fceac..ec3c4c1ae94 100644 --- a/qa/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb @@ -2,7 +2,7 @@ module QA # Git protocol v2 is temporarily disabled - # https://gitlab.com/gitlab-org/gitlab-ce/issues/55769 (confidential) + # https://gitlab.com/gitlab-org/gitlab-foss/issues/55769 (confidential) context 'Create', :quarantine do describe 'Push over HTTP using Git protocol version 2', :requires_git_protocol_v2 do it 'user pushes to the repository' do diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb index dc42191b448..58f402a19ce 100644 --- a/qa/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb @@ -2,7 +2,7 @@ module QA # Git protocol v2 is temporarily disabled - # https://gitlab.com/gitlab-org/gitlab-ce/issues/55769 (confidential) + # https://gitlab.com/gitlab-org/gitlab-foss/issues/55769 (confidential) context 'Create', :quarantine do describe 'Push over SSH using Git protocol version 2', :requires_git_protocol_v2 do # Note: If you run this test against GDK make sure you've enabled sshd and diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb index 2027a3c16aa..9bc4dcbca2a 100644 --- a/qa/qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb @@ -70,7 +70,7 @@ module QA # attempt to push if it fails. Most of the time the setting is updated in # under a minute, i.e., in fewer than 6 attempts with a 10 second sleep # between attempts. - # See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/30233#note_188616863 + # See https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/30233#note_188616863 def retry_on_fail Support::Retrier.retry_on_exception(max_attempts: 6, reload_page: nil, sleep_interval: 10) do yield diff --git a/qa/spec/specs/helpers/quarantine_spec.rb b/qa/spec/specs/helpers/quarantine_spec.rb index 78beda39b5e..2538632c032 100644 --- a/qa/spec/specs/helpers/quarantine_spec.rb +++ b/qa/spec/specs/helpers/quarantine_spec.rb @@ -36,7 +36,7 @@ RSpec.configure do |c| # that is removed when the RSpec configuration is sandboxed. # If this needs to be changed (e.g., to load other libraries as well), see # this discussion for alternative solutions: - # https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25223#note_143392053 + # https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/25223#note_143392053 load 'airborne.rb' ex.run diff --git a/rubocop/cop/active_record_association_reload.rb b/rubocop/cop/active_record_association_reload.rb index dc241cab7d0..eb9fc8a0246 100644 --- a/rubocop/cop/active_record_association_reload.rb +++ b/rubocop/cop/active_record_association_reload.rb @@ -5,7 +5,7 @@ module RuboCop # Cop that blacklists the use of `reload`. class ActiveRecordAssociationReload < RuboCop::Cop::Cop MSG = 'Use reset instead of reload. ' \ - 'For more details check the https://gitlab.com/gitlab-org/gitlab-ce/issues/60218.' + 'For more details check the https://gitlab.com/gitlab-org/gitlab-foss/issues/60218.' def_node_matcher :reload?, <<~PATTERN (send _ :reload ...) diff --git a/rubocop/cop/avoid_break_from_strong_memoize.rb b/rubocop/cop/avoid_break_from_strong_memoize.rb index 9b436118db3..a3a8d0c3990 100644 --- a/rubocop/cop/avoid_break_from_strong_memoize.rb +++ b/rubocop/cop/avoid_break_from_strong_memoize.rb @@ -3,7 +3,7 @@ module RuboCop module Cop # Checks for break inside strong_memoize blocks. - # For more information see: https://gitlab.com/gitlab-org/gitlab-ce/issues/42889 + # For more information see: https://gitlab.com/gitlab-org/gitlab-foss/issues/42889 # # @example # # bad diff --git a/rubocop/cop/avoid_return_from_blocks.rb b/rubocop/cop/avoid_return_from_blocks.rb index 40b2aed019f..cc1868f10a4 100644 --- a/rubocop/cop/avoid_return_from_blocks.rb +++ b/rubocop/cop/avoid_return_from_blocks.rb @@ -3,7 +3,7 @@ module RuboCop module Cop # Checks for return inside blocks. - # For more information see: https://gitlab.com/gitlab-org/gitlab-ce/issues/42889 + # For more information see: https://gitlab.com/gitlab-org/gitlab-foss/issues/42889 # # @example # # bad diff --git a/rubocop/cop/avoid_route_redirect_leading_slash.rb b/rubocop/cop/avoid_route_redirect_leading_slash.rb index 7ac1c881269..261d151fb1b 100644 --- a/rubocop/cop/avoid_route_redirect_leading_slash.rb +++ b/rubocop/cop/avoid_route_redirect_leading_slash.rb @@ -3,7 +3,7 @@ module RuboCop module Cop # Checks for a leading '/' in route redirects - # For more information see: https://gitlab.com/gitlab-org/gitlab-ce/issues/50645 + # For more information see: https://gitlab.com/gitlab-org/gitlab-foss/issues/50645 # # @example # # bad diff --git a/rubocop/cop/code_reuse/active_record.rb b/rubocop/cop/code_reuse/active_record.rb index 1e650abfceb..8c77c292315 100644 --- a/rubocop/cop/code_reuse/active_record.rb +++ b/rubocop/cop/code_reuse/active_record.rb @@ -10,7 +10,7 @@ module RuboCop include CodeReuseHelpers MSG = 'This method can only be used inside an ActiveRecord model: ' \ - 'https://gitlab.com/gitlab-org/gitlab-ce/issues/49653' + 'https://gitlab.com/gitlab-org/gitlab-foss/issues/49653' # Various methods from ActiveRecord::Querying that are blacklisted. We # exclude some generic ones such as `any?` and `first`, as these may @@ -27,7 +27,6 @@ module RuboCop create_with: true, distinct: false, eager_load: true, - except: true, exists?: true, find_by: true, find_by!: true, diff --git a/rubocop/cop/migration/safer_boolean_column.rb b/rubocop/cop/migration/safer_boolean_column.rb index a7d922c752f..fa524efe5be 100644 --- a/rubocop/cop/migration/safer_boolean_column.rb +++ b/rubocop/cop/migration/safer_boolean_column.rb @@ -14,7 +14,7 @@ module RuboCop # A developer might otherwise mistakenly assume that a value in # `ApplicationSetting.defaults` is sufficient. # - # See https://gitlab.com/gitlab-org/gitlab-ee/issues/2750 for more + # See https://gitlab.com/gitlab-org/gitlab/issues/2750 for more # information. class SaferBooleanColumn < RuboCop::Cop::Cop include MigrationHelpers diff --git a/rubocop/cop/prefer_class_methods_over_module.rb b/rubocop/cop/prefer_class_methods_over_module.rb index 0dfa80ccfab..39b65073477 100644 --- a/rubocop/cop/prefer_class_methods_over_module.rb +++ b/rubocop/cop/prefer_class_methods_over_module.rb @@ -3,7 +3,7 @@ module RuboCop module Cop # Enforces the use of 'class_methods' instead of 'module ClassMethods' for activesupport concerns. - # For more information see: https://gitlab.com/gitlab-org/gitlab-ce/issues/50414 + # For more information see: https://gitlab.com/gitlab-org/gitlab-foss/issues/50414 # # @example # # bad diff --git a/scripts/ee-specific-lines-check b/scripts/ee-specific-lines-check new file mode 100755 index 00000000000..4114575168c --- /dev/null +++ b/scripts/ee-specific-lines-check @@ -0,0 +1,42 @@ +#!/usr/bin/env ruby + +require_relative 'ee_specific_check/ee_specific_check' + +include EESpecificCheck # rubocop:disable Style/MixinUsage +git_version + +base = find_compare_base + +current_numstat = updated_diff_numstat(base.ce_base, base.ee_base) +updated_numstat = updated_diff_numstat(base.ce_head, base.ee_head) + +offenses = updated_numstat.select do |file, updated_delta| + current_delta = current_numstat[file] + + more_lines = updated_delta > current_delta + + more_lines && + !WHITELIST.any? { |pattern| Dir.glob(pattern, File::FNM_DOTMATCH).include?(file) } +end + +if offenses.empty? + say "🎉 All good, congrats! 🎉" +else + puts + + offenses.each do |(file, delta)| + puts "* 💥 #{file} has #{delta - current_numstat[file]} updated lines that differ between EE and CE! 💥" + end + + say <<~MESSAGE + ℹ️ Make sure all lines in shared files have been updated in your backport merge request and the branch name includes #{minimal_ce_branch_name}. + ℹ️ Consider using an EE module to add the features you want. + ℹ️ See this for detail: https://docs.gitlab.com/ee/development/ee_features.html#ee-features-based-on-ce-features + MESSAGE +end + +remove_remotes + +say "ℹ️ For more information on why, see https://gitlab.com/gitlab-org/gitlab/issues/2952" + +exit(offenses.size) diff --git a/scripts/ee_specific_check/ee_specific_check.rb b/scripts/ee_specific_check/ee_specific_check.rb index 98a4038ee09..cdb62f66e94 100644 --- a/scripts/ee_specific_check/ee_specific_check.rb +++ b/scripts/ee_specific_check/ee_specific_check.rb @@ -43,8 +43,8 @@ module EESpecificCheck def setup_canonical_remotes run_git_command( - "remote add canonical-ee https://gitlab.com/gitlab-org/gitlab-ee.git", - "remote add canonical-ce https://gitlab.com/gitlab-org/gitlab-ce.git", + "remote add canonical-ee https://gitlab.com/gitlab-org/gitlab.git", + "remote add canonical-ce https://gitlab.com/gitlab-org/gitlab-foss.git", "fetch canonical-ee master --quiet --depth=9999", "fetch canonical-ce master --quiet --depth=9999") end @@ -67,7 +67,7 @@ module EESpecificCheck say <<~MESSAGE 💥 Unfortunately we cannot find the merge-base for #{left} and #{right}, 💥 and we'll try to fix that in: - https://gitlab.com/gitlab-org/gitlab-ee/issues/9120 + https://gitlab.com/gitlab-org/gitlab/issues/9120 💥 Before that, please run this job locally as a workaround: @@ -193,7 +193,7 @@ module EESpecificCheck 💥 Please rebase #{target_head} with CE master. 💥 💥 For more details, please read: - 💥 https://gitlab.com/gitlab-org/gitlab-ee/issues/6038#note_86862115 + 💥 https://gitlab.com/gitlab-org/gitlab/issues/6038#note_86862115 💥 💥 Git diff: @@ -237,8 +237,8 @@ module EESpecificCheck # Instead of waiting that populate over all the branches, we could # just remove untracked files anyway, only on CI of course in case # we're wiping people's data! - # See https://gitlab.com/gitlab-org/gitlab-ee/issues/5912 - # Also see https://gitlab.com/gitlab-org/gitlab-ee/-/jobs/68194333 + # See https://gitlab.com/gitlab-org/gitlab/issues/5912 + # Also see https://gitlab.com/gitlab-org/gitlab/-/jobs/68194333 run_git_command('clean -fd') if ENV['CI'] end @@ -276,9 +276,9 @@ module EESpecificCheck def ce_repo_url @ce_repo_url ||= begin - repo_url = ENV.fetch('CI_REPOSITORY_URL', 'https://gitlab.com/gitlab-org/gitlab-ce.git') + repo_url = ENV.fetch('CI_REPOSITORY_URL', 'https://gitlab.com/gitlab-org/gitlab-foss.git') # This workaround can be removed once we rename the dev CE project - # https://gitlab.com/gitlab-org/gitlab-ce/issues/59107 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/59107 project_name = repo_url =~ /dev\.gitlab\.org/ ? 'gitlabhq' : 'gitlab-ce' repo_url.sub('gitlab-ee', project_name) diff --git a/spec/controllers/boards/lists_controller_spec.rb b/spec/controllers/boards/lists_controller_spec.rb index 1e8a8145b35..802fc1770a4 100644 --- a/spec/controllers/boards/lists_controller_spec.rb +++ b/spec/controllers/boards/lists_controller_spec.rb @@ -185,6 +185,24 @@ describe Boards::ListsController do end end + context 'with a list_type other than :label' do + let!(:closed) { create(:closed_list, board: board, position: 2) } + + it 'saves collapsed preference for user' do + save_setting user: user, board: board, list: closed, setting: { collapsed: true } + + expect(closed.preferences_for(user).collapsed).to eq(true) + expect(response).to have_gitlab_http_status(200) + end + + it 'saves not collapsed preference for user' do + save_setting user: user, board: board, list: closed, setting: { collapsed: false } + + expect(closed.preferences_for(user).collapsed).to eq(false) + expect(response).to have_gitlab_http_status(200) + end + end + def move(user:, board:, list:, position:) sign_in(user) diff --git a/spec/controllers/groups/children_controller_spec.rb b/spec/controllers/groups/children_controller_spec.rb index bced300a24c..171326f3f8b 100644 --- a/spec/controllers/groups/children_controller_spec.rb +++ b/spec/controllers/groups/children_controller_spec.rb @@ -170,7 +170,7 @@ describe Groups::ChildrenController do # Creating the group-to-nest first so it would be loaded into the # relation first before it's parents, this is what would cause the - # crash in: https://gitlab.com/gitlab-org/gitlab-ce/issues/40785. + # crash in: https://gitlab.com/gitlab-org/gitlab-foss/issues/40785. # # If we create the parent groups first, those would be loaded into the # collection first, and the pagination would cut off the actual search diff --git a/spec/controllers/projects/ci/lints_controller_spec.rb b/spec/controllers/projects/ci/lints_controller_spec.rb index 14128fb5b0e..3d8f287f999 100644 --- a/spec/controllers/projects/ci/lints_controller_spec.rb +++ b/spec/controllers/projects/ci/lints_controller_spec.rb @@ -45,7 +45,7 @@ describe Projects::Ci::LintsController do end describe 'POST #create' do - let(:remote_file_path) { 'https://gitlab.com/gitlab-org/gitlab-ce/blob/1234/.gitlab-ci-1.yml' } + let(:remote_file_path) { 'https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.gitlab-ci-1.yml' } let(:remote_file_content) do <<~HEREDOC diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb index 71ee1fd03bf..820ce159633 100644 --- a/spec/controllers/projects/environments_controller_spec.rb +++ b/spec/controllers/projects/environments_controller_spec.rb @@ -701,6 +701,16 @@ describe Projects::EnvironmentsController do expect(response).to have_gitlab_http_status(:no_content) end end + + context 'when query matches case insensitively' do + let(:query) { 'Prod' } + + it 'returns matched results' do + get :search, params: environment_params(format: :json, query: query) + + expect(json_response).to contain_exactly('production') + end + end end def environment_params(opts = {}) diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb index 397ac59546f..ad57c29850b 100644 --- a/spec/controllers/projects/issues_controller_spec.rb +++ b/spec/controllers/projects/issues_controller_spec.rb @@ -795,7 +795,7 @@ describe Projects::IssuesController do control_count = ActiveRecord::QueryRecorder.new { issue.update(description: [issue.description, label].join(' ')) }.count - # Follow-up to get rid of this `2 * label.count` requirement: https://gitlab.com/gitlab-org/gitlab-ce/issues/52230 + # Follow-up to get rid of this `2 * label.count` requirement: https://gitlab.com/gitlab-org/gitlab-foss/issues/52230 expect { issue.update(description: [issue.description, labels].join(' ')) } .not_to exceed_query_limit(control_count + 2 * labels.count) end diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb index eda8c282341..ea702792557 100644 --- a/spec/controllers/projects/merge_requests_controller_spec.rb +++ b/spec/controllers/projects/merge_requests_controller_spec.rb @@ -1055,7 +1055,7 @@ describe Projects::MergeRequestsController do end # we're trying to reduce the overall number of queries for this method. - # set a hard limit for now. https://gitlab.com/gitlab-org/gitlab-ce/issues/52287 + # set a hard limit for now. https://gitlab.com/gitlab-org/gitlab-foss/issues/52287 it 'keeps queries in check' do control_count = ActiveRecord::QueryRecorder.new { get_ci_environments_status }.count @@ -1072,7 +1072,7 @@ describe Projects::MergeRequestsController do create(:deployment, :succeed, environment: environment2, sha: sha, ref: 'master', deployable: build) # TODO address the last 5 queries - # See https://gitlab.com/gitlab-org/gitlab-ce/issues/63952 (5 queries) + # See https://gitlab.com/gitlab-org/gitlab-foss/issues/63952 (5 queries) leeway = 5 expect { get_ci_environments_status }.not_to exceed_all_query_limit(control_count + leeway) end diff --git a/spec/controllers/projects/templates_controller_spec.rb b/spec/controllers/projects/templates_controller_spec.rb index d5ef2b0e114..07b8a36fefc 100644 --- a/spec/controllers/projects/templates_controller_spec.rb +++ b/spec/controllers/projects/templates_controller_spec.rb @@ -99,4 +99,44 @@ describe Projects::TemplatesController do include_examples 'renders 404 when params are invalid' end end + + describe '#names' do + before do + project.add_developer(user) + sign_in(user) + end + + shared_examples 'template names request' do + it 'returns the template names' do + get(:names, params: { namespace_id: project.namespace, template_type: template_type, project_id: project }, format: :json) + + expect(response).to have_gitlab_http_status(200) + expect(json_response.size).to eq(1) + expect(json_response[0]['name']).to eq(expected_template_name) + end + + it 'fails for user with no access' do + other_user = create(:user) + sign_in(other_user) + + get(:names, params: { namespace_id: project.namespace, template_type: template_type, project_id: project }, format: :json) + + expect(response).to have_gitlab_http_status(404) + end + end + + context 'when querying for issue templates' do + it_behaves_like 'template names request' do + let(:template_type) { 'issue' } + let(:expected_template_name) { 'issue_template' } + end + end + + context 'when querying for merge_request templates' do + it_behaves_like 'template names request' do + let(:template_type) { 'merge_request' } + let(:expected_template_name) { 'merge_request_template' } + end + end + end end diff --git a/spec/factories/groups.rb b/spec/factories/groups.rb index 334c0f369cd..d3c6101bad4 100644 --- a/spec/factories/groups.rb +++ b/spec/factories/groups.rb @@ -11,7 +11,7 @@ FactoryBot.define do after(:create) do |group| if group.owner # We could remove this after we have proper constraint: - # https://gitlab.com/gitlab-org/gitlab-ce/issues/43292 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/43292 raise "Don't set owner for groups, use `group.add_owner(user)` instead" end end diff --git a/spec/features/admin/admin_requests_profiles_spec.rb b/spec/features/admin/admin_requests_profiles_spec.rb index 0400b89dbfd..e93c0ff8b20 100644 --- a/spec/features/admin/admin_requests_profiles_spec.rb +++ b/spec/features/admin/admin_requests_profiles_spec.rb @@ -30,26 +30,26 @@ describe 'Admin::RequestsProfilesController' do let(:profiles) do [ { - request_path: '/gitlab-org/gitlab-ce', - name: "|gitlab-org|gitlab-ce_#{time1.to_i}_execution.html", + request_path: '/gitlab-org/gitlab-foss', + name: "|gitlab-org|gitlab-foss_#{time1.to_i}_execution.html", created: time1, profile_mode: 'Execution' }, { - request_path: '/gitlab-org/gitlab-ce', - name: "|gitlab-org|gitlab-ce_#{time2.to_i}_execution.html", + request_path: '/gitlab-org/gitlab-foss', + name: "|gitlab-org|gitlab-foss_#{time2.to_i}_execution.html", created: time2, profile_mode: 'Execution' }, { - request_path: '/gitlab-org/gitlab-ce', - name: "|gitlab-org|gitlab-ce_#{time1.to_i}_memory.html", + request_path: '/gitlab-org/gitlab-foss', + name: "|gitlab-org|gitlab-foss_#{time1.to_i}_memory.html", created: time1, profile_mode: 'Memory' }, { - request_path: '/gitlab-org/gitlab-ce', - name: "|gitlab-org|gitlab-ce_#{time2.to_i}_memory.html", + request_path: '/gitlab-org/gitlab-foss', + name: "|gitlab-org|gitlab-foss_#{time2.to_i}_memory.html", created: time2, profile_mode: 'Memory' }, diff --git a/spec/features/groups/settings/group_badges_spec.rb b/spec/features/groups/settings/group_badges_spec.rb index 9236a50cce5..9328fd9dcba 100644 --- a/spec/features/groups/settings/group_badges_spec.rb +++ b/spec/features/groups/settings/group_badges_spec.rb @@ -7,8 +7,8 @@ describe 'Group Badges' do let(:user) { create(:user) } let(:group) { create(:group) } - let(:badge_link_url) { 'https://gitlab.com/gitlab-org/gitlab-ee/commits/master'} - let(:badge_image_url) { 'https://gitlab.com/gitlab-org/gitlab-ee/badges/master/build.svg'} + let(:badge_link_url) { 'https://gitlab.com/gitlab-org/gitlab/commits/master'} + let(:badge_image_url) { 'https://gitlab.com/gitlab-org/gitlab/badges/master/build.svg'} let!(:badge_1) { create(:group_badge, group: group) } let!(:badge_2) { create(:group_badge, group: group) } diff --git a/spec/features/issues/bulk_assignment_labels_spec.rb b/spec/features/issues/bulk_assignment_labels_spec.rb index 57d04f0bf40..d036fde5657 100644 --- a/spec/features/issues/bulk_assignment_labels_spec.rb +++ b/spec/features/issues/bulk_assignment_labels_spec.rb @@ -306,7 +306,7 @@ describe 'Issues > Labels bulk assignment' do end end - # Special case https://gitlab.com/gitlab-org/gitlab-ce/issues/24877 + # Special case https://gitlab.com/gitlab-org/gitlab-foss/issues/24877 context 'unmarking common label' do before do issue1.labels << bug diff --git a/spec/features/issues/gfm_autocomplete_spec.rb b/spec/features/issues/gfm_autocomplete_spec.rb index cc834df367b..0ff3809a915 100644 --- a/spec/features/issues/gfm_autocomplete_spec.rb +++ b/spec/features/issues/gfm_autocomplete_spec.rb @@ -27,6 +27,8 @@ describe 'GFM autocomplete', :js do it 'updates issue description with GFM reference' do find('.js-issuable-edit').click + wait_for_requests + simulate_input('#issue-description', "@#{user.name[0...3]}") wait_for_requests diff --git a/spec/features/issues/user_interacts_with_awards_spec.rb b/spec/features/issues/user_interacts_with_awards_spec.rb index eab18b72c86..095ae9f276c 100644 --- a/spec/features/issues/user_interacts_with_awards_spec.rb +++ b/spec/features/issues/user_interacts_with_awards_spec.rb @@ -243,7 +243,7 @@ describe 'User interacts with awards' do wait_for_requests end - # Regression test: https://gitlab.com/gitlab-org/gitlab-ce/issues/29529 + # Regression test: https://gitlab.com/gitlab-org/gitlab-foss/issues/29529 it 'does not shows a 500 page', :js do expect(page).to have_text(issue.title) end diff --git a/spec/features/markdown/copy_as_gfm_spec.rb b/spec/features/markdown/copy_as_gfm_spec.rb index c098a1b3e3a..9f26321a1dc 100644 --- a/spec/features/markdown/copy_as_gfm_spec.rb +++ b/spec/features/markdown/copy_as_gfm_spec.rb @@ -40,9 +40,9 @@ describe 'Copy as GFM', :js do <<~GFM # GitLab - [![Build status](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/build.svg)](https://gitlab.com/gitlab-org/gitlab-ce/commits/master) + [![Build status](https://gitlab.com/gitlab-org/gitlab-foss/badges/master/build.svg)](https://gitlab.com/gitlab-org/gitlab-foss/commits/master) - [![CE coverage report](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg?job=coverage)](https://gitlab-org.gitlab.io/gitlab-ce/coverage-ruby) + [![CE coverage report](https://gitlab.com/gitlab-org/gitlab-foss/badges/master/coverage.svg?job=coverage)](https://gitlab-org.gitlab.io/gitlab-ce/coverage-ruby) [![Code Climate](https://codeclimate.com/github/gitlabhq/gitlabhq.svg)](https://codeclimate.com/github/gitlabhq/gitlabhq) @@ -50,7 +50,7 @@ describe 'Copy as GFM', :js do ## Canonical source - The canonical source of GitLab Community Edition is [hosted on GitLab.com](https://gitlab.com/gitlab-org/gitlab-ce/). + The canonical source of GitLab Community Edition is [hosted on GitLab.com](https://gitlab.com/gitlab-org/gitlab-foss/). ## Open source software to collaborate on code diff --git a/spec/features/merge_request/user_posts_notes_spec.rb b/spec/features/merge_request/user_posts_notes_spec.rb index 7d89b8e97a6..733d79127f7 100644 --- a/spec/features/merge_request/user_posts_notes_spec.rb +++ b/spec/features/merge_request/user_posts_notes_spec.rb @@ -174,14 +174,14 @@ describe 'Merge request > User posts notes', :js do find('.js-note-edit').click end - # TODO: https://gitlab.com/gitlab-org/gitlab-ce/issues/48034 + # TODO: https://gitlab.com/gitlab-org/gitlab-foss/issues/48034 xit 'shows the delete link' do page.within('.note-attachment') do is_expected.to have_css('.js-note-attachment-delete') end end - # TODO: https://gitlab.com/gitlab-org/gitlab-ce/issues/48034 + # TODO: https://gitlab.com/gitlab-org/gitlab-foss/issues/48034 xit 'removes the attachment div and resets the edit form' do accept_confirm { find('.js-note-attachment-delete').click } is_expected.not_to have_css('.note-attachment') diff --git a/spec/features/merge_request/user_resolves_conflicts_spec.rb b/spec/features/merge_request/user_resolves_conflicts_spec.rb index dd1ec17ae51..e3ee80a47d7 100644 --- a/spec/features/merge_request/user_resolves_conflicts_spec.rb +++ b/spec/features/merge_request/user_resolves_conflicts_spec.rb @@ -142,7 +142,7 @@ describe 'Merge request > User resolves conflicts', :js do end end - # TODO: https://gitlab.com/gitlab-org/gitlab-ce/issues/48034 + # TODO: https://gitlab.com/gitlab-org/gitlab-foss/issues/48034 xit 'conflicts are resolved in Edit inline mode' do within find('.files-wrapper .diff-file', text: 'files/markdown/ruby-style-guide.md') do wait_for_requests diff --git a/spec/features/merge_request/user_sees_discussions_spec.rb b/spec/features/merge_request/user_sees_discussions_spec.rb index 48f5814322a..319eee0c55a 100644 --- a/spec/features/merge_request/user_sees_discussions_spec.rb +++ b/spec/features/merge_request/user_sees_discussions_spec.rb @@ -74,7 +74,7 @@ describe 'Merge request > User sees threads', :js do visit project_merge_request_path(project, merge_request) end - # TODO: https://gitlab.com/gitlab-org/gitlab-ce/issues/48034 + # TODO: https://gitlab.com/gitlab-org/gitlab-foss/issues/48034 # context 'a regular commit comment' do # let(:note) { create(:note_on_commit, project: project) } # diff --git a/spec/features/merge_request/user_sees_mini_pipeline_graph_spec.rb b/spec/features/merge_request/user_sees_mini_pipeline_graph_spec.rb index 4d801c6ff11..29b8dc19860 100644 --- a/spec/features/merge_request/user_sees_mini_pipeline_graph_spec.rb +++ b/spec/features/merge_request/user_sees_mini_pipeline_graph_spec.rb @@ -34,7 +34,7 @@ describe 'Merge request < User sees mini pipeline graph', :js do create(:ci_build, :manual, pipeline: pipeline, when: 'manual') end - # TODO: https://gitlab.com/gitlab-org/gitlab-ce/issues/48034 + # TODO: https://gitlab.com/gitlab-org/gitlab-foss/issues/48034 xit 'avoids repeated database queries' do before = ActiveRecord::QueryRecorder.new { visit_merge_request(format: :json, serializer: 'widget') } @@ -56,7 +56,7 @@ describe 'Merge request < User sees mini pipeline graph', :js do end # Status icon button styles should update as described in - # https://gitlab.com/gitlab-org/gitlab-ce/issues/42769 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/42769 it 'has unique styles for default, :hover, :active, and :focus states' do find('.mini-pipeline-graph-dropdown-toggle') default_background_color = evaluate_script("$('.mini-pipeline-graph-dropdown-toggle:visible').css('background-color');") diff --git a/spec/features/projects/features_visibility_spec.rb b/spec/features/projects/features_visibility_spec.rb index ca383da5f5c..531592ffd65 100644 --- a/spec/features/projects/features_visibility_spec.rb +++ b/spec/features/projects/features_visibility_spec.rb @@ -218,7 +218,7 @@ describe 'Edit Project Settings' do end end - # Regression spec for https://gitlab.com/gitlab-org/gitlab-ce/issues/25272 + # Regression spec for https://gitlab.com/gitlab-org/gitlab-foss/issues/25272 it "hides comments activity tab only on disabled issues, merge requests and repository" do toggle_feature_off('project[project_feature_attributes][issues_access_level]') @@ -259,7 +259,7 @@ describe 'Edit Project Settings' do end end - # Regression spec for https://gitlab.com/gitlab-org/gitlab-ce/issues/24056 + # Regression spec for https://gitlab.com/gitlab-org/gitlab-foss/issues/24056 describe 'project statistic visibility' do let!(:project) { create(:project, :private) } diff --git a/spec/features/projects/files/user_browses_a_tree_with_a_folder_containing_only_a_folder_spec.rb b/spec/features/projects/files/user_browses_a_tree_with_a_folder_containing_only_a_folder_spec.rb index 6bd569e5ee2..e88fad9d3f7 100644 --- a/spec/features/projects/files/user_browses_a_tree_with_a_folder_containing_only_a_folder_spec.rb +++ b/spec/features/projects/files/user_browses_a_tree_with_a_folder_containing_only_a_folder_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -# This is a regression test for https://gitlab.com/gitlab-org/gitlab-ce/issues/37569 +# This is a regression test for https://gitlab.com/gitlab-org/gitlab-foss/issues/37569 describe 'Projects > Files > User browses a tree with a folder containing only a folder', :js do let(:project) { create(:project, :empty_repo) } let(:user) { project.owner } diff --git a/spec/features/projects/labels/issues_sorted_by_priority_spec.rb b/spec/features/projects/labels/issues_sorted_by_priority_spec.rb index 55629376007..503ac8caddf 100644 --- a/spec/features/projects/labels/issues_sorted_by_priority_spec.rb +++ b/spec/features/projects/labels/issues_sorted_by_priority_spec.rb @@ -13,7 +13,7 @@ describe 'Issue prioritization' do let(:label_4) { create(:label, title: 'label_4', project: project, priority: 4) } let(:label_5) { create(:label, title: 'label_5', project: project) } # no priority - # According to https://gitlab.com/gitlab-org/gitlab-ce/issues/14189#note_4360653 + # According to https://gitlab.com/gitlab-org/gitlab-foss/issues/14189#note_4360653 context 'when issues have one label' do it 'Are sorted properly' do # Issues diff --git a/spec/features/projects/settings/project_badges_spec.rb b/spec/features/projects/settings/project_badges_spec.rb index 5791e30a495..03d2f1cf044 100644 --- a/spec/features/projects/settings/project_badges_spec.rb +++ b/spec/features/projects/settings/project_badges_spec.rb @@ -8,8 +8,8 @@ describe 'Project Badges' do let(:user) { create(:user) } let(:group) { create(:group) } let(:project) { create(:project, namespace: group) } - let(:badge_link_url) { 'https://gitlab.com/gitlab-org/gitlab-ee/commits/master'} - let(:badge_image_url) { 'https://gitlab.com/gitlab-org/gitlab-ee/badges/master/build.svg'} + let(:badge_link_url) { 'https://gitlab.com/gitlab-org/gitlab/commits/master'} + let(:badge_image_url) { 'https://gitlab.com/gitlab-org/gitlab/badges/master/build.svg'} let!(:project_badge) { create(:project_badge, project: project) } let!(:group_badge) { create(:group_badge, group: group) } diff --git a/spec/features/users/terms_spec.rb b/spec/features/users/terms_spec.rb index d44e3622a56..ec2210faa80 100644 --- a/spec/features/users/terms_spec.rb +++ b/spec/features/users/terms_spec.rb @@ -97,7 +97,7 @@ describe 'Users > Terms' do end end - # Disabled until https://gitlab.com/gitlab-org/gitlab-ce/issues/37162 is solved properly + # Disabled until https://gitlab.com/gitlab-org/gitlab-foss/issues/37162 is solved properly xit 'redirects back to the page the user was trying to save' do visit new_project_issue_path(project) diff --git a/spec/fixtures/markdown.md.erb b/spec/fixtures/markdown.md.erb index bbeacf1707b..8016cf7a86d 100644 --- a/spec/fixtures/markdown.md.erb +++ b/spec/fixtures/markdown.md.erb @@ -301,7 +301,7 @@ However the wrapping tags cannot be mixed as such: ### Mermaid > If this is not rendered correctly, see -https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#mermaid +https://gitlab.com/gitlab-org/gitlab-foss/blob/master/doc/user/markdown.md#mermaid It is possible to generate diagrams and flowcharts from text using [Mermaid][mermaid]. diff --git a/spec/fixtures/trace/sample_trace b/spec/fixtures/trace/sample_trace index 8f9747f8143..d774d154496 100644 --- a/spec/fixtures/trace/sample_trace +++ b/spec/fixtures/trace/sample_trace @@ -34,7 +34,7 @@ Removing log/test_json.log Removing tmp/tests/ Removing vendor/ruby/ HEAD is now at b7cbff3d Add `direct_upload` setting for artifacts -From https://gitlab.com/gitlab-org/gitlab-ce +From https://gitlab.com/gitlab-org/gitlab-foss 2dbcb9cb..641bb13b master -> origin/master [32;1mChecking out 21488c74 as master...[0;m [32;1mSkipping Git submodules setup[0;m diff --git a/spec/frontend/boards/services/board_service_spec.js b/spec/frontend/boards/services/board_service_spec.js index e106c2bf1f1..86f49f63f4e 100644 --- a/spec/frontend/boards/services/board_service_spec.js +++ b/spec/frontend/boards/services/board_service_spec.js @@ -97,8 +97,9 @@ describe('BoardService', () => { describe('updateList', () => { const id = 'David Webb'; const position = 'unknown'; + const collapsed = false; const expectedRequest = expect.objectContaining({ - data: JSON.stringify({ list: { position } }), + data: JSON.stringify({ list: { position, collapsed } }), }); let requestSpy; @@ -112,7 +113,7 @@ describe('BoardService', () => { requestSpy.mockReturnValue([200, dummyResponse]); const expectedResponse = expect.objectContaining({ data: dummyResponse }); - return expect(service.updateList(id, position)) + return expect(service.updateList(id, position, collapsed)) .resolves.toEqual(expectedResponse) .then(() => { expect(requestSpy).toHaveBeenCalledWith(expectedRequest); @@ -122,7 +123,7 @@ describe('BoardService', () => { it('fails for error response', () => { requestSpy.mockReturnValue([500]); - return expect(service.updateList(id, position)) + return expect(service.updateList(id, position, collapsed)) .rejects.toThrow() .then(() => { expect(requestSpy).toHaveBeenCalledWith(expectedRequest); diff --git a/spec/frontend/clusters/clusters_bundle_spec.js b/spec/frontend/clusters/clusters_bundle_spec.js index 80816faa5fc..517d8781600 100644 --- a/spec/frontend/clusters/clusters_bundle_spec.js +++ b/spec/frontend/clusters/clusters_bundle_spec.js @@ -11,6 +11,8 @@ import { loadHTMLFixture } from 'helpers/fixtures'; import { setTestTimeout } from 'helpers/timeout'; import $ from 'jquery'; +jest.mock('~/lib/utils/poll'); + const { INSTALLING, INSTALLABLE, INSTALLED, UNINSTALLING } = APPLICATION_STATUS; describe('Clusters', () => { @@ -44,6 +46,17 @@ describe('Clusters', () => { mock.restore(); }); + describe('class constructor', () => { + beforeEach(() => { + jest.spyOn(Clusters.prototype, 'initPolling'); + cluster = new Clusters(); + }); + + it('should call initPolling on construct', () => { + expect(cluster.initPolling).toHaveBeenCalled(); + }); + }); + describe('toggle', () => { it('should update the button and the input field on click', done => { const toggleButton = document.querySelector( @@ -327,14 +340,31 @@ describe('Clusters', () => { }); }); - describe('handleSuccess', () => { + describe('fetch cluster environments success', () => { + beforeEach(() => { + jest.spyOn(cluster.store, 'toggleFetchEnvironments').mockReturnThis(); + jest.spyOn(cluster.store, 'updateEnvironments').mockReturnThis(); + + cluster.handleClusterEnvironmentsSuccess({ data: {} }); + }); + + it('toggles the cluster environments loading icon', () => { + expect(cluster.store.toggleFetchEnvironments).toHaveBeenCalled(); + }); + + it('updates the store when cluster environments is retrieved', () => { + expect(cluster.store.updateEnvironments).toHaveBeenCalled(); + }); + }); + + describe('handleClusterStatusSuccess', () => { beforeEach(() => { jest.spyOn(cluster.store, 'updateStateFromServer').mockReturnThis(); jest.spyOn(cluster, 'toggleIngressDomainHelpText').mockReturnThis(); jest.spyOn(cluster, 'checkForNewInstalls').mockReturnThis(); jest.spyOn(cluster, 'updateContainer').mockReturnThis(); - cluster.handleSuccess({ data: {} }); + cluster.handleClusterStatusSuccess({ data: {} }); }); it('updates clusters store', () => { diff --git a/spec/frontend/diffs/components/diff_content_spec.js b/spec/frontend/diffs/components/diff_content_spec.js new file mode 100644 index 00000000000..b0dd25f746b --- /dev/null +++ b/spec/frontend/diffs/components/diff_content_spec.js @@ -0,0 +1,200 @@ +import { shallowMount, createLocalVue } from '@vue/test-utils'; +import Vuex from 'vuex'; +import { GlLoadingIcon } from '@gitlab/ui'; +import DiffContentComponent from '~/diffs/components/diff_content.vue'; +import InlineDiffView from '~/diffs/components/inline_diff_view.vue'; +import NotDiffableViewer from '~/vue_shared/components/diff_viewer/viewers/not_diffable.vue'; +import NoPreviewViewer from '~/vue_shared/components/diff_viewer/viewers/no_preview.vue'; +import ParallelDiffView from '~/diffs/components/parallel_diff_view.vue'; +import ImageDiffOverlay from '~/diffs/components/image_diff_overlay.vue'; +import NoteForm from '~/notes/components/note_form.vue'; +import DiffDiscussions from '~/diffs/components/diff_discussions.vue'; +import { IMAGE_DIFF_POSITION_TYPE } from '~/diffs/constants'; +import diffFileMockData from '../../../javascripts/diffs/mock_data/diff_file'; +import { diffViewerModes } from '~/ide/constants'; + +const localVue = createLocalVue(); +localVue.use(Vuex); + +describe('DiffContent', () => { + let wrapper; + + const saveDiffDiscussionMock = jest.fn(); + const closeDiffFileCommentFormMock = jest.fn(); + + const noteableTypeGetterMock = jest.fn(); + const getUserDataGetterMock = jest.fn(); + + const isInlineViewGetterMock = jest.fn(); + const isParallelViewGetterMock = jest.fn(); + const getCommentFormForDiffFileGetterMock = jest.fn(); + + const defaultProps = { + diffFile: JSON.parse(JSON.stringify(diffFileMockData)), + }; + + const createComponent = ({ props, state } = {}) => { + const fakeStore = new Vuex.Store({ + getters: { + getNoteableData() { + return { + current_user: { + can_create_note: true, + }, + }; + }, + noteableType: noteableTypeGetterMock, + getUserData: getUserDataGetterMock, + }, + modules: { + /* + we need extra batchComments since vue-test-utils does not + stub async components properly + */ + batchComments: { + namespaced: true, + getters: { + draftsForFile: () => () => true, + }, + }, + diffs: { + namespaced: true, + state: { + projectPath: 'project/path', + endpoint: 'endpoint', + ...state, + }, + getters: { + isInlineView: isInlineViewGetterMock, + isParallelView: isParallelViewGetterMock, + getCommentFormForDiffFile: getCommentFormForDiffFileGetterMock, + }, + actions: { + saveDiffDiscussion: saveDiffDiscussionMock, + closeDiffFileCommentForm: closeDiffFileCommentFormMock, + }, + }, + }, + }); + + wrapper = shallowMount(DiffContentComponent, { + propsData: { + ...defaultProps, + ...props, + }, + localVue, + store: fakeStore, + sync: false, + }); + }; + + afterEach(() => { + wrapper.destroy(); + wrapper = null; + }); + + describe('with text based files', () => { + afterEach(() => { + [isParallelViewGetterMock, isInlineViewGetterMock].forEach(m => m.mockRestore()); + }); + + const textDiffFile = { ...defaultProps.diffFile, viewer: { name: diffViewerModes.text } }; + it('should render diff inline view if `isInlineView` is true', () => { + isInlineViewGetterMock.mockReturnValue(true); + createComponent({ props: { diffFile: textDiffFile } }); + + expect(wrapper.find(InlineDiffView).exists()).toBe(true); + }); + + it('should render parallel view if `isParallelView` getter is true', () => { + isParallelViewGetterMock.mockReturnValue(true); + createComponent({ props: { diffFile: textDiffFile } }); + + expect(wrapper.find(ParallelDiffView).exists()).toBe(true); + }); + + it('renders rendering more lines loading icon', () => { + createComponent({ props: { diffFile: { ...textDiffFile, renderingLines: true } } }); + + expect(wrapper.find(GlLoadingIcon).exists()).toBe(true); + }); + }); + + describe('with empty files', () => { + const emptyDiffFile = { + ...defaultProps.diffFile, + viewer: { name: diffViewerModes.text }, + highlighted_diff_lines: [], + parallel_diff_lines: [], + }; + + it('should render a no preview view if viewer set to no preview', () => { + createComponent({ + props: { diffFile: { ...emptyDiffFile, viewer: { name: diffViewerModes.no_preview } } }, + }); + + expect(wrapper.find(NoPreviewViewer).exists()).toBe(true); + }); + + it('should render not diffable view if viewer set to non_diffable', () => { + createComponent({ + props: { diffFile: { ...emptyDiffFile, viewer: { name: diffViewerModes.not_diffable } } }, + }); + + expect(wrapper.find(NotDiffableViewer).exists()).toBe(true); + }); + }); + + describe('with image files', () => { + const imageDiffFile = { ...defaultProps.diffFile, viewer: { name: diffViewerModes.image } }; + + it('should have image diff view in place', () => { + getCommentFormForDiffFileGetterMock.mockReturnValue(() => true); + createComponent({ props: { diffFile: imageDiffFile } }); + + expect(wrapper.find(InlineDiffView).exists()).toBe(false); + expect(wrapper.find(ImageDiffOverlay).exists()).toBe(true); + }); + + it('renders diff file discussions', () => { + getCommentFormForDiffFileGetterMock.mockReturnValue(() => true); + createComponent({ + props: { + diffFile: { ...imageDiffFile, discussions: [{ name: 'discussion-stub ' }] }, + }, + }); + + expect(wrapper.find(DiffDiscussions).exists()).toBe(true); + }); + + it('emits saveDiffDiscussion when note-form emits `handleFormUpdate`', () => { + const noteStub = {}; + getCommentFormForDiffFileGetterMock.mockReturnValue(() => true); + const currentDiffFile = { ...imageDiffFile, discussions: [{ name: 'discussion-stub ' }] }; + createComponent({ + props: { + diffFile: currentDiffFile, + }, + }); + + wrapper.find(NoteForm).vm.$emit('handleFormUpdate', noteStub); + expect(saveDiffDiscussionMock).toHaveBeenCalledWith( + expect.any(Object), + { + note: noteStub, + formData: { + noteableData: expect.any(Object), + diffFile: currentDiffFile, + positionType: IMAGE_DIFF_POSITION_TYPE, + x: undefined, + y: undefined, + width: undefined, + height: undefined, + noteableType: undefined, + }, + }, + undefined, + ); + }); + }); +}); diff --git a/spec/frontend/fixtures/static/projects.json b/spec/frontend/fixtures/static/projects.json index 68a150f602a..d92d3acdea0 100644 --- a/spec/frontend/fixtures/static/projects.json +++ b/spec/frontend/fixtures/static/projects.json @@ -352,8 +352,8 @@ "archived": false, "visibility_level": 10, "ssh_url_to_repo": "phil@localhost:gitlab-org/gitlab-ce.git", - "http_url_to_repo": "http://localhost:3000/gitlab-org/gitlab-ce.git", - "web_url": "http://localhost:3000/gitlab-org/gitlab-ce", + "http_url_to_repo": "http://localhost:3000/gitlab-org/gitlab-foss.git", + "web_url": "http://localhost:3000/gitlab-org/gitlab-foss", "name": "Gitlab Ce", "name_with_namespace": "Gitlab Org / Gitlab Ce", "path": "gitlab-ce", diff --git a/spec/javascripts/jobs/components/log/duration_badge_spec.js b/spec/frontend/jobs/components/log/duration_badge_spec.js index 2ac34e78909..2ac34e78909 100644 --- a/spec/javascripts/jobs/components/log/duration_badge_spec.js +++ b/spec/frontend/jobs/components/log/duration_badge_spec.js diff --git a/spec/javascripts/jobs/components/log/line_header_spec.js b/spec/frontend/jobs/components/log/line_header_spec.js index 2d2f92fad9d..2d2f92fad9d 100644 --- a/spec/javascripts/jobs/components/log/line_header_spec.js +++ b/spec/frontend/jobs/components/log/line_header_spec.js diff --git a/spec/javascripts/jobs/components/log/line_number_spec.js b/spec/frontend/jobs/components/log/line_number_spec.js index fcf2edf9159..fcf2edf9159 100644 --- a/spec/javascripts/jobs/components/log/line_number_spec.js +++ b/spec/frontend/jobs/components/log/line_number_spec.js diff --git a/spec/javascripts/jobs/components/log/line_spec.js b/spec/frontend/jobs/components/log/line_spec.js index ea593e3c39a..ea593e3c39a 100644 --- a/spec/javascripts/jobs/components/log/line_spec.js +++ b/spec/frontend/jobs/components/log/line_spec.js diff --git a/spec/javascripts/jobs/components/log/log_spec.js b/spec/frontend/jobs/components/log/log_spec.js index 469bbf6714d..cc334009982 100644 --- a/spec/javascripts/jobs/components/log/log_spec.js +++ b/spec/frontend/jobs/components/log/log_spec.js @@ -66,7 +66,7 @@ describe('Job Log', () => { describe('on click header section', () => { it('calls toggleCollapsibleLine', () => { - spyOn(wrapper.vm, 'toggleCollapsibleLine').and.callThrough(); + jest.spyOn(wrapper.vm, 'toggleCollapsibleLine'); wrapper.find('.collapsible-line').trigger('click'); diff --git a/spec/frontend/jobs/components/log/mock_data.js b/spec/frontend/jobs/components/log/mock_data.js new file mode 100644 index 00000000000..db42644de77 --- /dev/null +++ b/spec/frontend/jobs/components/log/mock_data.js @@ -0,0 +1,152 @@ +export const jobLog = [ + { + offset: 1000, + content: [{ text: 'Running with gitlab-runner 12.1.0 (de7731dd)' }], + }, + { + offset: 1001, + content: [{ text: ' on docker-auto-scale-com 8a6210b8' }], + }, + { + offset: 1002, + content: [ + { + text: 'Using Docker executor with image dev.gitlab.org3', + }, + ], + sections: ['prepare-executor'], + section_header: true, + }, + { + offset: 1003, + content: [{ text: 'Starting service postgres:9.6.14 ...', style: 'text-green' }], + sections: ['prepare-executor'], + }, +]; + +export const utilsMockData = [ + { + offset: 1001, + content: [{ text: ' on docker-auto-scale-com 8a6210b8' }], + }, + { + offset: 1002, + content: [ + { + text: + 'Using Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33', + }, + ], + sections: ['prepare-executor'], + section_header: true, + }, + { + offset: 1003, + content: [{ text: 'Starting service postgres:9.6.14 ...' }], + sections: ['prepare-executor'], + }, + { + offset: 1004, + content: [{ text: 'Pulling docker image postgres:9.6.14 ...', style: 'term-fg-l-green' }], + sections: ['prepare-executor'], + }, + { + offset: 1005, + content: [], + sections: ['prepare-executor'], + section_duration: '10:00', + }, +]; + +export const originalTrace = [ + { + offset: 1, + content: [ + { + text: 'Downloading', + }, + ], + }, +]; + +export const regularIncremental = [ + { + offset: 2, + content: [ + { + text: 'log line', + }, + ], + }, +]; + +export const regularIncrementalRepeated = [ + { + offset: 1, + content: [ + { + text: 'log line', + }, + ], + }, +]; + +export const headerTrace = [ + { + offset: 1, + section_header: true, + content: [ + { + text: 'log line', + }, + ], + sections: ['section'], + }, +]; + +export const headerTraceIncremental = [ + { + offset: 1, + section_header: true, + content: [ + { + text: 'updated log line', + }, + ], + sections: ['section'], + }, +]; + +export const collapsibleTrace = [ + { + offset: 1, + section_header: true, + content: [ + { + text: 'log line', + }, + ], + sections: ['section'], + }, + { + offset: 2, + content: [ + { + text: 'log line', + }, + ], + sections: ['section'], + }, +]; + +export const collapsibleTraceIncremental = [ + { + offset: 2, + content: [ + { + text: 'updated log line', + }, + ], + sections: ['section'], + }, +]; diff --git a/spec/frontend/jobs/store/utils_spec.js b/spec/frontend/jobs/store/utils_spec.js index 7b484ccfa07..780d42fd6a1 100644 --- a/spec/frontend/jobs/store/utils_spec.js +++ b/spec/frontend/jobs/store/utils_spec.js @@ -1,45 +1,21 @@ import { logLinesParser, updateIncrementalTrace } from '~/jobs/store/utils'; +import { + utilsMockData, + originalTrace, + regularIncremental, + regularIncrementalRepeated, + headerTrace, + headerTraceIncremental, + collapsibleTrace, + collapsibleTraceIncremental, +} from '../components/log/mock_data'; describe('Jobs Store Utils', () => { describe('logLinesParser', () => { - const mockData = [ - { - offset: 1001, - content: [{ text: ' on docker-auto-scale-com 8a6210b8' }], - }, - { - offset: 1002, - content: [ - { - text: - 'Using Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33', - }, - ], - sections: ['prepare-executor'], - section_header: true, - }, - { - offset: 1003, - content: [{ text: 'Starting service postgres:9.6.14 ...' }], - sections: ['prepare-executor'], - }, - { - offset: 1004, - content: [{ text: 'Pulling docker image postgres:9.6.14 ...', style: 'term-fg-l-green' }], - sections: ['prepare-executor'], - }, - { - offset: 1005, - content: [], - sections: ['prepare-executor'], - section_duration: '10:00', - }, - ]; - let result; beforeEach(() => { - result = logLinesParser(mockData); + result = logLinesParser(utilsMockData); }); describe('regular line', () => { @@ -60,48 +36,27 @@ describe('Jobs Store Utils', () => { it('creates a lines array property with the content of the collpasible section', () => { expect(result[1].lines.length).toEqual(2); - expect(result[1].lines[0].content).toEqual(mockData[2].content); - expect(result[1].lines[1].content).toEqual(mockData[3].content); + expect(result[1].lines[0].content).toEqual(utilsMockData[2].content); + expect(result[1].lines[1].content).toEqual(utilsMockData[3].content); }); }); describe('section duration', () => { it('adds the section information to the header section', () => { - expect(result[1].section_duration).toEqual(mockData[4].section_duration); + expect(result[1].section_duration).toEqual(utilsMockData[4].section_duration); }); it('does not add section duration as a line', () => { - expect(result[1].lines.includes(mockData[4])).toEqual(false); + expect(result[1].lines.includes(utilsMockData[4])).toEqual(false); }); }); }); describe('updateIncrementalTrace', () => { - const originalTrace = [ - { - offset: 1, - content: [ - { - text: 'Downloading', - }, - ], - }, - ]; - describe('without repeated section', () => { it('concats and parses both arrays', () => { const oldLog = logLinesParser(originalTrace); - const newLog = [ - { - offset: 2, - content: [ - { - text: 'log line', - }, - ], - }, - ]; - const result = updateIncrementalTrace(originalTrace, oldLog, newLog); + const result = updateIncrementalTrace(originalTrace, oldLog, regularIncremental); expect(result).toEqual([ { @@ -129,17 +84,7 @@ describe('Jobs Store Utils', () => { describe('with regular line repeated offset', () => { it('updates the last line and formats with the incremental part', () => { const oldLog = logLinesParser(originalTrace); - const newLog = [ - { - offset: 1, - content: [ - { - text: 'log line', - }, - ], - }, - ]; - const result = updateIncrementalTrace(originalTrace, oldLog, newLog); + const result = updateIncrementalTrace(originalTrace, oldLog, regularIncrementalRepeated); expect(result).toEqual([ { @@ -157,32 +102,8 @@ describe('Jobs Store Utils', () => { describe('with header line repeated', () => { it('updates the header line and formats with the incremental part', () => { - const headerTrace = [ - { - offset: 1, - section_header: true, - content: [ - { - text: 'log line', - }, - ], - sections: ['section'], - }, - ]; const oldLog = logLinesParser(headerTrace); - const newLog = [ - { - offset: 1, - section_header: true, - content: [ - { - text: 'updated log line', - }, - ], - sections: ['section'], - }, - ]; - const result = updateIncrementalTrace(headerTrace, oldLog, newLog); + const result = updateIncrementalTrace(headerTrace, oldLog, headerTraceIncremental); expect(result).toEqual([ { @@ -207,40 +128,12 @@ describe('Jobs Store Utils', () => { describe('with collapsible line repeated', () => { it('updates the collapsible line and formats with the incremental part', () => { - const collapsibleTrace = [ - { - offset: 1, - section_header: true, - content: [ - { - text: 'log line', - }, - ], - sections: ['section'], - }, - { - offset: 2, - content: [ - { - text: 'log line', - }, - ], - sections: ['section'], - }, - ]; const oldLog = logLinesParser(collapsibleTrace); - const newLog = [ - { - offset: 2, - content: [ - { - text: 'updated log line', - }, - ], - sections: ['section'], - }, - ]; - const result = updateIncrementalTrace(collapsibleTrace, oldLog, newLog); + const result = updateIncrementalTrace( + collapsibleTrace, + oldLog, + collapsibleTraceIncremental, + ); expect(result).toEqual([ { diff --git a/spec/frontend/lib/utils/datetime_utility_spec.js b/spec/frontend/lib/utils/datetime_utility_spec.js index 751fb5e1b94..9f1700bb243 100644 --- a/spec/frontend/lib/utils/datetime_utility_spec.js +++ b/spec/frontend/lib/utils/datetime_utility_spec.js @@ -248,7 +248,7 @@ describe('datefix', () => { }); describe('parsePikadayDate', () => { - // removed because of https://gitlab.com/gitlab-org/gitlab-ce/issues/39834 + // removed because of https://gitlab.com/gitlab-org/gitlab-foss/issues/39834 }); describe('pikadayToString', () => { diff --git a/spec/frontend/lib/utils/url_utility_spec.js b/spec/frontend/lib/utils/url_utility_spec.js index b0bdd924921..41df93c9a48 100644 --- a/spec/frontend/lib/utils/url_utility_spec.js +++ b/spec/frontend/lib/utils/url_utility_spec.js @@ -15,8 +15,8 @@ describe('URL utility', () => { describe('without relative_url_root', () => { it('returns IDE path with route', () => { - expect(urlUtils.webIDEUrl('/gitlab-org/gitlab-ce/merge_requests/1')).toBe( - '/-/ide/project/gitlab-org/gitlab-ce/merge_requests/1', + expect(urlUtils.webIDEUrl('/gitlab-org/gitlab-foss/merge_requests/1')).toBe( + '/-/ide/project/gitlab-org/gitlab-foss/merge_requests/1', ); }); }); @@ -27,8 +27,8 @@ describe('URL utility', () => { }); it('returns IDE path with route', () => { - expect(urlUtils.webIDEUrl('/gitlab/gitlab-org/gitlab-ce/merge_requests/1')).toBe( - '/gitlab/-/ide/project/gitlab-org/gitlab-ce/merge_requests/1', + expect(urlUtils.webIDEUrl('/gitlab/gitlab-org/gitlab-foss/merge_requests/1')).toBe( + '/gitlab/-/ide/project/gitlab-org/gitlab-foss/merge_requests/1', ); }); }); diff --git a/spec/frontend/notes/components/discussion_actions_spec.js b/spec/frontend/notes/components/discussion_actions_spec.js index f582729d773..d3c8cf72376 100644 --- a/spec/frontend/notes/components/discussion_actions_spec.js +++ b/spec/frontend/notes/components/discussion_actions_spec.js @@ -7,6 +7,18 @@ import ResolveDiscussionButton from '~/notes/components/discussion_resolve_butto import ResolveWithIssueButton from '~/notes/components/discussion_resolve_with_issue_button.vue'; import JumpToNextDiscussionButton from '~/notes/components/discussion_jump_to_next_button.vue'; +// NOTE: clone mock_data so that it is not accidentally mutated +const createDiscussionMock = (props = {}) => + Object.assign(JSON.parse(JSON.stringify(discussionMock)), props); +const createNoteMock = (props = {}) => + Object.assign(JSON.parse(JSON.stringify(discussionMock.notes[0])), props); +const createResolvableNote = () => + createNoteMock({ resolvable: true, current_user: { can_resolve: true } }); +const createUnresolvableNote = () => + createNoteMock({ resolvable: false, current_user: { can_resolve: false } }); +const createUnallowedNote = () => + createNoteMock({ resolvable: true, current_user: { can_resolve: false } }); + describe('DiscussionActions', () => { let wrapper; const createComponentFactory = (shallow = true) => props => { @@ -66,13 +78,23 @@ describe('DiscussionActions', () => { expect(wrapper.find(JumpToNextDiscussionButton).exists()).toBe(false); }); - it('does not renders discussion button for non-member', () => { - const discussion = JSON.parse(JSON.stringify(discussionMock)); - discussion.notes[1].current_user.can_resolve = false; - createComponent({ discussion }); - - expect(wrapper.find(ResolveDiscussionButton).exists()).toBe(false); - expect(wrapper.find(ResolveWithIssueButton).exists()).toBe(false); + describe.each` + desc | notes | shouldRender + ${'with no notes'} | ${[]} | ${true} + ${'with resolvable notes'} | ${[createResolvableNote(), createResolvableNote()]} | ${true} + ${'with unresolvable notes'} | ${[createResolvableNote(), createUnresolvableNote()]} | ${true} + ${'with unallowed note'} | ${[createResolvableNote(), createUnallowedNote()]} | ${false} + `('$desc', ({ notes, shouldRender }) => { + beforeEach(() => { + createComponent({ + discussion: createDiscussionMock({ notes }), + }); + }); + + it(shouldRender ? 'renders resolve buttons' : 'does not render resolve buttons', () => { + expect(wrapper.find(ResolveDiscussionButton).exists()).toBe(shouldRender); + expect(wrapper.find(ResolveWithIssueButton).exists()).toBe(shouldRender); + }); }); }); diff --git a/spec/frontend/notes/components/note_app_spec.js b/spec/frontend/notes/components/note_app_spec.js index d2c17310e9c..a8ec47fd44f 100644 --- a/spec/frontend/notes/components/note_app_spec.js +++ b/spec/frontend/notes/components/note_app_spec.js @@ -8,7 +8,7 @@ import service from '~/notes/services/notes_service'; import createStore from '~/notes/stores'; import '~/behaviors/markdown/render_gfm'; import { setTestTimeout } from 'helpers/timeout'; -// TODO: use generated fixture (https://gitlab.com/gitlab-org/gitlab-ce/issues/62491) +// TODO: use generated fixture (https://gitlab.com/gitlab-org/gitlab-foss/issues/62491) import * as mockData from '../../../javascripts/notes/mock_data'; setTestTimeout(1000); @@ -108,7 +108,7 @@ describe('note_app', () => { it('should render list of notes', () => { const note = mockData.INDIVIDUAL_NOTE_RESPONSE_MAP.GET[ - '/gitlab-org/gitlab-ce/issues/26/discussions.json' + '/gitlab-org/gitlab-foss/issues/26/discussions.json' ][0].notes[0]; expect( diff --git a/spec/frontend/repository/log_tree_spec.js b/spec/frontend/repository/log_tree_spec.js index a9499f7c61b..a3a766eca41 100644 --- a/spec/frontend/repository/log_tree_spec.js +++ b/spec/frontend/repository/log_tree_spec.js @@ -61,7 +61,7 @@ describe('fetchLogsTree', () => { client = { readQuery: () => ({ - projectPath: 'gitlab-org/gitlab-ce', + projectPath: 'gitlab-org/gitlab-foss', ref: 'master', commits: [], }), @@ -81,7 +81,7 @@ describe('fetchLogsTree', () => { it('calls axios get', () => fetchLogsTree(client, '', '0', resolver).then(() => { expect(axios.get).toHaveBeenCalledWith( - 'https://test.com/gitlab-org/gitlab-ce/refs/master/logs_tree', + 'https://test.com/gitlab-org/gitlab-foss/refs/master/logs_tree', { params: { format: 'json', offset: '0' } }, ); })); diff --git a/spec/frontend/test_setup.js b/spec/frontend/test_setup.js index d52aeb1fe6b..6e1f1038dcd 100644 --- a/spec/frontend/test_setup.js +++ b/spec/frontend/test_setup.js @@ -4,13 +4,13 @@ import $ from 'jquery'; import Translate from '~/vue_shared/translate'; import { config as testUtilsConfig } from '@vue/test-utils'; import { initializeTestTimeout } from './helpers/timeout'; -import { loadHTMLFixture, setHTMLFixture } from './helpers/fixtures'; +import { getJSONFixture, loadHTMLFixture, setHTMLFixture } from './helpers/fixtures'; import { setupManualMocks } from './mocks/mocks_helper'; import customMatchers from './matchers'; // Expose jQuery so specs using jQuery plugins can be imported nicely. // Here is an issue to explore better alternatives: -// https://gitlab.com/gitlab-org/gitlab-ee/issues/12448 +// https://gitlab.com/gitlab-org/gitlab/issues/12448 window.jQuery = $; process.on('unhandledRejection', global.promiseRejectionHandler); @@ -43,6 +43,7 @@ Object.defineProperty(global.Element.prototype, 'innerText', { // convenience wrapper for migration from Karma Object.assign(global, { + getJSONFixture, loadFixtures: loadHTMLFixture, setFixtures: setHTMLFixture, diff --git a/spec/frontend/tracking_spec.js b/spec/frontend/tracking_spec.js index 7c98a1a66c9..dfc068ab6ea 100644 --- a/spec/frontend/tracking_spec.js +++ b/spec/frontend/tracking_spec.js @@ -29,24 +29,26 @@ describe('Tracking', () => { forceSecureTracker: true, eventMethod: 'post', contexts: { webPage: true }, - activityTrackingEnabled: false, - pageTrackingEnabled: false, + formTracking: false, + linkClickTracking: false, }); }); it('should activate features based on what has been enabled', () => { initUserTracking(); - expect(snowplowSpy).not.toHaveBeenCalledWith('enableActivityTracking', 30, 30); - expect(snowplowSpy).not.toHaveBeenCalledWith('trackPageView'); + expect(snowplowSpy).toHaveBeenCalledWith('enableActivityTracking', 30, 30); + expect(snowplowSpy).toHaveBeenCalledWith('trackPageView'); + expect(snowplowSpy).not.toHaveBeenCalledWith('enableFormTracking'); + expect(snowplowSpy).not.toHaveBeenCalledWith('enableLinkClickTracking'); window.snowplowOptions = Object.assign({}, window.snowplowOptions, { - activityTrackingEnabled: true, - pageTrackingEnabled: true, + formTracking: true, + linkClickTracking: true, }); initUserTracking(); - expect(snowplowSpy).toHaveBeenCalledWith('enableActivityTracking', 30, 30); - expect(snowplowSpy).toHaveBeenCalledWith('trackPageView'); + expect(snowplowSpy).toHaveBeenCalledWith('enableFormTracking'); + expect(snowplowSpy).toHaveBeenCalledWith('enableLinkClickTracking'); }); }); diff --git a/spec/frontend/vue_shared/components/notes/system_note_spec.js b/spec/frontend/vue_shared/components/notes/system_note_spec.js index dc66150ab8d..a65e3eb294a 100644 --- a/spec/frontend/vue_shared/components/notes/system_note_spec.js +++ b/spec/frontend/vue_shared/components/notes/system_note_spec.js @@ -55,7 +55,7 @@ describe('system note component', () => { // Redcarpet Markdown renderer wraps text in `<p>` tags // we need to strip them because they break layout of commit lists in system notes: - // https://gitlab.com/gitlab-org/gitlab-ce/uploads/b07a10670919254f0220d3ff5c1aa110/jqzI.png + // https://gitlab.com/gitlab-org/gitlab-foss/uploads/b07a10670919254f0220d3ff5c1aa110/jqzI.png it('removes wrapping paragraph from note HTML', () => { expect(vm.$el.querySelector('.system-note-message').innerHTML).toEqual('<span>closed</span>'); }); diff --git a/spec/helpers/issuables_helper_spec.rb b/spec/helpers/issuables_helper_spec.rb index 3c8179460ac..583b8f90db9 100644 --- a/spec/helpers/issuables_helper_spec.rb +++ b/spec/helpers/issuables_helper_spec.rb @@ -190,7 +190,6 @@ describe IssuablesHelper do issuableRef: "##{issue.iid}", markdownPreviewPath: "/#{@project.full_path}/preview_markdown", markdownDocsPath: '/help/user/markdown', - issuableTemplates: [], lockVersion: issue.lock_version, projectPath: @project.path, projectNamespace: @project.namespace.path, diff --git a/spec/helpers/submodule_helper_spec.rb b/spec/helpers/submodule_helper_spec.rb index ab4ef899119..465c76e5e6b 100644 --- a/spec/helpers/submodule_helper_spec.rb +++ b/spec/helpers/submodule_helper_spec.rb @@ -16,71 +16,71 @@ describe SubmoduleHelper do it 'detects ssh on standard port' do allow(Gitlab.config.gitlab_shell).to receive(:ssh_port).and_return(22) # set this just to be sure allow(Gitlab.config.gitlab_shell).to receive(:ssh_path_prefix).and_return(Settings.send(:build_gitlab_shell_ssh_path_prefix)) - stub_url([config.user, '@', config.host, ':gitlab-org/gitlab-ce.git'].join('')) - expect(subject).to eq([namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash')]) + stub_url([config.user, '@', config.host, ':gitlab-org/gitlab-foss.git'].join('')) + expect(subject).to eq([namespace_project_path('gitlab-org', 'gitlab-foss'), namespace_project_tree_path('gitlab-org', 'gitlab-foss', 'hash')]) end it 'detects ssh on non-standard port' do allow(Gitlab.config.gitlab_shell).to receive(:ssh_port).and_return(2222) allow(Gitlab.config.gitlab_shell).to receive(:ssh_path_prefix).and_return(Settings.send(:build_gitlab_shell_ssh_path_prefix)) - stub_url(['ssh://', config.user, '@', config.host, ':2222/gitlab-org/gitlab-ce.git'].join('')) - expect(subject).to eq([namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash')]) + stub_url(['ssh://', config.user, '@', config.host, ':2222/gitlab-org/gitlab-foss.git'].join('')) + expect(subject).to eq([namespace_project_path('gitlab-org', 'gitlab-foss'), namespace_project_tree_path('gitlab-org', 'gitlab-foss', 'hash')]) end it 'detects http on standard port' do allow(Gitlab.config.gitlab).to receive(:port).and_return(80) allow(Gitlab.config.gitlab).to receive(:url).and_return(Settings.send(:build_gitlab_url)) - stub_url(['http://', config.host, '/gitlab-org/gitlab-ce.git'].join('')) - expect(subject).to eq([namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash')]) + stub_url(['http://', config.host, '/gitlab-org/gitlab-foss.git'].join('')) + expect(subject).to eq([namespace_project_path('gitlab-org', 'gitlab-foss'), namespace_project_tree_path('gitlab-org', 'gitlab-foss', 'hash')]) end it 'detects http on non-standard port' do allow(Gitlab.config.gitlab).to receive(:port).and_return(3000) allow(Gitlab.config.gitlab).to receive(:url).and_return(Settings.send(:build_gitlab_url)) - stub_url(['http://', config.host, ':3000/gitlab-org/gitlab-ce.git'].join('')) - expect(subject).to eq([namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash')]) + stub_url(['http://', config.host, ':3000/gitlab-org/gitlab-foss.git'].join('')) + expect(subject).to eq([namespace_project_path('gitlab-org', 'gitlab-foss'), namespace_project_tree_path('gitlab-org', 'gitlab-foss', 'hash')]) end it 'works with relative_url_root' do allow(Gitlab.config.gitlab).to receive(:port).and_return(80) # set this just to be sure allow(Gitlab.config.gitlab).to receive(:relative_url_root).and_return('/gitlab/root') allow(Gitlab.config.gitlab).to receive(:url).and_return(Settings.send(:build_gitlab_url)) - stub_url(['http://', config.host, '/gitlab/root/gitlab-org/gitlab-ce.git'].join('')) - expect(subject).to eq([namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash')]) + stub_url(['http://', config.host, '/gitlab/root/gitlab-org/gitlab-foss.git'].join('')) + expect(subject).to eq([namespace_project_path('gitlab-org', 'gitlab-foss'), namespace_project_tree_path('gitlab-org', 'gitlab-foss', 'hash')]) end it 'works with subgroups' do allow(Gitlab.config.gitlab).to receive(:port).and_return(80) # set this just to be sure allow(Gitlab.config.gitlab).to receive(:relative_url_root).and_return('/gitlab/root') allow(Gitlab.config.gitlab).to receive(:url).and_return(Settings.send(:build_gitlab_url)) - stub_url(['http://', config.host, '/gitlab/root/gitlab-org/sub/gitlab-ce.git'].join('')) - expect(subject).to eq([namespace_project_path('gitlab-org/sub', 'gitlab-ce'), namespace_project_tree_path('gitlab-org/sub', 'gitlab-ce', 'hash')]) + stub_url(['http://', config.host, '/gitlab/root/gitlab-org/sub/gitlab-foss.git'].join('')) + expect(subject).to eq([namespace_project_path('gitlab-org/sub', 'gitlab-foss'), namespace_project_tree_path('gitlab-org/sub', 'gitlab-foss', 'hash')]) end end context 'submodule on github.com' do it 'detects ssh' do - stub_url('git@github.com:gitlab-org/gitlab-ce.git') - expect(subject).to eq(['https://github.com/gitlab-org/gitlab-ce', 'https://github.com/gitlab-org/gitlab-ce/tree/hash']) + stub_url('git@github.com:gitlab-org/gitlab-foss.git') + expect(subject).to eq(['https://github.com/gitlab-org/gitlab-foss', 'https://github.com/gitlab-org/gitlab-foss/tree/hash']) end it 'detects http' do - stub_url('http://github.com/gitlab-org/gitlab-ce.git') - expect(subject).to eq(['https://github.com/gitlab-org/gitlab-ce', 'https://github.com/gitlab-org/gitlab-ce/tree/hash']) + stub_url('http://github.com/gitlab-org/gitlab-foss.git') + expect(subject).to eq(['https://github.com/gitlab-org/gitlab-foss', 'https://github.com/gitlab-org/gitlab-foss/tree/hash']) end it 'detects https' do - stub_url('https://github.com/gitlab-org/gitlab-ce.git') - expect(subject).to eq(['https://github.com/gitlab-org/gitlab-ce', 'https://github.com/gitlab-org/gitlab-ce/tree/hash']) + stub_url('https://github.com/gitlab-org/gitlab-foss.git') + expect(subject).to eq(['https://github.com/gitlab-org/gitlab-foss', 'https://github.com/gitlab-org/gitlab-foss/tree/hash']) end it 'handles urls with no .git on the end' do - stub_url('http://github.com/gitlab-org/gitlab-ce') - expect(subject).to eq(['https://github.com/gitlab-org/gitlab-ce', 'https://github.com/gitlab-org/gitlab-ce/tree/hash']) + stub_url('http://github.com/gitlab-org/gitlab-foss') + expect(subject).to eq(['https://github.com/gitlab-org/gitlab-foss', 'https://github.com/gitlab-org/gitlab-foss/tree/hash']) end it 'returns original with non-standard url' do - stub_url('http://github.com/another/gitlab-org/gitlab-ce.git') + stub_url('http://github.com/another/gitlab-org/gitlab-foss.git') expect(subject).to eq([repo.submodule_url_for, nil]) end end @@ -99,32 +99,32 @@ describe SubmoduleHelper do context 'submodule on gitlab.com' do it 'detects ssh' do - stub_url('git@gitlab.com:gitlab-org/gitlab-ce.git') - expect(subject).to eq(['https://gitlab.com/gitlab-org/gitlab-ce', 'https://gitlab.com/gitlab-org/gitlab-ce/tree/hash']) + stub_url('git@gitlab.com:gitlab-org/gitlab-foss.git') + expect(subject).to eq(['https://gitlab.com/gitlab-org/gitlab-foss', 'https://gitlab.com/gitlab-org/gitlab-foss/tree/hash']) end it 'detects http' do - stub_url('http://gitlab.com/gitlab-org/gitlab-ce.git') - expect(subject).to eq(['https://gitlab.com/gitlab-org/gitlab-ce', 'https://gitlab.com/gitlab-org/gitlab-ce/tree/hash']) + stub_url('http://gitlab.com/gitlab-org/gitlab-foss.git') + expect(subject).to eq(['https://gitlab.com/gitlab-org/gitlab-foss', 'https://gitlab.com/gitlab-org/gitlab-foss/tree/hash']) end it 'detects https' do - stub_url('https://gitlab.com/gitlab-org/gitlab-ce.git') - expect(subject).to eq(['https://gitlab.com/gitlab-org/gitlab-ce', 'https://gitlab.com/gitlab-org/gitlab-ce/tree/hash']) + stub_url('https://gitlab.com/gitlab-org/gitlab-foss.git') + expect(subject).to eq(['https://gitlab.com/gitlab-org/gitlab-foss', 'https://gitlab.com/gitlab-org/gitlab-foss/tree/hash']) end it 'handles urls with no .git on the end' do - stub_url('http://gitlab.com/gitlab-org/gitlab-ce') - expect(subject).to eq(['https://gitlab.com/gitlab-org/gitlab-ce', 'https://gitlab.com/gitlab-org/gitlab-ce/tree/hash']) + stub_url('http://gitlab.com/gitlab-org/gitlab-foss') + expect(subject).to eq(['https://gitlab.com/gitlab-org/gitlab-foss', 'https://gitlab.com/gitlab-org/gitlab-foss/tree/hash']) end it 'handles urls with trailing whitespace' do - stub_url('http://gitlab.com/gitlab-org/gitlab-ce.git ') - expect(subject).to eq(['https://gitlab.com/gitlab-org/gitlab-ce', 'https://gitlab.com/gitlab-org/gitlab-ce/tree/hash']) + stub_url('http://gitlab.com/gitlab-org/gitlab-foss.git ') + expect(subject).to eq(['https://gitlab.com/gitlab-org/gitlab-foss', 'https://gitlab.com/gitlab-org/gitlab-foss/tree/hash']) end it 'returns original with non-standard url' do - stub_url('http://gitlab.com/another/gitlab-org/gitlab-ce.git') + stub_url('http://gitlab.com/another/gitlab-org/gitlab-foss.git') expect(subject).to eq([repo.submodule_url_for, nil]) end end @@ -149,7 +149,7 @@ describe SubmoduleHelper do end it 'returns original' do - stub_url('http://mygitserver.com/gitlab-org/gitlab-ce') + stub_url('http://mygitserver.com/gitlab-org/gitlab-foss') expect(subject).to eq([repo.submodule_url_for, nil]) end diff --git a/spec/javascripts/boards/components/board_spec.js b/spec/javascripts/boards/components/board_spec.js index 683783334c6..ccb657e0df1 100644 --- a/spec/javascripts/boards/components/board_spec.js +++ b/spec/javascripts/boards/components/board_spec.js @@ -5,21 +5,16 @@ import { mockBoardService } from '../mock_data'; describe('Board component', () => { let vm; - let el; - beforeEach(done => { - loadFixtures('boards/show.html'); - - el = document.createElement('div'); + const createComponent = ({ gon = {}, collapsed = false, listType = 'backlog' } = {}) => { + if (Object.prototype.hasOwnProperty.call(gon, 'current_user_id')) { + window.gon = gon; + } else { + window.gon = {}; + } + const el = document.createElement('div'); document.body.appendChild(el); - gl.boardService = mockBoardService({ - boardsEndpoint: '/', - listsEndpoint: '/', - bulkUpdatePath: '/', - boardId: 1, - }); - vm = new Board({ propsData: { boardId: '1', @@ -30,94 +25,244 @@ describe('Board component', () => { id: 1, position: 0, title: 'test', - list_type: 'backlog', + list_type: listType, + collapsed, }), }, }).$mount(el); + }; + + const setUpTests = (done, opts = {}) => { + loadFixtures('boards/show.html'); + + gl.boardService = mockBoardService({ + boardsEndpoint: '/', + listsEndpoint: '/', + bulkUpdatePath: '/', + boardId: 1, + }); + + createComponent(opts); Vue.nextTick(done); - }); + }; + + const cleanUpTests = spy => { + if (spy) { + spy.calls.reset(); + } - afterEach(() => { vm.$destroy(); // remove the component from the DOM document.querySelector('.board').remove(); - localStorage.removeItem(`boards.${vm.boardId}.${vm.list.type}.expanded`); - }); + localStorage.removeItem(`${vm.uniqueKey}.expanded`); + }; - it('board is expandable when list type is backlog', () => { - expect(vm.$el.classList.contains('is-expandable')).toBe(true); - }); + describe('List', () => { + beforeEach(() => { + gl.boardService = mockBoardService({ + boardsEndpoint: '/', + listsEndpoint: '/', + bulkUpdatePath: '/', + boardId: 1, + }); + }); + + it('board is expandable when list type is closed', () => { + expect(new List({ id: 1, list_type: 'closed' }).isExpandable).toBe(true); + }); + + it('board is expandable when list type is label', () => { + expect(new List({ id: 1, list_type: 'closed' }).isExpandable).toBe(true); + }); - it('board is expandable when list type is closed', () => { - expect(new List({ id: 1, list_type: 'closed' }).isExpandable).toBe(true); + it('board is not expandable when list type is blank', () => { + expect(new List({ id: 1, list_type: 'blank' }).isExpandable).toBe(false); + }); }); - it('board is expandable when list type is label', () => { - expect(new List({ id: 1, list_type: 'closed' }).isExpandable).toBe(true); + describe('when clicking the header', () => { + beforeEach(done => { + setUpTests(done); + }); + + afterEach(() => { + cleanUpTests(); + }); + + it('does not collapse', done => { + vm.list.isExpanded = true; + vm.$el.querySelector('.board-header').click(); + + Vue.nextTick() + .then(() => { + expect(vm.$el.classList.contains('is-collapsed')).toBe(false); + }) + .then(done) + .catch(done.fail); + }); }); - it('board is not expandable when list type is blank', () => { - expect(new List({ id: 1, list_type: 'blank' }).isExpandable).toBe(false); + describe('when clicking the collapse icon', () => { + beforeEach(done => { + setUpTests(done); + }); + + afterEach(() => { + cleanUpTests(); + }); + + it('collapses', done => { + Vue.nextTick() + .then(() => { + vm.$el.querySelector('.board-title-caret').click(); + }) + .then(() => { + expect(vm.$el.classList.contains('is-collapsed')).toBe(true); + }) + .then(done) + .catch(done.fail); + }); }); - it('does not collapse when clicking header', done => { - vm.list.isExpanded = true; - vm.$el.querySelector('.board-header').click(); + describe('when clicking the expand icon', () => { + beforeEach(done => { + setUpTests(done); + }); - Vue.nextTick(() => { - expect(vm.$el.classList.contains('is-collapsed')).toBe(false); + afterEach(() => { + cleanUpTests(); + }); + + it('expands', done => { + vm.list.isExpanded = false; - done(); + Vue.nextTick() + .then(() => { + vm.$el.querySelector('.board-title-caret').click(); + }) + .then(() => { + expect(vm.$el.classList.contains('is-collapsed')).toBe(false); + }) + .then(done) + .catch(done.fail); }); }); - it('collapses when clicking the collapse icon', done => { - vm.list.isExpanded = true; + describe('when collapsed is false', () => { + beforeEach(done => { + setUpTests(done); + }); - Vue.nextTick() - .then(() => { - vm.$el.querySelector('.board-title-caret').click(); - }) - .then(() => { - expect(vm.$el.classList.contains('is-collapsed')).toBe(true); - done(); - }) - .catch(done.fail); + afterEach(() => { + cleanUpTests(); + }); + + it('is expanded when collapsed is false', () => { + expect(vm.list.isExpanded).toBe(true); + expect(vm.$el.classList.contains('is-collapsed')).toBe(false); + }); }); - it('expands when clicking the expand icon', done => { - vm.list.isExpanded = false; + describe('when list type is blank', () => { + beforeEach(done => { + setUpTests(done, { listType: 'blank' }); + }); + + afterEach(() => { + cleanUpTests(); + }); + + it('does not render add issue button when list type is blank', done => { + Vue.nextTick(() => { + expect(vm.$el.querySelector('.issue-count-badge-add-button')).toBeNull(); - Vue.nextTick() - .then(() => { - vm.$el.querySelector('.board-title-caret').click(); - }) - .then(() => { - expect(vm.$el.classList.contains('is-collapsed')).toBe(false); done(); - }) - .catch(done.fail); + }); + }); }); - it('is expanded when created', () => { - expect(vm.list.isExpanded).toBe(true); - expect(vm.$el.classList.contains('is-collapsed')).toBe(false); + describe('when list type is backlog', () => { + beforeEach(done => { + setUpTests(done); + }); + + afterEach(() => { + cleanUpTests(); + }); + + it('board is expandable', () => { + expect(vm.$el.classList.contains('is-expandable')).toBe(true); + }); }); - it('does render add issue button', () => { - expect(vm.$el.querySelector('.issue-count-badge-add-button')).not.toBeNull(); + describe('when logged in', () => { + let spy; + + beforeEach(done => { + spy = spyOn(List.prototype, 'update'); + setUpTests(done, { gon: { current_user_id: 1 } }); + }); + + afterEach(() => { + cleanUpTests(spy); + }); + + it('calls list update', done => { + Vue.nextTick() + .then(() => { + vm.$el.querySelector('.board-title-caret').click(); + }) + .then(() => { + expect(vm.list.update).toHaveBeenCalledTimes(1); + }) + .then(done) + .catch(done.fail); + }); }); - it('does not render add issue button when list type is blank', done => { - vm.list.type = 'blank'; + describe('when logged out', () => { + let spy; + beforeEach(done => { + spy = spyOn(List.prototype, 'update'); + setUpTests(done, { collapsed: false }); + }); + + afterEach(() => { + cleanUpTests(spy); + }); - Vue.nextTick(() => { - expect(vm.$el.querySelector('.issue-count-badge-add-button')).toBeNull(); + // can only be one or the other cant toggle window.gon.current_user_id states. + it('clicking on the caret does not call list update', done => { + Vue.nextTick() + .then(() => { + vm.$el.querySelector('.board-title-caret').click(); + }) + .then(() => { + expect(vm.list.update).toHaveBeenCalledTimes(0); + }) + .then(done) + .catch(done.fail); + }); + + it('sets expanded to be the opposite of its value when toggleExpanded is called', done => { + const expanded = true; + vm.list.isExpanded = expanded; + vm.toggleExpanded(); + + Vue.nextTick() + .then(() => { + expect(vm.list.isExpanded).toBe(!expanded); + expect(localStorage.getItem(`${vm.uniqueKey}.expanded`)).toBe(String(!expanded)); + }) + .then(done) + .catch(done.fail); + }); - done(); + it('does render add issue button', () => { + expect(vm.$el.querySelector('.issue-count-badge-add-button')).not.toBeNull(); }); }); }); diff --git a/spec/javascripts/boards/list_spec.js b/spec/javascripts/boards/list_spec.js index 15c9ff6dfb4..d01c37437ad 100644 --- a/spec/javascripts/boards/list_spec.js +++ b/spec/javascripts/boards/list_spec.js @@ -1,5 +1,7 @@ /* global List */ +/* global ListAssignee */ /* global ListIssue */ +/* global ListLabel */ import MockAdapter from 'axios-mock-adapter'; import axios from '~/lib/utils/axios_utils'; @@ -174,18 +176,29 @@ describe('List model', () => { Promise.resolve({ data: { id: 42, + subscribed: false, + assignable_labels_endpoint: '/issue/42/labels', + toggle_subscription_endpoint: '/issue/42/subscriptions', + issue_sidebar_endpoint: '/issue/42/sidebar_info', }, }), ); }); it('adds new issue to top of list', done => { + const user = new ListAssignee({ + id: 1, + name: 'testing 123', + username: 'test', + avatar: 'test_image', + }); + list.issues.push( new ListIssue({ title: 'Testing', id: _.random(10000), confidential: false, - labels: [list.label], + labels: [new ListLabel(list.label)], assignees: [], }), ); @@ -193,8 +206,9 @@ describe('List model', () => { title: 'new issue', id: _.random(10000), confidential: false, - labels: [list.label], - assignees: [], + labels: [new ListLabel(list.label)], + assignees: [user], + subscribed: false, }); list @@ -202,6 +216,12 @@ describe('List model', () => { .then(() => { expect(list.issues.length).toBe(2); expect(list.issues[0]).toBe(dummyIssue); + expect(list.issues[0].subscribed).toBe(false); + expect(list.issues[0].assignableLabelsEndpoint).toBe('/issue/42/labels'); + expect(list.issues[0].toggleSubscriptionEndpoint).toBe('/issue/42/subscriptions'); + expect(list.issues[0].sidebarInfoEndpoint).toBe('/issue/42/sidebar_info'); + expect(list.issues[0].labels).toBe(dummyIssue.labels); + expect(list.issues[0].assignees).toBe(dummyIssue.assignees); }) .then(done) .catch(done.fail); diff --git a/spec/javascripts/diffs/components/diff_content_spec.js b/spec/javascripts/diffs/components/diff_content_spec.js deleted file mode 100644 index 124bdeea45d..00000000000 --- a/spec/javascripts/diffs/components/diff_content_spec.js +++ /dev/null @@ -1,209 +0,0 @@ -import Vue from 'vue'; -import DiffContentComponent from '~/diffs/components/diff_content.vue'; -import { createStore } from 'ee_else_ce/mr_notes/stores'; -import { mountComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; -import { GREEN_BOX_IMAGE_URL, RED_BOX_IMAGE_URL } from 'spec/test_constants'; -import '~/behaviors/markdown/render_gfm'; -import diffFileMockData from '../mock_data/diff_file'; -import discussionsMockData from '../mock_data/diff_discussions'; -import { diffViewerModes } from '~/ide/constants'; - -describe('DiffContent', () => { - const Component = Vue.extend(DiffContentComponent); - let vm; - - beforeEach(() => { - const store = createStore(); - store.state.notes.noteableData = { - current_user: { - can_create_note: false, - }, - preview_note_path: 'path/to/preview', - }; - - vm = mountComponentWithStore(Component, { - store, - props: { - diffFile: JSON.parse(JSON.stringify(diffFileMockData)), - }, - }); - }); - - afterEach(() => { - vm.$destroy(); - }); - - describe('text based files', () => { - it('should render diff inline view', done => { - vm.$store.state.diffs.diffViewType = 'inline'; - - vm.$nextTick(() => { - expect(vm.$el.querySelectorAll('.js-diff-inline-view').length).toEqual(1); - - done(); - }); - }); - - it('should render diff parallel view', done => { - vm.$store.state.diffs.diffViewType = 'parallel'; - - vm.$nextTick(() => { - expect(vm.$el.querySelectorAll('.parallel').length).toEqual(18); - - done(); - }); - }); - - it('renders rendering more lines loading icon', done => { - vm.diffFile.renderingLines = true; - - vm.$nextTick(() => { - expect(vm.$el.querySelector('.loading-container')).not.toBe(null); - - done(); - }); - }); - }); - - describe('empty files', () => { - beforeEach(() => { - vm.diffFile.highlighted_diff_lines = []; - vm.diffFile.parallel_diff_lines = []; - }); - - it('should render a no preview message if viewer returns no preview', done => { - vm.diffFile.viewer.name = diffViewerModes.no_preview; - vm.$nextTick(() => { - const block = vm.$el.querySelector('.diff-viewer .nothing-here-block'); - - expect(block).not.toBe(null); - expect(block.textContent.trim()).toContain('No preview for this file type'); - - done(); - }); - }); - - it('should render a not diffable message if viewer returns not diffable', done => { - vm.diffFile.viewer.name = diffViewerModes.not_diffable; - vm.$nextTick(() => { - const block = vm.$el.querySelector('.diff-viewer .nothing-here-block'); - - expect(block).not.toBe(null); - expect(block.textContent.trim()).toContain( - 'This diff was suppressed by a .gitattributes entry', - ); - - done(); - }); - }); - - it('should not render multiple messages', done => { - vm.diffFile.b_mode = '100755'; - vm.diffFile.viewer.name = diffViewerModes.mode_changed; - - vm.$nextTick(() => { - expect(vm.$el.querySelectorAll('.nothing-here-block').length).toBe(1); - - done(); - }); - }); - - it('should not render diff table', done => { - vm.diffFile.viewer.name = diffViewerModes.no_preview; - vm.$nextTick(() => { - expect(vm.$el.querySelector('table')).toBe(null); - - done(); - }); - }); - }); - - describe('Non-Text diffs', () => { - beforeEach(() => { - vm.diffFile.viewer.name = 'image'; - }); - - describe('image diff', () => { - beforeEach(done => { - vm.diffFile.new_path = GREEN_BOX_IMAGE_URL; - vm.diffFile.new_sha = 'DEF'; - vm.diffFile.old_path = RED_BOX_IMAGE_URL; - vm.diffFile.old_sha = 'ABC'; - vm.diffFile.view_path = ''; - vm.diffFile.discussions = [{ ...discussionsMockData }]; - vm.$store.state.diffs.commentForms.push({ - fileHash: vm.diffFile.file_hash, - x: 10, - y: 20, - width: 100, - height: 200, - }); - - vm.$nextTick(done); - }); - - it('should have image diff view in place', () => { - expect(vm.$el.querySelectorAll('.js-diff-inline-view').length).toEqual(0); - - expect(vm.$el.querySelectorAll('.diff-viewer .image').length).toEqual(1); - }); - - it('renders image diff overlay', () => { - expect(vm.$el.querySelector('.image-diff-overlay')).not.toBe(null); - }); - - it('renders diff file discussions', () => { - expect(vm.$el.querySelectorAll('.discussion .note.timeline-entry').length).toEqual(5); - }); - - describe('handleSaveNote', () => { - it('dispatches handleSaveNote', () => { - spyOn(vm.$store, 'dispatch').and.stub(); - - vm.handleSaveNote('test'); - - expect(vm.$store.dispatch).toHaveBeenCalledWith('diffs/saveDiffDiscussion', { - note: 'test', - formData: { - noteableData: jasmine.anything(), - noteableType: jasmine.anything(), - diffFile: vm.diffFile, - positionType: 'image', - x: 10, - y: 20, - width: 100, - height: 200, - }, - }); - }); - }); - }); - - describe('file diff', () => { - it('should have download buttons in place', done => { - const el = vm.$el; - vm.diffFile.new_path = 'test.abc'; - vm.diffFile.new_sha = 'DEF'; - vm.diffFile.old_path = 'test.abc'; - vm.diffFile.old_sha = 'ABC'; - vm.diffFile.viewer.name = diffViewerModes.added; - - vm.$nextTick(() => { - expect(el.querySelectorAll('.js-diff-inline-view').length).toEqual(0); - - expect(el.querySelector('.deleted .file-info').textContent.trim()).toContain('test.abc'); - expect(el.querySelector('.deleted .btn.btn-default').textContent.trim()).toContain( - 'Download', - ); - - expect(el.querySelector('.added .file-info').textContent.trim()).toContain('test.abc'); - expect(el.querySelector('.added .btn.btn-default').textContent.trim()).toContain( - 'Download', - ); - - done(); - }); - }); - }); - }); -}); diff --git a/spec/javascripts/frequent_items/mock_data.js b/spec/javascripts/frequent_items/mock_data.js index cf3602f42d6..3ca5b4c7446 100644 --- a/spec/javascripts/frequent_items/mock_data.js +++ b/spec/javascripts/frequent_items/mock_data.js @@ -75,7 +75,7 @@ export const mockProject = { id: 1, name: 'GitLab Community Edition', namespace: 'gitlab-org / gitlab-ce', - webUrl: `${gl.TEST_HOST}/gitlab-org/gitlab-ce`, + webUrl: `${gl.TEST_HOST}/gitlab-org/gitlab-foss`, avatarUrl: null, }; @@ -83,7 +83,7 @@ export const mockRawProject = { id: 1, name: 'GitLab Community Edition', name_with_namespace: 'gitlab-org / gitlab-ce', - web_url: `${gl.TEST_HOST}/gitlab-org/gitlab-ce`, + web_url: `${gl.TEST_HOST}/gitlab-org/gitlab-foss`, avatar_url: null, }; @@ -92,7 +92,7 @@ export const mockFrequentProjects = [ id: 1, name: 'GitLab Community Edition', namespace: 'gitlab-org / gitlab-ce', - webUrl: `${gl.TEST_HOST}/gitlab-org/gitlab-ce`, + webUrl: `${gl.TEST_HOST}/gitlab-org/gitlab-foss`, avatarUrl: null, frequency: 1, lastAccessedOn: Date.now(), diff --git a/spec/javascripts/helpers/vue_test_utils_helper.js b/spec/javascripts/helpers/vue_test_utils_helper.js index 5b749b11246..1f5d8716dd3 100644 --- a/spec/javascripts/helpers/vue_test_utils_helper.js +++ b/spec/javascripts/helpers/vue_test_utils_helper.js @@ -1,5 +1,5 @@ // No new code should be added to this file. Instead, modify the // file this one re-exports from. For more detail about why, see: -// https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/31349 +// https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/31349 export * from '../../frontend/helpers/vue_test_utils_helper'; diff --git a/spec/javascripts/ide/stores/actions/tree_spec.js b/spec/javascripts/ide/stores/actions/tree_spec.js index 674ecdc6764..0c3c4147501 100644 --- a/spec/javascripts/ide/stores/actions/tree_spec.js +++ b/spec/javascripts/ide/stores/actions/tree_spec.js @@ -73,7 +73,7 @@ describe('Multi-file store tree actions', () => { .dispatch('getFiles', basicCallParameters) .then(() => { // The populating of the tree is deferred for performance reasons. - // See this merge request for details: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25700 + // See this merge request for details: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/25700 jasmine.clock().tick(1); }) .then(() => { diff --git a/spec/javascripts/image_diff/helpers/init_image_diff_spec.js b/spec/javascripts/image_diff/helpers/init_image_diff_spec.js new file mode 100644 index 00000000000..ba501d58965 --- /dev/null +++ b/spec/javascripts/image_diff/helpers/init_image_diff_spec.js @@ -0,0 +1,52 @@ +import initImageDiffHelper from '~/image_diff/helpers/init_image_diff'; +import ImageDiff from '~/image_diff/image_diff'; +import ReplacedImageDiff from '~/image_diff/replaced_image_diff'; + +describe('initImageDiff', () => { + let glCache; + let fileEl; + + beforeEach(() => { + window.gl = window.gl || (window.gl = {}); + glCache = window.gl; + fileEl = document.createElement('div'); + fileEl.innerHTML = ` + <div class="diff-file"></div> + `; + + spyOn(ReplacedImageDiff.prototype, 'init').and.callFake(() => {}); + spyOn(ImageDiff.prototype, 'init').and.callFake(() => {}); + }); + + afterEach(() => { + window.gl = glCache; + }); + + it('should initialize ImageDiff if js-single-image', () => { + const diffFileEl = fileEl.querySelector('.diff-file'); + diffFileEl.innerHTML = ` + <div class="js-single-image"> + </div> + `; + + const imageDiff = initImageDiffHelper.initImageDiff(fileEl, true, false); + + expect(ImageDiff.prototype.init).toHaveBeenCalled(); + expect(imageDiff.canCreateNote).toEqual(true); + expect(imageDiff.renderCommentBadge).toEqual(false); + }); + + it('should initialize ReplacedImageDiff if js-replaced-image', () => { + const diffFileEl = fileEl.querySelector('.diff-file'); + diffFileEl.innerHTML = ` + <div class="js-replaced-image"> + </div> + `; + + const replacedImageDiff = initImageDiffHelper.initImageDiff(fileEl, false, true); + + expect(ReplacedImageDiff.prototype.init).toHaveBeenCalled(); + expect(replacedImageDiff.canCreateNote).toEqual(false); + expect(replacedImageDiff.renderCommentBadge).toEqual(true); + }); +}); diff --git a/spec/javascripts/image_diff/helpers/utils_helper_spec.js b/spec/javascripts/image_diff/helpers/utils_helper_spec.js index 6f62ee3f93b..3b6378be883 100644 --- a/spec/javascripts/image_diff/helpers/utils_helper_spec.js +++ b/spec/javascripts/image_diff/helpers/utils_helper_spec.js @@ -1,6 +1,4 @@ import * as utilsHelper from '~/image_diff/helpers/utils_helper'; -import ImageDiff from '~/image_diff/image_diff'; -import ReplacedImageDiff from '~/image_diff/replaced_image_diff'; import ImageBadge from '~/image_diff/image_badge'; import * as mockData from '../mock_data'; @@ -151,53 +149,4 @@ describe('utilsHelper', () => { }); }); }); - - describe('initImageDiff', () => { - let glCache; - let fileEl; - - beforeEach(() => { - window.gl = window.gl || (window.gl = {}); - glCache = window.gl; - fileEl = document.createElement('div'); - fileEl.innerHTML = ` - <div class="diff-file"></div> - `; - - spyOn(ReplacedImageDiff.prototype, 'init').and.callFake(() => {}); - spyOn(ImageDiff.prototype, 'init').and.callFake(() => {}); - }); - - afterEach(() => { - window.gl = glCache; - }); - - it('should initialize ImageDiff if js-single-image', () => { - const diffFileEl = fileEl.querySelector('.diff-file'); - diffFileEl.innerHTML = ` - <div class="js-single-image"> - </div> - `; - - const imageDiff = utilsHelper.initImageDiff(fileEl, true, false); - - expect(ImageDiff.prototype.init).toHaveBeenCalled(); - expect(imageDiff.canCreateNote).toEqual(true); - expect(imageDiff.renderCommentBadge).toEqual(false); - }); - - it('should initialize ReplacedImageDiff if js-replaced-image', () => { - const diffFileEl = fileEl.querySelector('.diff-file'); - diffFileEl.innerHTML = ` - <div class="js-replaced-image"> - </div> - `; - - const replacedImageDiff = utilsHelper.initImageDiff(fileEl, false, true); - - expect(ReplacedImageDiff.prototype.init).toHaveBeenCalled(); - expect(replacedImageDiff.canCreateNote).toEqual(false); - expect(replacedImageDiff.renderCommentBadge).toEqual(true); - }); - }); }); diff --git a/spec/javascripts/image_diff/init_discussion_tab_spec.js b/spec/javascripts/image_diff/init_discussion_tab_spec.js index 7cacc45ab62..5eb87e1df25 100644 --- a/spec/javascripts/image_diff/init_discussion_tab_spec.js +++ b/spec/javascripts/image_diff/init_discussion_tab_spec.js @@ -1,5 +1,5 @@ import initDiscussionTab from '~/image_diff/init_discussion_tab'; -import imageDiffHelper from '~/image_diff/helpers/index'; +import initImageDiffHelper from '~/image_diff/helpers/init_image_diff'; describe('initDiscussionTab', () => { beforeEach(() => { @@ -12,7 +12,7 @@ describe('initDiscussionTab', () => { }); it('should pass canCreateNote as false to initImageDiff', done => { - spyOn(imageDiffHelper, 'initImageDiff').and.callFake((diffFileEl, canCreateNote) => { + spyOn(initImageDiffHelper, 'initImageDiff').and.callFake((diffFileEl, canCreateNote) => { expect(canCreateNote).toEqual(false); done(); }); @@ -21,7 +21,7 @@ describe('initDiscussionTab', () => { }); it('should pass renderCommentBadge as true to initImageDiff', done => { - spyOn(imageDiffHelper, 'initImageDiff').and.callFake( + spyOn(initImageDiffHelper, 'initImageDiff').and.callFake( (diffFileEl, canCreateNote, renderCommentBadge) => { expect(renderCommentBadge).toEqual(true); done(); @@ -32,9 +32,9 @@ describe('initDiscussionTab', () => { }); it('should call initImageDiff for each diffFileEls', () => { - spyOn(imageDiffHelper, 'initImageDiff').and.callFake(() => {}); + spyOn(initImageDiffHelper, 'initImageDiff').and.callFake(() => {}); initDiscussionTab(); - expect(imageDiffHelper.initImageDiff.calls.count()).toEqual(2); + expect(initImageDiffHelper.initImageDiff.calls.count()).toEqual(2); }); }); diff --git a/spec/javascripts/issue_show/components/app_spec.js b/spec/javascripts/issue_show/components/app_spec.js index 2770743937e..c3d1440c34e 100644 --- a/spec/javascripts/issue_show/components/app_spec.js +++ b/spec/javascripts/issue_show/components/app_spec.js @@ -1,3 +1,5 @@ +/* eslint-disable no-unused-vars */ +import GLDropdown from '~/gl_dropdown'; import Vue from 'vue'; import MockAdapter from 'axios-mock-adapter'; import axios from '~/lib/utils/axios_utils'; @@ -52,6 +54,7 @@ describe('Issuable output', () => { markdownDocsPath: '/', projectNamespace: '/', projectPath: '/', + issuableTemplateNamesPath: '/issuable-templates-path', }, }).$mount(); @@ -129,11 +132,11 @@ describe('Issuable output', () => { }); it('does not update formState if form is already open', done => { - vm.openForm(); + vm.updateAndShowForm(); vm.state.titleText = 'testing 123'; - vm.openForm(); + vm.updateAndShowForm(); Vue.nextTick(() => { expect(vm.store.formState.title).not.toBe('testing 123'); @@ -284,7 +287,7 @@ describe('Issuable output', () => { }); }); - it('shows error mesage from backend if exists', done => { + it('shows error message from backend if exists', done => { const msg = 'Custom error message from backend'; spyOn(vm.service, 'updateIssuable').and.callFake( // eslint-disable-next-line prefer-promise-reject-errors @@ -405,20 +408,20 @@ describe('Issuable output', () => { }); }); - describe('open form', () => { + describe('updateAndShowForm', () => { it('shows locked warning if form is open & data is different', done => { vm.$nextTick() .then(() => { - vm.openForm(); + vm.updateAndShowForm(); vm.poll.makeRequest(); + + return new Promise(resolve => { + vm.$watch('formState.lockedWarningVisible', value => { + if (value) resolve(); + }); + }); }) - // Wait for the request - .then(vm.$nextTick) - // Wait for the successCallback to update the store state - .then(vm.$nextTick) - // Wait for the new state to flow to the Vue components - .then(vm.$nextTick) .then(() => { expect(vm.formState.lockedWarningVisible).toEqual(true); expect(vm.formState.lock_version).toEqual(1); @@ -429,6 +432,41 @@ describe('Issuable output', () => { }); }); + describe('requestTemplatesAndShowForm', () => { + beforeEach(() => { + spyOn(vm, 'updateAndShowForm'); + }); + + it('shows the form if template names request is successful', done => { + const mockData = [{ name: 'Bug' }]; + mock.onGet('/issuable-templates-path').reply(() => Promise.resolve([200, mockData])); + + vm.requestTemplatesAndShowForm() + .then(() => { + expect(vm.updateAndShowForm).toHaveBeenCalledWith(mockData); + }) + .then(done) + .catch(done.fail); + }); + + it('shows the form if template names request failed', done => { + mock + .onGet('/issuable-templates-path') + .reply(() => Promise.reject(new Error('something went wrong'))); + + vm.requestTemplatesAndShowForm() + .then(() => { + expect(document.querySelector('.flash-container .flash-text').textContent).toContain( + 'Error updating issue', + ); + + expect(vm.updateAndShowForm).toHaveBeenCalledWith(); + }) + .then(done) + .catch(done.fail); + }); + }); + describe('show inline edit button', () => { it('should not render by default', () => { expect(vm.$el.querySelector('.title-container .note-action-button')).toBeDefined(); diff --git a/spec/javascripts/jobs/components/artifacts_block_spec.js b/spec/javascripts/jobs/components/artifacts_block_spec.js index 58998d038e5..9cb56737f3e 100644 --- a/spec/javascripts/jobs/components/artifacts_block_spec.js +++ b/spec/javascripts/jobs/components/artifacts_block_spec.js @@ -18,9 +18,9 @@ describe('Artifacts block', () => { }; const nonExpiredArtifact = { - download_path: '/gitlab-org/gitlab-ce/-/jobs/98314558/artifacts/download', - browse_path: '/gitlab-org/gitlab-ce/-/jobs/98314558/artifacts/browse', - keep_path: '/gitlab-org/gitlab-ce/-/jobs/98314558/artifacts/keep', + download_path: '/gitlab-org/gitlab-foss/-/jobs/98314558/artifacts/download', + browse_path: '/gitlab-org/gitlab-foss/-/jobs/98314558/artifacts/browse', + keep_path: '/gitlab-org/gitlab-foss/-/jobs/98314558/artifacts/keep', expire_at: expireAt, expired: false, }; diff --git a/spec/javascripts/jobs/components/jobs_container_spec.js b/spec/javascripts/jobs/components/jobs_container_spec.js index fa3a2c4c266..119b18b7557 100644 --- a/spec/javascripts/jobs/components/jobs_container_spec.js +++ b/spec/javascripts/jobs/components/jobs_container_spec.js @@ -8,7 +8,7 @@ describe('Jobs List block', () => { const retried = { status: { - details_path: '/gitlab-org/gitlab-ce/pipelines/28029444', + details_path: '/gitlab-org/gitlab-foss/pipelines/28029444', group: 'success', has_details: true, icon: 'status_success', @@ -24,7 +24,7 @@ describe('Jobs List block', () => { const active = { name: 'test', status: { - details_path: '/gitlab-org/gitlab-ce/pipelines/28029444', + details_path: '/gitlab-org/gitlab-foss/pipelines/28029444', group: 'success', has_details: true, icon: 'status_success', @@ -40,7 +40,7 @@ describe('Jobs List block', () => { const job = { name: 'build', status: { - details_path: '/gitlab-org/gitlab-ce/pipelines/28029444', + details_path: '/gitlab-org/gitlab-foss/pipelines/28029444', group: 'success', has_details: true, icon: 'status_success', diff --git a/spec/javascripts/jobs/components/log/mock_data.js b/spec/javascripts/jobs/components/log/mock_data.js deleted file mode 100644 index 54a6d31b278..00000000000 --- a/spec/javascripts/jobs/components/log/mock_data.js +++ /dev/null @@ -1,26 +0,0 @@ -// eslint-disable-next-line import/prefer-default-export -export const jobLog = [ - { - offset: 1000, - content: [{ text: 'Running with gitlab-runner 12.1.0 (de7731dd)' }], - }, - { - offset: 1001, - content: [{ text: ' on docker-auto-scale-com 8a6210b8' }], - }, - { - offset: 1002, - content: [ - { - text: 'Using Docker executor with image dev.gitlab.org3', - }, - ], - sections: ['prepare-executor'], - section_header: true, - }, - { - offset: 1003, - content: [{ text: 'Starting service postgres:9.6.14 ...', style: 'text-green' }], - sections: ['prepare-executor'], - }, -]; diff --git a/spec/javascripts/jobs/components/stages_dropdown_spec.js b/spec/javascripts/jobs/components/stages_dropdown_spec.js index 86b7a8d7848..a34337310d6 100644 --- a/spec/javascripts/jobs/components/stages_dropdown_spec.js +++ b/spec/javascripts/jobs/components/stages_dropdown_spec.js @@ -11,7 +11,7 @@ describe('Stages Dropdown', () => { id: 28029444, details: { status: { - details_path: '/gitlab-org/gitlab-ce/pipelines/28029444', + details_path: '/gitlab-org/gitlab-foss/pipelines/28029444', group: 'success', has_details: true, icon: 'status_success', diff --git a/spec/javascripts/merge_request_tabs_spec.js b/spec/javascripts/merge_request_tabs_spec.js index 3a53ecacb88..b424cbc866d 100644 --- a/spec/javascripts/merge_request_tabs_spec.js +++ b/spec/javascripts/merge_request_tabs_spec.js @@ -1,4 +1,4 @@ -/* eslint-disable no-var, object-shorthand */ +/* eslint-disable no-var */ import $ from 'jquery'; import MockAdapter from 'axios-mock-adapter'; import axios from '~/lib/utils/axios_utils'; @@ -28,7 +28,7 @@ describe('MergeRequestTabs', function() { beforeEach(function() { mrPageMock = initMrPage(); - this.class = new MergeRequestTabs({ stubLocation: stubLocation }); + this.class = new MergeRequestTabs({ stubLocation }); setLocation(); this.spies = { @@ -57,10 +57,10 @@ describe('MergeRequestTabs', function() { metaKey: false, ctrlKey: false, which: 1, - stopImmediatePropagation: function() {}, - preventDefault: function() {}, + stopImmediatePropagation() {}, + preventDefault() {}, currentTarget: { - getAttribute: function(attr) { + getAttribute(attr) { return attr === 'href' ? tabUrl : null; }, }, diff --git a/spec/javascripts/monitoring/charts/time_series_spec.js b/spec/javascripts/monitoring/charts/time_series_spec.js index d145a64e8d0..f6a5ed03c0d 100644 --- a/spec/javascripts/monitoring/charts/time_series_spec.js +++ b/spec/javascripts/monitoring/charts/time_series_spec.js @@ -23,7 +23,6 @@ describe('Time series component', () => { store = createStore(); store.commit(`monitoringDashboard/${types.RECEIVE_METRICS_DATA_SUCCESS}`, MonitoringMock.data); store.commit(`monitoringDashboard/${types.RECEIVE_DEPLOYMENTS_DATA_SUCCESS}`, deploymentData); - store.dispatch('monitoringDashboard/setFeatureFlags', { exportMetricsToCsvEnabled: true }); [mockGraphData] = store.state.monitoringDashboard.groups[0].metrics; makeTimeSeriesChart = (graphData, type) => @@ -61,19 +60,6 @@ describe('Time series component', () => { expect(timeSeriesChart.find('.js-graph-widgets').text()).toBe(mockWidgets); }); - describe('when exportMetricsToCsvEnabled is disabled', () => { - beforeEach(() => { - store.dispatch('monitoringDashboard/setFeatureFlags', { exportMetricsToCsvEnabled: false }); - }); - - it('does not render the Download CSV button', done => { - timeSeriesChart.vm.$nextTick(() => { - expect(timeSeriesChart.contains('glbutton-stub')).toBe(false); - done(); - }); - }); - }); - describe('methods', () => { describe('formatTooltipText', () => { const mockDate = deploymentData[0].created_at; @@ -234,24 +220,6 @@ describe('Time series component', () => { expect(timeSeriesChart.vm.yAxisLabel).toBe('CPU'); }); }); - - describe('csvText', () => { - it('converts data from json to csv', () => { - const header = `timestamp,${mockGraphData.y_label}`; - const data = mockGraphData.queries[0].result[0].values; - const firstRow = `${data[0][0]},${data[0][1]}`; - - expect(timeSeriesChart.vm.csvText).toMatch(`^${header}\r\n${firstRow}`); - }); - }); - - describe('downloadLink', () => { - it('produces a link to download metrics as csv', () => { - const link = timeSeriesChart.vm.downloadLink; - - expect(link).toContain('blob:'); - }); - }); }); afterEach(() => { diff --git a/spec/javascripts/monitoring/components/dashboard_spec.js b/spec/javascripts/monitoring/components/dashboard_spec.js index 15e41e2fe93..6ce32d21f45 100644 --- a/spec/javascripts/monitoring/components/dashboard_spec.js +++ b/spec/javascripts/monitoring/components/dashboard_spec.js @@ -378,7 +378,7 @@ describe('Dashboard', () => { }); }); - // https://gitlab.com/gitlab-org/gitlab-ce/issues/66922 + // https://gitlab.com/gitlab-org/gitlab-foss/issues/66922 // eslint-disable-next-line jasmine/no-disabled-tests xdescribe('link to chart', () => { let wrapper; diff --git a/spec/javascripts/monitoring/store/mutations_spec.js b/spec/javascripts/monitoring/store/mutations_spec.js index 43776b1b7f2..bdb68a80a8a 100644 --- a/spec/javascripts/monitoring/store/mutations_spec.js +++ b/spec/javascripts/monitoring/store/mutations_spec.js @@ -115,14 +115,14 @@ describe('Monitoring mutations', () => { environmentsEndpoint: 'environments.json', deploymentsEndpoint: 'deployments.json', dashboardEndpoint: 'dashboard.json', - projectPath: '/gitlab-org/gitlab-ce', + projectPath: '/gitlab-org/gitlab-foss', }); expect(stateCopy.metricsEndpoint).toEqual('additional_metrics.json'); expect(stateCopy.environmentsEndpoint).toEqual('environments.json'); expect(stateCopy.deploymentsEndpoint).toEqual('deployments.json'); expect(stateCopy.dashboardEndpoint).toEqual('dashboard.json'); - expect(stateCopy.projectPath).toEqual('/gitlab-org/gitlab-ce'); + expect(stateCopy.projectPath).toEqual('/gitlab-org/gitlab-foss'); }); }); diff --git a/spec/javascripts/notes/components/note_awards_list_spec.js b/spec/javascripts/notes/components/note_awards_list_spec.js index 6a6a810acff..ede541a5247 100644 --- a/spec/javascripts/notes/components/note_awards_list_spec.js +++ b/spec/javascripts/notes/components/note_awards_list_spec.js @@ -32,7 +32,7 @@ describe('note_awards_list component', () => { noteAuthorId: 2, noteId: '545', canAwardEmoji: true, - toggleAwardPath: '/gitlab-org/gitlab-ce/notes/545/toggle_award_emoji', + toggleAwardPath: '/gitlab-org/gitlab-foss/notes/545/toggle_award_emoji', }, }).$mount(); }); @@ -72,7 +72,7 @@ describe('note_awards_list component', () => { noteAuthorId: 2, noteId: '545', canAwardEmoji: false, - toggleAwardPath: '/gitlab-org/gitlab-ce/notes/545/toggle_award_emoji', + toggleAwardPath: '/gitlab-org/gitlab-foss/notes/545/toggle_award_emoji', }, }).$mount(); }); diff --git a/spec/javascripts/notes/components/note_form_spec.js b/spec/javascripts/notes/components/note_form_spec.js index b632ee6736d..96aa7824cec 100644 --- a/spec/javascripts/notes/components/note_form_spec.js +++ b/spec/javascripts/notes/components/note_form_spec.js @@ -17,7 +17,7 @@ describe('issue_note_form component', () => { return shallowMount(NoteForm, { store, propsData: props, - // see https://gitlab.com/gitlab-org/gitlab-ce/issues/56317 for the following + // see https://gitlab.com/gitlab-org/gitlab-foss/issues/56317 for the following localVue, sync: false, }); diff --git a/spec/javascripts/notes/mock_data.js b/spec/javascripts/notes/mock_data.js index 98a9150d05d..dc914ce8355 100644 --- a/spec/javascripts/notes/mock_data.js +++ b/spec/javascripts/notes/mock_data.js @@ -1,11 +1,11 @@ // Copied to ee/spec/frontend/notes/mock_data.js export const notesDataMock = { - discussionsPath: '/gitlab-org/gitlab-ce/issues/26/discussions.json', + discussionsPath: '/gitlab-org/gitlab-foss/issues/26/discussions.json', lastFetchedAt: 1501862675, markdownDocsPath: '/help/user/markdown', newSessionPath: '/users/sign_in?redirect_to_referer=yes', - notesPath: '/gitlab-org/gitlab-ce/noteable/issue/98/notes', + notesPath: '/gitlab-org/gitlab-foss/noteable/issue/98/notes', quickActionsDocsPath: '/help/user/project/quick_actions', registerPath: '/users/sign_in?redirect_to_referer=yes#register-pane', prerenderedNotesCount: 1, @@ -28,7 +28,7 @@ export const noteableDataMock = { author_id: 1, branch_name: null, confidential: false, - create_note_path: '/gitlab-org/gitlab-ce/notes?target_id=98&target_type=issue', + create_note_path: '/gitlab-org/gitlab-foss/notes?target_id=98&target_type=issue', created_at: '2017-02-07T10:11:18.395Z', current_user: { can_create_note: true, @@ -46,7 +46,7 @@ export const noteableDataMock = { milestone: null, milestone_id: null, moved_to_id: null, - preview_note_path: '/gitlab-org/gitlab-ce/preview_markdown?target_id=98&target_type=Issue', + preview_note_path: '/gitlab-org/gitlab-foss/preview_markdown?target_id=98&target_type=Issue', project_id: 2, state: 'opened', time_estimate: 0, @@ -55,7 +55,7 @@ export const noteableDataMock = { noteable_note_url: '/group/project/merge_requests/1#note_1', updated_at: '2017-08-04T09:53:01.226Z', updated_by_id: 1, - web_url: '/gitlab-org/gitlab-ce/issues/26', + web_url: '/gitlab-org/gitlab-foss/issues/26', noteableType: 'issue', }; @@ -100,12 +100,12 @@ export const individualNote = { { name: 'baseball', user: { id: 1, name: 'Root', username: 'root' } }, { name: 'art', user: { id: 1, name: 'Root', username: 'root' } }, ], - toggle_award_path: '/gitlab-org/gitlab-ce/notes/1390/toggle_award_emoji', + toggle_award_path: '/gitlab-org/gitlab-foss/notes/1390/toggle_award_emoji', noteable_note_url: '/group/project/merge_requests/1#note_1', note_url: '/group/project/merge_requests/1#note_1', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390&user_id=1', - path: '/gitlab-org/gitlab-ce/notes/1390', + path: '/gitlab-org/gitlab-foss/notes/1390', }, ], reply_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd', @@ -160,12 +160,12 @@ export const note = { }, }, ], - toggle_award_path: '/gitlab-org/gitlab-ce/notes/546/toggle_award_emoji', + toggle_award_path: '/gitlab-org/gitlab-foss/notes/546/toggle_award_emoji', note_url: '/group/project/merge_requests/1#note_1', noteable_note_url: '/group/project/merge_requests/1#note_1', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F7%23note_546&user_id=1', - path: '/gitlab-org/gitlab-ce/notes/546', + path: '/gitlab-org/gitlab-foss/notes/546', }; export const discussionMock = { @@ -206,10 +206,10 @@ export const discussionMock = { emoji_awardable: true, award_emoji: [], noteable_note_url: '/group/project/merge_requests/1#note_1', - toggle_award_path: '/gitlab-org/gitlab-ce/notes/1395/toggle_award_emoji', + toggle_award_path: '/gitlab-org/gitlab-foss/notes/1395/toggle_award_emoji', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1395&user_id=1', - path: '/gitlab-org/gitlab-ce/notes/1395', + path: '/gitlab-org/gitlab-foss/notes/1395', }, { id: '1396', @@ -252,11 +252,11 @@ export const discussionMock = { discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1', emoji_awardable: true, award_emoji: [], - toggle_award_path: '/gitlab-org/gitlab-ce/notes/1396/toggle_award_emoji', + toggle_award_path: '/gitlab-org/gitlab-foss/notes/1396/toggle_award_emoji', noteable_note_url: '/group/project/merge_requests/1#note_1', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1396&user_id=1', - path: '/gitlab-org/gitlab-ce/notes/1396', + path: '/gitlab-org/gitlab-foss/notes/1396', }, { id: '1437', @@ -300,10 +300,10 @@ export const discussionMock = { emoji_awardable: true, award_emoji: [], noteable_note_url: '/group/project/merge_requests/1#note_1', - toggle_award_path: '/gitlab-org/gitlab-ce/notes/1437/toggle_award_emoji', + toggle_award_path: '/gitlab-org/gitlab-foss/notes/1437/toggle_award_emoji', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1437&user_id=1', - path: '/gitlab-org/gitlab-ce/notes/1437', + path: '/gitlab-org/gitlab-foss/notes/1437', }, ], individual_note: false, @@ -344,14 +344,14 @@ export const loggedOutnoteableData = { due_date: null, moved_to_id: null, project_id: 2, - web_url: '/gitlab-org/gitlab-ce/issues/26', + web_url: '/gitlab-org/gitlab-foss/issues/26', current_user: { can_create_note: false, can_update: false, }, noteable_note_url: '/group/project/merge_requests/1#note_1', - create_note_path: '/gitlab-org/gitlab-ce/notes?target_id=98&target_type=issue', - preview_note_path: '/gitlab-org/gitlab-ce/preview_markdown?target_id=98&target_type=Issue', + create_note_path: '/gitlab-org/gitlab-foss/notes?target_id=98&target_type=issue', + preview_note_path: '/gitlab-org/gitlab-foss/preview_markdown?target_id=98&target_type=Issue', }; export const collapseNotesMock = [ @@ -429,7 +429,7 @@ export const collapseNotesMock = [ export const INDIVIDUAL_NOTE_RESPONSE_MAP = { GET: { - '/gitlab-org/gitlab-ce/issues/26/discussions.json': [ + '/gitlab-org/gitlab-foss/issues/26/discussions.json': [ { id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd', reply_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd', @@ -484,10 +484,10 @@ export const INDIVIDUAL_NOTE_RESPONSE_MAP = { }, ], noteable_note_url: '/group/project/merge_requests/1#note_1', - toggle_award_path: '/gitlab-org/gitlab-ce/notes/1390/toggle_award_emoji', + toggle_award_path: '/gitlab-org/gitlab-foss/notes/1390/toggle_award_emoji', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390\u0026user_id=1', - path: '/gitlab-org/gitlab-ce/notes/1390', + path: '/gitlab-org/gitlab-foss/notes/1390', }, ], individual_note: true, @@ -529,22 +529,22 @@ export const INDIVIDUAL_NOTE_RESPONSE_MAP = { emoji_awardable: true, award_emoji: [], noteable_note_url: '/group/project/merge_requests/1#note_1', - toggle_award_path: '/gitlab-org/gitlab-ce/notes/1391/toggle_award_emoji', + toggle_award_path: '/gitlab-org/gitlab-foss/notes/1391/toggle_award_emoji', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1391\u0026user_id=1', - path: '/gitlab-org/gitlab-ce/notes/1391', + path: '/gitlab-org/gitlab-foss/notes/1391', }, ], individual_note: true, }, ], - '/gitlab-org/gitlab-ce/noteable/issue/98/notes': { + '/gitlab-org/gitlab-foss/noteable/issue/98/notes': { last_fetched_at: 1512900838, notes: [], }, }, PUT: { - '/gitlab-org/gitlab-ce/notes/1471': { + '/gitlab-org/gitlab-foss/notes/1471': { commands_changes: null, valid: true, id: '1471', @@ -584,10 +584,10 @@ export const INDIVIDUAL_NOTE_RESPONSE_MAP = { emoji_awardable: true, award_emoji: [], noteable_note_url: '/group/project/merge_requests/1#note_1', - toggle_award_path: '/gitlab-org/gitlab-ce/notes/1471/toggle_award_emoji', + toggle_award_path: '/gitlab-org/gitlab-foss/notes/1471/toggle_award_emoji', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1', - path: '/gitlab-org/gitlab-ce/notes/1471', + path: '/gitlab-org/gitlab-foss/notes/1471', }, }, }; @@ -596,7 +596,7 @@ export const DISCUSSION_NOTE_RESPONSE_MAP = { ...INDIVIDUAL_NOTE_RESPONSE_MAP, GET: { ...INDIVIDUAL_NOTE_RESPONSE_MAP.GET, - '/gitlab-org/gitlab-ce/issues/26/discussions.json': [ + '/gitlab-org/gitlab-foss/issues/26/discussions.json': [ { id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052', reply_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052', @@ -634,11 +634,11 @@ export const DISCUSSION_NOTE_RESPONSE_MAP = { discussion_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052', emoji_awardable: true, award_emoji: [], - toggle_award_path: '/gitlab-org/gitlab-ce/notes/1471/toggle_award_emoji', + toggle_award_path: '/gitlab-org/gitlab-foss/notes/1471/toggle_award_emoji', noteable_note_url: '/group/project/merge_requests/1#note_1', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1', - path: '/gitlab-org/gitlab-ce/notes/1471', + path: '/gitlab-org/gitlab-foss/notes/1471', }, ], individual_note: false, diff --git a/spec/javascripts/performance_bar/components/request_selector_spec.js b/spec/javascripts/performance_bar/components/request_selector_spec.js index a272e03c0e1..3c2169de877 100644 --- a/spec/javascripts/performance_bar/components/request_selector_spec.js +++ b/spec/javascripts/performance_bar/components/request_selector_spec.js @@ -7,11 +7,11 @@ describe('request selector', () => { { id: '123', url: 'https://gitlab.com/' }, { id: '456', - url: 'https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/1', + url: 'https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/1', }, { id: '789', - url: 'https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/1.json?serializer=widget', + url: 'https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/1.json?serializer=widget', }, ]; diff --git a/spec/javascripts/pipelines/graph/graph_component_spec.js b/spec/javascripts/pipelines/graph/graph_component_spec.js index 96a2d5f62fa..98e92aff25f 100644 --- a/spec/javascripts/pipelines/graph/graph_component_spec.js +++ b/spec/javascripts/pipelines/graph/graph_component_spec.js @@ -7,6 +7,12 @@ describe('graph component', () => { const GraphComponent = Vue.extend(graphComponent); let component; + beforeEach(() => { + setFixtures(` + <div class="layout-page"></div> + `); + }); + afterEach(() => { component.$destroy(); }); diff --git a/spec/javascripts/pipelines/mock_data.js b/spec/javascripts/pipelines/mock_data.js index 03ead6cd8ba..f876987cd88 100644 --- a/spec/javascripts/pipelines/mock_data.js +++ b/spec/javascripts/pipelines/mock_data.js @@ -15,7 +15,7 @@ export const pipelineWithStages = { source: 'push', created_at: '2018-04-11T14:04:53.881Z', updated_at: '2018-04-11T14:05:00.792Z', - path: '/gitlab-org/gitlab-ee/pipelines/20333396', + path: '/gitlab-org/gitlab/pipelines/20333396', flags: { latest: true, stuck: false, @@ -32,7 +32,7 @@ export const pipelineWithStages = { label: 'running', group: 'running', has_details: true, - details_path: '/gitlab-org/gitlab-ee/pipelines/20333396', + details_path: '/gitlab-org/gitlab/pipelines/20333396', favicon: 'https://assets.gitlab-static.net/assets/ci_favicons/favicon_status_running-2eb56be2871937954b2ba6d6f4ee9fdf7e5e1c146ac45f7be98119ccaca1aca9.ico', }, @@ -48,12 +48,12 @@ export const pipelineWithStages = { label: 'skipped', group: 'skipped', has_details: true, - details_path: '/gitlab-org/gitlab-ee/pipelines/20333396#build', + details_path: '/gitlab-org/gitlab/pipelines/20333396#build', favicon: 'https://assets.gitlab-static.net/assets/ci_favicons/favicon_status_skipped-a2eee568a5bffdb494050c7b62dde241de9189280836288ac8923d369f16222d.ico', }, - path: '/gitlab-org/gitlab-ee/pipelines/20333396#build', - dropdown_path: '/gitlab-org/gitlab-ee/pipelines/20333396/stage.json?stage=build', + path: '/gitlab-org/gitlab/pipelines/20333396#build', + dropdown_path: '/gitlab-org/gitlab/pipelines/20333396/stage.json?stage=build', }, { name: 'prepare', @@ -64,12 +64,12 @@ export const pipelineWithStages = { label: 'passed', group: 'success', has_details: true, - details_path: '/gitlab-org/gitlab-ee/pipelines/20333396#prepare', + details_path: '/gitlab-org/gitlab/pipelines/20333396#prepare', favicon: 'https://assets.gitlab-static.net/assets/ci_favicons/favicon_status_success-26f59841becbef8c6fe414e9e74471d8bfd6a91b5855c19fe7f5923a40a7da47.ico', }, - path: '/gitlab-org/gitlab-ee/pipelines/20333396#prepare', - dropdown_path: '/gitlab-org/gitlab-ee/pipelines/20333396/stage.json?stage=prepare', + path: '/gitlab-org/gitlab/pipelines/20333396#prepare', + dropdown_path: '/gitlab-org/gitlab/pipelines/20333396/stage.json?stage=prepare', }, { name: 'test', @@ -80,12 +80,12 @@ export const pipelineWithStages = { label: 'running', group: 'running', has_details: true, - details_path: '/gitlab-org/gitlab-ee/pipelines/20333396#test', + details_path: '/gitlab-org/gitlab/pipelines/20333396#test', favicon: 'https://assets.gitlab-static.net/assets/ci_favicons/favicon_status_running-2eb56be2871937954b2ba6d6f4ee9fdf7e5e1c146ac45f7be98119ccaca1aca9.ico', }, - path: '/gitlab-org/gitlab-ee/pipelines/20333396#test', - dropdown_path: '/gitlab-org/gitlab-ee/pipelines/20333396/stage.json?stage=test', + path: '/gitlab-org/gitlab/pipelines/20333396#test', + dropdown_path: '/gitlab-org/gitlab/pipelines/20333396/stage.json?stage=test', }, { name: 'post-test', @@ -96,12 +96,12 @@ export const pipelineWithStages = { label: 'created', group: 'created', has_details: true, - details_path: '/gitlab-org/gitlab-ee/pipelines/20333396#post-test', + details_path: '/gitlab-org/gitlab/pipelines/20333396#post-test', favicon: 'https://assets.gitlab-static.net/assets/ci_favicons/favicon_status_created-e997aa0b7db73165df8a9d6803932b18d7b7cc37d604d2d96e378fea2dba9c5f.ico', }, - path: '/gitlab-org/gitlab-ee/pipelines/20333396#post-test', - dropdown_path: '/gitlab-org/gitlab-ee/pipelines/20333396/stage.json?stage=post-test', + path: '/gitlab-org/gitlab/pipelines/20333396#post-test', + dropdown_path: '/gitlab-org/gitlab/pipelines/20333396/stage.json?stage=post-test', }, { name: 'pages', @@ -112,12 +112,12 @@ export const pipelineWithStages = { label: 'created', group: 'created', has_details: true, - details_path: '/gitlab-org/gitlab-ee/pipelines/20333396#pages', + details_path: '/gitlab-org/gitlab/pipelines/20333396#pages', favicon: 'https://assets.gitlab-static.net/assets/ci_favicons/favicon_status_created-e997aa0b7db73165df8a9d6803932b18d7b7cc37d604d2d96e378fea2dba9c5f.ico', }, - path: '/gitlab-org/gitlab-ee/pipelines/20333396#pages', - dropdown_path: '/gitlab-org/gitlab-ee/pipelines/20333396/stage.json?stage=pages', + path: '/gitlab-org/gitlab/pipelines/20333396#pages', + dropdown_path: '/gitlab-org/gitlab/pipelines/20333396/stage.json?stage=pages', }, { name: 'post-cleanup', @@ -128,12 +128,12 @@ export const pipelineWithStages = { label: 'created', group: 'created', has_details: true, - details_path: '/gitlab-org/gitlab-ee/pipelines/20333396#post-cleanup', + details_path: '/gitlab-org/gitlab/pipelines/20333396#post-cleanup', favicon: 'https://assets.gitlab-static.net/assets/ci_favicons/favicon_status_created-e997aa0b7db73165df8a9d6803932b18d7b7cc37d604d2d96e378fea2dba9c5f.ico', }, - path: '/gitlab-org/gitlab-ee/pipelines/20333396#post-cleanup', - dropdown_path: '/gitlab-org/gitlab-ee/pipelines/20333396/stage.json?stage=post-cleanup', + path: '/gitlab-org/gitlab/pipelines/20333396#post-cleanup', + dropdown_path: '/gitlab-org/gitlab/pipelines/20333396/stage.json?stage=post-cleanup', }, ], artifacts: [ @@ -141,144 +141,144 @@ export const pipelineWithStages = { name: 'gitlab:assets:compile', expired: false, expire_at: '2018-05-12T14:22:54.730Z', - path: '/gitlab-org/gitlab-ee/-/jobs/62411438/artifacts/download', - keep_path: '/gitlab-org/gitlab-ee/-/jobs/62411438/artifacts/keep', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411438/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411438/artifacts/download', + keep_path: '/gitlab-org/gitlab/-/jobs/62411438/artifacts/keep', + browse_path: '/gitlab-org/gitlab/-/jobs/62411438/artifacts/browse', }, { name: 'rspec-mysql 12 28', expired: false, expire_at: '2018-05-12T14:22:45.136Z', - path: '/gitlab-org/gitlab-ee/-/jobs/62411397/artifacts/download', - keep_path: '/gitlab-org/gitlab-ee/-/jobs/62411397/artifacts/keep', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411397/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411397/artifacts/download', + keep_path: '/gitlab-org/gitlab/-/jobs/62411397/artifacts/keep', + browse_path: '/gitlab-org/gitlab/-/jobs/62411397/artifacts/browse', }, { name: 'rspec-mysql 6 28', expired: false, expire_at: '2018-05-12T14:22:41.523Z', - path: '/gitlab-org/gitlab-ee/-/jobs/62411391/artifacts/download', - keep_path: '/gitlab-org/gitlab-ee/-/jobs/62411391/artifacts/keep', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411391/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411391/artifacts/download', + keep_path: '/gitlab-org/gitlab/-/jobs/62411391/artifacts/keep', + browse_path: '/gitlab-org/gitlab/-/jobs/62411391/artifacts/browse', }, { name: 'rspec-pg geo 0 1', expired: false, expire_at: '2018-05-12T14:22:13.287Z', - path: '/gitlab-org/gitlab-ee/-/jobs/62411353/artifacts/download', - keep_path: '/gitlab-org/gitlab-ee/-/jobs/62411353/artifacts/keep', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411353/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411353/artifacts/download', + keep_path: '/gitlab-org/gitlab/-/jobs/62411353/artifacts/keep', + browse_path: '/gitlab-org/gitlab/-/jobs/62411353/artifacts/browse', }, { name: 'rspec-mysql 0 28', expired: false, expire_at: '2018-05-12T14:22:06.834Z', - path: '/gitlab-org/gitlab-ee/-/jobs/62411385/artifacts/download', - keep_path: '/gitlab-org/gitlab-ee/-/jobs/62411385/artifacts/keep', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411385/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411385/artifacts/download', + keep_path: '/gitlab-org/gitlab/-/jobs/62411385/artifacts/keep', + browse_path: '/gitlab-org/gitlab/-/jobs/62411385/artifacts/browse', }, { name: 'spinach-mysql 0 2', expired: false, expire_at: '2018-05-12T14:21:51.409Z', - path: '/gitlab-org/gitlab-ee/-/jobs/62411423/artifacts/download', - keep_path: '/gitlab-org/gitlab-ee/-/jobs/62411423/artifacts/keep', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411423/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411423/artifacts/download', + keep_path: '/gitlab-org/gitlab/-/jobs/62411423/artifacts/keep', + browse_path: '/gitlab-org/gitlab/-/jobs/62411423/artifacts/browse', }, { name: 'karma', expired: false, expire_at: '2018-05-12T14:21:20.934Z', - path: '/gitlab-org/gitlab-ee/-/jobs/62411440/artifacts/download', - keep_path: '/gitlab-org/gitlab-ee/-/jobs/62411440/artifacts/keep', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411440/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411440/artifacts/download', + keep_path: '/gitlab-org/gitlab/-/jobs/62411440/artifacts/keep', + browse_path: '/gitlab-org/gitlab/-/jobs/62411440/artifacts/browse', }, { name: 'spinach-pg 0 2', expired: false, expire_at: '2018-05-12T14:20:01.028Z', - path: '/gitlab-org/gitlab-ee/-/jobs/62411419/artifacts/download', - keep_path: '/gitlab-org/gitlab-ee/-/jobs/62411419/artifacts/keep', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411419/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411419/artifacts/download', + keep_path: '/gitlab-org/gitlab/-/jobs/62411419/artifacts/keep', + browse_path: '/gitlab-org/gitlab/-/jobs/62411419/artifacts/browse', }, { name: 'spinach-pg 1 2', expired: false, expire_at: '2018-05-12T14:19:04.336Z', - path: '/gitlab-org/gitlab-ee/-/jobs/62411421/artifacts/download', - keep_path: '/gitlab-org/gitlab-ee/-/jobs/62411421/artifacts/keep', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411421/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411421/artifacts/download', + keep_path: '/gitlab-org/gitlab/-/jobs/62411421/artifacts/keep', + browse_path: '/gitlab-org/gitlab/-/jobs/62411421/artifacts/browse', }, { name: 'sast', expired: null, expire_at: null, - path: '/gitlab-org/gitlab-ee/-/jobs/62411442/artifacts/download', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411442/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411442/artifacts/download', + browse_path: '/gitlab-org/gitlab/-/jobs/62411442/artifacts/browse', }, { name: 'code_quality', expired: false, expire_at: '2018-04-18T14:16:24.484Z', - path: '/gitlab-org/gitlab-ee/-/jobs/62411441/artifacts/download', - keep_path: '/gitlab-org/gitlab-ee/-/jobs/62411441/artifacts/keep', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411441/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411441/artifacts/download', + keep_path: '/gitlab-org/gitlab/-/jobs/62411441/artifacts/keep', + browse_path: '/gitlab-org/gitlab/-/jobs/62411441/artifacts/browse', }, { name: 'cache gems', expired: null, expire_at: null, - path: '/gitlab-org/gitlab-ee/-/jobs/62411447/artifacts/download', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411447/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411447/artifacts/download', + browse_path: '/gitlab-org/gitlab/-/jobs/62411447/artifacts/browse', }, { name: 'dependency_scanning', expired: null, expire_at: null, - path: '/gitlab-org/gitlab-ee/-/jobs/62411443/artifacts/download', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411443/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411443/artifacts/download', + browse_path: '/gitlab-org/gitlab/-/jobs/62411443/artifacts/browse', }, { name: 'compile-assets', expired: false, expire_at: '2018-04-18T14:12:07.638Z', - path: '/gitlab-org/gitlab-ee/-/jobs/62411334/artifacts/download', - keep_path: '/gitlab-org/gitlab-ee/-/jobs/62411334/artifacts/keep', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411334/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411334/artifacts/download', + keep_path: '/gitlab-org/gitlab/-/jobs/62411334/artifacts/keep', + browse_path: '/gitlab-org/gitlab/-/jobs/62411334/artifacts/browse', }, { name: 'setup-test-env', expired: false, expire_at: '2018-04-18T14:10:27.024Z', - path: '/gitlab-org/gitlab-ee/-/jobs/62411336/artifacts/download', - keep_path: '/gitlab-org/gitlab-ee/-/jobs/62411336/artifacts/keep', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411336/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411336/artifacts/download', + keep_path: '/gitlab-org/gitlab/-/jobs/62411336/artifacts/keep', + browse_path: '/gitlab-org/gitlab/-/jobs/62411336/artifacts/browse', }, { name: 'retrieve-tests-metadata', expired: false, expire_at: '2018-05-12T14:06:35.926Z', - path: '/gitlab-org/gitlab-ee/-/jobs/62411333/artifacts/download', - keep_path: '/gitlab-org/gitlab-ee/-/jobs/62411333/artifacts/keep', - browse_path: '/gitlab-org/gitlab-ee/-/jobs/62411333/artifacts/browse', + path: '/gitlab-org/gitlab/-/jobs/62411333/artifacts/download', + keep_path: '/gitlab-org/gitlab/-/jobs/62411333/artifacts/keep', + browse_path: '/gitlab-org/gitlab/-/jobs/62411333/artifacts/browse', }, ], manual_actions: [ { name: 'package-and-qa', - path: '/gitlab-org/gitlab-ee/-/jobs/62411330/play', + path: '/gitlab-org/gitlab/-/jobs/62411330/play', playable: true, }, { name: 'review-docs-deploy', - path: '/gitlab-org/gitlab-ee/-/jobs/62411332/play', + path: '/gitlab-org/gitlab/-/jobs/62411332/play', playable: true, }, ], }, ref: { name: 'master', - path: '/gitlab-org/gitlab-ee/commits/master', + path: '/gitlab-org/gitlab/commits/master', tag: false, branch: true, }, @@ -312,10 +312,10 @@ export const pipelineWithStages = { author_gravatar_url: 'https://secure.gravatar.com/avatar/263da227929cc0035cb0eba512bcf81a?s=80\u0026d=identicon', commit_url: - 'https://gitlab.com/gitlab-org/gitlab-ee/commit/e6a2885c503825792cb8a84a8731295e361bd059', - commit_path: '/gitlab-org/gitlab-ee/commit/e6a2885c503825792cb8a84a8731295e361bd059', + 'https://gitlab.com/gitlab-org/gitlab/commit/e6a2885c503825792cb8a84a8731295e361bd059', + commit_path: '/gitlab-org/gitlab/commit/e6a2885c503825792cb8a84a8731295e361bd059', }, - cancel_path: '/gitlab-org/gitlab-ee/pipelines/20333396/cancel', + cancel_path: '/gitlab-org/gitlab/pipelines/20333396/cancel', triggered_by: null, triggered: [], }; diff --git a/spec/javascripts/releases/components/release_block_spec.js b/spec/javascripts/releases/components/release_block_spec.js new file mode 100644 index 00000000000..11a385fa64d --- /dev/null +++ b/spec/javascripts/releases/components/release_block_spec.js @@ -0,0 +1,170 @@ +import Vue from 'vue'; +import component from '~/releases/components/release_block.vue'; +import timeagoMixin from '~/vue_shared/mixins/timeago'; + +import mountComponent from '../../helpers/vue_mount_component_helper'; + +describe('Release block', () => { + const Component = Vue.extend(component); + + const release = { + name: 'Bionic Beaver', + tag_name: '18.04', + description: '## changelog\n\n* line 1\n* line2', + description_html: '<div><h2>changelog</h2><ul><li>line1</li<li>line 2</li></ul></div>', + author_name: 'Release bot', + author_email: 'release-bot@example.com', + released_at: '2012-05-28T05:00:00-07:00', + author: { + avatar_url: 'uploads/-/system/user/avatar/johndoe/avatar.png', + id: 482476, + name: 'John Doe', + path: '/johndoe', + state: 'active', + status_tooltip_html: null, + username: 'johndoe', + web_url: 'https://gitlab.com/johndoe', + }, + commit: { + id: '2695effb5807a22ff3d138d593fd856244e155e7', + short_id: '2695effb', + title: 'Initial commit', + created_at: '2017-07-26T11:08:53.000+02:00', + parent_ids: ['2a4b78934375d7f53875269ffd4f45fd83a84ebe'], + message: 'Initial commit', + author_name: 'John Smith', + author_email: 'john@example.com', + authored_date: '2012-05-28T04:42:42-07:00', + committer_name: 'Jack Smith', + committer_email: 'jack@example.com', + committed_date: '2012-05-28T04:42:42-07:00', + }, + assets: { + count: 6, + sources: [ + { + format: 'zip', + url: + 'https://gitlab.com/gitlab-org/gitlab-foss/-/archive/v11.3.12/gitlab-ce-v11.3.12.zip', + }, + { + format: 'tar.gz', + url: + 'https://gitlab.com/gitlab-org/gitlab-foss/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar.gz', + }, + { + format: 'tar.bz2', + url: + 'https://gitlab.com/gitlab-org/gitlab-foss/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar.bz2', + }, + { + format: 'tar', + url: + 'https://gitlab.com/gitlab-org/gitlab-foss/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar', + }, + ], + links: [ + { + name: 'release-18.04.dmg', + url: 'https://my-external-hosting.example.com/scrambled-url/', + external: true, + }, + { + name: 'binary-linux-amd64', + url: + 'https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/artifacts/v11.6.0-rc4/download?job=rspec-mysql+41%2F50', + external: false, + }, + ], + }, + }; + let vm; + + const factory = props => mountComponent(Component, { release: props }); + + beforeEach(() => { + vm = factory(release); + }); + + afterEach(() => { + vm.$destroy(); + }); + + it("renders the block with an id equal to the release's tag name", () => { + expect(vm.$el.id).toBe('18.04'); + }); + + it('renders release name', () => { + expect(vm.$el.textContent).toContain(release.name); + }); + + it('renders commit sha', () => { + expect(vm.$el.textContent).toContain(release.commit.short_id); + }); + + it('renders tag name', () => { + expect(vm.$el.textContent).toContain(release.tag_name); + }); + + it('renders release date', () => { + expect(vm.$el.textContent).toContain(timeagoMixin.methods.timeFormated(release.released_at)); + }); + + it('renders number of assets provided', () => { + expect(vm.$el.querySelector('.js-assets-count').textContent).toContain(release.assets.count); + }); + + it('renders dropdown with the sources', () => { + expect(vm.$el.querySelectorAll('.js-sources-dropdown li').length).toEqual( + release.assets.sources.length, + ); + + expect(vm.$el.querySelector('.js-sources-dropdown li a').getAttribute('href')).toEqual( + release.assets.sources[0].url, + ); + + expect(vm.$el.querySelector('.js-sources-dropdown li a').textContent).toContain( + release.assets.sources[0].format, + ); + }); + + it('renders list with the links provided', () => { + expect(vm.$el.querySelectorAll('.js-assets-list li').length).toEqual( + release.assets.links.length, + ); + + expect(vm.$el.querySelector('.js-assets-list li a').getAttribute('href')).toEqual( + release.assets.links[0].url, + ); + + expect(vm.$el.querySelector('.js-assets-list li a').textContent).toContain( + release.assets.links[0].name, + ); + }); + + it('renders author avatar', () => { + expect(vm.$el.querySelector('.user-avatar-link')).not.toBeNull(); + }); + + describe('external label', () => { + it('renders external label when link is external', () => { + expect(vm.$el.querySelector('.js-assets-list li a').textContent).toContain('external source'); + }); + + it('does not render external label when link is not external', () => { + expect(vm.$el.querySelector('.js-assets-list li:nth-child(2) a').textContent).not.toContain( + 'external source', + ); + }); + }); + + describe('with upcoming_release flag', () => { + beforeEach(() => { + vm = factory(Object.assign({}, release, { upcoming_release: true })); + }); + + it('renders upcoming release badge', () => { + expect(vm.$el.textContent).toContain('Upcoming Release'); + }); + }); +}); diff --git a/spec/javascripts/releases/mock_data.js b/spec/javascripts/releases/mock_data.js index 2855eca1711..7197eb7bca8 100644 --- a/spec/javascripts/releases/mock_data.js +++ b/spec/javascripts/releases/mock_data.js @@ -33,20 +33,21 @@ export const release = { sources: [ { format: 'zip', - url: 'https://gitlab.com/gitlab-org/gitlab-ce/-/archive/v11.3.12/gitlab-ce-v11.3.12.zip', + url: 'https://gitlab.com/gitlab-org/gitlab-foss/-/archive/v11.3.12/gitlab-ce-v11.3.12.zip', }, { format: 'tar.gz', - url: 'https://gitlab.com/gitlab-org/gitlab-ce/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar.gz', + url: + 'https://gitlab.com/gitlab-org/gitlab-foss/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar.gz', }, { format: 'tar.bz2', url: - 'https://gitlab.com/gitlab-org/gitlab-ce/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar.bz2', + 'https://gitlab.com/gitlab-org/gitlab-foss/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar.bz2', }, { format: 'tar', - url: 'https://gitlab.com/gitlab-org/gitlab-ce/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar', + url: 'https://gitlab.com/gitlab-org/gitlab-foss/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar', }, ], links: [ @@ -58,7 +59,7 @@ export const release = { { name: 'binary-linux-amd64', url: - 'https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/artifacts/v11.6.0-rc4/download?job=rspec-mysql+41%2F50', + 'https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/artifacts/v11.6.0-rc4/download?job=rspec-mysql+41%2F50', external: false, }, ], @@ -103,23 +104,24 @@ export const releases = [ { format: 'tar.gz', url: - 'https://gitlab.com/gitlab-org/gitlab-ce/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar.gz', + 'https://gitlab.com/gitlab-org/gitlab-foss/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar.gz', }, { format: 'tar.bz2', url: - 'https://gitlab.com/gitlab-org/gitlab-ce/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar.bz2', + 'https://gitlab.com/gitlab-org/gitlab-foss/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar.bz2', }, { format: 'tar', - url: 'https://gitlab.com/gitlab-org/gitlab-ce/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar', + url: + 'https://gitlab.com/gitlab-org/gitlab-foss/-/archive/v11.3.12/gitlab-ce-v11.3.12.tar', }, ], links: [ { name: 'binary-linux-amd64', url: - 'https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/artifacts/v11.6.0-rc4/download?job=rspec-mysql+41%2F50', + 'https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/artifacts/v11.6.0-rc4/download?job=rspec-mysql+41%2F50', external: false, }, ], diff --git a/spec/javascripts/search_autocomplete_spec.js b/spec/javascripts/search_autocomplete_spec.js index ce7fa7a52ae..9702cb56d99 100644 --- a/spec/javascripts/search_autocomplete_spec.js +++ b/spec/javascripts/search_autocomplete_spec.js @@ -1,4 +1,4 @@ -/* eslint-disable no-var, one-var, no-unused-expressions, consistent-return, no-param-reassign, default-case, no-return-assign, object-shorthand, vars-on-top */ +/* eslint-disable no-var, one-var, no-unused-expressions, consistent-return, no-param-reassign, default-case, no-return-assign, vars-on-top */ import $ from 'jquery'; import '~/gl_dropdown'; @@ -30,9 +30,9 @@ describe('Search autocomplete dropdown', () => { dashboardMRsPath = '/dashboard/merge_requests'; - projectIssuesPath = '/gitlab-org/gitlab-ce/issues'; + projectIssuesPath = '/gitlab-org/gitlab-foss/issues'; - projectMRsPath = '/gitlab-org/gitlab-ce/merge_requests'; + projectMRsPath = '/gitlab-org/gitlab-foss/merge_requests'; groupIssuesPath = '/groups/gitlab-org/issues'; @@ -91,7 +91,7 @@ describe('Search autocomplete dropdown', () => { 'gitlab-ce': { issuesPath: projectIssuesPath, mrPath: projectMRsPath, - projectName: projectName, + projectName, }, }); }; diff --git a/spec/javascripts/vue_shared/components/commit_spec.js b/spec/javascripts/vue_shared/components/commit_spec.js index f2e20f626b5..f89627e727b 100644 --- a/spec/javascripts/vue_shared/components/commit_spec.js +++ b/spec/javascripts/vue_shared/components/commit_spec.js @@ -23,7 +23,7 @@ describe('Commit component', () => { ref_url: 'http://localhost/namespace2/gitlabhq/tree/master', }, commitUrl: - 'https://gitlab.com/gitlab-org/gitlab-ce/commit/b7836eddf62d663c665769e1b0960197fd215067', + 'https://gitlab.com/gitlab-org/gitlab-foss/commit/b7836eddf62d663c665769e1b0960197fd215067', shortSha: 'b7836edd', title: 'Commit message', author: { @@ -46,7 +46,7 @@ describe('Commit component', () => { ref_url: 'http://localhost/namespace2/gitlabhq/tree/master', }, commitUrl: - 'https://gitlab.com/gitlab-org/gitlab-ce/commit/b7836eddf62d663c665769e1b0960197fd215067', + 'https://gitlab.com/gitlab-org/gitlab-foss/commit/b7836eddf62d663c665769e1b0960197fd215067', shortSha: 'b7836edd', title: 'Commit message', author: { @@ -130,7 +130,7 @@ describe('Commit component', () => { ref_url: 'http://localhost/namespace2/gitlabhq/tree/master', }, commitUrl: - 'https://gitlab.com/gitlab-org/gitlab-ce/commit/b7836eddf62d663c665769e1b0960197fd215067', + 'https://gitlab.com/gitlab-org/gitlab-foss/commit/b7836eddf62d663c665769e1b0960197fd215067', shortSha: 'b7836edd', title: null, author: {}, @@ -153,7 +153,7 @@ describe('Commit component', () => { ref_url: 'http://localhost/namespace2/gitlabhq/tree/master', }, commitUrl: - 'https://gitlab.com/gitlab-org/gitlab-ce/commit/b7836eddf62d663c665769e1b0960197fd215067', + 'https://gitlab.com/gitlab-org/gitlab-foss/commit/b7836eddf62d663c665769e1b0960197fd215067', shortSha: 'b7836edd', title: null, author: {}, @@ -181,7 +181,7 @@ describe('Commit component', () => { ref_url: 'http://localhost/namespace2/gitlabhq/tree/master', }, commitUrl: - 'https://gitlab.com/gitlab-org/gitlab-ce/commit/b7836eddf62d663c665769e1b0960197fd215067', + 'https://gitlab.com/gitlab-org/gitlab-foss/commit/b7836eddf62d663c665769e1b0960197fd215067', mergeRequestRef: { iid: 1234, path: 'https://example.com/path/to/mr', @@ -214,7 +214,7 @@ describe('Commit component', () => { ref_url: 'http://localhost/namespace2/gitlabhq/tree/master', }, commitUrl: - 'https://gitlab.com/gitlab-org/gitlab-ce/commit/b7836eddf62d663c665769e1b0960197fd215067', + 'https://gitlab.com/gitlab-org/gitlab-foss/commit/b7836eddf62d663c665769e1b0960197fd215067', mergeRequestRef: { iid: 1234, path: '/path/to/mr', diff --git a/spec/javascripts/vue_shared/components/project_selector/project_selector_spec.js b/spec/javascripts/vue_shared/components/project_selector/project_selector_spec.js index 7f5f1a778d7..f8271866ca1 100644 --- a/spec/javascripts/vue_shared/components/project_selector/project_selector_spec.js +++ b/spec/javascripts/vue_shared/components/project_selector/project_selector_spec.js @@ -2,7 +2,9 @@ import Vue from 'vue'; import _ from 'underscore'; import ProjectSelector from '~/vue_shared/components/project_selector/project_selector.vue'; import ProjectListItem from '~/vue_shared/components/project_selector/project_list_item.vue'; -import { shallowMount } from '@vue/test-utils'; + +import { GlSearchBoxByType } from '@gitlab/ui'; +import { mount } from '@vue/test-utils'; import { trimText } from 'spec/helpers/text_helper'; describe('ProjectSelector component', () => { @@ -14,10 +16,12 @@ describe('ProjectSelector component', () => { let selected = []; selected = selected.concat(allProjects.slice(0, 3)).concat(allProjects.slice(5, 8)); + const findSearchInput = () => wrapper.find(GlSearchBoxByType).find('input'); + beforeEach(() => { jasmine.clock().install(); - wrapper = shallowMount(Vue.extend(ProjectSelector), { + wrapper = mount(Vue.extend(ProjectSelector), { propsData: { projectSearchResults: searchResults, selectedProjects: selected, @@ -26,6 +30,7 @@ describe('ProjectSelector component', () => { showLoadingIndicator: false, showSearchErrorMessage: false, }, + sync: false, attachToDocument: true, }); @@ -44,7 +49,8 @@ describe('ProjectSelector component', () => { it(`triggers a (debounced) search when the search input value changes`, () => { spyOn(vm, '$emit'); const query = 'my test query!'; - const searchInput = wrapper.find('.js-project-selector-input'); + const searchInput = findSearchInput(); + searchInput.setValue(query); searchInput.trigger('input'); @@ -56,7 +62,7 @@ describe('ProjectSelector component', () => { it(`debounces the search input`, () => { spyOn(vm, '$emit'); - const searchInput = wrapper.find('.js-project-selector-input'); + const searchInput = findSearchInput(); const updateSearchQuery = (count = 0) => { if (count === 10) { @@ -77,9 +83,9 @@ describe('ProjectSelector component', () => { }); it(`includes a placeholder in the search box`, () => { - expect(wrapper.find('.js-project-selector-input').attributes('placeholder')).toBe( - 'Search your projects', - ); + const searchInput = findSearchInput(); + + expect(searchInput.attributes('placeholder')).toBe('Search your projects'); }); it(`triggers a "projectClicked" event when a project is clicked`, () => { @@ -92,41 +98,35 @@ describe('ProjectSelector component', () => { it(`shows a "no results" message if showNoResultsMessage === true`, () => { wrapper.setProps({ showNoResultsMessage: true }); - expect(wrapper.contains('.js-no-results-message')).toBe(true); + return vm.$nextTick().then(() => { + const noResultsEl = wrapper.find('.js-no-results-message'); - const noResultsEl = wrapper.find('.js-no-results-message'); - - expect(trimText(noResultsEl.text())).toEqual('Sorry, no projects matched your search'); + expect(noResultsEl.exists()).toBe(true); + expect(trimText(noResultsEl.text())).toEqual('Sorry, no projects matched your search'); + }); }); it(`shows a "minimum search query" message if showMinimumSearchQueryMessage === true`, () => { wrapper.setProps({ showMinimumSearchQueryMessage: true }); - expect(wrapper.contains('.js-minimum-search-query-message')).toBe(true); - - const minimumSearchEl = wrapper.find('.js-minimum-search-query-message'); + return vm.$nextTick().then(() => { + const minimumSearchEl = wrapper.find('.js-minimum-search-query-message'); - expect(trimText(minimumSearchEl.text())).toEqual('Enter at least three characters to search'); + expect(minimumSearchEl.exists()).toBe(true); + expect(trimText(minimumSearchEl.text())).toEqual('Enter at least three characters to search'); + }); }); it(`shows a error message if showSearchErrorMessage === true`, () => { wrapper.setProps({ showSearchErrorMessage: true }); - expect(wrapper.contains('.js-search-error-message')).toBe(true); - - const errorMessageEl = wrapper.find('.js-search-error-message'); - - expect(trimText(errorMessageEl.text())).toEqual( - 'Something went wrong, unable to search projects', - ); - }); + return vm.$nextTick().then(() => { + const errorMessageEl = wrapper.find('.js-search-error-message'); - it(`focuses the input element when the focusSearchInput() method is called`, () => { - const input = wrapper.find('.js-project-selector-input'); - - expect(document.activeElement).not.toBe(input.element); - vm.focusSearchInput(); - - expect(document.activeElement).toBe(input.element); + expect(errorMessageEl.exists()).toBe(true); + expect(trimText(errorMessageEl.text())).toEqual( + 'Something went wrong, unable to search projects', + ); + }); }); }); diff --git a/spec/lib/gitlab/background_migration/add_gitlab_instance_administration_project_spec.rb b/spec/lib/gitlab/background_migration/add_gitlab_instance_administration_project_spec.rb deleted file mode 100644 index 76062b191a8..00000000000 --- a/spec/lib/gitlab/background_migration/add_gitlab_instance_administration_project_spec.rb +++ /dev/null @@ -1,234 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -describe Gitlab::BackgroundMigration::AddGitlabInstanceAdministrationProject, :migration, schema: 20190725080128 do - let(:application_settings) { table(:application_settings) } - let(:users) { table(:users) } - let(:projects) { table(:projects) } - let(:namespaces) { table(:namespaces) } - let(:members) { table(:members) } - - let(:service_class) do - Gitlab::DatabaseImporters::SelfMonitoring::Project::CreateService - end - - let(:prometheus_settings) do - { - enable: true, - listen_address: 'localhost:9090' - } - end - - before do - stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false') - - stub_config(prometheus: prometheus_settings) - end - - describe 'perform' do - context 'without application_settings' do - it 'does not fail' do - subject.perform - - expect(Project.count).to eq(0) - end - end - - context 'without admin users' do - let!(:application_setting) { application_settings.create! } - - it 'does not fail' do - subject.perform - - expect(Project.count).to eq(0) - end - end - - context 'with admin users' do - let(:project) { Project.last } - let(:group) { Group.last } - let!(:application_setting) { application_settings.create! } - let!(:user) { users.create!(admin: true, email: 'admin1@example.com', projects_limit: 10, state: :active) } - - before do - stub_application_setting(allow_local_requests_from_web_hooks_and_services: true) - end - - shared_examples 'has prometheus service' do |listen_address| - it do - subject.perform - - prometheus = project.prometheus_service - expect(prometheus).to be_persisted - expect(prometheus).not_to eq(nil) - expect(prometheus.api_url).to eq(listen_address) - expect(prometheus.active).to eq(true) - expect(prometheus.manual_configuration).to eq(true) - end - end - - it_behaves_like 'has prometheus service', 'http://localhost:9090' - - it 'creates GitLab Instance Administrator group' do - subject.perform - - expect(group).to be_persisted - expect(group.name).to eq('GitLab Instance Administrators') - expect(group.path).to start_with('gitlab-instance-administrators') - expect(group.path.split('-').last.length).to eq(8) - expect(group.visibility_level).to eq(service_class::VISIBILITY_LEVEL) - end - - it 'creates project with internal visibility' do - subject.perform - - expect(project.visibility_level).to eq(Gitlab::VisibilityLevel::INTERNAL) - expect(project).to be_persisted - end - - it 'creates project with correct name and description' do - subject.perform - - path = 'administration/monitoring/gitlab_instance_administration_project/index' - docs_path = Rails.application.routes.url_helpers.help_page_path(path) - - expect(project.name).to eq(service_class::PROJECT_NAME) - expect(project.description).to eq( - 'This project is automatically generated and will be used to help monitor this GitLab instance. ' \ - "[More information](#{docs_path})" - ) - expect(File).to exist("doc/#{path}.md") - end - - it 'adds all admins as maintainers' do - admin1 = users.create!(admin: true, email: 'admin2@example.com', projects_limit: 10, state: :active) - admin2 = users.create!(admin: true, email: 'admin3@example.com', projects_limit: 10, state: :active) - users.create!(email: 'nonadmin1@example.com', projects_limit: 10, state: :active) - - subject.perform - - expect(project.owner).to eq(group) - expect(group.members.collect(&:user).collect(&:id)).to contain_exactly(user.id, admin1.id, admin2.id) - expect(group.members.collect(&:access_level)).to contain_exactly( - Gitlab::Access::OWNER, - Gitlab::Access::MAINTAINER, - Gitlab::Access::MAINTAINER - ) - end - - it 'saves the project id' do - subject.perform - - application_setting.reload - expect(application_setting.instance_administration_project_id).to eq(project.id) - end - - it 'does not fail when a project already exists' do - group = namespaces.create!( - path: 'gitlab-instance-administrators', - name: 'GitLab Instance Administrators', - type: 'Group' - ) - project = projects.create!( - namespace_id: group.id, - name: 'GitLab Instance Administration' - ) - - admin1 = users.create!(admin: true, email: 'admin4@example.com', projects_limit: 10, state: :active) - admin2 = users.create!(admin: true, email: 'admin5@example.com', projects_limit: 10, state: :active) - - members.create!( - user_id: admin1.id, - source_id: group.id, - source_type: 'Namespace', - type: 'GroupMember', - access_level: GroupMember::MAINTAINER, - notification_level: NotificationSetting.levels[:global] - ) - members.create!( - user_id: admin2.id, - source_id: group.id, - source_type: 'Namespace', - type: 'GroupMember', - access_level: GroupMember::MAINTAINER, - notification_level: NotificationSetting.levels[:global] - ) - - stub_application_setting(instance_administration_project: project) - - subject.perform - - expect(Project.last.id).to eq(project.id) - expect(Group.last.id).to eq(group.id) - end - - context 'when local requests from hooks and services are not allowed' do - before do - stub_application_setting(allow_local_requests_from_web_hooks_and_services: false) - end - - it_behaves_like 'has prometheus service', 'http://localhost:9090' - - it 'does not overwrite the existing whitelist' do - application_setting.update!(outbound_local_requests_whitelist: ['example.com']) - - subject.perform - - application_setting.reload - expect(application_setting.outbound_local_requests_whitelist).to contain_exactly( - 'example.com', 'localhost' - ) - end - end - - context 'with non default prometheus address' do - let(:prometheus_settings) do - { - enable: true, - listen_address: 'https://localhost:9090' - } - end - - it_behaves_like 'has prometheus service', 'https://localhost:9090' - end - - context 'when prometheus setting is not present in gitlab.yml' do - before do - allow(Gitlab.config).to receive(:prometheus).and_raise(Settingslogic::MissingSetting) - end - - it 'does not fail' do - subject.perform - - expect(project.prometheus_service).to be_nil - end - end - - context 'when prometheus setting is disabled in gitlab.yml' do - let(:prometheus_settings) do - { - enable: false, - listen_address: 'localhost:9090' - } - end - - it 'does not configure prometheus' do - subject.perform - - expect(project.prometheus_service).to be_nil - end - end - - context 'when prometheus listen address is blank in gitlab.yml' do - let(:prometheus_settings) { { enable: true, listen_address: '' } } - - it 'does not configure prometheus' do - subject.perform - - expect(project.prometheus_service).to be_nil - end - end - end - end -end diff --git a/spec/lib/gitlab/ci/config/external/file/remote_spec.rb b/spec/lib/gitlab/ci/config/external/file/remote_spec.rb index 46d68097fff..4a097b59216 100644 --- a/spec/lib/gitlab/ci/config/external/file/remote_spec.rb +++ b/spec/lib/gitlab/ci/config/external/file/remote_spec.rb @@ -8,7 +8,7 @@ describe Gitlab::Ci::Config::External::File::Remote do let(:context) { described_class::Context.new(nil, '12345', nil, Set.new) } let(:params) { { remote: location } } let(:remote_file) { described_class.new(params, context) } - let(:location) { 'https://gitlab.com/gitlab-org/gitlab-ce/blob/1234/.gitlab-ci-1.yml' } + let(:location) { 'https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.gitlab-ci-1.yml' } let(:remote_file_content) do <<~HEREDOC before_script: @@ -57,7 +57,7 @@ describe Gitlab::Ci::Config::External::File::Remote do end context 'with an irregular url' do - let(:location) { 'not-valid://gitlab.com/gitlab-org/gitlab-ce/blob/1234/.gitlab-ci-1.yml' } + let(:location) { 'not-valid://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.gitlab-ci-1.yml' } it 'returns false' do expect(remote_file.valid?).to be_falsy @@ -137,7 +137,7 @@ describe Gitlab::Ci::Config::External::File::Remote do subject { remote_file.error_message } context 'when remote file location is not valid' do - let(:location) { 'not-valid://gitlab.com/gitlab-org/gitlab-ce/blob/1234/.gitlab-ci-1.yml' } + let(:location) { 'not-valid://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.gitlab-ci-1.yml' } it 'returns an error message describing invalid address' do expect(subject).to match /does not have a valid address!/ diff --git a/spec/lib/gitlab/ci/config/external/mapper_spec.rb b/spec/lib/gitlab/ci/config/external/mapper_spec.rb index e068b786b02..43708852594 100644 --- a/spec/lib/gitlab/ci/config/external/mapper_spec.rb +++ b/spec/lib/gitlab/ci/config/external/mapper_spec.rb @@ -9,7 +9,7 @@ describe Gitlab::Ci::Config::External::Mapper do set(:user) { create(:user) } let(:local_file) { '/lib/gitlab/ci/templates/non-existent-file.yml' } - let(:remote_url) { 'https://gitlab.com/gitlab-org/gitlab-ce/blob/1234/.gitlab-ci-1.yml' } + let(:remote_url) { 'https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.gitlab-ci-1.yml' } let(:template_file) { 'Auto-DevOps.gitlab-ci.yml' } let(:expandset) { Set.new } diff --git a/spec/lib/gitlab/ci/config/external/processor_spec.rb b/spec/lib/gitlab/ci/config/external/processor_spec.rb index 856187371e1..3b1a1e804f0 100644 --- a/spec/lib/gitlab/ci/config/external/processor_spec.rb +++ b/spec/lib/gitlab/ci/config/external/processor_spec.rb @@ -56,7 +56,7 @@ describe Gitlab::Ci::Config::External::Processor do end context 'with a valid remote external file is defined' do - let(:remote_file) { 'https://gitlab.com/gitlab-org/gitlab-ce/blob/1234/.gitlab-ci-1.yml' } + let(:remote_file) { 'https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.gitlab-ci-1.yml' } let(:values) { { include: remote_file, image: 'ruby:2.2' } } let(:external_file_content) do <<-HEREDOC @@ -118,7 +118,7 @@ describe Gitlab::Ci::Config::External::Processor do end context 'with multiple external files are defined' do - let(:remote_file) { 'https://gitlab.com/gitlab-org/gitlab-ce/blob/1234/.gitlab-ci-1.yml' } + let(:remote_file) { 'https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.gitlab-ci-1.yml' } let(:external_files) do [ '/spec/fixtures/gitlab/ci/external_files/.gitlab-ci-template-1.yml', @@ -178,7 +178,7 @@ describe Gitlab::Ci::Config::External::Processor do end context "when both external files and values defined the same key" do - let(:remote_file) { 'https://gitlab.com/gitlab-org/gitlab-ce/blob/1234/.gitlab-ci-1.yml' } + let(:remote_file) { 'https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.gitlab-ci-1.yml' } let(:values) do { include: remote_file, diff --git a/spec/lib/gitlab/ci/config_spec.rb b/spec/lib/gitlab/ci/config_spec.rb index 986cde3540a..839b4f9261d 100644 --- a/spec/lib/gitlab/ci/config_spec.rb +++ b/spec/lib/gitlab/ci/config_spec.rb @@ -209,7 +209,7 @@ describe Gitlab::Ci::Config do context "when using 'include' directive" do let(:project) { create(:project, :repository) } - let(:remote_location) { 'https://gitlab.com/gitlab-org/gitlab-ce/blob/1234/.gitlab-ci-1.yml' } + let(:remote_location) { 'https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.gitlab-ci-1.yml' } let(:local_location) { 'spec/fixtures/gitlab/ci/external_files/.gitlab-ci-template-1.yml' } let(:remote_file_content) do diff --git a/spec/lib/gitlab/ci/trace/stream_spec.rb b/spec/lib/gitlab/ci/trace/stream_spec.rb index af519f4bae6..dd5f2f97ac9 100644 --- a/spec/lib/gitlab/ci/trace/stream_spec.rb +++ b/spec/lib/gitlab/ci/trace/stream_spec.rb @@ -58,7 +58,7 @@ describe Gitlab::Ci::Trace::Stream, :clean_gitlab_redis_cache do expect(result.encoding).to eq(Encoding.default_external) end - # See https://gitlab.com/gitlab-org/gitlab-ce/issues/30796 + # See https://gitlab.com/gitlab-org/gitlab-foss/issues/30796 it 'reads in binary, output as Encoding.default_external' do stream.limit(52) diff --git a/spec/lib/gitlab/ci/yaml_processor_spec.rb b/spec/lib/gitlab/ci/yaml_processor_spec.rb index 8f2f23f6110..d43eb4e4b4a 100644 --- a/spec/lib/gitlab/ci/yaml_processor_spec.rb +++ b/spec/lib/gitlab/ci/yaml_processor_spec.rb @@ -1288,7 +1288,7 @@ module Gitlab options: { script: ["test"], # This does not make sense, there is a follow-up: - # https://gitlab.com/gitlab-org/gitlab-ce/issues/65569 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/65569 bridge_needs: %w[build1 build2] }, needs_attributes: [ diff --git a/spec/lib/gitlab/cleanup/project_uploads_spec.rb b/spec/lib/gitlab/cleanup/project_uploads_spec.rb index bf130b8fabd..7bad788e44e 100644 --- a/spec/lib/gitlab/cleanup/project_uploads_spec.rb +++ b/spec/lib/gitlab/cleanup/project_uploads_spec.rb @@ -125,7 +125,7 @@ describe Gitlab::Cleanup::ProjectUploads do end # We will probably want to add logic (Reschedule background upload) to - # cover Case 2 in https://gitlab.com/gitlab-org/gitlab-ce/issues/46535#note_75355104 + # cover Case 2 in https://gitlab.com/gitlab-org/gitlab-foss/issues/46535#note_75355104 context 'when the file should be in object storage' do context 'when the file otherwise has the correct local path' do let!(:orphaned) { create(:upload, :issuable_upload, :object_storage, model: build(:project, :legacy_storage)) } diff --git a/spec/lib/gitlab/config/loader/yaml_spec.rb b/spec/lib/gitlab/config/loader/yaml_spec.rb index ccddf340c3d..28039e99916 100644 --- a/spec/lib/gitlab/config/loader/yaml_spec.rb +++ b/spec/lib/gitlab/config/loader/yaml_spec.rb @@ -63,7 +63,7 @@ describe Gitlab::Config::Loader::Yaml do end end - # Prevent Billion Laughs attack: https://gitlab.com/gitlab-org/gitlab-ce/issues/56018 + # Prevent Billion Laughs attack: https://gitlab.com/gitlab-org/gitlab-foss/issues/56018 context 'when yaml size is too large' do let(:yml) do <<~YAML @@ -101,7 +101,7 @@ describe Gitlab::Config::Loader::Yaml do end end - # Prevent Billion Laughs attack: https://gitlab.com/gitlab-org/gitlab-ce/issues/56018 + # Prevent Billion Laughs attack: https://gitlab.com/gitlab-org/gitlab-foss/issues/56018 context 'when yaml has cyclic data structure' do let(:yml) do <<~YAML diff --git a/spec/lib/gitlab/encoding_helper_spec.rb b/spec/lib/gitlab/encoding_helper_spec.rb index fc08719fb33..d091b6c1601 100644 --- a/spec/lib/gitlab/encoding_helper_spec.rb +++ b/spec/lib/gitlab/encoding_helper_spec.rb @@ -111,7 +111,7 @@ describe Gitlab::EncodingHelper do "Rüby ist eine Programmiersprache. Wir verlängern den text damit ICU die Sprache erkennen kann.".encode("UTF-8") ], [ - # Test case from https://gitlab.com/gitlab-org/gitlab-ce/issues/39227 + # Test case from https://gitlab.com/gitlab-org/gitlab-foss/issues/39227 "Equifax branch name", "refs/heads/Equifax".encode("UTF-8"), "refs/heads/Equifax".encode("UTF-8") diff --git a/spec/lib/gitlab/etag_caching/middleware_spec.rb b/spec/lib/gitlab/etag_caching/middleware_spec.rb index 9ead55075fa..e7734c6f9f6 100644 --- a/spec/lib/gitlab/etag_caching/middleware_spec.rb +++ b/spec/lib/gitlab/etag_caching/middleware_spec.rb @@ -7,10 +7,10 @@ describe Gitlab::EtagCaching::Middleware do let(:middleware) { described_class.new(app) } let(:app_status_code) { 200 } let(:if_none_match) { nil } - let(:enabled_path) { '/gitlab-org/gitlab-ce/noteable/issue/1/notes' } + let(:enabled_path) { '/gitlab-org/gitlab-foss/noteable/issue/1/notes' } context 'when ETag caching is not enabled for current route' do - let(:path) { '/gitlab-org/gitlab-ce/tree/master/noteable/issue/1/notes' } + let(:path) { '/gitlab-org/gitlab-foss/tree/master/noteable/issue/1/notes' } before do mock_app_response diff --git a/spec/lib/gitlab/etag_caching/router_spec.rb b/spec/lib/gitlab/etag_caching/router_spec.rb index fbc49d894a6..8fcd4eb3c21 100644 --- a/spec/lib/gitlab/etag_caching/router_spec.rb +++ b/spec/lib/gitlab/etag_caching/router_spec.rb @@ -92,6 +92,15 @@ describe Gitlab::EtagCaching::Router do expect(result).to be_blank end + it 'matches the cluster environments path' do + result = described_class.match( + '/my-group/my-project/-/clusters/47/environments' + ) + + expect(result).to be_present + expect(result.name).to eq 'cluster_environments' + end + it 'matches the environments path' do result = described_class.match( '/my-group/my-project/environments.json' diff --git a/spec/lib/gitlab/external_authorization_spec.rb b/spec/lib/gitlab/external_authorization_spec.rb index 7394fbfe0ce..c45fcca3f06 100644 --- a/spec/lib/gitlab/external_authorization_spec.rb +++ b/spec/lib/gitlab/external_authorization_spec.rb @@ -10,7 +10,7 @@ describe Gitlab::ExternalAuthorization, :request_store do it 'is always true when the feature is disabled' do # Not using `stub_application_setting` because the method is prepended in # `EE::ApplicationSetting` which breaks when using `any_instance` - # https://gitlab.com/gitlab-org/gitlab-ce/issues/33587 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/33587 expect(::Gitlab::CurrentSettings.current_application_settings) .to receive(:external_authorization_service_enabled) { false } diff --git a/spec/lib/gitlab/git/keep_around_spec.rb b/spec/lib/gitlab/git/keep_around_spec.rb new file mode 100644 index 00000000000..04ccf86cd28 --- /dev/null +++ b/spec/lib/gitlab/git/keep_around_spec.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Git::KeepAround do + include RepoHelpers + + let(:repository) { create(:project, :repository).repository } + let(:service) { described_class.new(repository) } + + it "does not fail if we attempt to reference bad commit" do + expect(service.kept_around?('abc1234')).to be_falsey + end + + it "stores a reference to the specified commit sha so it isn't garbage collected" do + service.execute([sample_commit.id]) + + expect(service.kept_around?(sample_commit.id)).to be_truthy + end + + it "attempting to call keep around on truncated ref does not fail" do + service.execute([sample_commit.id]) + ref = service.send(:keep_around_ref_name, sample_commit.id) + + path = Gitlab::GitalyClient::StorageSettings.allow_disk_access do + File.join(repository.path, ref) + end + # Corrupt the reference + File.truncate(path, 0) + + expect(service.kept_around?(sample_commit.id)).to be_falsey + + service.execute([sample_commit.id]) + + expect(service.kept_around?(sample_commit.id)).to be_falsey + + File.delete(path) + end + + context 'for multiple SHAs' do + it 'skips non-existent SHAs' do + service.execute(['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', sample_commit.id]) + + expect(service.kept_around?(sample_commit.id)).to be_truthy + end + + it 'skips already-kept-around SHAs' do + service.execute([sample_commit.id]) + + expect(repository.raw_repository).to receive(:write_ref).exactly(1).and_call_original + + service.execute([sample_commit.id, another_sample_commit.id]) + + expect(service.kept_around?(another_sample_commit.id)).to be_truthy + end + end +end diff --git a/spec/lib/gitlab/git/repository_spec.rb b/spec/lib/gitlab/git/repository_spec.rb index e455c4c99ab..dcb7401b695 100644 --- a/spec/lib/gitlab/git/repository_spec.rb +++ b/spec/lib/gitlab/git/repository_spec.rb @@ -132,7 +132,7 @@ describe Gitlab::Git::Repository, :seed_helper do it 'sets ArchivePath to the expected globally-unique path' do # This is really important from a security perspective. Think carefully - # before changing it: https://gitlab.com/gitlab-org/gitlab-ce/issues/45689 + # before changing it: https://gitlab.com/gitlab-org/gitlab-foss/issues/45689 expect(expected_path).to include(File.join(repository.gl_repository, SeedRepo::LastCommit::ID)) expect(metadata['ArchivePath']).to eq(expected_path) diff --git a/spec/lib/gitlab/import_export/project.json b/spec/lib/gitlab/import_export/project.json index a211675bbf2..5f4bf18c743 100644 --- a/spec/lib/gitlab/import_export/project.json +++ b/spec/lib/gitlab/import_export/project.json @@ -3684,7 +3684,7 @@ "merge_request_diff_id": 14, "relative_order": 13, "sha": "e56497bb5f03a90a51293fc6d516788730953899", - "message": "Merge branch 'tree_helper_spec' into 'master'\n\nAdd directory structure for tree_helper spec\n\nThis directory structure is needed for a testing the method flatten_tree(tree) in the TreeHelper module\n\nSee [merge request #275](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/275#note_732774)\n\nSee merge request !2\n", + "message": "Merge branch 'tree_helper_spec' into 'master'\n\nAdd directory structure for tree_helper spec\n\nThis directory structure is needed for a testing the method flatten_tree(tree) in the TreeHelper module\n\nSee [merge request #275](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/275#note_732774)\n\nSee merge request !2\n", "authored_date": "2015-01-10T22:23:29.000+01:00", "author_name": "Sytse Sijbrandij", "author_email": "sytse@gitlab.com", @@ -4369,7 +4369,7 @@ "merge_request_diff_id": 13, "relative_order": 13, "sha": "e56497bb5f03a90a51293fc6d516788730953899", - "message": "Merge branch 'tree_helper_spec' into 'master'\n\nAdd directory structure for tree_helper spec\n\nThis directory structure is needed for a testing the method flatten_tree(tree) in the TreeHelper module\n\nSee [merge request #275](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/275#note_732774)\n\nSee merge request !2\n", + "message": "Merge branch 'tree_helper_spec' into 'master'\n\nAdd directory structure for tree_helper spec\n\nThis directory structure is needed for a testing the method flatten_tree(tree) in the TreeHelper module\n\nSee [merge request #275](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/275#note_732774)\n\nSee merge request !2\n", "authored_date": "2015-01-10T22:23:29.000+01:00", "author_name": "Sytse Sijbrandij", "author_email": "sytse@gitlab.com", @@ -5586,7 +5586,7 @@ "merge_request_diff_id": 10, "relative_order": 13, "sha": "e56497bb5f03a90a51293fc6d516788730953899", - "message": "Merge branch 'tree_helper_spec' into 'master'\n\nAdd directory structure for tree_helper spec\n\nThis directory structure is needed for a testing the method flatten_tree(tree) in the TreeHelper module\n\nSee [merge request #275](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/275#note_732774)\n\nSee merge request !2\n", + "message": "Merge branch 'tree_helper_spec' into 'master'\n\nAdd directory structure for tree_helper spec\n\nThis directory structure is needed for a testing the method flatten_tree(tree) in the TreeHelper module\n\nSee [merge request #275](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/275#note_732774)\n\nSee merge request !2\n", "authored_date": "2015-01-10T22:23:29.000+01:00", "author_name": "Sytse Sijbrandij", "author_email": "sytse@gitlab.com", diff --git a/spec/lib/gitlab/metrics/dashboard/finder_spec.rb b/spec/lib/gitlab/metrics/dashboard/finder_spec.rb index ce1bb49f5c9..af5df1fab43 100644 --- a/spec/lib/gitlab/metrics/dashboard/finder_spec.rb +++ b/spec/lib/gitlab/metrics/dashboard/finder_spec.rb @@ -15,7 +15,7 @@ describe Gitlab::Metrics::Dashboard::Finder, :use_clean_rails_memory_store_cachi describe '.find' do let(:dashboard_path) { '.gitlab/dashboards/test.yml' } - let(:service_call) { described_class.find(project, user, environment, dashboard_path: dashboard_path) } + let(:service_call) { described_class.find(project, user, environment: environment, dashboard_path: dashboard_path) } it_behaves_like 'misconfigured dashboard service response', :not_found @@ -45,19 +45,19 @@ describe Gitlab::Metrics::Dashboard::Finder, :use_clean_rails_memory_store_cachi end context 'when no dashboard is specified' do - let(:service_call) { described_class.find(project, user, environment) } + let(:service_call) { described_class.find(project, user, environment: environment) } it_behaves_like 'valid dashboard service response' end context 'when the dashboard is expected to be embedded' do - let(:service_call) { described_class.find(project, user, environment, **params) } - let(:params) { { embedded: true } } + let(:service_call) { described_class.find(project, user, **params) } + let(:params) { { environment: environment, embedded: true } } it_behaves_like 'valid embedded dashboard service response' context 'when params are incomplete' do - let(:params) { { embedded: true, dashboard_path: system_dashboard_path } } + let(:params) { { environment: environment, embedded: true, dashboard_path: system_dashboard_path } } it_behaves_like 'valid embedded dashboard service response' end @@ -65,11 +65,14 @@ describe Gitlab::Metrics::Dashboard::Finder, :use_clean_rails_memory_store_cachi context 'when the panel is specified' do context 'as a custom metric' do let(:params) do - { embedded: true, + { + environment: environment, + embedded: true, dashboard_path: system_dashboard_path, group: business_metric_title, title: 'title', - y_label: 'y_label' } + y_label: 'y_label' + } end it_behaves_like 'misconfigured dashboard service response', :not_found @@ -86,11 +89,14 @@ describe Gitlab::Metrics::Dashboard::Finder, :use_clean_rails_memory_store_cachi context 'as a project-defined panel' do let(:dashboard_path) { '.gitlab/dashboard/test.yml' } let(:params) do - { embedded: true, + { + environment: environment, + embedded: true, dashboard_path: dashboard_path, group: 'Group A', title: 'Super Chart A1', - y_label: 'y_label' } + y_label: 'y_label' + } end it_behaves_like 'misconfigured dashboard service response', :not_found diff --git a/spec/lib/gitlab/metrics/dashboard/processor_spec.rb b/spec/lib/gitlab/metrics/dashboard/processor_spec.rb index d7891e69dd0..e2ce1869810 100644 --- a/spec/lib/gitlab/metrics/dashboard/processor_spec.rb +++ b/spec/lib/gitlab/metrics/dashboard/processor_spec.rb @@ -8,8 +8,16 @@ describe Gitlab::Metrics::Dashboard::Processor do let(:dashboard_yml) { YAML.load_file('spec/fixtures/lib/gitlab/metrics/dashboard/sample_dashboard.yml') } describe 'process' do - let(:process_params) { [project, environment, dashboard_yml] } - let(:dashboard) { described_class.new(*process_params).process(insert_project_metrics: true) } + let(:sequence) do + [ + Gitlab::Metrics::Dashboard::Stages::CommonMetricsInserter, + Gitlab::Metrics::Dashboard::Stages::ProjectMetricsInserter, + Gitlab::Metrics::Dashboard::Stages::EndpointInserter, + Gitlab::Metrics::Dashboard::Stages::Sorter + ] + end + let(:process_params) { [project, dashboard_yml, sequence, { environment: environment }] } + let(:dashboard) { described_class.new(*process_params).process } it 'includes a path for the prometheus endpoint with each metric' do expect(all_metrics).to satisfy_all do |metric| @@ -54,7 +62,14 @@ describe Gitlab::Metrics::Dashboard::Processor do end context 'when the dashboard should not include project metrics' do - let(:dashboard) { described_class.new(*process_params).process(insert_project_metrics: false) } + let(:sequence) do + [ + Gitlab::Metrics::Dashboard::Stages::CommonMetricsInserter, + Gitlab::Metrics::Dashboard::Stages::EndpointInserter, + Gitlab::Metrics::Dashboard::Stages::Sorter + ] + end + let(:dashboard) { described_class.new(*process_params).process } it 'includes only dashboard metrics' do metrics = all_metrics.map { |m| m[:id] } @@ -67,7 +82,7 @@ describe Gitlab::Metrics::Dashboard::Processor do shared_examples_for 'errors with message' do |expected_message| it 'raises a DashboardLayoutError' do - error_class = Gitlab::Metrics::Dashboard::Stages::BaseStage::DashboardProcessingError + error_class = Gitlab::Metrics::Dashboard::Errors::DashboardProcessingError expect { dashboard }.to raise_error(error_class, expected_message) end diff --git a/spec/lib/gitlab/sentry_spec.rb b/spec/lib/gitlab/sentry_spec.rb index 9c4f3b8f42e..024ac733a07 100644 --- a/spec/lib/gitlab/sentry_spec.rb +++ b/spec/lib/gitlab/sentry_spec.rb @@ -38,7 +38,7 @@ describe Gitlab::Sentry do it 'logs the exception with all attributes passed' do expected_extras = { some_other_info: 'info', - issue_url: 'http://gitlab.com/gitlab-org/gitlab-ce/issues/1' + issue_url: 'http://gitlab.com/gitlab-org/gitlab-foss/issues/1' } expected_tags = { @@ -52,7 +52,7 @@ describe Gitlab::Sentry do described_class.track_exception( exception, - issue_url: 'http://gitlab.com/gitlab-org/gitlab-ce/issues/1', + issue_url: 'http://gitlab.com/gitlab-org/gitlab-foss/issues/1', extra: { some_other_info: 'info' } ) end @@ -67,7 +67,7 @@ describe Gitlab::Sentry do context '.track_acceptable_exception' do let(:exception) { RuntimeError.new('boom') } - let(:issue_url) { 'http://gitlab.com/gitlab-org/gitlab-ce/issues/1' } + let(:issue_url) { 'http://gitlab.com/gitlab-org/gitlab-foss/issues/1' } before do allow(described_class).to receive(:enabled?).and_return(true) diff --git a/spec/lib/gitlab/shell_spec.rb b/spec/lib/gitlab/shell_spec.rb index fe4853fd819..55d8bac6c03 100644 --- a/spec/lib/gitlab/shell_spec.rb +++ b/spec/lib/gitlab/shell_spec.rb @@ -370,7 +370,7 @@ describe Gitlab::Shell do end describe '#import_repository' do - let(:import_url) { 'https://gitlab.com/gitlab-org/gitlab-ce.git' } + let(:import_url) { 'https://gitlab.com/gitlab-org/gitlab-foss.git' } context 'with gitaly' do it 'returns true when the command succeeds' do diff --git a/spec/lib/gitlab/submodule_links_spec.rb b/spec/lib/gitlab/submodule_links_spec.rb index a84602cd07d..d4420c5b513 100644 --- a/spec/lib/gitlab/submodule_links_spec.rb +++ b/spec/lib/gitlab/submodule_links_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::SubmoduleLinks do - let(:submodule_item) { double(id: 'hash', path: 'gitlab-ce') } + let(:submodule_item) { double(id: 'hash', path: 'gitlab-foss') } let(:repo) { double } let(:links) { described_class.new(repo) } @@ -32,11 +32,11 @@ describe Gitlab::SubmoduleLinks do context 'when the submodule is known' do before do - stub_urls({ 'gitlab-ce' => 'git@gitlab.com:gitlab-org/gitlab-ce.git' }) + stub_urls({ 'gitlab-foss' => 'git@gitlab.com:gitlab-org/gitlab-foss.git' }) end it 'returns links' do - expect(subject).to eq(['https://gitlab.com/gitlab-org/gitlab-ce', 'https://gitlab.com/gitlab-org/gitlab-ce/tree/hash']) + expect(subject).to eq(['https://gitlab.com/gitlab-org/gitlab-foss', 'https://gitlab.com/gitlab-org/gitlab-foss/tree/hash']) end end end diff --git a/spec/lib/gitlab/tracking_spec.rb b/spec/lib/gitlab/tracking_spec.rb index f14e74427e1..3cce82e522b 100644 --- a/spec/lib/gitlab/tracking_spec.rb +++ b/spec/lib/gitlab/tracking_spec.rb @@ -20,8 +20,8 @@ describe Gitlab::Tracking do hostname: 'gitfoo.com', cookieDomain: '.gitfoo.com', appId: '_abc123_', - pageTrackingEnabled: true, - activityTrackingEnabled: true + formTracking: true, + linkClickTracking: true ) end @@ -33,8 +33,8 @@ describe Gitlab::Tracking do ).and_return(false) expect(subject.snowplow_options('_group_')).to include( - pageTrackingEnabled: false, - activityTrackingEnabled: false + formTracking: false, + linkClickTracking: false ) end end diff --git a/spec/lib/rspec_flaky/flaky_example_spec.rb b/spec/lib/rspec_flaky/flaky_example_spec.rb index 092bbc781a5..47c88e053e1 100644 --- a/spec/lib/rspec_flaky/flaky_example_spec.rb +++ b/spec/lib/rspec_flaky/flaky_example_spec.rb @@ -11,7 +11,7 @@ describe RspecFlaky::FlakyExample, :aggregate_failures do description: 'hello world', first_flaky_at: 1234, last_flaky_at: 2345, - last_flaky_job: 'https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/12', + last_flaky_job: 'https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/12', last_attempts_count: 2, flaky_reports: 1 } @@ -107,14 +107,14 @@ describe RspecFlaky::FlakyExample, :aggregate_failures do context 'when run on the CI' do before do - stub_env('CI_PROJECT_URL', 'https://gitlab.com/gitlab-org/gitlab-ce') + stub_env('CI_PROJECT_URL', 'https://gitlab.com/gitlab-org/gitlab-foss') stub_env('CI_JOB_ID', 42) end it 'updates the last_flaky_job' do flaky_example.update_flakiness! - expect(flaky_example.last_flaky_job).to eq('https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/42') + expect(flaky_example.last_flaky_job).to eq('https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/42') end end end diff --git a/spec/migrations/README.md b/spec/migrations/README.md index 5df44dbc355..4d86d30080a 100644 --- a/spec/migrations/README.md +++ b/spec/migrations/README.md @@ -45,7 +45,7 @@ the migrations, and we need to know where to start. ### Example -This spec tests the [`db/post_migrate/20170526185842_migrate_pipeline_stages.rb`](https://gitlab.com/gitlab-org/gitlab-ce/blob/v11.6.5/db/post_migrate/20170526185842_migrate_pipeline_stages.rb) migration. You can find the complete spec on [`spec/migrations/migrate_pipeline_stages_spec.rb`](https://gitlab.com/gitlab-org/gitlab-ce/blob/v11.6.5/spec/migrations/migrate_pipeline_stages_spec.rb). +This spec tests the [`db/post_migrate/20170526185842_migrate_pipeline_stages.rb`](https://gitlab.com/gitlab-org/gitlab-foss/blob/v11.6.5/db/post_migrate/20170526185842_migrate_pipeline_stages.rb) migration. You can find the complete spec on [`spec/migrations/migrate_pipeline_stages_spec.rb`](https://gitlab.com/gitlab-org/gitlab-foss/blob/v11.6.5/spec/migrations/migrate_pipeline_stages_spec.rb). ```ruby require 'spec_helper' @@ -90,9 +90,9 @@ Example: `describe SomeClass, :migration, schema: 20170608152748`. ### Example -This spec tests the [`lib/gitlab/background_migration/archive_legacy_traces.rb`](https://gitlab.com/gitlab-org/gitlab-ce/blob/v11.6.5/lib/gitlab/background_migration/archive_legacy_traces.rb) +This spec tests the [`lib/gitlab/background_migration/archive_legacy_traces.rb`](https://gitlab.com/gitlab-org/gitlab-foss/blob/v11.6.5/lib/gitlab/background_migration/archive_legacy_traces.rb) background migration. You can find the complete spec on -[`spec/lib/gitlab/background_migration/archive_legacy_traces_spec.rb`](https://gitlab.com/gitlab-org/gitlab-ce/blob/v11.6.5/spec/lib/gitlab/background_migration/archive_legacy_traces_spec.rb) +[`spec/lib/gitlab/background_migration/archive_legacy_traces_spec.rb`](https://gitlab.com/gitlab-org/gitlab-foss/blob/v11.6.5/spec/lib/gitlab/background_migration/archive_legacy_traces_spec.rb) ```ruby require 'spec_helper' diff --git a/spec/models/clusters/applications/ingress_spec.rb b/spec/models/clusters/applications/ingress_spec.rb index f984f6ba0ce..d9461ee8581 100644 --- a/spec/models/clusters/applications/ingress_spec.rb +++ b/spec/models/clusters/applications/ingress_spec.rb @@ -131,4 +131,41 @@ describe Clusters::Applications::Ingress do expect(values).to include('podAnnotations') end end + + describe '#values' do + let(:project) { build(:project) } + let(:cluster) { build(:cluster, projects: [project]) } + + context 'when ingress_modsecurity is enabled' do + before do + stub_feature_flags(ingress_modsecurity: true) + + allow(subject).to receive(:cluster).and_return(cluster) + end + + it 'includes modsecurity module enablement' do + expect(subject.values).to include("enable-modsecurity: 'true'") + end + + it 'includes modsecurity core ruleset enablement' do + expect(subject.values).to include("enable-owasp-modsecurity-crs: 'true'") + end + end + + context 'when ingress_modsecurity is disabled' do + before do + stub_feature_flags(ingress_modsecurity: false) + + allow(subject).to receive(:cluster).and_return(cluster) + end + + it 'excludes modsecurity module enablement' do + expect(subject.values).not_to include('enable-modsecurity') + end + + it 'excludes modsecurity core ruleset enablement' do + expect(subject.values).not_to include('enable-owasp-modsecurity-crs') + end + end + end end diff --git a/spec/models/concerns/issuable_states_spec.rb b/spec/models/concerns/issuable_states_spec.rb index 70450159cc0..a5e19cdfc4f 100644 --- a/spec/models/concerns/issuable_states_spec.rb +++ b/spec/models/concerns/issuable_states_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' # This spec checks if state_id column of issues and merge requests # are being synced on every save. -# It can be removed in the next release. Check https://gitlab.com/gitlab-org/gitlab-ce/issues/51789 for more information. +# It can be removed in the next release. Check https://gitlab.com/gitlab-org/gitlab-foss/issues/51789 for more information. describe IssuableStates do [Issue, MergeRequest].each do |klass| it "syncs state_id column when #{klass.model_name.human} gets created" do diff --git a/spec/models/milestone_spec.rb b/spec/models/milestone_spec.rb index 0c4952eebd7..2ecbe548520 100644 --- a/spec/models/milestone_spec.rb +++ b/spec/models/milestone_spec.rb @@ -530,9 +530,9 @@ describe Milestone do describe '.link_reference_pattern' do subject { described_class.link_reference_pattern } - it { is_expected.to match("#{Gitlab.config.gitlab.url}/gitlab-org/gitlab-ce/milestones/123") } - it { is_expected.to match("#{Gitlab.config.gitlab.url}/gitlab-org/gitlab-ce/-/milestones/123") } - it { is_expected.not_to match("#{Gitlab.config.gitlab.url}/gitlab-org/gitlab-ce/issues/123") } + it { is_expected.to match("#{Gitlab.config.gitlab.url}/gitlab-org/gitlab-foss/milestones/123") } + it { is_expected.to match("#{Gitlab.config.gitlab.url}/gitlab-org/gitlab-foss/-/milestones/123") } + it { is_expected.not_to match("#{Gitlab.config.gitlab.url}/gitlab-org/gitlab-foss/issues/123") } it { is_expected.not_to match("gitlab-org/gitlab-ce/milestones/123") } end end diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb index 927fbdb93d8..66e3c6d5e9d 100644 --- a/spec/models/note_spec.rb +++ b/spec/models/note_spec.rb @@ -73,6 +73,10 @@ describe Note do end describe "Commit notes" do + before do + allow(Gitlab::Git::KeepAround).to receive(:execute).and_call_original + end + let!(:note) { create(:note_on_commit, note: "+1 from me") } let!(:commit) { note.noteable } @@ -92,7 +96,9 @@ describe Note do end it "keeps the commit around" do - expect(note.project.repository.kept_around?(commit.id)).to be_truthy + repo = note.project.repository + + expect(repo.ref_exists?("refs/keep-around/#{commit.id}")).to be_truthy end it 'does not generate N+1 queries for participants', :request_store do diff --git a/spec/models/project_services/bugzilla_service_spec.rb b/spec/models/project_services/bugzilla_service_spec.rb index e25d87f61d6..66481a461ca 100644 --- a/spec/models/project_services/bugzilla_service_spec.rb +++ b/spec/models/project_services/bugzilla_service_spec.rb @@ -41,7 +41,7 @@ describe BugzillaService do { project_url: url, issues_url: url, new_issue_url: url } end - # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-ce/issues/63084 + # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-foss/issues/63084 context 'when data are stored in properties' do let(:properties) { access_params.merge(title: title, description: description) } let(:service) do diff --git a/spec/models/project_services/custom_issue_tracker_service_spec.rb b/spec/models/project_services/custom_issue_tracker_service_spec.rb index 8359bc6807a..50bf15cfc8c 100644 --- a/spec/models/project_services/custom_issue_tracker_service_spec.rb +++ b/spec/models/project_services/custom_issue_tracker_service_spec.rb @@ -55,7 +55,7 @@ describe CustomIssueTrackerService do { project_url: url, issues_url: url, new_issue_url: url } end - # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-ce/issues/63084 + # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-foss/issues/63084 context 'when data are stored in properties' do let(:properties) { access_params.merge(title: title, description: description) } let(:service) do diff --git a/spec/models/project_services/gitlab_issue_tracker_service_spec.rb b/spec/models/project_services/gitlab_issue_tracker_service_spec.rb index 4f3736ca65b..2dc0b67239c 100644 --- a/spec/models/project_services/gitlab_issue_tracker_service_spec.rb +++ b/spec/models/project_services/gitlab_issue_tracker_service_spec.rb @@ -58,7 +58,7 @@ describe GitlabIssueTrackerService do { project_url: url, issues_url: url, new_issue_url: url } end - # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-ce/issues/63084 + # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-foss/issues/63084 context 'when data are stored in properties' do let(:properties) { access_params.merge(title: title, description: description) } let(:service) do diff --git a/spec/models/project_services/jira_service_spec.rb b/spec/models/project_services/jira_service_spec.rb index a976745023b..39c1176f238 100644 --- a/spec/models/project_services/jira_service_spec.rb +++ b/spec/models/project_services/jira_service_spec.rb @@ -278,7 +278,7 @@ describe JiraService do end end - # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-ce/issues/63084 + # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-foss/issues/63084 context 'when data are stored in properties' do let(:properties) { data_params.merge(title: title, description: description) } let!(:service) do @@ -650,7 +650,7 @@ describe JiraService do end end - describe 'favicon urls', :request_store do + describe 'favicon urls' do it 'includes the standard favicon' do props = described_class.new.send(:build_remote_link_props, url: 'http://example.com', title: 'title') expect(props[:object][:icon][:url16x16]).to match %r{^http://localhost/assets/favicon(?:-\h+).png$} diff --git a/spec/models/project_services/redmine_service_spec.rb b/spec/models/project_services/redmine_service_spec.rb index 4ef4064d069..2339c5a8421 100644 --- a/spec/models/project_services/redmine_service_spec.rb +++ b/spec/models/project_services/redmine_service_spec.rb @@ -57,7 +57,7 @@ describe RedmineService do { project_url: url, issues_url: url, new_issue_url: url } end - # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-ce/issues/63084 + # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-foss/issues/63084 context 'when data are stored in properties' do let(:properties) { access_params.merge(title: title, description: description) } let(:service) do diff --git a/spec/models/project_services/youtrack_service_spec.rb b/spec/models/project_services/youtrack_service_spec.rb index eff9f451b1a..fe608baf16b 100644 --- a/spec/models/project_services/youtrack_service_spec.rb +++ b/spec/models/project_services/youtrack_service_spec.rb @@ -45,7 +45,7 @@ describe YoutrackService do { project_url: url, issues_url: url, new_issue_url: url } end - # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-ce/issues/63084 + # this will be removed as part of https://gitlab.com/gitlab-org/gitlab-foss/issues/63084 context 'when data are stored in properties' do let(:properties) { access_params.merge(title: title, description: description) } let(:service) do diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index 419e1dc2459..6dc47e0e501 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -2040,55 +2040,6 @@ describe Repository do end end - describe "#keep_around" do - it "does not fail if we attempt to reference bad commit" do - expect(repository.kept_around?('abc1234')).to be_falsey - end - - it "stores a reference to the specified commit sha so it isn't garbage collected" do - repository.keep_around(sample_commit.id) - - expect(repository.kept_around?(sample_commit.id)).to be_truthy - end - - it "attempting to call keep_around on truncated ref does not fail" do - repository.keep_around(sample_commit.id) - ref = repository.send(:keep_around_ref_name, sample_commit.id) - - path = Gitlab::GitalyClient::StorageSettings.allow_disk_access do - File.join(repository.path, ref) - end - # Corrupt the reference - File.truncate(path, 0) - - expect(repository.kept_around?(sample_commit.id)).to be_falsey - - repository.keep_around(sample_commit.id) - - expect(repository.kept_around?(sample_commit.id)).to be_falsey - - File.delete(path) - end - - context 'for multiple SHAs' do - it 'skips non-existent SHAs' do - repository.keep_around('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', sample_commit.id) - - expect(repository.kept_around?(sample_commit.id)).to be_truthy - end - - it 'skips already-kept-around SHAs' do - repository.keep_around(sample_commit.id) - - expect(repository.raw_repository).to receive(:write_ref).exactly(1).and_call_original - - repository.keep_around(sample_commit.id, another_sample_commit.id) - - expect(repository.kept_around?(another_sample_commit.id)).to be_truthy - end - end - end - describe '#contribution_guide', :use_clean_rails_memory_store_caching do it 'returns and caches the output' do expect(repository).to receive(:file_on_head) diff --git a/spec/models/todo_spec.rb b/spec/models/todo_spec.rb index ce17704acbd..c2566ccd047 100644 --- a/spec/models/todo_spec.rb +++ b/spec/models/todo_spec.rb @@ -273,6 +273,22 @@ describe Todo do expect(described_class.any_for_target?(todo.target)).to eq(true) end + it 'returns true if there is at least one todo for a given target with state pending' do + issue = create(:issue) + create(:todo, state: :done, target: issue) + create(:todo, state: :pending, target: issue) + + expect(described_class.any_for_target?(issue)).to eq(true) + end + + it 'returns false if there are only todos for a given target with state done while searching for pending' do + issue = create(:issue) + create(:todo, state: :done, target: issue) + create(:todo, state: :done, target: issue) + + expect(described_class.any_for_target?(issue, :pending)).to eq(false) + end + it 'returns false if there are no todos for a given target' do issue = create(:issue) diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index c339fad778b..228d1ce9964 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -616,7 +616,7 @@ describe User do end describe '#update_notification_email' do - # Regression: https://gitlab.com/gitlab-org/gitlab-ce/issues/22846 + # Regression: https://gitlab.com/gitlab-org/gitlab-foss/issues/22846 context 'when changing :email' do let(:user) { create(:user) } let(:new_email) { 'new-email@example.com' } diff --git a/spec/requests/api/helpers_spec.rb b/spec/requests/api/helpers_spec.rb index 1c69f5dbb67..29dc84c1924 100644 --- a/spec/requests/api/helpers_spec.rb +++ b/spec/requests/api/helpers_spec.rb @@ -256,7 +256,7 @@ describe API::Helpers do context 'with a personal access token given' do let(:token) { create(:personal_access_token, scopes: ['api'], user: user) } - # Regression test for https://gitlab.com/gitlab-org/gitlab-ce/issues/38571 + # Regression test for https://gitlab.com/gitlab-org/gitlab-foss/issues/38571 it 'does not raise an additional exception because of missing `request`' do # We need to stub at a lower level than #sentry_enabled? otherwise # Sentry is not enabled when the request below is made, and the test diff --git a/spec/requests/api/repositories_spec.rb b/spec/requests/api/repositories_spec.rb index 0adc95cfbeb..6f4bb525c89 100644 --- a/spec/requests/api/repositories_spec.rb +++ b/spec/requests/api/repositories_spec.rb @@ -457,7 +457,7 @@ describe API::Repositories do end end - # Regression: https://gitlab.com/gitlab-org/gitlab-ce/issues/45363 + # Regression: https://gitlab.com/gitlab-org/gitlab-foss/issues/45363 describe 'Links header contains working URLs when no `order_by` nor `sort` is given' do let(:project) { create(:project, :public, :repository) } let(:current_user) { nil } diff --git a/spec/requests/api/runners_spec.rb b/spec/requests/api/runners_spec.rb index f5ce3a3570e..d26fbee6957 100644 --- a/spec/requests/api/runners_spec.rb +++ b/spec/requests/api/runners_spec.rb @@ -308,7 +308,7 @@ describe API::Runners do describe 'PUT /runners/:id' do context 'admin user' do - # see https://gitlab.com/gitlab-org/gitlab-ce/issues/48625 + # see https://gitlab.com/gitlab-org/gitlab-foss/issues/48625 context 'single parameter update' do it 'runner description' do description = shared_runner.description diff --git a/spec/requests/openid_connect_spec.rb b/spec/requests/openid_connect_spec.rb index 025568d8bea..da2e7b71dbe 100644 --- a/spec/requests/openid_connect_spec.rb +++ b/spec/requests/openid_connect_spec.rb @@ -156,7 +156,7 @@ describe 'OpenID Connect requests' do # # When the patch gets merged and we update Warden, these specs will need to # updated to check the response instead of a raised exception. - # https://gitlab.com/gitlab-org/gitlab-ce/issues/40218 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/40218 context 'when user is blocked' do it 'returns authentication error' do access_grant diff --git a/spec/routing/routing_spec.rb b/spec/routing/routing_spec.rb index ff4228c9b99..1b982fa7744 100644 --- a/spec/routing/routing_spec.rb +++ b/spec/routing/routing_spec.rb @@ -255,7 +255,7 @@ describe "Authentication", "routing" do end # sign_out with GET instead of DELETE facilitates ad-hoc single-sign-out processes - # (https://gitlab.com/gitlab-org/gitlab-ce/issues/39708) + # (https://gitlab.com/gitlab-org/gitlab-foss/issues/39708) it "GET /users/sign_out" do expect(get("/users/sign_out")).to route_to('sessions#destroy') end diff --git a/spec/rubocop/cop/active_record_association_reload_spec.rb b/spec/rubocop/cop/active_record_association_reload_spec.rb index 69eb16a54d2..3cd7a35f12f 100644 --- a/spec/rubocop/cop/active_record_association_reload_spec.rb +++ b/spec/rubocop/cop/active_record_association_reload_spec.rb @@ -14,7 +14,7 @@ describe RuboCop::Cop::ActiveRecordAssociationReload do expect_offense(<<~PATTERN.strip_indent) users = User.all users.reload - ^^^^^^ Use reset instead of reload. For more details check the https://gitlab.com/gitlab-org/gitlab-ce/issues/60218. + ^^^^^^ Use reset instead of reload. For more details check the https://gitlab.com/gitlab-org/gitlab-foss/issues/60218. PATTERN end @@ -31,7 +31,7 @@ describe RuboCop::Cop::ActiveRecordAssociationReload do expect_offense(<<~PATTERN.strip_indent) user = User.new user.reload - ^^^^^^ Use reset instead of reload. For more details check the https://gitlab.com/gitlab-org/gitlab-ce/issues/60218. + ^^^^^^ Use reset instead of reload. For more details check the https://gitlab.com/gitlab-org/gitlab-foss/issues/60218. PATTERN end @@ -47,7 +47,7 @@ describe RuboCop::Cop::ActiveRecordAssociationReload do it 'registers an offense on reload usage' do expect_offense(<<~PATTERN.strip_indent) reload - ^^^^^^ Use reset instead of reload. For more details check the https://gitlab.com/gitlab-org/gitlab-ce/issues/60218. + ^^^^^^ Use reset instead of reload. For more details check the https://gitlab.com/gitlab-org/gitlab-foss/issues/60218. PATTERN end diff --git a/spec/rubocop/cop/code_reuse/active_record_spec.rb b/spec/rubocop/cop/code_reuse/active_record_spec.rb index 8f3a3690d88..0f3d886e4b8 100644 --- a/spec/rubocop/cop/code_reuse/active_record_spec.rb +++ b/spec/rubocop/cop/code_reuse/active_record_spec.rb @@ -14,7 +14,7 @@ describe RuboCop::Cop::CodeReuse::ActiveRecord do expect_offense(<<~SOURCE) def foo User.where - ^^^^^ This method can only be used inside an ActiveRecord model: https://gitlab.com/gitlab-org/gitlab-ce/issues/49653 + ^^^^^ This method can only be used inside an ActiveRecord model: https://gitlab.com/gitlab-org/gitlab-foss/issues/49653 end SOURCE end @@ -23,7 +23,7 @@ describe RuboCop::Cop::CodeReuse::ActiveRecord do expect_offense(<<~SOURCE) def foo User.where(id: 10) - ^^^^^ This method can only be used inside an ActiveRecord model: https://gitlab.com/gitlab-org/gitlab-ce/issues/49653 + ^^^^^ This method can only be used inside an ActiveRecord model: https://gitlab.com/gitlab-org/gitlab-foss/issues/49653 end SOURCE end @@ -40,7 +40,7 @@ describe RuboCop::Cop::CodeReuse::ActiveRecord do expect_offense(<<~SOURCE) def foo project.group(:name) - ^^^^^ This method can only be used inside an ActiveRecord model: https://gitlab.com/gitlab-org/gitlab-ce/issues/49653 + ^^^^^ This method can only be used inside an ActiveRecord model: https://gitlab.com/gitlab-org/gitlab-foss/issues/49653 end SOURCE end diff --git a/spec/serializers/pipeline_serializer_spec.rb b/spec/serializers/pipeline_serializer_spec.rb index 7f9827329b3..0ccdea34f74 100644 --- a/spec/serializers/pipeline_serializer_spec.rb +++ b/spec/serializers/pipeline_serializer_spec.rb @@ -142,7 +142,7 @@ describe PipelineSerializer do before do # Since RequestStore.active? is true we have to allow the # gitaly calls in this block - # Issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/37772 + # Issue: https://gitlab.com/gitlab-org/gitlab-foss/issues/37772 Gitlab::GitalyClient.allow_n_plus_1_calls do Ci::Pipeline::COMPLETED_STATUSES.each do |status| create_pipeline(status) @@ -176,7 +176,7 @@ describe PipelineSerializer do # For each ref there is a permission check if maintainer can update # pipeline. With the same ref this check is cached but if refs are # different then there is an extra query per ref - # https://gitlab.com/gitlab-org/gitlab-ce/issues/46368 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/46368 expected_queries = Gitlab.ee? ? 44 : 38 expect(recorded.count).to be_within(2).of(expected_queries) expect(recorded.cached_count).to eq(0) diff --git a/spec/services/ci/archive_trace_service_spec.rb b/spec/services/ci/archive_trace_service_spec.rb index 454db3d5a48..47bc26c0521 100644 --- a/spec/services/ci/archive_trace_service_spec.rb +++ b/spec/services/ci/archive_trace_service_spec.rb @@ -62,7 +62,7 @@ describe Ci::ArchiveTraceService, '#execute' do expect(Gitlab::Sentry) .to receive(:track_exception) .with(::Gitlab::Ci::Trace::ArchiveError, - issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/51502', + issue_url: 'https://gitlab.com/gitlab-org/gitlab-foss/issues/51502', extra: { job_id: job.id } ).once expect(Sidekiq.logger).to receive(:warn).with( diff --git a/spec/services/members/destroy_service_spec.rb b/spec/services/members/destroy_service_spec.rb index 7dce7f035d4..effcaf53535 100644 --- a/spec/services/members/destroy_service_spec.rb +++ b/spec/services/members/destroy_service_spec.rb @@ -223,7 +223,7 @@ describe Members::DestroyService do group.add_owner(current_user) end - # Regression spec for issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/32504 + # Regression spec for issue: https://gitlab.com/gitlab-org/gitlab-foss/issues/32504 it_behaves_like 'a service destroying a member' do let(:member) { project_invited_member } end diff --git a/spec/services/projects/container_repository/cleanup_tags_service_spec.rb b/spec/services/projects/container_repository/cleanup_tags_service_spec.rb index 0659130bed2..14247f1c71e 100644 --- a/spec/services/projects/container_repository/cleanup_tags_service_spec.rb +++ b/spec/services/projects/container_repository/cleanup_tags_service_spec.rb @@ -83,7 +83,7 @@ describe Projects::ContainerRepository::CleanupTagsService do end it 'does not remove the tag' do - # Issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/21405 + # Issue: https://gitlab.com/gitlab-org/gitlab-foss/issues/21405 is_expected.to include(status: :success, deleted: []) end diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb index 8178b7d2ba2..814bf912c8c 100644 --- a/spec/services/projects/create_service_spec.rb +++ b/spec/services/projects/create_service_spec.rb @@ -348,7 +348,7 @@ describe Projects::CreateService, '#execute' do context 'when a bad service template is created' do it 'sets service to be inactive' do - opts[:import_url] = 'http://www.gitlab.com/gitlab-org/gitlab-ce' + opts[:import_url] = 'http://www.gitlab.com/gitlab-org/gitlab-foss' create(:service, type: 'DroneCiService', project: nil, template: true, active: true) project = create_project(user, opts) diff --git a/spec/services/projects/fork_service_spec.rb b/spec/services/projects/fork_service_spec.rb index 0c109e26a6a..b759830d603 100644 --- a/spec/services/projects/fork_service_spec.rb +++ b/spec/services/projects/fork_service_spec.rb @@ -53,7 +53,7 @@ describe Projects::ForkService do # This test is here because we had a bug where the from-project lost its # avatar after being forked. - # https://gitlab.com/gitlab-org/gitlab-ce/issues/26158 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/26158 it "after forking the from-project still has its avatar" do # If we do not fork the project first we cannot detect the bug. expect(to_project).to be_persisted @@ -119,6 +119,7 @@ describe Projects::ForkService do context 'repository in legacy storage already exists' do let(:repository_storage) { 'default' } let(:repository_storage_path) { Gitlab.config.repositories.storages[repository_storage].legacy_disk_path } + let(:params) { { namespace: @to_user.namespace } } before do stub_application_setting(hashed_storage_enabled: false) @@ -129,12 +130,21 @@ describe Projects::ForkService do gitlab_shell.remove_repository(repository_storage, "#{@to_user.namespace.full_path}/#{@from_project.path}") end + subject { fork_project(@from_project, @to_user, params) } + it 'does not allow creation' do - to_project = fork_project(@from_project, @to_user, namespace: @to_user.namespace) + expect(subject).not_to be_persisted + expect(subject.errors.messages).to have_key(:base) + expect(subject.errors.messages[:base].first).to match('There is already a repository with that name on disk') + end - expect(to_project).not_to be_persisted - expect(to_project.errors.messages).to have_key(:base) - expect(to_project.errors.messages[:base].first).to match('There is already a repository with that name on disk') + context 'when repository disk validation is explicitly skipped' do + let(:params) { super().merge(skip_disk_validation: true) } + + it 'allows fork project creation' do + expect(subject).to be_persisted + expect(subject.errors.messages).to be_empty + end end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 7d44b2340f3..18bfe5a2be7 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -151,11 +151,13 @@ RSpec.configure do |config| .with(:force_autodevops_on_by_default, anything) .and_return(false) - # Stub this call due to being an expensive operation + # Stub these calls due to being expensive operations # It can be reenabled for specific tests via: # # allow(DetectRepositoryLanguagesWorker).to receive(:perform_async).and_call_original + # allow(Gitlab::Git::KeepAround).to receive(:execute).and_call_original allow(DetectRepositoryLanguagesWorker).to receive(:perform_async).and_return(true) + allow(Gitlab::Git::KeepAround).to receive(:execute) Gitlab::ThreadMemoryCache.cache_backend.clear end diff --git a/spec/support/capybara.rb b/spec/support/capybara.rb index 4c688094352..7b3b966bd50 100644 --- a/spec/support/capybara.rb +++ b/spec/support/capybara.rb @@ -41,10 +41,10 @@ Capybara.register_driver :chrome do |app| # Run headless by default unless CHROME_HEADLESS specified options.add_argument("headless") unless ENV['CHROME_HEADLESS'] =~ /^(false|no|0)$/i - # Disable /dev/shm use in CI. See https://gitlab.com/gitlab-org/gitlab-ee/issues/4252 + # Disable /dev/shm use in CI. See https://gitlab.com/gitlab-org/gitlab/issues/4252 options.add_argument("disable-dev-shm-usage") if ENV['CI'] || ENV['CI_SERVER'] - # Explicitly set user-data-dir to prevent crashes. See https://gitlab.com/gitlab-org/gitlab-ce/issues/58882#note_179811508 + # Explicitly set user-data-dir to prevent crashes. See https://gitlab.com/gitlab-org/gitlab-foss/issues/58882#note_179811508 options.add_argument("user-data-dir=/tmp/chrome") if ENV['CI'] || ENV['CI_SERVER'] # Chrome 75 defaults to W3C mode which doesn't allow console log access diff --git a/spec/support/gitlab-git-test.git/README.md b/spec/support/gitlab-git-test.git/README.md index f757e613ee6..4e2cee766fa 100644 --- a/spec/support/gitlab-git-test.git/README.md +++ b/spec/support/gitlab-git-test.git/README.md @@ -7,7 +7,7 @@ inflate the size of the gitlab-ce repository. ## How to make changes to this repository -- (if needed) clone `https://gitlab.com/gitlab-org/gitlab-ce.git` to your local machine +- (if needed) clone `https://gitlab.com/gitlab-org/gitlab-foss.git` to your local machine - clone `gitlab-ce/spec/support/gitlab-git-test.git` locally (i.e. clone from your hard drive, not from the internet) - make changes in your local clone of gitlab-git-test - run `git push` which will push to your local source `gitlab-ce/spec/support/gitlab-git-test.git` diff --git a/spec/support/helpers/migrations_helpers.rb b/spec/support/helpers/migrations_helpers.rb index a3145ed91bd..176788d0506 100644 --- a/spec/support/helpers/migrations_helpers.rb +++ b/spec/support/helpers/migrations_helpers.rb @@ -58,7 +58,7 @@ module MigrationsHelpers # super: no superclass method `elasticsearch_indexing' for #<ApplicationSetting:0x00007f85628508d8> # attr_encrypted also expects ActiveRecord attribute methods to be # defined, or it will override the accessors: - # https://gitlab.com/gitlab-org/gitlab-ee/issues/8234#note_113976421 + # https://gitlab.com/gitlab-org/gitlab/issues/8234#note_113976421 [ApplicationSetting, SystemHook].each do |model| model.define_attribute_methods end diff --git a/spec/support/helpers/repo_helpers.rb b/spec/support/helpers/repo_helpers.rb index ca4d2acbf2c..b5defba332a 100644 --- a/spec/support/helpers/repo_helpers.rb +++ b/spec/support/helpers/repo_helpers.rb @@ -59,7 +59,7 @@ Add directory structure for tree_helper spec This directory structure is needed for a testing the method flatten_tree(tree) in the TreeHelper module -See [merge request #275](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/275#note_732774) +See [merge request #275](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/275#note_732774) See merge request !2 eos diff --git a/spec/support/shared_examples/boards/multiple_issue_boards_shared_examples.rb b/spec/support/shared_examples/boards/multiple_issue_boards_shared_examples.rb index f2f31e1b7f2..07c541ec189 100644 --- a/spec/support/shared_examples/boards/multiple_issue_boards_shared_examples.rb +++ b/spec/support/shared_examples/boards/multiple_issue_boards_shared_examples.rb @@ -11,6 +11,10 @@ shared_examples_for 'multiple issue boards' do wait_for_requests end + it 'shows board switcher' do + expect(page).to have_css('.boards-switcher') + end + it 'shows current board name' do page.within('.boards-switcher') do expect(page).to have_content(board.name) diff --git a/spec/workers/run_pipeline_schedule_worker_spec.rb b/spec/workers/run_pipeline_schedule_worker_spec.rb index 7414470f8e7..2bf1d470b09 100644 --- a/spec/workers/run_pipeline_schedule_worker_spec.rb +++ b/spec/workers/run_pipeline_schedule_worker_spec.rb @@ -45,7 +45,7 @@ describe RunPipelineScheduleWorker do expect(Gitlab::Sentry) .to receive(:track_exception) .with(ActiveRecord::StatementInvalid, - issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/41231', + issue_url: 'https://gitlab.com/gitlab-org/gitlab-foss/issues/41231', extra: { schedule_id: pipeline_schedule.id } ).once end diff --git a/vendor/jupyter/values.yaml b/vendor/jupyter/values.yaml index 852c6c3f2b0..c889814981e 100644 --- a/vendor/jupyter/values.yaml +++ b/vendor/jupyter/values.yaml @@ -12,7 +12,7 @@ hub: ''' We set user's id, login and access token on single user image to enable repository integration for JupyterHub. - See: https://gitlab.com/gitlab-org/gitlab-ce/issues/47138#note_154294790 + See: https://gitlab.com/gitlab-org/gitlab-foss/issues/47138#note_154294790 ''' auth_state = await spawner.user.get_auth_state() |