Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
4584eb0e07
commit
b082790134
|
@ -102,7 +102,7 @@
|
|||
refs:
|
||||
- schedules
|
||||
variables:
|
||||
- $REVIEW_APP_CLEANUP && $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
|
||||
- $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
|
||||
kubernetes: active
|
||||
|
||||
.use-pg:
|
||||
|
|
|
@ -44,6 +44,8 @@ code_quality:
|
|||
# We need to duplicate this job's definition because it seems it's impossible to
|
||||
# override an included `only.refs`.
|
||||
# See https://gitlab.com/gitlab-org/gitlab/issues/31371.
|
||||
# Once https://gitlab.com/gitlab-org/gitlab/merge_requests/16487 will be deployed
|
||||
# to GitLab.com, we should be able to use the template and set SAST_DISABLE_DIND: "true".
|
||||
sast:
|
||||
extends:
|
||||
- .default-retry
|
||||
|
|
|
@ -1,15 +1,3 @@
|
|||
.review-base:
|
||||
extends:
|
||||
- .default-tags
|
||||
- .default-retry
|
||||
- .default-only
|
||||
- .only-review
|
||||
- .only-code-qa-changes
|
||||
image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base
|
||||
dependencies: []
|
||||
before_script:
|
||||
- source scripts/utils.sh
|
||||
|
||||
.review-docker:
|
||||
extends:
|
||||
- .default-tags
|
||||
|
@ -41,6 +29,25 @@ build-qa-image:
|
|||
- echo "${CI_JOB_TOKEN}" | docker login --username gitlab-ci-token --password-stdin ${CI_REGISTRY}
|
||||
- time docker push ${QA_IMAGE}
|
||||
|
||||
schedule:review-cleanup:
|
||||
extends:
|
||||
- .default-tags
|
||||
- .default-retry
|
||||
- .default-only
|
||||
- .only-code-qa-changes
|
||||
- .only-review-schedules
|
||||
stage: prepare
|
||||
image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base
|
||||
allow_failure: true
|
||||
environment:
|
||||
name: review/auto-cleanup
|
||||
action: stop
|
||||
before_script:
|
||||
- source scripts/utils.sh
|
||||
- install_gitlab_gem
|
||||
script:
|
||||
- ruby -rrubygems scripts/review_apps/automated_cleanup.rb
|
||||
|
||||
.review-build-cng-base:
|
||||
extends:
|
||||
- .default-only
|
||||
|
@ -68,9 +75,15 @@ schedule:review-build-cng:
|
|||
needs: ["gitlab:assets:compile"]
|
||||
|
||||
.review-deploy-base:
|
||||
extends: .review-base
|
||||
allow_failure: true
|
||||
extends:
|
||||
- .default-tags
|
||||
- .default-retry
|
||||
- .default-only
|
||||
- .only-code-qa-changes
|
||||
stage: review
|
||||
image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base
|
||||
dependencies: []
|
||||
allow_failure: true
|
||||
variables:
|
||||
HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}"
|
||||
DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}"
|
||||
|
@ -105,6 +118,7 @@ schedule:review-build-cng:
|
|||
review-deploy:
|
||||
extends:
|
||||
- .review-deploy-base
|
||||
- .only-review
|
||||
needs: ["review-build-cng"]
|
||||
|
||||
schedule:review-deploy:
|
||||
|
@ -148,6 +162,7 @@ review-cleanup-failed-deployment:
|
|||
- .only-review
|
||||
- .only-code-qa-changes
|
||||
stage: qa
|
||||
allow_failure: true
|
||||
variables:
|
||||
QA_ARTIFACTS_DIR: "${CI_PROJECT_DIR}/qa"
|
||||
QA_CAN_TEST_GIT_PROTOCOL_V2: "false"
|
||||
|
@ -176,13 +191,11 @@ review-cleanup-failed-deployment:
|
|||
|
||||
review-qa-smoke:
|
||||
extends: .review-qa-base
|
||||
allow_failure: true
|
||||
script:
|
||||
- gitlab-qa Test::Instance::Smoke "${QA_IMAGE}" "${CI_ENVIRONMENT_URL}"
|
||||
|
||||
review-qa-all:
|
||||
extends: .review-qa-base
|
||||
allow_failure: true
|
||||
when: manual
|
||||
parallel: 5
|
||||
script:
|
||||
|
@ -190,6 +203,54 @@ review-qa-all:
|
|||
- export KNAPSACK_TEST_FILE_PATTERN=qa/specs/features/**/*_spec.rb
|
||||
- gitlab-qa Test::Instance::Any "${QA_IMAGE}" "${CI_ENVIRONMENT_URL}" -- --format RspecJunitFormatter --out tmp/rspec-${CI_JOB_ID}.xml --format html --out tmp/rspec.htm --color --format documentation
|
||||
|
||||
.review-performance-base:
|
||||
extends:
|
||||
- .review-docker
|
||||
- .only-code-qa-changes
|
||||
stage: qa
|
||||
allow_failure: true
|
||||
before_script:
|
||||
- export CI_ENVIRONMENT_URL="$(cat review_app_url.txt)"
|
||||
- echo "${CI_ENVIRONMENT_URL}"
|
||||
- mkdir -p gitlab-exporter
|
||||
- wget -O ./gitlab-exporter/index.js https://gitlab.com/gitlab-org/gl-performance/raw/master/index.js
|
||||
- mkdir -p sitespeed-results
|
||||
script:
|
||||
- docker run --shm-size=1g --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io:6.3.1 --plugins.add ./gitlab-exporter --outputFolder sitespeed-results "${CI_ENVIRONMENT_URL}"
|
||||
after_script:
|
||||
- mv sitespeed-results/data/performance.json performance.json
|
||||
artifacts:
|
||||
paths:
|
||||
- sitespeed-results/
|
||||
reports:
|
||||
performance: performance.json
|
||||
|
||||
review-performance:
|
||||
extends:
|
||||
- .review-performance-base
|
||||
- .only-review
|
||||
before_script:
|
||||
- export CI_ENVIRONMENT_URL="$(cat review_app_url.txt)"
|
||||
- echo "${CI_ENVIRONMENT_URL}"
|
||||
- mkdir -p gitlab-exporter
|
||||
- wget -O ./gitlab-exporter/index.js https://gitlab.com/gitlab-org/gl-performance/raw/master/index.js
|
||||
- mkdir -p sitespeed-results
|
||||
script:
|
||||
- docker run --shm-size=1g --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io:6.3.1 --plugins.add ./gitlab-exporter --outputFolder sitespeed-results "${CI_ENVIRONMENT_URL}"
|
||||
after_script:
|
||||
- mv sitespeed-results/data/performance.json performance.json
|
||||
artifacts:
|
||||
paths:
|
||||
- sitespeed-results/
|
||||
reports:
|
||||
performance: performance.json
|
||||
|
||||
schedule:review-performance:
|
||||
extends:
|
||||
- .review-performance-base
|
||||
- .only-review-schedules
|
||||
dependencies: ["schedule:review-deploy"]
|
||||
|
||||
parallel-spec-reports:
|
||||
extends:
|
||||
- .default-tags
|
||||
|
@ -220,46 +281,6 @@ parallel-spec-reports:
|
|||
- '[[ -f $NEW_PARALLEL_SPECS_REPORT ]] || echo "{}" > ${NEW_PARALLEL_SPECS_REPORT}'
|
||||
- scripts/merge-html-reports ${NEW_PARALLEL_SPECS_REPORT} ${BASE_ARTIFACT_URL}${ARTIFACT_DIRS} qa/gitlab-qa-run-*/**/rspec.htm
|
||||
|
||||
review-performance:
|
||||
extends: .review-qa-base
|
||||
allow_failure: true
|
||||
before_script:
|
||||
- export CI_ENVIRONMENT_URL="$(cat review_app_url.txt)"
|
||||
- echo "${CI_ENVIRONMENT_URL}"
|
||||
- mkdir -p gitlab-exporter
|
||||
- wget -O ./gitlab-exporter/index.js https://gitlab.com/gitlab-org/gl-performance/raw/master/index.js
|
||||
- mkdir -p sitespeed-results
|
||||
script:
|
||||
- docker run --shm-size=1g --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io:6.3.1 --plugins.add ./gitlab-exporter --outputFolder sitespeed-results "${CI_ENVIRONMENT_URL}"
|
||||
after_script:
|
||||
- mv sitespeed-results/data/performance.json performance.json
|
||||
artifacts:
|
||||
paths:
|
||||
- sitespeed-results/
|
||||
reports:
|
||||
performance: performance.json
|
||||
|
||||
schedule:review-performance:
|
||||
extends:
|
||||
- review-performance
|
||||
- .only-review-schedules
|
||||
dependencies: ["schedule:review-deploy"]
|
||||
|
||||
schedule:review-cleanup:
|
||||
extends:
|
||||
- .review-base
|
||||
- .only-review-schedules
|
||||
stage: prepare
|
||||
allow_failure: true
|
||||
environment:
|
||||
name: review/auto-cleanup
|
||||
action: stop
|
||||
before_script:
|
||||
- source scripts/utils.sh
|
||||
- install_gitlab_gem
|
||||
script:
|
||||
- ruby -rrubygems scripts/review_apps/automated_cleanup.rb
|
||||
|
||||
danger-review:
|
||||
extends:
|
||||
- .default-tags
|
||||
|
|
2
Gemfile
2
Gemfile
|
@ -148,7 +148,7 @@ gem 'wikicloth', '0.8.1'
|
|||
gem 'asciidoctor', '~> 2.0.10'
|
||||
gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
|
||||
gem 'asciidoctor-plantuml', '0.0.9'
|
||||
gem 'rouge', '~> 3.7'
|
||||
gem 'rouge', '~> 3.11.0'
|
||||
gem 'truncato', '~> 0.7.11'
|
||||
gem 'bootstrap_form', '~> 4.2.0'
|
||||
gem 'nokogiri', '~> 1.10.4'
|
||||
|
|
|
@ -834,7 +834,7 @@ GEM
|
|||
retriable (3.1.2)
|
||||
rinku (2.0.0)
|
||||
rotp (2.1.2)
|
||||
rouge (3.7.0)
|
||||
rouge (3.11.0)
|
||||
rqrcode (0.7.0)
|
||||
chunky_png
|
||||
rqrcode-rails3 (0.1.7)
|
||||
|
@ -1276,7 +1276,7 @@ DEPENDENCIES
|
|||
redis-rails (~> 5.0.2)
|
||||
request_store (~> 1.3)
|
||||
responders (~> 2.0)
|
||||
rouge (~> 3.7)
|
||||
rouge (~> 3.11.0)
|
||||
rqrcode-rails3 (~> 0.1.7)
|
||||
rspec-parameterized
|
||||
rspec-rails (~> 3.8.0)
|
||||
|
|
|
@ -15,11 +15,10 @@ import { parseBoolean } from '~/lib/utils/common_utils';
|
|||
*/
|
||||
export default function initTodoToggle() {
|
||||
$(document).on('todo:toggle', (e, count) => {
|
||||
const parsedCount = parseInt(count, 10);
|
||||
const $todoPendingCount = $('.todos-count');
|
||||
|
||||
$todoPendingCount.text(highCountTrim(parsedCount));
|
||||
$todoPendingCount.toggleClass('hidden', parsedCount === 0);
|
||||
$todoPendingCount.text(highCountTrim(count));
|
||||
$todoPendingCount.toggleClass('hidden', count === 0);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import $ from 'jquery';
|
|||
import { visitUrl } from '~/lib/utils/url_utility';
|
||||
import UsersSelect from '~/users_select';
|
||||
import { isMetaClick } from '~/lib/utils/common_utils';
|
||||
import { addDelimiter } from '~/lib/utils/text_utility';
|
||||
import { __ } from '~/locale';
|
||||
import flash from '~/flash';
|
||||
import axios from '~/lib/utils/axios_utils';
|
||||
|
@ -145,8 +146,8 @@ export default class Todos {
|
|||
|
||||
updateBadges(data) {
|
||||
$(document).trigger('todo:toggle', data.count);
|
||||
document.querySelector('.todos-pending .badge').innerHTML = data.count;
|
||||
document.querySelector('.todos-done .badge').innerHTML = data.done_count;
|
||||
document.querySelector('.todos-pending .badge').innerHTML = addDelimiter(data.count);
|
||||
document.querySelector('.todos-done .badge').innerHTML = addDelimiter(data.done_count);
|
||||
}
|
||||
|
||||
goToTodoUrl(e) {
|
||||
|
|
|
@ -78,8 +78,8 @@ class Dashboard::TodosController < Dashboard::ApplicationController
|
|||
|
||||
def todos_counts
|
||||
{
|
||||
count: number_with_delimiter(current_user.todos_pending_count),
|
||||
done_count: number_with_delimiter(current_user.todos_done_count)
|
||||
count: current_user.todos_pending_count,
|
||||
done_count: current_user.todos_done_count
|
||||
}
|
||||
end
|
||||
|
||||
|
|
|
@ -43,7 +43,10 @@
|
|||
|
||||
.issuable-meta
|
||||
%ul.controls
|
||||
- if issue.closed?
|
||||
- if issue.moved?
|
||||
%li.issuable-status
|
||||
= _('CLOSED (MOVED)')
|
||||
- elsif issue.closed?
|
||||
%li.issuable-status
|
||||
= _('CLOSED')
|
||||
- if issue.assignees.any?
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Fix for count in todo badge when user has over 1,000 todos. Will now correctly
|
||||
display todo count after user marks some todos as done.
|
||||
merge_request: 16844
|
||||
author: Jesse Hall @jessehall3
|
||||
type: fixed
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Changed confidential quick action to only be available on non confidential issues
|
||||
merge_request: 16902
|
||||
author: Marc Schwede
|
||||
type: fixed
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Upgrade Rouge to v3.11.0
|
||||
merge_request: 17011
|
||||
author:
|
||||
type: other
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Display if an issue was moved in issue list
|
||||
merge_request: 17102
|
||||
author:
|
||||
type: changed
|
|
@ -28,16 +28,18 @@ if Rails.env.development?
|
|||
end
|
||||
|
||||
enable_json_logs = Gitlab.config.sidekiq.log_format == 'json'
|
||||
enable_sidekiq_monitor = ENV.fetch("SIDEKIQ_MONITOR_WORKER", 0).to_i.nonzero?
|
||||
enable_sidekiq_memory_killer = ENV['SIDEKIQ_MEMORY_KILLER_MAX_RSS'].to_i.nonzero?
|
||||
use_sidekiq_daemon_memory_killer = ENV["SIDEKIQ_DAEMON_MEMORY_KILLER"].to_i.nonzero?
|
||||
use_sidekiq_legacy_memory_killer = !use_sidekiq_daemon_memory_killer
|
||||
|
||||
Sidekiq.configure_server do |config|
|
||||
config.redis = queues_config_hash
|
||||
|
||||
config.server_middleware do |chain|
|
||||
chain.add Gitlab::SidekiqMiddleware::Monitor if enable_sidekiq_monitor
|
||||
chain.add Gitlab::SidekiqMiddleware::Monitor
|
||||
chain.add Gitlab::SidekiqMiddleware::Metrics if Settings.monitoring.sidekiq_exporter
|
||||
chain.add Gitlab::SidekiqMiddleware::ArgumentsLogger if ENV['SIDEKIQ_LOG_ARGUMENTS'] && !enable_json_logs
|
||||
chain.add Gitlab::SidekiqMiddleware::MemoryKiller if ENV['SIDEKIQ_MEMORY_KILLER_MAX_RSS']
|
||||
chain.add Gitlab::SidekiqMiddleware::MemoryKiller if enable_sidekiq_memory_killer && use_sidekiq_legacy_memory_killer
|
||||
chain.add Gitlab::SidekiqMiddleware::RequestStoreMiddleware unless ENV['SIDEKIQ_REQUEST_STORE'] == '0'
|
||||
chain.add Gitlab::SidekiqMiddleware::BatchLoader
|
||||
chain.add Gitlab::SidekiqMiddleware::CorrelationLogger
|
||||
|
@ -60,7 +62,11 @@ Sidekiq.configure_server do |config|
|
|||
# Sidekiq (e.g. in an initializer).
|
||||
ActiveRecord::Base.clear_all_connections!
|
||||
|
||||
Gitlab::SidekiqDaemon::Monitor.instance.start if enable_sidekiq_monitor
|
||||
# Start monitor to track running jobs. By default, cancel job is not enabled
|
||||
# To cancel job, it requires `SIDEKIQ_MONITOR_WORKER=1` to enable notification channel
|
||||
Gitlab::SidekiqDaemon::Monitor.instance.start
|
||||
|
||||
Gitlab::SidekiqDaemon::MemoryKiller.instance.start if enable_sidekiq_memory_killer && use_sidekiq_daemon_memory_killer
|
||||
end
|
||||
|
||||
if enable_reliable_fetch?
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class CreateAnalyticsRepositoryFilesTable < ActiveRecord::Migration[5.2]
|
||||
include Gitlab::Database::MigrationHelpers
|
||||
|
||||
DOWNTIME = false
|
||||
|
||||
def change
|
||||
create_table :analytics_repository_files do |t|
|
||||
t.references :project,
|
||||
index: false,
|
||||
foreign_key: { on_delete: :cascade },
|
||||
null: false
|
||||
t.string :file_path,
|
||||
limit: 4096,
|
||||
null: false
|
||||
end
|
||||
|
||||
add_index :analytics_repository_files, [:project_id, :file_path], unique: true
|
||||
end
|
||||
end
|
|
@ -0,0 +1,29 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class CreateAnalyticsRepositoryFileEditsTable < ActiveRecord::Migration[5.2]
|
||||
include Gitlab::Database::MigrationHelpers
|
||||
|
||||
DOWNTIME = false
|
||||
|
||||
def change
|
||||
create_table :analytics_repository_file_edits do |t|
|
||||
t.references :project,
|
||||
index: true,
|
||||
foreign_key: { on_delete: :cascade }, null: false
|
||||
t.references :analytics_repository_file,
|
||||
index: false,
|
||||
foreign_key: { on_delete: :cascade },
|
||||
null: false
|
||||
t.date :committed_date,
|
||||
null: false
|
||||
t.integer :num_edits,
|
||||
null: false,
|
||||
default: 0
|
||||
end
|
||||
|
||||
add_index :analytics_repository_file_edits,
|
||||
[:analytics_repository_file_id, :committed_date, :project_id],
|
||||
name: 'index_file_edits_on_committed_date_file_id_and_project_id',
|
||||
unique: true
|
||||
end
|
||||
end
|
18
db/schema.rb
18
db/schema.rb
|
@ -93,6 +93,21 @@ ActiveRecord::Schema.define(version: 2019_09_18_104222) do
|
|||
t.index ["project_id"], name: "analytics_repository_languages_on_project_id"
|
||||
end
|
||||
|
||||
create_table "analytics_repository_file_edits", force: :cascade do |t|
|
||||
t.bigint "project_id", null: false
|
||||
t.bigint "analytics_repository_file_id", null: false
|
||||
t.date "committed_date", null: false
|
||||
t.integer "num_edits", default: 0, null: false
|
||||
t.index ["analytics_repository_file_id", "committed_date", "project_id"], name: "index_file_edits_on_committed_date_file_id_and_project_id", unique: true
|
||||
t.index ["project_id"], name: "index_analytics_repository_file_edits_on_project_id"
|
||||
end
|
||||
|
||||
create_table "analytics_repository_files", force: :cascade do |t|
|
||||
t.bigint "project_id", null: false
|
||||
t.string "file_path", limit: 4096, null: false
|
||||
t.index ["project_id", "file_path"], name: "index_analytics_repository_files_on_project_id_and_file_path", unique: true
|
||||
end
|
||||
|
||||
create_table "appearances", id: :serial, force: :cascade do |t|
|
||||
t.string "title", null: false
|
||||
t.text "description", null: false
|
||||
|
@ -3789,6 +3804,9 @@ ActiveRecord::Schema.define(version: 2019_09_18_104222) do
|
|||
add_foreign_key "analytics_cycle_analytics_project_stages", "projects", on_delete: :cascade
|
||||
add_foreign_key "analytics_language_trend_repository_languages", "programming_languages", on_delete: :cascade
|
||||
add_foreign_key "analytics_language_trend_repository_languages", "projects", on_delete: :cascade
|
||||
add_foreign_key "analytics_repository_file_edits", "analytics_repository_files", on_delete: :cascade
|
||||
add_foreign_key "analytics_repository_file_edits", "projects", on_delete: :cascade
|
||||
add_foreign_key "analytics_repository_files", "projects", on_delete: :cascade
|
||||
add_foreign_key "application_settings", "namespaces", column: "custom_project_templates_group_id", on_delete: :nullify
|
||||
add_foreign_key "application_settings", "projects", column: "file_template_project_id", name: "fk_ec757bd087", on_delete: :nullify
|
||||
add_foreign_key "application_settings", "projects", column: "instance_administration_project_id", on_delete: :nullify
|
||||
|
|
|
@ -25,7 +25,7 @@ Any change that requires access to the **Admin Area** needs to be done in the
|
|||
|
||||
GitLab stores a number of secret values in the `/etc/gitlab/gitlab-secrets.json`
|
||||
file which *must* be the same on all nodes. Until there is
|
||||
a means of automatically replicating these between nodes (see issue [gitlab-org/gitlab-ee#3789]),
|
||||
a means of automatically replicating these between nodes (see issue [gitlab-org/gitlab#3789]),
|
||||
they must be manually replicated to the **secondary** node.
|
||||
|
||||
1. SSH into the **primary** node, and execute the command below:
|
||||
|
@ -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/issues/3789
|
||||
[gitlab-org/gitlab#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
|
||||
|
|
|
@ -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-foss/issues/64335)
|
||||
- **Known Issues:** While validating the reference architecture, slow endpoints were discovered and are being investigated. [gitlab-org/gitlab-foss/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
|
||||
|
|
|
@ -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-foss/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/blob/v10.1.4/doc/administration/high_availability/database.md#configure-using-omnibus).
|
||||
|
||||
Read more on high-availability configuration:
|
||||
|
||||
|
|
|
@ -374,4 +374,4 @@ When in doubt, please read [Redis Sentinel documentation](https://redis.io/topic
|
|||
[downloads]: https://about.gitlab.com/downloads
|
||||
[restart]: ../restart_gitlab.md#installations-from-source
|
||||
[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
|
||||
[resque]: https://gitlab.com/gitlab-org/gitlab/blob/master/config/resque.yml.example
|
||||
|
|
|
@ -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-foss/blob/master/config/gitlab.yml.example)
|
||||
The default pattern can be located in [`gitlab.yml.example`](https://gitlab.com/gitlab-org/gitlab/blob/master/config/gitlab.yml.example)
|
||||
under the "Automatic issue closing" section.
|
||||
|
||||
> **Tip:**
|
||||
|
|
|
@ -23,7 +23,7 @@ requests from the API are logged to a separate file in `api_json.log`.
|
|||
Each line contains a JSON line that can be ingested by Elasticsearch, Splunk, etc. For example:
|
||||
|
||||
```json
|
||||
{"method":"GET","path":"/gitlab/gitlab-ce/issues/1234","format":"html","controller":"Projects::IssuesController","action":"show","status":200,"duration":229.03,"view":174.07,"db":13.24,"time":"2017-08-08T20:15:54.821Z","params":[{"key":"param_key","value":"param_value"}],"remote_ip":"18.245.0.1","user_id":1,"username":"admin","gitaly_calls":76,"gitaly_duration":7.41,"queue_duration": 112.47}
|
||||
{"method":"GET","path":"/gitlab/gitlab-foss/issues/1234","format":"html","controller":"Projects::IssuesController","action":"show","status":200,"duration":229.03,"view":174.07,"db":13.24,"time":"2017-08-08T20:15:54.821Z","params":[{"key":"param_key","value":"param_value"}],"remote_ip":"18.245.0.1","user_id":1,"username":"admin","gitaly_calls":76,"gitaly_duration":7.41,"queue_duration": 112.47}
|
||||
```
|
||||
|
||||
In this example, you can see this was a GET request for a specific
|
||||
|
|
|
@ -16,7 +16,7 @@ This metric tracks the total time spent (in seconds) importing a project (from
|
|||
project creation until the import process finishes), for every imported project.
|
||||
|
||||
The name of the project is stored in the `project` label in the format
|
||||
`namespace/name` (e.g. `gitlab-org/gitlab-ce`).
|
||||
`namespace/name` (e.g. `gitlab-org/gitlab`).
|
||||
|
||||
## Number of imported projects
|
||||
|
||||
|
@ -54,7 +54,7 @@ projects. This metric does not expose any labels.
|
|||
This metric tracks the number of imported issues across all projects.
|
||||
|
||||
The name of the project is stored in the `project` label in the format
|
||||
`namespace/name` (e.g. `gitlab-org/gitlab-ce`).
|
||||
`namespace/name` (e.g. `gitlab-org/gitlab`).
|
||||
|
||||
## Number of imported pull requests
|
||||
|
||||
|
@ -65,7 +65,7 @@ The name of the project is stored in the `project` label in the format
|
|||
This metric tracks the number of imported pull requests across all projects.
|
||||
|
||||
The name of the project is stored in the `project` label in the format
|
||||
`namespace/name` (e.g. `gitlab-org/gitlab-ce`).
|
||||
`namespace/name` (e.g. `gitlab-org/gitlab`).
|
||||
|
||||
## Number of imported comments
|
||||
|
||||
|
@ -76,7 +76,7 @@ The name of the project is stored in the `project` label in the format
|
|||
This metric tracks the number of imported comments across all projects.
|
||||
|
||||
The name of the project is stored in the `project` label in the format
|
||||
`namespace/name` (e.g. `gitlab-org/gitlab-ce`).
|
||||
`namespace/name` (e.g. `gitlab-org/gitlab`).
|
||||
|
||||
## Number of imported pull request review comments
|
||||
|
||||
|
@ -87,7 +87,7 @@ The name of the project is stored in the `project` label in the format
|
|||
This metric tracks the number of imported comments across all projects.
|
||||
|
||||
The name of the project is stored in the `project` label in the format
|
||||
`namespace/name` (e.g. `gitlab-org/gitlab-ce`).
|
||||
`namespace/name` (e.g. `gitlab-org/gitlab`).
|
||||
|
||||
## Number of imported repositories
|
||||
|
||||
|
|
|
@ -26,18 +26,50 @@ run as a process group leader (e.g., using `chpst -P`). If using Omnibus or the
|
|||
|
||||
The MemoryKiller is controlled using environment variables.
|
||||
|
||||
- `SIDEKIQ_MEMORY_KILLER_MAX_RSS`: if this variable is set, and its value is
|
||||
greater than 0, then after each Sidekiq job, the MemoryKiller will check the
|
||||
RSS of the Sidekiq process that executed the job. If the RSS of the Sidekiq
|
||||
process (expressed in kilobytes) exceeds SIDEKIQ_MEMORY_KILLER_MAX_RSS, a
|
||||
delayed shutdown is triggered. The default value for Omnibus packages is set
|
||||
- `SIDEKIQ_DAEMON_MEMORY_KILLER`: defaults to 0. When set to 1, the MemoryKiller
|
||||
works in _daemon_ mode. Otherwise, the MemoryKiller works in _legacy_ mode.
|
||||
|
||||
In _legacy_ mode, the MemoryKiller checks the Sidekiq process RSS after each job.
|
||||
|
||||
In _daemon_ mode, the MemoryKiller checks the Sidekiq process RSS every 3 seconds
|
||||
(defined by `SIDEKIQ_MEMORY_KILLER_CHECK_INTERVAL`).
|
||||
|
||||
- `SIDEKIQ_MEMORY_KILLER_MAX_RSS`: if this variable is set, and its value is greater
|
||||
than 0, the MemoryKiller is enabled. Otherwise the MemoryKiller is disabled.
|
||||
|
||||
`SIDEKIQ_MEMORY_KILLER_MAX_RSS` defines the Sidekiq process allowed RSS.
|
||||
|
||||
In _legacy_ mode, if the Sidekiq process exceeds the allowed RSS then an irreversible
|
||||
delayed graceful restart will be triggered. The restart of Sidekiq will happen
|
||||
after `SIDEKIQ_MEMORY_KILLER_GRACE_TIME` seconds.
|
||||
|
||||
In _daemon_ mode, if the Sidekiq process exceeds the allowed RSS for longer than
|
||||
`SIDEKIQ_MEMORY_KILLER_GRACE_TIME` the graceful restart will be triggered. If the
|
||||
Sidekiq process go below the allowed RSS within `SIDEKIQ_MEMORY_KILLER_GRACE_TIME`,
|
||||
the restart will be aborted.
|
||||
|
||||
The default value for Omnibus packages is set
|
||||
[in the omnibus-gitlab
|
||||
repository](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-cookbooks/gitlab/attributes/default.rb).
|
||||
- `SIDEKIQ_MEMORY_KILLER_GRACE_TIME`: defaults to 900 seconds (15 minutes). When
|
||||
a shutdown is triggered, the Sidekiq process will keep working normally for
|
||||
another 15 minutes.
|
||||
- `SIDEKIQ_MEMORY_KILLER_SHUTDOWN_WAIT`: defaults to 30 seconds. When the grace
|
||||
time has expired, the MemoryKiller tells Sidekiq to stop accepting new jobs.
|
||||
Existing jobs get 30 seconds to finish. After that, the MemoryKiller tells
|
||||
Sidekiq to shut down, and an external supervision mechanism (e.g. Runit) must
|
||||
restart Sidekiq.
|
||||
|
||||
- `SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS`: is used by _daemon_ mode. If the Sidekiq
|
||||
process RSS (expressed in kilobytes) exceeds `SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS`,
|
||||
an immediate graceful restart of Sidekiq is triggered.
|
||||
|
||||
- `SIDEKIQ_MEMORY_KILLER_CHECK_INTERVAL`: used in _daemon_ mode to define how
|
||||
often to check process RSS, default to 3 seconds.
|
||||
|
||||
- `SIDEKIQ_MEMORY_KILLER_GRACE_TIME`: defaults to 900 seconds (15 minutes).
|
||||
The usage of this variable is described as part of `SIDEKIQ_MEMORY_KILLER_MAX_RSS`.
|
||||
|
||||
- `SIDEKIQ_MEMORY_KILLER_SHUTDOWN_WAIT`: defaults to 30 seconds. This defines the
|
||||
maximum time allowed for all Sidekiq jobs to finish. No new jobs will be accepted
|
||||
during that time, and the process will exit as soon as all jobs finish.
|
||||
|
||||
If jobs do not finish during that time, the MemoryKiller will interrupt all currently
|
||||
running jobs by sending `SIGTERM` to the Sidekiq process.
|
||||
|
||||
If the process hard shutdown/restart is not performed by Sidekiq,
|
||||
the Sidekiq process will be forcefully terminated after
|
||||
`Sidekiq.options[:timeout] * 2` seconds. An external supervision mechanism
|
||||
(e.g. Runit) must restart Sidekiq afterwards.
|
||||
|
|
|
@ -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-foss/blob/master/lib/support/nginx/registry-ssl) and edit it to match the
|
||||
[`lib/support/nginx/registry-ssl`](https://gitlab.com/gitlab-org/gitlab/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:
|
||||
|
|
|
@ -13,10 +13,6 @@ description: 'Learn how to administer GitLab Pages.'
|
|||
GitLab Pages allows for hosting of static sites. It must be configured by an
|
||||
administrator. Separate [user documentation][pages-userguide] is available.
|
||||
|
||||
Read the [changelog](#changelog) if you are upgrading to a new GitLab
|
||||
version as it may include new features and changes needed to be made in your
|
||||
configuration.
|
||||
|
||||
NOTE: **Note:**
|
||||
This guide is for Omnibus GitLab installations. If you have installed
|
||||
GitLab from source, see
|
||||
|
@ -433,34 +429,6 @@ Pages are part of the [regular backup][backup] so there is nothing to configure.
|
|||
You should strongly consider running GitLab pages under a different hostname
|
||||
than GitLab to prevent XSS attacks.
|
||||
|
||||
## Changelog
|
||||
|
||||
GitLab Pages were first introduced in GitLab EE 8.3. Since then, many features
|
||||
where added, like custom CNAME and TLS support, and many more are likely to
|
||||
come. Below is a brief changelog. If no changes were introduced or a version is
|
||||
missing from the changelog, assume that the documentation is the same as the
|
||||
latest previous version.
|
||||
|
||||
---
|
||||
|
||||
**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/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.
|
||||
- The [NGINX configs][] have changed to reflect this change. So make sure to
|
||||
update them.
|
||||
- Custom CNAME and TLS certificates support.
|
||||
- Documentation was moved to one place.
|
||||
|
||||
**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-foss/issues/14605
|
||||
[ee-80]: https://gitlab.com/gitlab-org/gitlab/merge_requests/80
|
||||
|
|
|
@ -455,5 +455,5 @@ than GitLab to prevent XSS attacks.
|
|||
[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-foss/blob/master/lib/support/init.d/gitlab.default.example
|
||||
[gl-example]: https://gitlab.com/gitlab-org/gitlab/blob/master/lib/support/init.d/gitlab.default.example
|
||||
[shared runners]: ../../ci/runners/README.md
|
||||
|
|
|
@ -118,6 +118,6 @@ randomly placed on one of the selected paths.
|
|||
[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-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
|
||||
[raketask]: https://gitlab.com/gitlab-org/gitlab/blob/033e5423a2594e08a7ebcd2379bd2331f4c39032/lib/backup/repository.rb#L54-56
|
||||
[repospath]: https://gitlab.com/gitlab-org/gitlab/blob/8-9-stable/config/gitlab.yml.example#L457
|
||||
[ce-11449]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/11449
|
||||
|
|
|
@ -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-foss/blob/master/lib/support/init.d/gitlab "GitLab init service file"
|
||||
[src-service]: https://gitlab.com/gitlab-org/gitlab/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"
|
||||
|
|
|
@ -533,7 +533,7 @@ Example response:
|
|||
},
|
||||
"description" : null,
|
||||
"sha" : "18f3e63d05582537db6d183d9d557be09e1f90c8",
|
||||
"target_url" : "https://gitlab.example.com/thedude/gitlab-ce/builds/91",
|
||||
"target_url" : "https://gitlab.example.com/thedude/gitlab-foss/builds/91",
|
||||
"finished_at" : null,
|
||||
"id" : 91,
|
||||
"ref" : "master"
|
||||
|
@ -544,7 +544,7 @@ Example response:
|
|||
"allow_failure" : false,
|
||||
"status" : "pending",
|
||||
"created_at" : "2016-01-19T08:40:25.832Z",
|
||||
"target_url" : "https://gitlab.example.com/thedude/gitlab-ce/builds/90",
|
||||
"target_url" : "https://gitlab.example.com/thedude/gitlab-foss/builds/90",
|
||||
"id" : 90,
|
||||
"finished_at" : null,
|
||||
"ref" : "master",
|
||||
|
|
|
@ -61,7 +61,7 @@ POST /features/:name
|
|||
| `feature_group` | string | no | A Feature group name |
|
||||
| `user` | string | no | A GitLab username |
|
||||
| `group` | string | no | A GitLab group's path, for example `gitlab-org` |
|
||||
| `project` | string | no | A projects path, for example `gitlab-org/gitlab-ce` |
|
||||
| `project` | string | no | A projects path, for example `gitlab-org/gitlab-foss` |
|
||||
|
||||
Note that you can enable or disable a feature for a `feature_group`, a `user`,
|
||||
a `group`, and a `project` in a single API call.
|
||||
|
|
|
@ -23,12 +23,12 @@ Example response:
|
|||
{
|
||||
"id": 1,
|
||||
"project_id": 1,
|
||||
"name": "gitlab-ce"
|
||||
"name": "gitlab-foss"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"project_id": 2,
|
||||
"name": "gitlab-ee"
|
||||
"name": "gitlab"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
@ -46,7 +46,7 @@ GET /project_aliases/:name
|
|||
| `name` | string | yes | The name of the alias |
|
||||
|
||||
```
|
||||
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/project_aliases/gitlab-ee"
|
||||
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/project_aliases/gitlab"
|
||||
```
|
||||
|
||||
Example response:
|
||||
|
@ -55,7 +55,7 @@ Example response:
|
|||
{
|
||||
"id": 1,
|
||||
"project_id": 1,
|
||||
"name": "gitlab-ee"
|
||||
"name": "gitlab"
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -74,13 +74,13 @@ POST /project_aliases
|
|||
| `name` | string | yes | The name of the alias. Must be unique. |
|
||||
|
||||
```
|
||||
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/project_aliases" --form "project_id=1" --form "name=gitlab-ee"
|
||||
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/project_aliases" --form "project_id=1" --form "name=gitlab"
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```
|
||||
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/project_aliases" --form "project_id=gitlab-org/gitlab-ee" --form "name=gitlab-ee"
|
||||
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/project_aliases" --form "project_id=gitlab-org/gitlab" --form "name=gitlab"
|
||||
```
|
||||
|
||||
Example response:
|
||||
|
@ -89,7 +89,7 @@ Example response:
|
|||
{
|
||||
"id": 1,
|
||||
"project_id": 1,
|
||||
"name": "gitlab-ee"
|
||||
"name": "gitlab"
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -107,5 +107,5 @@ DELETE /project_aliases/:name
|
|||
| `name` | string | yes | The name of the alias |
|
||||
|
||||
```
|
||||
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/project_aliases/gitlab-ee"
|
||||
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/project_aliases/gitlab"
|
||||
```
|
||||
|
|
|
@ -809,16 +809,16 @@ If the project is a fork, and you provide a valid token to authenticate, the
|
|||
"description":"GitLab Community Edition",
|
||||
"name":"GitLab Community Edition",
|
||||
"name_with_namespace":"GitLab.org / GitLab Community Edition",
|
||||
"path":"gitlab-ce",
|
||||
"path_with_namespace":"gitlab-org/gitlab-ce",
|
||||
"path":"gitlab-foss",
|
||||
"path_with_namespace":"gitlab-org/gitlab-foss",
|
||||
"created_at":"2013-09-26T06:02:36.000Z",
|
||||
"default_branch":"master",
|
||||
"tag_list":[],
|
||||
"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-ce.git",
|
||||
"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-foss.git",
|
||||
"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-foss/blob/master/LICENSE",
|
||||
"license_url": "https://gitlab.com/gitlab-org/gitlab/blob/master/LICENSE",
|
||||
"license": {
|
||||
"key": "mit",
|
||||
"name": "MIT License",
|
||||
|
|
|
@ -184,8 +184,8 @@ Example response:
|
|||
"id": 1,
|
||||
"name": "GitLab Community Edition",
|
||||
"name_with_namespace": "GitLab.org / GitLab Community Edition",
|
||||
"path": "gitlab-ce",
|
||||
"path_with_namespace": "gitlab-org/gitlab-ce"
|
||||
"path": "gitlab-foss",
|
||||
"path_with_namespace": "gitlab-org/gitlab-foss"
|
||||
}
|
||||
],
|
||||
"token": "205086a8e3b9a2b818ffac9b89d102",
|
||||
|
@ -243,8 +243,8 @@ Example response:
|
|||
"id": 1,
|
||||
"name": "GitLab Community Edition",
|
||||
"name_with_namespace": "GitLab.org / GitLab Community Edition",
|
||||
"path": "gitlab-ce",
|
||||
"path_with_namespace": "gitlab-org/gitlab-ce"
|
||||
"path": "gitlab-foss",
|
||||
"path_with_namespace": "gitlab-org/gitlab-foss"
|
||||
}
|
||||
],
|
||||
"token": "205086a8e3b9a2b818ffac9b89d102",
|
||||
|
|
|
@ -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-foss/blob/8-13-stable/doc/api/services.md#jira
|
||||
[old-jira-api]: https://gitlab.com/gitlab-org/gitlab/blob/8-13-stable/doc/api/services.md#jira
|
||||
|
||||
## MockCI
|
||||
|
||||
|
|
|
@ -36,8 +36,8 @@ Example Response:
|
|||
"id": 2,
|
||||
"name": "Gitlab Ce",
|
||||
"name_with_namespace": "Gitlab Org / Gitlab Ce",
|
||||
"path": "gitlab-ce",
|
||||
"path_with_namespace": "gitlab-org/gitlab-ce"
|
||||
"path": "gitlab-foss",
|
||||
"path_with_namespace": "gitlab-org/gitlab-foss"
|
||||
},
|
||||
"author": {
|
||||
"name": "Administrator",
|
||||
|
@ -109,8 +109,8 @@ Example Response:
|
|||
"id": 2,
|
||||
"name": "Gitlab Ce",
|
||||
"name_with_namespace": "Gitlab Org / Gitlab Ce",
|
||||
"path": "gitlab-ce",
|
||||
"path_with_namespace": "gitlab-org/gitlab-ce"
|
||||
"path": "gitlab-foss",
|
||||
"path_with_namespace": "gitlab-org/gitlab-foss"
|
||||
},
|
||||
"author": {
|
||||
"name": "Maxie Medhurst",
|
||||
|
@ -207,8 +207,8 @@ Example Response:
|
|||
"id": 2,
|
||||
"name": "Gitlab Ce",
|
||||
"name_with_namespace": "Gitlab Org / Gitlab Ce",
|
||||
"path": "gitlab-ce",
|
||||
"path_with_namespace": "gitlab-org/gitlab-ce"
|
||||
"path": "gitlab-foss",
|
||||
"path_with_namespace": "gitlab-org/gitlab-foss"
|
||||
},
|
||||
"author": {
|
||||
"name": "Administrator",
|
||||
|
|
|
@ -99,7 +99,6 @@ via GitHub integration. If you want to exclusively run pipelines on external pul
|
|||
requests and not on branches you can add `except: [branches]` to the job specs.
|
||||
[Read more](https://gitlab.com/gitlab-org/gitlab/issues/24089#workaround).
|
||||
|
||||
[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
|
||||
|
|
|
@ -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-foss/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/blob/2f3dc314f42dbd79813e6251792853bc231e69dd/app/models/commit_status.rb#L99) regular expression: `\d+[\s:\/\\]+\d+\s*`.
|
||||
|
||||
#### How grouping works
|
||||
|
||||
|
|
|
@ -263,12 +263,12 @@ export CI_JOB_TOKEN="abcde-1234ABCD5678ef"
|
|||
export CI_PIPELINE_ID="1000"
|
||||
export CI_PIPELINE_IID="10"
|
||||
export CI_PAGES_DOMAIN="gitlab.io"
|
||||
export CI_PAGES_URL="https://gitlab-org.gitlab.io/gitlab-ce"
|
||||
export CI_PAGES_URL="https://gitlab-org.gitlab.io/gitlab-foss"
|
||||
export CI_PROJECT_ID="34"
|
||||
export CI_PROJECT_DIR="/builds/gitlab-org/gitlab-foss"
|
||||
export CI_PROJECT_NAME="gitlab-ce"
|
||||
export CI_PROJECT_NAME="gitlab-foss"
|
||||
export CI_PROJECT_NAMESPACE="gitlab-org"
|
||||
export CI_PROJECT_PATH="gitlab-org/gitlab-ce"
|
||||
export CI_PROJECT_PATH="gitlab-org/gitlab-foss"
|
||||
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-foss"
|
||||
|
|
|
@ -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-foss/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`](https://gitlab.com/gitlab-org/gitlab/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),
|
||||
|
@ -436,13 +436,13 @@ repository and not forks:
|
|||
```yaml
|
||||
job:
|
||||
only:
|
||||
- branches@gitlab-org/gitlab-ce
|
||||
- branches@gitlab-org/gitlab
|
||||
except:
|
||||
- master@gitlab-org/gitlab-ce
|
||||
- /^release/.*$/@gitlab-org/gitlab-ce
|
||||
- master@gitlab-org/gitlab
|
||||
- /^release/.*$/@gitlab-org/gitlab
|
||||
```
|
||||
|
||||
The above example will run `job` for all branches on `gitlab-org/gitlab-ce`,
|
||||
The above example will run `job` for all branches on `gitlab-org/gitlab`,
|
||||
except `master` and those with names prefixed with `release/`.
|
||||
|
||||
If a job does not have an `only` rule, `only: ['branches', 'tags']` is set by
|
||||
|
@ -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-foss/issues).
|
||||
[open an issue](https://www.gitlab.com/gitlab-org/gitlab/issues).
|
||||
|
||||
### `tags`
|
||||
|
||||
|
@ -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-foss/issues/65504)).
|
||||
in the first stage (see [gitlab-foss#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-foss/issues/65505)).
|
||||
dependencies or depend on jobs in the current stage (see [gitlab-foss#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.
|
||||
|
||||
|
@ -2243,7 +2243,7 @@ or template includes.
|
|||
> [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-foss/tree/master/lib/gitlab/ci/templates).
|
||||
[shipped with GitLab](https://gitlab.com/gitlab-org/gitlab/tree/master/lib/gitlab/ci/templates).
|
||||
|
||||
For example:
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ server.
|
|||
|
||||
## Configuration
|
||||
|
||||
In the [`gitlab.yml` gravatar section](https://gitlab.com/gitlab-org/gitlab-foss/blob/672bd3902d86b78d730cea809fce312ec49d39d7/config/gitlab.yml.example#L122), set
|
||||
In the [`gitlab.yml` gravatar section](https://gitlab.com/gitlab-org/gitlab/blob/672bd3902d86b78d730cea809fce312ec49d39d7/config/gitlab.yml.example#L122), set
|
||||
the configuration options as follows:
|
||||
|
||||
### For HTTP
|
||||
|
|
|
@ -526,7 +526,7 @@ Using these helpers, we can build specs like this:
|
|||
let(:mutation) do
|
||||
graphql_mutation(
|
||||
:merge_request_set_wip,
|
||||
project_path: 'gitlab-org/gitlab-ce',
|
||||
project_path: 'gitlab-org/gitlab-foss',
|
||||
iid: '1',
|
||||
wip: true
|
||||
)
|
||||
|
|
|
@ -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-foss/blob/master/lib/api/environments.rb>
|
||||
(see <https://gitlab.com/gitlab-org/gitlab/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-foss/blob/master/lib/api/entities.rb
|
||||
[Entity]: https://gitlab.com/gitlab-org/gitlab/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
|
||||
|
|
|
@ -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/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).
|
||||
[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/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-foss/blob/master/config/gitlab.yml.example
|
||||
[gitlab-yml]: https://gitlab.com/gitlab-org/gitlab/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
|
||||
|
|
|
@ -85,14 +85,14 @@ for CE and EE. If the `ee-compat-check` job fails, this process is required.
|
|||
This method only requires that you have cloned both CE and EE into your computer.
|
||||
If you don't have them yet, please go ahead and clone them:
|
||||
|
||||
- Clone CE repo: `git clone git@gitlab.com:gitlab-org/gitlab-ce.git`
|
||||
- Clone EE repo: `git clone git@gitlab.com:gitlab-org/gitlab-ee.git`
|
||||
- Clone CE repo: `git clone git@gitlab.com:gitlab-org/gitlab-foss.git`
|
||||
- Clone EE repo: `git clone git@gitlab.com:gitlab-org/gitlab.git`
|
||||
|
||||
And the only additional setup we need is to add CE as remote of EE and vice-versa:
|
||||
|
||||
- Open two terminal windows, one in CE, and another one in EE:
|
||||
- In EE: `git remote add ce git@gitlab.com:gitlab-org/gitlab-ce.git`
|
||||
- In CE: `git remote add ee git@gitlab.com:gitlab-org/gitlab-ee.git`
|
||||
- In EE: `git remote add ce git@gitlab.com:gitlab-org/gitlab-foss.git`
|
||||
- In CE: `git remote add ee git@gitlab.com:gitlab-org/gitlab.git`
|
||||
|
||||
That's all setup we need, so that we can cherry-pick a commit from CE to EE, and
|
||||
from EE to CE.
|
||||
|
|
|
@ -9,7 +9,7 @@ that will create:
|
|||
- A deb package for Ubuntu 16.04, available as a build artifact, and
|
||||
- A docker image, which is pushed to [Omnibus GitLab's container
|
||||
registry](https://gitlab.com/gitlab-org/omnibus-gitlab/container_registry)
|
||||
(images titled `gitlab-ce` and `gitlab-ee` respectively and image tag is the
|
||||
(images titled `gitlab-foss` and `gitlab-ee` respectively and image tag is the
|
||||
commit which triggered the pipeline).
|
||||
|
||||
When you push a commit to either the GitLab CE or GitLab EE project, the
|
||||
|
|
|
@ -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-foss/blob/master/danger/commit_messages/Dangerfile).
|
||||
[Danger checks](https://gitlab.com/gitlab-org/gitlab/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-foss/blob/master/scripts/prepare_build.sh).
|
||||
1. The [CI environment preparation](https://gitlab.com/gitlab-org/gitlab/blob/master/scripts/prepare_build.sh).
|
||||
1. The [Omnibus package creator](https://gitlab.com/gitlab-org/omnibus-gitlab).
|
||||
|
|
|
@ -15,7 +15,7 @@ to the existing rules, then this is the document for you.
|
|||
|
||||
## Operation
|
||||
|
||||
On startup, Danger reads a [`Dangerfile`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/Dangerfile)
|
||||
On startup, Danger reads a [`Dangerfile`](https://gitlab.com/gitlab-org/gitlab/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-foss/tree/master/danger/)
|
||||
subdirectory, so ours just tells Danger to load it all. Danger will then run
|
||||
|
|
|
@ -78,7 +78,7 @@ and details for a database reviewer:
|
|||
- Format any queries with a SQL query formatter, for example with [sqlformat.darold.net](http://sqlformat.darold.net).
|
||||
- Consider providing query plans via a link to [explain.depesz.com](https://explain.depesz.com) or another tool instead of textual form.
|
||||
- For query changes, it is best to provide the SQL query along with a plan *before* and *after* the change. This helps to spot differences quickly.
|
||||
- When providing query plans, make sure to use good parameter values, so that the query executed is a good example and also hits enough data. Usually, the `gitlab-org` namespace (`namespace_id = 9970`) and the `gitlab-org/gitlab-ce` project (`project_id = 13083`) provides enough data to serve as a good example.
|
||||
- When providing query plans, make sure to use good parameter values, so that the query executed is a good example and also hits enough data. Usually, the `gitlab-org` namespace (`namespace_id = 9970`) and the `gitlab-org/gitlab-foss` project (`project_id = 13083`) provides enough data to serve as a good example.
|
||||
|
||||
### How to review for database
|
||||
|
||||
|
|
|
@ -18,8 +18,8 @@ from where content is sourced, the `gitlab-docs` project, and the published outp
|
|||
|
||||
```mermaid
|
||||
graph LR
|
||||
A[gitlab-ce/doc]
|
||||
B[gitlab-ee/doc]
|
||||
A[gitlab-foss/doc]
|
||||
B[gitlab/doc]
|
||||
C[gitlab-runner/docs]
|
||||
D[omnibus-gitlab/doc]
|
||||
E[charts/doc]
|
||||
|
|
|
@ -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-fossblobmasterlibgitlabutilsoverriderb) and use `override` to
|
||||
- you should always [`extend ::Gitlab::Utils::Override`](utilities.md#override) 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
|
||||
|
|
|
@ -59,7 +59,7 @@ 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/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/cc723071ad337573e0360a879cbf99bc4fb7adb9/ee/app/models/concerns/elastic/application_versioned_search.rb).
|
||||
|
||||
All indexing after the initial one is done via `ElasticIndexerWorker` (sidekiq jobs).
|
||||
|
||||
|
|
|
@ -88,15 +88,15 @@ for the format of the email key:
|
|||
|
||||
- Actions are always at the end, separated by `-`. For example `-issue` or `-merge-request`
|
||||
- If your feature is related to a project, the key begins with the project identifiers (project path slug
|
||||
and project id), separated by `-`. For example, `gitlab-org-gitlab-ce-20`
|
||||
and project id), separated by `-`. For example, `gitlab-org-gitlab-foss-20`
|
||||
- Additional information, such as an author's token, can be added between the project identifiers and
|
||||
the action, separated by `-`. For example, `gitlab-org-gitlab-ce-20-Author_Token12345678-issue`
|
||||
the action, separated by `-`. For example, `gitlab-org-gitlab-foss-20-Author_Token12345678-issue`
|
||||
- You register your handlers in `lib/gitlab/email/handler.rb`
|
||||
|
||||
Examples of valid email keys:
|
||||
|
||||
- `gitlab-org-gitlab-ce-20-Author_Token12345678-issue` (create a new issue)
|
||||
- `gitlab-org-gitlab-ce-20-Author_Token12345678-merge-request` (create a new merge request)
|
||||
- `gitlab-org-gitlab-foss-20-Author_Token12345678-issue` (create a new issue)
|
||||
- `gitlab-org-gitlab-foss-20-Author_Token12345678-merge-request` (create a new merge request)
|
||||
- `1234567890abcdef1234567890abcdef-unsubscribe` (unsubscribe from a conversation)
|
||||
- `1234567890abcdef1234567890abcdef` (reply to a conversation)
|
||||
|
||||
|
|
|
@ -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-foss/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/blob/master/app/assets/javascripts/vue_shared/components/gl_modal.vue)
|
||||
|
||||
Here is an example of how to use it:
|
||||
|
||||
|
|
|
@ -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-foss/blob/master/app/assets/javascripts/mini_pipeline_graph_dropdown.js
|
||||
[container-class-example]: https://gitlab.com/gitlab-org/gitlab/blob/master/app/assets/javascripts/mini_pipeline_graph_dropdown.js
|
||||
|
|
|
@ -26,7 +26,7 @@ question:
|
|||
document.body.dataset.page
|
||||
```
|
||||
|
||||
Find here the [source code setting the attribute](https://gitlab.com/gitlab-org/gitlab-foss/blob/cc5095edfce2b4d4083a4fb1cdc7c0a1898b9921/app/views/layouts/application.html.haml#L4).
|
||||
Find here the [source code setting the attribute](https://gitlab.com/gitlab-org/gitlab/blob/cc5095edfce2b4d4083a4fb1cdc7c0a1898b9921/app/views/layouts/application.html.haml#L4).
|
||||
|
||||
#### Rails routes
|
||||
|
||||
|
|
|
@ -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-foss/blob/master/app/assets/javascripts/lib/graphql.js
|
||||
[default-client]: https://gitlab.com/gitlab-org/gitlab/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
|
||||
|
|
|
@ -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-foss/blob/master/.eslintrc.yml) for specific rules and patterns.
|
||||
See [our current .eslintrc](https://gitlab.com/gitlab-org/gitlab/blob/master/.eslintrc.yml) for specific rules and patterns.
|
||||
|
||||
### Common
|
||||
|
||||
|
@ -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-foss/blob/master/.eslintrc
|
||||
[eslintrc]: https://gitlab.com/gitlab-org/gitlab/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
|
||||
|
|
|
@ -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-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)
|
||||
- [`common.scss`](https://gitlab.com/gitlab-org/gitlab/blob/master/app/assets/stylesheets/framework/common.scss) (old)
|
||||
- [`utilities.scss`](https://gitlab.com/gitlab-org/gitlab/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-foss/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/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-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)
|
||||
- [`.circle-icon-container`](https://gitlab.com/gitlab-org/gitlab/blob/579fa8b8ec7eb38d40c96521f517c9dab8c3b97a/app/assets/stylesheets/framework/icons.scss#L85)
|
||||
- [`.d-flex-center`](https://gitlab.com/gitlab-org/gitlab/blob/900083d89cd6af391d26ab7922b3f64fa2839bef/app/assets/stylesheets/framework/common.scss#L425)
|
||||
|
||||
Inspiration:
|
||||
|
||||
|
|
|
@ -91,11 +91,11 @@ sure it is clearly communicated to your team, and the Production team if you
|
|||
anticipate any potential problems.
|
||||
|
||||
Feature gates can also be actor based, for example a feature could first be
|
||||
enabled for only the `gitlab-ce` project. The project is passed by supplying a
|
||||
enabled for only the `gitlab` project. The project is passed by supplying a
|
||||
`--project` flag:
|
||||
|
||||
```
|
||||
/chatops run feature set --project=gitlab-org/gitlab-ce some_feature true
|
||||
/chatops run feature set --project=gitlab-org/gitlab some_feature true
|
||||
```
|
||||
|
||||
For groups the `--group` flag is available:
|
||||
|
|
|
@ -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-foss/blob/master/lib/tasks/gitlab/uploads/migrate.rake
|
||||
[category list]: https://gitlab.com/gitlab-org/gitlab/blob/master/lib/tasks/gitlab/uploads/migrate.rake
|
||||
|
|
|
@ -62,8 +62,8 @@ file and ask your manager to review and merge.
|
|||
|
||||
```yaml
|
||||
projects:
|
||||
gitlab-ee: reviewer go
|
||||
gitlab-ce: reviewer go
|
||||
gitlab: reviewer go
|
||||
gitlab-foss: reviewer go
|
||||
```
|
||||
|
||||
## Code style and format
|
||||
|
|
|
@ -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-foss/blob/8-4-stable/.rubocop.yml#L911-914)._
|
||||
Rubocop](https://gitlab.com/gitlab-org/gitlab/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-foss/blob/8-4-stable/.rubocop.yml#
|
|||
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-foss/blob/master/config/initializers/hamlit.rb)
|
||||
_**Note:** We've [removed these two filters](https://gitlab.com/gitlab-org/gitlab/blob/master/config/initializers/hamlit.rb)
|
||||
in an initializer._
|
||||
|
||||
### Further reading
|
||||
|
|
|
@ -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-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).
|
||||
[dates](https://gitlab.com/gitlab-org/gitlab/blob/4ab54c2233e91f60a80e5b6fa2181e6899fdcc3e/config/locales/en.yml#L54) and [times](https://gitlab.com/gitlab-org/gitlab/blob/4ab54c2233e91f60a80e5b6fa2181e6899fdcc3e/config/locales/en.yml#L262).
|
||||
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-foss/blob/master/config/locales/en.yml) file.
|
||||
you'll need to add it to [en.yml](https://gitlab.com/gitlab-org/gitlab/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-foss/blob/master/config/locales/en.yml) matches the date/time
|
||||
defined on [en.yml](https://gitlab.com/gitlab-org/gitlab/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
|
||||
|
|
|
@ -31,7 +31,9 @@ Read through the current performance problems using the Import/Export below.
|
|||
Out of memory (OOM) errors are normally caused by the [Sidekiq Memory Killer](../administration/operations/sidekiq_memory_killer.md):
|
||||
|
||||
```bash
|
||||
SIDEKIQ_MEMORY_KILLER_MAX_RSS = 2GB in GitLab.com
|
||||
SIDEKIQ_MEMORY_KILLER_MAX_RSS = 2000000
|
||||
SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS = 3000000
|
||||
SIDEKIQ_MEMORY_KILLER_GRACE_TIME = 900
|
||||
```
|
||||
|
||||
An import status `started`, and the following sidekiq logs will signal a memory issue:
|
||||
|
|
|
@ -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-foss/blob/master/lib/gitlab/kubernetes/kube_client.rb)
|
||||
[`Gitlab::Kubernetes::KubeClient`](https://gitlab.com/gitlab-org/gitlab/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-foss/blob/master/lib/gitlab/kubernetes/kube_client.rb)
|
||||
[`Gitlab::Kubernetes::KubeClient`](https://gitlab.com/gitlab-org/gitlab/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-foss/blob/master/app/models/concerns/reactive_caching.rb).
|
||||
caching](https://gitlab.com/gitlab-org/gitlab/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-foss/blob/master/spec/support/helpers/kubernetes_helpers.rb)
|
||||
[`KubernetesHelpers`](https://gitlab.com/gitlab-org/gitlab/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-foss/blob/master/lib/gitlab/kubernetes/kube_client.rb#)
|
||||
[`Kubeclient::KubeClient`](https://gitlab.com/gitlab-org/gitlab/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-foss/blob/master/app/services/clusters/applications/install_service.rb#L18)
|
||||
[`Clusters::Applications::InstallService`](https://gitlab.com/gitlab-org/gitlab/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.
|
||||
|
|
|
@ -481,5 +481,5 @@ by an integer. For example: `users` would turn into `users0`
|
|||
### Moving migrations from EE to CE
|
||||
|
||||
When migrations need to be moved from GitLab Enterprise Edition to GitLab Community Edition,
|
||||
a migration file should be moved from `ee/db/{post_,}migrate` directory in the `gitlab-ee` project to `db/{post_,}migrate` directory in the `gitlab-ce` project. This way
|
||||
a migration file should be moved from `ee/db/{post_,}migrate` directory in the `gitlab` project to `db/{post_,}migrate` directory in the `gitlab-foss` project. This way
|
||||
the schema number remains intact, there is no need to modify old migrations, and proper columns, tables or data are added in the Community Edition.
|
||||
|
|
|
@ -14,11 +14,11 @@ 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-foss/blob/v12.2.0.pre/app/models/project.rb#L90)
|
||||
[callback](https://gitlab.com/gitlab-org/gitlab/blob/4ab54c2233e91f60a80e5b6fa2181e6899fdcc3e/app/models/project.rb#L97)
|
||||
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-foss/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/blob/4ab54c2233e91f60a80e5b6fa2181e6899fdcc3e/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.
|
||||
|
|
|
@ -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-foss/blob/master/app/assets/javascripts/dirty_submit/)
|
||||
Also, see [the code](https://gitlab.com/gitlab-org/gitlab/blob/master/app/assets/javascripts/dirty_submit/)
|
||||
within the GitLab project.
|
||||
|
||||
## Usage
|
||||
|
|
|
@ -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-foss/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/blob/master/config/prometheus/common_metrics.yml) file.
|
||||
|
||||
### Query identifier
|
||||
|
||||
|
|
|
@ -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-foss/blob/master/spec/support/helpers/query_recorder.rb) via [9c623e3e](https://gitlab.com/gitlab-org/gitlab-foss/commit/9c623e3e5d7434f2e30f7c389d13e5af4ede770a)
|
||||
> Implemented in [spec/support/query_recorder.rb](https://gitlab.com/gitlab-org/gitlab/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.
|
||||
|
||||
|
|
|
@ -57,9 +57,9 @@ client or other software requires something different.
|
|||
Examples:
|
||||
|
||||
```
|
||||
gitlab-org/gitlab-ce/-/activity
|
||||
gitlab-org/gitlab-ce/-/jobs/123
|
||||
gitlab-org/gitlab-ce/-/settings/repository
|
||||
gitlab-org/gitlab/-/activity
|
||||
gitlab-org/gitlab/-/jobs/123
|
||||
gitlab-org/gitlab/-/settings/repository
|
||||
gitlab-org/serverless/runtimes/-/settings/repository
|
||||
```
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ graph LR
|
|||
A1 -.->|1. Triggers an omnibus-gitlab pipeline and wait for it to be done| A2
|
||||
B2[`Trigger-qa` stage<br>`Trigger:qa-test` job] -.->|2. Triggers a gitlab-qa pipeline and wait for it to be done| A3
|
||||
|
||||
subgraph "gitlab-ce/ee pipeline"
|
||||
subgraph "gitlab-foss/gitlab pipeline"
|
||||
A1[`test` stage<br>`package-and-qa-manual` job]
|
||||
end
|
||||
|
||||
|
@ -135,8 +135,7 @@ Continued reading:
|
|||
|
||||
You can ask question in the `#quality` channel on Slack (GitLab internal) or
|
||||
you can find an issue you would like to work on in
|
||||
[the `gitlab-ce` issue tracker][gitlab-ce-issues],
|
||||
[the `gitlab-ee` issue tracker][gitlab-ce-issues], or
|
||||
[the `gitlab` issue tracker][gitlab-issues], or
|
||||
[the `gitlab-qa` issue tracker][gitlab-qa-issues].
|
||||
|
||||
[omnibus-gitlab]: https://gitlab.com/gitlab-org/omnibus-gitlab
|
||||
|
@ -147,8 +146,7 @@ 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-foss/issues?label_name[]=QA&label_name[]=test
|
||||
[gitlab-ee-issues]: https://gitlab.com/gitlab-org/gitlab/issues?label_name[]=QA&label_name[]=test
|
||||
[gitlab-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-foss/tree/master/qa/qa/specs/features
|
||||
[Page objects documentation]: https://gitlab.com/gitlab-org/gitlab/tree/master/qa/qa/page/README.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/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-foss/coverage-ruby/#_AllFiles) and [EE](https://gitlab-org.gitlab.io/gitlab/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.
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ is detected in any other branch (`flaky-examples-check` job). In the future, the
|
|||
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-foss/blob/master/spec/spec_helper.rb
|
||||
[`spec/spec_helper.rb`]: https://gitlab.com/gitlab-org/gitlab/blob/master/spec/spec_helper.rb
|
||||
|
||||
## Problems we had in the past at GitLab
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ which could arise (especially with testing against browser specific features).
|
|||
- 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-foss/blob/master/jest.config.js).
|
||||
The aliases used by Jest are defined in its [own config](https://gitlab.com/gitlab-org/gitlab/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.
|
||||
|
@ -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-foss/blob/master/spec/frontend/test_setup.js).
|
||||
[`/spec/frontend/test_setup.js`](https://gitlab.com/gitlab-org/gitlab/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-foss/blob/master/spec/frontend/helpers/timeout.js).
|
||||
[`setTestTimeout`](https://gitlab.com/gitlab-org/gitlab/blob/master/spec/frontend/helpers/timeout.js).
|
||||
|
||||
```javascript
|
||||
import { setTestTimeout } from 'helpers/timeout';
|
||||
|
@ -388,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-foss/blob/a2128edfee799e49a8732bfa235e2c5e14949c68/jest.config.js#L47)
|
||||
[done by default](https://gitlab.com/gitlab-org/gitlab/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).
|
||||
|
||||
|
@ -1048,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-foss/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/blob/master/spec/javascripts/ide/stores/actions_spec.js).
|
||||
|
||||
### Vue Helper: `mountComponent`
|
||||
|
||||
|
|
|
@ -16,23 +16,23 @@ graph TD
|
|||
review-build-cng -->|once the `review-build-cng` job is done| review-deploy
|
||||
review-deploy -->|once the `review-deploy` job is done| review-qa-smoke
|
||||
|
||||
subgraph "1. gitlab-ce/ee `prepare` stage"
|
||||
subgraph "1. gitlab-foss/gitlab `prepare` stage"
|
||||
build-qa-image
|
||||
end
|
||||
|
||||
subgraph "2. gitlab-ce/ee `test` stage"
|
||||
subgraph "2. gitlab-foss/gitlab `test` stage"
|
||||
gitlab:assets:compile
|
||||
end
|
||||
|
||||
subgraph "3. gitlab-ce/ee `review-prepare` stage"
|
||||
subgraph "3. gitlab-foss/gitlab `review-prepare` stage"
|
||||
review-build-cng
|
||||
end
|
||||
|
||||
subgraph "4. gitlab-ce/ee `review` stage"
|
||||
subgraph "4. gitlab-foss/gitlab `review` stage"
|
||||
review-deploy["review-deploy<br><br>Helm deploys the Review App using the Cloud<br/>Native images built by the CNG-mirror pipeline.<br><br>Cloud Native images are deployed to the `review-apps-ce` or `review-apps-ee`<br>Kubernetes (GKE) cluster, in the GCP `gitlab-review-apps` project."]
|
||||
end
|
||||
|
||||
subgraph "5. gitlab-ce/ee `qa` stage"
|
||||
subgraph "5. gitlab-foss/gitlab `qa` stage"
|
||||
review-qa-smoke[review-qa-smoke<br><br>gitlab-qa runs the smoke suite against the Review App.]
|
||||
end
|
||||
|
||||
|
@ -193,7 +193,7 @@ The following items may help diagnose this:
|
|||
- [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.
|
||||
- [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/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.
|
||||
- In K9s you can sort or add filters by typing the `/` character
|
||||
- `-lrelease=<review-app-slug>` - filters down to all pods for a release. This aids in determining what is having issues in a single deployment
|
||||
- `-lapp=<app>` - filters down to all pods for a specific app. This aids in determining resource usage by app.
|
||||
|
@ -311,8 +311,8 @@ find a way to limit it to only us.**
|
|||
[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/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
|
||||
[Auto-DevOps.gitlab-ci.yml]: https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml
|
||||
[gitlab-ci-yml]: https://gitlab.com/gitlab-org/gitlab/blob/master/.gitlab-ci.yml
|
||||
[gitlab-k8s-integration]: ../../user/project/clusters/index.md
|
||||
[K9s]: https://github.com/derailed/k9s
|
||||
[password-bug]: https://gitlab.com/gitlab-org/gitlab-foss/issues/53621
|
||||
|
|
|
@ -99,7 +99,7 @@ Formal definitions:
|
|||
- <https://en.wikipedia.org/wiki/White-box_testing>
|
||||
|
||||
These kind of tests ensure the GitLab *Rails* application (i.e.
|
||||
`gitlab-ce`/`gitlab-ee`) works as expected from a *browser* point of view.
|
||||
`gitlab-foss`/`gitlab`) works as expected from a *browser* point of view.
|
||||
|
||||
Note that:
|
||||
|
||||
|
|
|
@ -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-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).
|
||||
you can see an example of this in [`Projects::LfsStorageController`](https://gitlab.com/gitlab-org/gitlab/blob/cc723071ad337573e0360a879cbf99bc4fb7adb9/app/controllers/projects/lfs_storage_controller.rb)
|
||||
and [its routes](https://gitlab.com/gitlab-org/gitlab/blob/cc723071ad337573e0360a879cbf99bc4fb7adb9/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.
|
||||
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
|
||||
We developed a number of utilities to ease development.
|
||||
|
||||
## [`MergeHash`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/utils/merge_hash.rb)
|
||||
## `MergeHash`
|
||||
|
||||
Refer to: <https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/utils/merge_hash.rb>:
|
||||
|
||||
- Deep merges an array of hashes:
|
||||
|
||||
|
@ -45,7 +47,9 @@ We developed a number of utilities to ease development.
|
|||
[:hello, "world", :this, :crushes, "an entire", "hash"]
|
||||
```
|
||||
|
||||
## [`Override`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/utils/override.rb)
|
||||
## `Override`
|
||||
|
||||
Refer to <https://gitlab.com/gitlab-org/gitlab/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 +94,9 @@ We developed a number of utilities to ease development.
|
|||
end
|
||||
```
|
||||
|
||||
## [`StrongMemoize`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/utils/strong_memoize.rb)
|
||||
## `StrongMemoize`
|
||||
|
||||
Refer to <https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/utils/strong_memoize.rb>:
|
||||
|
||||
- Memoize the value even if it is `nil` or `false`.
|
||||
|
||||
|
@ -136,7 +142,9 @@ We developed a number of utilities to ease development.
|
|||
Find.new.clear_memoization(:result)
|
||||
```
|
||||
|
||||
## [`RequestCache`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/cache/request_cache.rb)
|
||||
## `RequestCache`
|
||||
|
||||
Refer to <https://gitlab.com/gitlab-org/gitlab/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,
|
||||
|
|
|
@ -90,7 +90,7 @@ your GitLab installation with the Community Edition's remote, fetch the latest
|
|||
changes, and checkout the latest stable branch:
|
||||
|
||||
```sh
|
||||
git remote set-url origin git@gitlab.com:gitlab-org/gitlab-ce.git
|
||||
git remote set-url origin git@gitlab.com:gitlab-org/gitlab-foss.git
|
||||
git fetch --all
|
||||
git checkout 8-x-stable
|
||||
```
|
||||
|
|
|
@ -110,8 +110,8 @@ and paste in your command line.
|
|||
|
||||
As an example, consider this repository path:
|
||||
|
||||
- HTTPS: `https://gitlab.com/gitlab-org/gitlab-foss.git`
|
||||
- SSH: `git@gitlab.com:gitlab-org/gitlab-ce.git`
|
||||
- HTTPS: `https://gitlab.com/gitlab-org/gitlab.git`
|
||||
- SSH: `git@gitlab.com:gitlab-org/gitlab.git`
|
||||
|
||||
To get started, open a terminal window in the directory you wish to clone the repository
|
||||
files into, and run one of the following commands.
|
||||
|
@ -119,13 +119,13 @@ files into, and run one of the following commands.
|
|||
Clone via HTTPS:
|
||||
|
||||
```bash
|
||||
git clone https://gitlab.com/gitlab-org/gitlab-foss.git
|
||||
git clone https://gitlab.com/gitlab-org/gitlab.git
|
||||
```
|
||||
|
||||
Clone via SSH:
|
||||
|
||||
```bash
|
||||
git clone git@gitlab.com:gitlab-org/gitlab-ce.git
|
||||
git clone git@gitlab.com:gitlab-org/gitlab.git
|
||||
```
|
||||
|
||||
Both commands will download a copy of the files in a folder named after the project's
|
||||
|
|
|
@ -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-foss/blob/8-14-stable/doc/integration/bitbucket.md
|
||||
[bb-old]: https://gitlab.com/gitlab-org/gitlab/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
|
||||
|
|
|
@ -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-foss/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/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-foss/blob/master/config/gitlab.yml.example):
|
||||
1. Update the `kerberos` section of [`gitlab.yml`](https://gitlab.com/gitlab-org/gitlab/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-foss/blob/master/config/gitlab.yml.example) and remove the `- { name: 'kerberos' }` line under omniauth
|
||||
1. Edit [`gitlab.yml`](https://gitlab.com/gitlab-org/gitlab/blob/master/config/gitlab.yml.example) and remove the `- { name: 'kerberos' }` line under omniauth
|
||||
providers:
|
||||
|
||||
```yaml
|
||||
|
|
|
@ -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-foss/blob/master/Gemfile):
|
||||
- Add the gem to your [Gemfile](https://gitlab.com/gitlab-org/gitlab/blob/master/Gemfile):
|
||||
|
||||
```sh
|
||||
gem "omniauth-your-auth-provider"
|
||||
|
|
|
@ -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-foss/blob/30f5b9a5b711b46f1065baf755e413ceced5646b/Gemfile#L88)
|
||||
[imports cloud drivers](https://gitlab.com/gitlab-org/gitlab/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).
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ bundle exec rake gitlab:cleanup:dirs RAILS_ENV=production
|
|||
DANGER: **Danger:**
|
||||
The following task does not currently work as expected.
|
||||
The use will probably mark more existing repositories as orphaned.
|
||||
For more information, see the [issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/24633).
|
||||
For more information, see the [issue](https://gitlab.com/gitlab-org/gitlab/issues/24633).
|
||||
|
||||
Rename repositories from all repository storage paths if they don't exist in GitLab database.
|
||||
The repositories get a `+orphaned+TIMESTAMP` suffix so that they cannot block new repositories from being created.
|
||||
|
|
|
@ -100,7 +100,7 @@ the Git repository's config file. This section is formatted as follows:
|
|||
|
||||
```
|
||||
[gitlab]
|
||||
fullpath = gitlab-org/gitlab-ce
|
||||
fullpath = gitlab-org/gitlab
|
||||
```
|
||||
|
||||
However, existing repositories were not migrated to include this path.
|
||||
|
@ -129,7 +129,7 @@ Until then, you may wish to manually migrate repositories yourself. You can use
|
|||
to do so. In a Rails console session, run the following to migrate a project:
|
||||
|
||||
```
|
||||
project = Project.find_by_full_path('gitlab-org/gitlab-ce')
|
||||
project = Project.find_by_full_path('gitlab-org/gitlab')
|
||||
project.write_repository_config
|
||||
```
|
||||
|
||||
|
|
|
@ -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-foss/blob/master/lib/support/nginx/gitlab-ssl
|
||||
[source-nginx]: https://gitlab.com/gitlab-org/gitlab/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
|
||||
|
|
|
@ -1265,7 +1265,7 @@ curl --data "value=true" --header "PRIVATE-TOKEN: personal_access_token" https:/
|
|||
[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-foss/blob/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml
|
||||
[Auto DevOps template]: https://gitlab.com/gitlab-org/gitlab/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-foss/merge_requests/21955
|
||||
[ce-19507]: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/19507
|
||||
|
|
|
@ -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-foss/blob/master/lib/support/init.d/gitlab.default.example#L38).
|
||||
via [`/etc/default/gitlab`](https://gitlab.com/gitlab-org/gitlab/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-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
|
||||
[yaml]: https://gitlab.com/gitlab-org/gitlab/blob/master/config/gitlab.yml.example
|
||||
[gl-example]: https://gitlab.com/gitlab-org/gitlab/blob/master/lib/support/init.d/gitlab.default.example
|
||||
[smtp_settings.rb.sample]: https://gitlab.com/gitlab-org/gitlab/blob/master/config/initializers/smtp_settings.rb.sample#L13
|
||||
[Apache templates]: https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/web-server/apache
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Cycle Analytics
|
||||
|
||||
> - 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.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/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
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# 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`).
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/12079) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3 (enabled by feature flags `productivity_analytics`).
|
||||
|
||||
Track development velocity with Productivity Analytics.
|
||||
|
||||
|
|
|
@ -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-foss/blob/master/vendor/cert_manager/values.yaml)
|
||||
[`values.yaml`](https://gitlab.com/gitlab-org/gitlab/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-foss/blob/master/vendor/runner/values.yaml)
|
||||
[`values.yaml`](https://gitlab.com/gitlab-org/gitlab/blob/master/vendor/runner/values.yaml)
|
||||
file.
|
||||
|
||||
### Ingress
|
||||
|
@ -126,7 +126,7 @@ 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-foss/blob/master/vendor/ingress/values.yaml)
|
||||
[`values.yaml`](https://gitlab.com/gitlab-org/gitlab/blob/master/vendor/ingress/values.yaml)
|
||||
file.
|
||||
|
||||
#### Modsecurity Application Firewall
|
||||
|
@ -188,7 +188,7 @@ 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-foss/blob/master/vendor/jupyter/values.yaml)
|
||||
[`values.yaml`](https://gitlab.com/gitlab-org/gitlab/blob/master/vendor/jupyter/values.yaml)
|
||||
file.
|
||||
|
||||
#### Jupyter Git Integration
|
||||
|
@ -255,7 +255,7 @@ 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-foss/blob/master/vendor/prometheus/values.yaml)
|
||||
[`values.yaml`](https://gitlab.com/gitlab-org/gitlab/blob/master/vendor/prometheus/values.yaml)
|
||||
file.
|
||||
|
||||
## Upgrading applications
|
||||
|
@ -281,7 +281,7 @@ 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-foss/blob/master/vendor/runner/values.yaml)
|
||||
[`values.yaml`](https://gitlab.com/gitlab-org/gitlab/blob/master/vendor/runner/values.yaml)
|
||||
|
||||
## Uninstalling applications
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Cluster Environments **(PREMIUM)**
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/13392) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/13392) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3.
|
||||
|
||||
Cluster environments provide a consolidated view of which CI [environments](../../ci/environments.md) are
|
||||
deployed to the Kubernetes cluster and it:
|
||||
|
@ -14,7 +14,7 @@ NOTE: **Note:**
|
|||
Cluster environments are only available for
|
||||
[group-level clusters](../group/clusters/index.md).
|
||||
Support for [instance-level](../instance/clusters/index.md) clusters is
|
||||
[planned](https://gitlab.com/gitlab-org/gitlab-ce/issues/63985).
|
||||
[planned](https://gitlab.com/gitlab-org/gitlab-foss/issues/63985).
|
||||
|
||||
With cluster environments, you can gain insight into:
|
||||
|
||||
|
|
|
@ -177,11 +177,15 @@ sentry_dsn = "X"
|
|||
GitLab.com runs [Sidekiq][sidekiq] with arguments `--timeout=4 --concurrency=4`
|
||||
and the following environment variables:
|
||||
|
||||
| Setting | GitLab.com | Default |
|
||||
|-------- |----------- |-------- |
|
||||
| `SIDEKIQ_MEMORY_KILLER_MAX_RSS` | `1000000` | `2000000` |
|
||||
| `SIDEKIQ_MEMORY_KILLER_SHUTDOWN_SIGNAL` | `SIGKILL` | - |
|
||||
| `SIDEKIQ_LOG_ARGUMENTS` | `1` | - |
|
||||
| Setting | GitLab.com | Default |
|
||||
|-------- |----------- |-------- |
|
||||
| `SIDEKIQ_DAEMON_MEMORY_KILLER` | - | - |
|
||||
| `SIDEKIQ_MEMORY_KILLER_MAX_RSS` | `16000000` | `2000000` |
|
||||
| `SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS` | - | - |
|
||||
| `SIDEKIQ_MEMORY_KILLER_CHECK_INTERVAL` | - | `3` |
|
||||
| `SIDEKIQ_MEMORY_KILLER_GRACE_TIME` | - | `900` |
|
||||
| `SIDEKIQ_MEMORY_KILLER_SHUTDOWN_WAIT` | - | `30` |
|
||||
| `SIDEKIQ_LOG_ARGUMENTS` | `1` | - |
|
||||
|
||||
## Cron jobs
|
||||
|
||||
|
|
|
@ -214,10 +214,10 @@ A project alias can be only created via API and only by GitLab administrators.
|
|||
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-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`).
|
||||
Once an alias has been created for a project (e.g., an alias `gitlab` for the
|
||||
project `https://gitlab.com/gitlab-org/gitlab`), the repository can be cloned
|
||||
using the alias (e.g `git clone git@gitlab.com:gitlab.git` instead of
|
||||
`git clone git@gitlab.com:gitlab-org/gitlab.git`).
|
||||
|
||||
## Project APIs
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Generic alerts integration **(ULTIMATE)**
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/13203) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.3.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/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
|
||||
|
|
|
@ -53,11 +53,11 @@ The only difference with the [manually configurable Slack slash commands][slack-
|
|||
is that all the commands should be prefixed with the `/gitlab` keyword.
|
||||
We are working on making this configurable in the future.
|
||||
|
||||
For example, to show the issue number `1001` under the `gitlab-org/gitlab-ce`
|
||||
For example, to show the issue number `1001` under the `gitlab-org/gitlab`
|
||||
project, you would do:
|
||||
|
||||
```
|
||||
/gitlab gitlab-org/gitlab-ce issue show 1001
|
||||
/gitlab gitlab-org/gitlab issue show 1001
|
||||
```
|
||||
|
||||
[slack-docs]: https://get.slack.help/hc/en-us/articles/202035138-Adding-apps-to-your-team
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue