mirror of
https://gitlab.com/gitlab-org/gitlab-foss.git
synced 2025-08-01 16:04:19 +00:00
Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
@ -874,14 +874,6 @@ Image Commenting cursor
|
||||
$image-comment-cursor-left-offset: 12;
|
||||
$image-comment-cursor-top-offset: 12;
|
||||
|
||||
/*
|
||||
Add GitLab Slack Application
|
||||
*/
|
||||
$add-to-slack-popup-max-width: 400px;
|
||||
$add-to-slack-gif-max-width: 850px;
|
||||
$add-to-slack-well-max-width: 750px;
|
||||
$add-to-slack-logo-size: 100px;
|
||||
|
||||
/*
|
||||
Security & Compliance Carousel
|
||||
*/
|
||||
|
@ -363,25 +363,12 @@ table.u2f-registrations {
|
||||
color: $gl-text-color-secondary;
|
||||
}
|
||||
|
||||
.gitlab-slack-gif {
|
||||
width: 100%;
|
||||
max-width: $add-to-slack-gif-max-width;
|
||||
.gitlab-slack-body {
|
||||
max-width: 420px;
|
||||
}
|
||||
|
||||
.gitlab-slack-well {
|
||||
background-color: $white;
|
||||
box-shadow: none;
|
||||
max-width: $add-to-slack-well-max-width;
|
||||
}
|
||||
|
||||
.gitlab-slack-logo {
|
||||
width: $add-to-slack-logo-size;
|
||||
height: $add-to-slack-logo-size;
|
||||
}
|
||||
|
||||
.gitlab-slack-popup {
|
||||
width: 100%;
|
||||
max-width: $add-to-slack-popup-max-width;
|
||||
.gitlab-slack-slack-logo {
|
||||
transform: scale(200%); // Slack logo SVG is scaled down 50% and has empty space around it
|
||||
}
|
||||
|
||||
.skype-icon {
|
||||
|
@ -9,6 +9,8 @@
|
||||
# If you change this file in a merge request, please also create #
|
||||
# a MR on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests. #
|
||||
# For more details see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/gitlab.yml.md #
|
||||
# Be sure to create a MR against the GDK configuration #
|
||||
# file (https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/support/templates/gitlab/config/gitlab.yml.erb) too. #
|
||||
########################################################################
|
||||
#
|
||||
#
|
||||
@ -1435,7 +1437,7 @@ test:
|
||||
provider: AWS # Only AWS supported at the moment
|
||||
aws_access_key_id: AWS_ACCESS_KEY_ID
|
||||
aws_secret_access_key: AWS_SECRET_ACCESS_KEY
|
||||
region: us-east-1
|
||||
region: us-east-1
|
||||
|
||||
gitlab:
|
||||
host: localhost
|
||||
|
@ -287,12 +287,12 @@ If the artifacts were deleted successfully, a response with status `204 No Conte
|
||||
|
||||
## Delete project artifacts
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/223793) in GitLab 14.7 [with a flag](../administration/feature_flags.md) named `bulk_expire_project_artifacts`. Disabled by default.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/223793) in GitLab 14.7 [with a flag](../administration/feature_flags.md) named `bulk_expire_project_artifacts`. Disabled by default on GitLab self-managed. Enabled on GitLab.com.
|
||||
|
||||
FLAG:
|
||||
On self-managed GitLab, by default this feature is not available. To make it
|
||||
available, ask an administrator to [enable the `bulk_expire_project_artifacts` flag](../administration/feature_flags.md).
|
||||
On GitLab.com, this feature is not available.
|
||||
On GitLab.com, this feature is available.
|
||||
|
||||
[Expire artifacts of a project that can be deleted](https://gitlab.com/gitlab-org/gitlab/-/issues/223793) but that don't have an expiry time.
|
||||
|
||||
|
@ -54,7 +54,7 @@ For example:
|
||||
```shell
|
||||
curl --request POST \
|
||||
--form token=<token> \
|
||||
--formref=<ref_name> \
|
||||
--form ref=<ref_name> \
|
||||
"https://gitlab.example.com/api/v4/projects/<project_id>/trigger/pipeline"
|
||||
```
|
||||
|
||||
|
@ -1982,9 +1982,6 @@ msgstr ""
|
||||
msgid "Add CONTRIBUTING"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add GitLab to Slack"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add Jaeger URL"
|
||||
msgstr ""
|
||||
|
||||
@ -2198,9 +2195,6 @@ msgstr ""
|
||||
msgid "Add text to the sign-in page. Markdown enabled."
|
||||
msgstr ""
|
||||
|
||||
msgid "Add to Slack"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add to board"
|
||||
msgstr ""
|
||||
|
||||
@ -16166,9 +16160,6 @@ msgstr ""
|
||||
msgid "GitLab export"
|
||||
msgstr ""
|
||||
|
||||
msgid "GitLab for Slack"
|
||||
msgstr ""
|
||||
|
||||
msgid "GitLab group: %{source_link}"
|
||||
msgstr ""
|
||||
|
||||
@ -16193,6 +16184,9 @@ msgstr ""
|
||||
msgid "GitLab is undergoing maintenance and is operating in read-only mode."
|
||||
msgstr ""
|
||||
|
||||
msgid "GitLab logo"
|
||||
msgstr ""
|
||||
|
||||
msgid "GitLab member or Email address"
|
||||
msgstr ""
|
||||
|
||||
@ -17724,9 +17718,6 @@ msgstr ""
|
||||
msgid "How do I use file templates?"
|
||||
msgstr ""
|
||||
|
||||
msgid "How it works"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many days need to pass between marking entity for deletion and actual removing it."
|
||||
msgstr ""
|
||||
|
||||
@ -23140,9 +23131,6 @@ msgstr ""
|
||||
msgid "More Information"
|
||||
msgstr ""
|
||||
|
||||
msgid "More Slack commands"
|
||||
msgstr ""
|
||||
|
||||
msgid "More actions"
|
||||
msgstr ""
|
||||
|
||||
@ -32065,9 +32053,6 @@ msgstr ""
|
||||
msgid "Select Git revision"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select GitLab project to link with your Slack team"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select Page"
|
||||
msgstr ""
|
||||
|
||||
@ -33118,6 +33103,15 @@ msgstr ""
|
||||
msgid "Slack integration allows you to interact with GitLab via slash commands in a chat window."
|
||||
msgstr ""
|
||||
|
||||
msgid "Slack logo"
|
||||
msgstr ""
|
||||
|
||||
msgid "SlackIntegration|GitLab for Slack"
|
||||
msgstr ""
|
||||
|
||||
msgid "SlackIntegration|Select a GitLab project to link with your Slack workspace."
|
||||
msgstr ""
|
||||
|
||||
msgid "SlackIntegration|Sends notifications about project events to Slack channels."
|
||||
msgstr ""
|
||||
|
||||
@ -37464,9 +37458,6 @@ msgstr ""
|
||||
msgid "Track time with quick actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Track your GitLab projects with GitLab for Slack."
|
||||
msgstr ""
|
||||
|
||||
msgid "Training mode"
|
||||
msgstr ""
|
||||
|
||||
@ -38642,6 +38633,9 @@ msgstr ""
|
||||
msgid "User cap"
|
||||
msgstr ""
|
||||
|
||||
msgid "User cap cannot be enabled. The group or one of its subgroups or projects is shared externally."
|
||||
msgstr ""
|
||||
|
||||
msgid "User created at"
|
||||
msgstr ""
|
||||
|
||||
@ -42391,9 +42385,6 @@ msgstr ""
|
||||
msgid "locked by %{path_lock_user_name} %{created_at}"
|
||||
msgstr ""
|
||||
|
||||
msgid "log in"
|
||||
msgstr ""
|
||||
|
||||
msgid "manual"
|
||||
msgstr ""
|
||||
|
||||
|
@ -19,7 +19,7 @@ module QA
|
||||
@virtual_storage = 'default'
|
||||
end
|
||||
|
||||
attr_reader :primary_node, :secondary_node, :tertiary_node
|
||||
attr_reader :primary_node, :secondary_node, :tertiary_node, :postgres
|
||||
|
||||
# Executes the praefect `dataloss` command.
|
||||
#
|
||||
@ -87,6 +87,13 @@ module QA
|
||||
|
||||
def stop_node(name)
|
||||
shell "docker stop #{name}"
|
||||
wait_until_shell_command_matches(
|
||||
"docker inspect -f {{.State.Running}} #{name}",
|
||||
/false/,
|
||||
sleep_interval: 3,
|
||||
max_duration: 180,
|
||||
retry_on_exception: true
|
||||
)
|
||||
end
|
||||
|
||||
def clear_replication_queue
|
||||
@ -167,6 +174,7 @@ module QA
|
||||
end
|
||||
|
||||
def start_all_nodes
|
||||
start_node(@postgres)
|
||||
start_node(@primary_node)
|
||||
start_node(@secondary_node)
|
||||
start_node(@tertiary_node)
|
||||
@ -195,6 +203,14 @@ module QA
|
||||
end
|
||||
end
|
||||
|
||||
def praefect_sql_ping_healthy?
|
||||
cmd = "docker exec #{@praefect} bash -c '/opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml sql-ping'"
|
||||
wait_until_shell_command(cmd) do |line|
|
||||
QA::Runtime::Logger.debug(line.chomp)
|
||||
break line.include?('praefect sql-ping: OK')
|
||||
end
|
||||
end
|
||||
|
||||
def wait_for_sql_ping
|
||||
wait_until_shell_command_matches(
|
||||
"docker exec #{@praefect} bash -c '/opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml sql-ping'",
|
||||
@ -206,6 +222,34 @@ module QA
|
||||
['error when pinging healthcheck', 'failed checking node health'].include?(msg)
|
||||
end
|
||||
|
||||
def wait_for_dial_nodes_successful
|
||||
Support::Waiter.repeat_until(max_attempts: 3, max_duration: 120, sleep_interval: 1) do
|
||||
nodes_confirmed = {
|
||||
@primary_node => false,
|
||||
@secondary_node => false,
|
||||
@tertiary_node => false
|
||||
}
|
||||
|
||||
nodes_confirmed.each_key do |node|
|
||||
nodes_confirmed[node] = true if praefect_dial_nodes_status?(node)
|
||||
end
|
||||
|
||||
nodes_confirmed.values.all?
|
||||
end
|
||||
end
|
||||
|
||||
def praefect_dial_nodes_status?(node, expect_healthy = true)
|
||||
cmd = "docker exec #{@praefect} bash -c '/opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml dial-nodes -timeout 1s'"
|
||||
if expect_healthy
|
||||
wait_until_shell_command_matches(cmd, /SUCCESS: confirmed Gitaly storage "#{node}" in virtual storages \[#{@virtual_storage}\] is served/)
|
||||
else
|
||||
wait_until_shell_command(cmd, raise_on_failure: false) do |line|
|
||||
QA::Runtime::Logger.debug(line.chomp)
|
||||
break true if line.include?('the following nodes are not healthy') && line.include?(node)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def wait_for_health_check_all_nodes
|
||||
wait_for_gitaly_health_check(@primary_node)
|
||||
wait_for_gitaly_health_check(@secondary_node)
|
||||
|
@ -0,0 +1,41 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
RSpec.describe 'Create' do
|
||||
context 'Praefect connectivity commands', :orchestrated, :gitaly_cluster do
|
||||
praefect_manager = Service::PraefectManager.new
|
||||
|
||||
before do
|
||||
praefect_manager.start_all_nodes
|
||||
end
|
||||
|
||||
context 'in a healthy environment' do
|
||||
it 'confirms healthy connection to database', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/349937' do
|
||||
expect(praefect_manager.praefect_sql_ping_healthy?).to be true
|
||||
end
|
||||
|
||||
it 'confirms healthy connection to gitaly nodes', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/349938' do
|
||||
expect(praefect_manager.wait_for_dial_nodes_successful).to be true
|
||||
end
|
||||
end
|
||||
|
||||
context 'in an unhealthy environment' do
|
||||
it 'diagnoses unhealthy connection to database', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/349939' do
|
||||
praefect_manager.stop_node(praefect_manager.postgres)
|
||||
expect(praefect_manager.praefect_sql_ping_healthy?).to be false
|
||||
end
|
||||
|
||||
it 'diagnoses connection issues to gitaly nodes', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/349940' do
|
||||
praefect_manager.stop_node(praefect_manager.primary_node)
|
||||
praefect_manager.stop_node(praefect_manager.tertiary_node)
|
||||
expect(praefect_manager.praefect_dial_nodes_status?(praefect_manager.primary_node, false)).to be true
|
||||
expect(praefect_manager.praefect_dial_nodes_status?(praefect_manager.secondary_node)).to be true
|
||||
expect(praefect_manager.praefect_dial_nodes_status?(praefect_manager.tertiary_node, false)).to be true
|
||||
|
||||
praefect_manager.stop_node(praefect_manager.secondary_node)
|
||||
expect(praefect_manager.praefect_dial_nodes_status?(praefect_manager.secondary_node, false)).to be true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user