gitlab-qa 6.17.0 → 6.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc3ae23427dadce6649bb30dbc58dada153af79f60efb265edd5f7439facc56f
4
- data.tar.gz: 9308ba475631df203f08503929787c1015fb4313b455d30a8fee2175016b1429
3
+ metadata.gz: 981a6afe2aef7aa49d6ea19d627947fa58f24ad84d4443268c582d16ff60a15c
4
+ data.tar.gz: 2ff55255b8cb84ff2fe4368846da3f1818a069c389afc22e937d49eb2034bc35
5
5
  SHA512:
6
- metadata.gz: 89c9c13ae10ff6e8f0076fb02d365cb45ede7320901bc5b4e4ca25ae935b9af26bc7da4d48bdab172ea6c3b74092032e5c9c5f04704ee7f98b38b67a594f81e5
7
- data.tar.gz: 246f02d2389dd6db83ee1aac5e7dbc3e95ebfb12f9524f11181decf68ec5c9906adaa88531da62f66c2037c800de86084e4741193c3eaced1229ce135610fb1b
6
+ metadata.gz: 115a7e9805ff2723ffe4d0f41b92315778fc5846481542eafff3f321e0ef23750ef8abeaf620dfcfd8effab56a159b3ac0bf1bed9e07771dc4ea4a3b48f29c2f
7
+ data.tar.gz: 985e57c53830587cf92d4a9087cd9537382a4247c479b4aec23227d2f703bdf02e58013c60c6d2096e92942af000d5d12855d54a43553ff76c3fb780e4c48dc5
@@ -671,6 +671,46 @@ ee:kubernetes-quarantine:
671
671
  variables:
672
672
  QA_SCENARIO: "Test::Integration::Kubernetes"
673
673
 
674
+ ce:ssh_tunnel:
675
+ extends:
676
+ - .test
677
+ - .high-capacity
678
+ - .ce-qa
679
+ - .rspec-report-opts
680
+ allow_failure: true
681
+ variables:
682
+ QA_SCENARIO: "Test::Integration::SSHTunnel"
683
+
684
+ ce:ssh_tunnel-quarantine:
685
+ extends:
686
+ - .test
687
+ - .high-capacity
688
+ - .ce-qa
689
+ - .quarantine
690
+ - .rspec-report-opts
691
+ variables:
692
+ QA_SCENARIO: "Test::Integration::SSHTunnel"
693
+
694
+ ee:ssh_tunnel:
695
+ extends:
696
+ - .test
697
+ - .high-capacity
698
+ - .ee-qa
699
+ - .rspec-report-opts
700
+ allow_failure: true
701
+ variables:
702
+ QA_SCENARIO: "Test::Integration::SSHTunnel"
703
+
704
+ ee:ssh_tunnel-quarantine:
705
+ extends:
706
+ - .test
707
+ - .high-capacity
708
+ - .ee-qa
709
+ - .quarantine
710
+ - .rspec-report-opts
711
+ variables:
712
+ QA_SCENARIO: "Test::Integration::SSHTunnel"
713
+
674
714
  ce:object_storage:
675
715
  extends:
676
716
  - .test
@@ -871,6 +911,22 @@ ee:gitaly-cluster-quarantine:
871
911
  variables:
872
912
  QA_SCENARIO: "Test::Integration::GitalyCluster"
873
913
 
914
+ ce:mtls:
915
+ extends:
916
+ - .test
917
+ - .ce-qa
918
+ - .rspec-report-opts
919
+ variables:
920
+ QA_SCENARIO: "Test::Integration::MTLS"
921
+
922
+ ee:mtls:
923
+ extends:
924
+ - .test
925
+ - .ee-qa
926
+ - .rspec-report-opts
927
+ variables:
928
+ QA_SCENARIO: "Test::Integration::MTLS"
929
+
874
930
  ce:smtp:
875
931
  extends:
876
932
  - .test
@@ -1,4 +1,3 @@
1
-
2
1
  # What tests can be run?
3
2
  [[_TOC_]]
4
3
  ## The two types of QA tests
@@ -142,6 +141,30 @@ To run EE tests, the `EE_LICENSE` environment variable needs to be set:
142
141
 
143
142
  `$ export EE_LICENSE=$(cat /path/to/GitLab.gitlab_license)`
144
143
 
144
+ ## Running a specific test (or set of tests)
145
+
146
+ In most of the scenarios listed below, if you don't want to run all the tests
147
+ it's possible to specify one or more tests. The framework uses RSpec, so tests can be
148
+ specified as you would when using RSpec.
149
+
150
+ For example, the following would run `create_merge_request_spec.rb`:
151
+
152
+ ```shell
153
+ $ gitlab-qa Test::Instance::Image EE -- qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb
154
+ ```
155
+
156
+ While the following would run all Create UI tests:
157
+
158
+ ```shell
159
+ $ gitlab-qa Test::Instance::Image EE -- qa/specs/features/browser_ui/3_create
160
+ ```
161
+
162
+ And the following would run all Create API tests as well as UI tests:
163
+
164
+ ```shell
165
+ $ gitlab-qa Test::Instance::Image EE -- qa/specs/features/browser_ui/3_create qa/specs/features/api/3_create
166
+ ```
167
+
145
168
  ## Examples
146
169
 
147
170
  ### `Test::Instance::Image CE|EE|<full image address>`
@@ -58,6 +58,7 @@ module Gitlab
58
58
  autoload :GitalyCluster, 'gitlab/qa/scenario/test/integration/gitaly_cluster'
59
59
  autoload :Jira, 'gitlab/qa/scenario/test/integration/jira'
60
60
  autoload :SSHTunnel, 'gitlab/qa/scenario/test/integration/ssh_tunnel'
61
+ autoload :MTLS, 'gitlab/qa/scenario/test/integration/mtls'
61
62
  end
62
63
 
63
64
  module Sanity
@@ -16,8 +16,12 @@ module Gitlab
16
16
 
17
17
  def_delegators :release, :tag, :image, :edition
18
18
 
19
- CERTIFICATES_PATH = File.expand_path('../../../../tls_certificates/gitlab'.freeze, __dir__)
19
+ GITLAB_CERTIFICATES_PATH = File.expand_path('../../../../tls_certificates/gitlab'.freeze, __dir__)
20
+ GITALY_CERTIFICATES_PATH = File.expand_path('../../../../tls_certificates/gitaly/ssl'.freeze, __dir__)
21
+ TRUSTED_CERTIFICATES_PATH = File.expand_path('../../../../tls_certificates/gitaly/trusted-certs'.freeze, __dir__)
22
+
20
23
  SSL_PATH = '/etc/gitlab/ssl'.freeze
24
+ TRUSTED_PATH = '/etc/gitlab/trusted-certs'.freeze
21
25
 
22
26
  def initialize
23
27
  super
@@ -25,7 +29,7 @@ module Gitlab
25
29
  @disable_animations = true
26
30
  @skip_availability_check = false
27
31
 
28
- @volumes[CERTIFICATES_PATH] = SSL_PATH
32
+ @volumes[GITLAB_CERTIFICATES_PATH] = SSL_PATH
29
33
 
30
34
  self.release = 'CE'
31
35
  end
@@ -64,6 +68,16 @@ module Gitlab
64
68
  tls ? '443' : '80'
65
69
  end
66
70
 
71
+ def mtls
72
+ @volumes.delete(GITLAB_CERTIFICATES_PATH)
73
+ @volumes[GITALY_CERTIFICATES_PATH] = SSL_PATH
74
+ set_trusted_certificates
75
+ end
76
+
77
+ def set_trusted_certificates
78
+ @volumes[TRUSTED_CERTIFICATES_PATH] = TRUSTED_PATH
79
+ end
80
+
67
81
  def relative_path
68
82
  @relative_path ||= ''
69
83
  end
@@ -10,6 +10,9 @@ module Gitlab
10
10
  class Specs < Scenario::Template
11
11
  attr_accessor :suite, :release, :network, :args, :volumes, :env, :runner_network
12
12
 
13
+ TRUSTED_CERTIFICATES_PATH = File.expand_path('../../../../tls_certificates/gitaly/trusted-certs'.freeze, __dir__)
14
+ TRUSTED_PATH = '/etc/ssl/certs'.freeze
15
+
13
16
  def initialize
14
17
  @docker = Docker::Engine.new
15
18
  @volumes = {}
@@ -62,6 +65,10 @@ module Gitlab
62
65
  end
63
66
  end
64
67
 
68
+ def mtls
69
+ @volumes[TRUSTED_CERTIFICATES_PATH] = TRUSTED_PATH
70
+ end
71
+
65
72
  private
66
73
 
67
74
  def args_with_flags(args, feature_flag_set)
@@ -22,6 +22,11 @@ module Gitlab
22
22
  labels: ['Quality', 'QA', 'triage report', pipeline_name_label]
23
23
  )
24
24
 
25
+ # Workaround for https://gitlab.com/gitlab-org/gitlab/-/issues/295493
26
+ gitlab.create_issue_note(
27
+ iid: issue.iid,
28
+ note: "/relate #{Runtime::Env.qa_issue_url}")
29
+
25
30
  File.write('REPORT_ISSUE_URL', issue.web_url)
26
31
  end
27
32
  # rubocop:enable Metrics/AbcSize
@@ -9,8 +9,9 @@ module Gitlab
9
9
  module Report
10
10
  # Uses the API to create or update GitLab issues with the results of tests from RSpec report files.
11
11
  class RelateFailureIssue < ReportAsIssue
12
- DEFAULT_MAX_DIFF_RATIO_FOR_DETECTION = 0.05
13
- STACKTRACE_REGEX = %r{### Stack trace\s*(```)\s*(?!.*Failure/Error:)?(.+)(\1)}m.freeze
12
+ DEFAULT_MAX_DIFF_RATIO_FOR_DETECTION = 0.15
13
+ FAILURE_STACKTRACE_REGEX = %r{((.*Failure\/Error:(?<stacktrace>.+))|(?<stacktrace>.+))}m.freeze
14
+ ISSUE_STACKTRACE_REGEX = /### Stack trace\s*(```)#{FAILURE_STACKTRACE_REGEX}(```)/m.freeze
14
15
  NEW_ISSUE_LABELS = Set.new(%w[QA Quality test failure::investigating priority::2]).freeze
15
16
 
16
17
  MultipleIssuesFound = Class.new(StandardError)
@@ -77,7 +78,8 @@ module Gitlab
77
78
 
78
79
  def find_relevant_failure_issues(test) # rubocop:disable Metrics/AbcSize
79
80
  ld = Class.new.extend(Gem::Text).method(:levenshtein_distance)
80
- first_test_failure_stacktrace = test.failures.first['message_lines'].join("\n")
81
+ full_stacktrace = test.failures.first['message_lines'].join("\n")
82
+ first_test_failure_stacktrace = sanitize_stacktrace(full_stacktrace, FAILURE_STACKTRACE_REGEX) || full_stacktrace
81
83
 
82
84
  # Search with the `search` param returns 500 errors, so we filter by ~QA and then filter further in Ruby
83
85
  failure_issues(test).each_with_object({}) do |issue, memo|
@@ -88,7 +90,7 @@ module Gitlab
88
90
  diff_ratio = distance.zero? ? 0.0 : (distance.to_f / first_test_failure_stacktrace.size).round(3)
89
91
 
90
92
  if diff_ratio <= max_diff_ratio
91
- puts " => [DEBUG] Issue #{issue} has an acceptable diff ratio of #{(diff_ratio * 100).round(2)}%."
93
+ puts " => [DEBUG] Issue #{issue.web_url} has an acceptable diff ratio of #{(diff_ratio * 100).round(2)}%."
92
94
  # The `Gitlab::ObjectifiedHash` class overrides `#hash` which is used by `Hash#[]=` to compute the hash key.
93
95
  # This leads to a `TypeError Exception: no implicit conversion of Hash into Integer` error, so we convert the object to a hash before using it as a Hash key.
94
96
  # See:
@@ -96,18 +98,27 @@ module Gitlab
96
98
  # - https://github.com/NARKOZ/gitlab/commit/cbdbd1e32623f018a8fae39932a8e3bc4d929abb?_pjax=%23js-repo-pjax-container#r44484494
97
99
  memo[issue.to_h] = diff_ratio
98
100
  else
99
- puts " => [DEBUG] Found issue #{issue.web_url} but stacktraces are too different (#{(diff_ratio * 100).round(2)}%)."
101
+ puts " => [DEBUG] Found issue #{issue.web_url} but stacktraces are too different (#{(diff_ratio * 100).round(2)}%).\n"
102
+ puts " => [DEBUG] Issue stacktrace:\n----------------\n#{relevant_issue_stacktrace}\n----------------\n"
103
+ puts " => [DEBUG] Failure stacktrace:\n----------------\n#{first_test_failure_stacktrace}\n----------------\n"
100
104
  end
101
105
  end
102
106
  end
103
107
 
104
108
  def find_issue_stacktrace(issue)
105
- issue_stacktrace_match = issue.description.match(STACKTRACE_REGEX)
109
+ issue_stacktrace = sanitize_stacktrace(issue.description, ISSUE_STACKTRACE_REGEX)
110
+ return issue_stacktrace if issue_stacktrace
106
111
 
107
- if issue_stacktrace_match
108
- issue_stacktrace_match[2].gsub(/^#.*$/, '').strip
112
+ puts " => [DEBUG] Stacktrace couldn't be found for #{issue.web_url}!"
113
+ end
114
+
115
+ def sanitize_stacktrace(stacktrace, regex)
116
+ stacktrace_match = stacktrace.match(regex)
117
+
118
+ if stacktrace_match
119
+ stacktrace_match[:stacktrace].gsub(/^\s*#.*$/, '').gsub(/^[[:space:]]+/, '').strip
109
120
  else
110
- puts " => [DEBUG] Stacktrace couldn't be found for #{issue.web_url}:\n\n#{issue.description}\n\n----------------------------------\n"
121
+ puts " => [DEBUG] Stacktrace doesn't match the expected regex (#{regex}):\n----------------\n#{stacktrace}\n----------------\n"
111
122
  end
112
123
  end
113
124
 
@@ -0,0 +1,114 @@
1
+ module Gitlab
2
+ module QA
3
+ module Scenario
4
+ module Test
5
+ module Integration
6
+ class MTLS < Scenario::Template
7
+ def initialize
8
+ @gitlab_name = 'gitlab'
9
+ @gitaly_name = 'gitaly'
10
+ @spec_suite = 'Test::Instance::All'
11
+ @network = 'test'
12
+ @env = {}
13
+ @tag = 'mtls'
14
+ end
15
+
16
+ # rubocop:disable Metrics/AbcSize
17
+ def perform(release, *rspec_args)
18
+ Component::Gitlab.perform do |gitaly|
19
+ gitaly.release = QA::Release.new(release)
20
+ gitaly.name = @gitaly_name
21
+ gitaly.network = @network
22
+ gitaly.skip_availability_check = true
23
+
24
+ gitaly.set_accept_insecure_certs
25
+ gitaly.omnibus_config = gitaly_omnibus
26
+ gitaly.mtls
27
+
28
+ gitaly.instance do
29
+ Component::Gitlab.perform do |gitlab|
30
+ gitlab.release = QA::Release.new(release)
31
+ gitlab.name = @gitlab_name
32
+ gitlab.network = @network
33
+
34
+ gitlab.set_accept_insecure_certs
35
+ gitlab.omnibus_config = gitlab_omnibus
36
+ gitlab.tls = true
37
+ gitlab.set_trusted_certificates
38
+
39
+ gitlab.instance do
40
+ puts "Running mTLS specs!"
41
+
42
+ if @tag
43
+ rspec_args << "--" unless rspec_args.include?('--')
44
+ rspec_args << "--tag" << @tag
45
+ end
46
+
47
+ Component::Specs.perform do |specs|
48
+ specs.suite = @spec_suite
49
+ specs.release = gitlab.release
50
+ specs.network = gitlab.network
51
+ specs.args = [gitlab.address, *rspec_args]
52
+ specs.env = @env
53
+ specs.mtls
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ # rubocop:enable Metrics/AbcSize
61
+
62
+ def gitlab_omnibus
63
+ <<~OMNIBUS
64
+ gitaly['enable'] = false;
65
+
66
+ external_url 'https://#{@gitlab_name}.#{@network}';
67
+
68
+ gitlab_rails['gitaly_token'] = 'abc123secret';
69
+ gitlab_shell['secret_token'] = 'shellsecret';
70
+
71
+ git_data_dirs({
72
+ 'default' => { 'gitaly_address' => 'tls://#{@gitaly_name}.#{@network}:9999' },
73
+ 'storage1' => { 'gitaly_address' => 'tls://#{@gitaly_name}.#{@network}:9999' },
74
+ });
75
+ OMNIBUS
76
+ end
77
+
78
+ def gitaly_omnibus
79
+ <<~OMNIBUS
80
+ gitaly['tls_listen_addr'] = '0.0.0.0:9999';
81
+ gitaly['certificate_path'] = '/etc/gitlab/ssl/gitaly.test.crt';
82
+ gitaly['key_path'] = '/etc/gitlab/ssl/gitaly.test.key';
83
+
84
+ postgresql['enable'] = false;
85
+ redis['enable'] = false;
86
+ nginx['enable'] = false;
87
+ puma['enable'] = false;
88
+ sidekiq['enable'] = false;
89
+ gitlab_workhorse['enable'] = false;
90
+ grafana['enable'] = false;
91
+ gitlab_exporter['enable'] = false;
92
+ alertmanager['enable'] = false;
93
+ prometheus['enable'] = false;
94
+
95
+ gitlab_rails['rake_cache_clear'] = false;
96
+ gitlab_rails['auto_migrate'] = false;
97
+
98
+ gitaly['auth_token'] = 'abc123secret';
99
+ gitlab_shell['secret_token'] = 'shellsecret';
100
+
101
+ gitlab_rails['internal_api_url'] = 'https://#{@gitlab_name}.#{@network}';
102
+
103
+ git_data_dirs({
104
+ 'default' => { 'path' => '/var/opt/gitlab/git-data' },
105
+ 'storage1' => { 'path' => '/mnt/gitlab/git-data' },
106
+ })
107
+ OMNIBUS
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end
113
+ end
114
+ end
@@ -27,7 +27,7 @@ module Gitlab
27
27
  nginx['listen_port'] = 80;
28
28
  nginx['listen_https'] = false;
29
29
  # documentation: https://docs.gitlab.com/omnibus/settings/database.html#seed-the-database-fresh-installs-only
30
- gitlab_rails['initial_root_password'] = '#{Runtime::Env.require_initial_password}'
30
+ gitlab_rails['initial_root_password'] = '#{Runtime::Env.require_initial_password!}'
31
31
 
32
32
  registry_external_url '#{tunnel_registry.url}';
33
33
  registry_nginx['listen_port'] = 80;
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module QA
3
- VERSION = '6.17.0'.freeze
3
+ VERSION = '6.19.0'.freeze
4
4
  end
5
5
  end
@@ -0,0 +1,33 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ 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
32
+ 5OPk1+2KXQff+lh0m2IKJcYu3g==
33
+ -----END CERTIFICATE-----
@@ -0,0 +1,52 @@
1
+ -----BEGIN PRIVATE KEY-----
2
+ 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
51
+ nh4iw7J+eIfaBUd7gtbLgkmkz5Bt21g=
52
+ -----END PRIVATE KEY-----
@@ -0,0 +1,33 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ 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
32
+ 5OPk1+2KXQff+lh0m2IKJcYu3g==
33
+ -----END CERTIFICATE-----
@@ -0,0 +1,31 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIFSjCCAzICCQDft0SZAQGuIzANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJV
3
+ UzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xDzANBgNVBAoM
4
+ BkdpdExhYjEMMAoGA1UECwwDT3JnMRQwEgYDVQQDDAtnaXRsYWIudGVzdDAeFw0x
5
+ ODEwMjUwOTU0MzRaFw0yODEwMjIwOTU0MzRaMGcxCzAJBgNVBAYTAlVTMQswCQYD
6
+ VQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEPMA0GA1UECgwGR2l0TGFi
7
+ MQwwCgYDVQQLDANPcmcxFDASBgNVBAMMC2dpdGxhYi50ZXN0MIICIjANBgkqhkiG
8
+ 9w0BAQEFAAOCAg8AMIICCgKCAgEAykiE+PF8CBAP/k0NMHiMJ+TqMnupLl5Ypo0N
9
+ TH/Y8qFEqV4MaiGoqHwHiqY3tC0Zshe7uowS7NDnmTH/5DeNOmi/zI+FhTEHJKhP
10
+ DM5Q0MXJrUIi6eGmojB5l/3t3OBnvoFaC0zpkpg5uR8QL5RbB8Gyf5/5eCEbP3/h
11
+ R2q9JFUOEyTYEyv+1K/WegQyaLPtiPtvfTTmx1uEDfP1vuiMKuPOQ/3N8nFky1ny
12
+ 8c0P2wQv6E/qtRafKxaPbA/OmSpx0JGol43EjgOqy5FIJBT+yYP2navvAw+BvZ3k
13
+ 6qiQL6dx5pOGPAd8uxLmcj4In54IZWxs8fxUlNpcLWbo8noVxIQP2j7MAGXwGatM
14
+ eaUnyD5DmHlHS92gvHU3nKagDEuJjnBCCWtaVugeAWuW+8fJHgYbwuRQ8h/5hTWc
15
+ T80cEHDmKB/Uft4QLc65C7LQjKmfeX5qLgufk+dMmWj116csejiTFPCue0/RjSxK
16
+ C/562dbt/ZcScLXymkUiewc7FzHKExquY42I/yudoMYS9EBAyDcDE72WrUcIpECH
17
+ OMIt+EgXoDw1e/aTc5orlBIFjhknnPnP5RtrBj/OdXEgwMfD/N+ZYpY43ZIjBHWM
18
+ Zpj4YxLdBXkFJ/JG632Pp+bOgF5TgzCnV2Je6r1VMAAH8U0B105xAnyl5qtepUO5
19
+ +THpCdUCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEADFyEMU0aLOrNO60PerQ25kE9
20
+ jqzVhySyg6Pwsus7LIKTQLeo9abGmdjcbuqmBRLdxCYHbjbgW07I28YS4x4m7/ay
21
+ YAePaMRb4Qt1yyaWcPIsw57sMnoC8iqRqXJPyr8i9F+RtzoC7Hki6zORxms8TF5C
22
+ FbNB2ZBO/mbe8Lro0G1j5rxrvndQ6/OnwLQFW/VCfDDOIM7TXm6yYyiUpj3MSBay
23
+ LDJaT9N5xMxF82OjcMB0/flWFxI7QmNXTe7M6HQbp05Jyw9VCEAVflI7zkaYY329
24
+ 7XvVJbpf1A3SegqxGlF2gD31cxViYBRV7t0pO6mcwt0/iAzAVicg/qtoPUg8zFwN
25
+ xU89jk+UV5oTQc06u6CbIuF1eYy3MJGmQlCsEd/OOC9zl7xRHBA4ro3CTCH238L6
26
+ lGEi8FRombuPcv3hD9PuW/RAQ5v03lF9D7UVtEHtb2VCZ0EXL8YFRuqQpPvdPqQ+
27
+ znaohk2jKRSttvZCXw5TaWdDctDue/b70cEVPoAzXACjaX/oOau+MJvMaI7i5BXF
28
+ JhBcoXh7FXIgyDszzgGq5DxjCcpy0X5o2TGC5id8zUNBY8ek6UV3mHk2FQzYf+7C
29
+ 8Qvv++R3+Ubk5DryuuWa/R2ybemQja830Fgiab9hgvhhgCOCbmxLIKVrePenMOXc
30
+ vvjQTrP9ZinR50bKUf8=
31
+ -----END CERTIFICATE-----
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-qa
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.17.0
4
+ version: 6.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grzegorz Bizon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-12-22 00:00:00.000000000 Z
11
+ date: 2021-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control
@@ -305,6 +305,7 @@ files:
305
305
  - lib/gitlab/qa/scenario/test/integration/ldap_no_tls.rb
306
306
  - lib/gitlab/qa/scenario/test/integration/ldap_tls.rb
307
307
  - lib/gitlab/qa/scenario/test/integration/mattermost.rb
308
+ - lib/gitlab/qa/scenario/test/integration/mtls.rb
308
309
  - lib/gitlab/qa/scenario/test/integration/object_storage.rb
309
310
  - lib/gitlab/qa/scenario/test/integration/packages.rb
310
311
  - lib/gitlab/qa/scenario/test/integration/praefect.rb
@@ -321,6 +322,10 @@ files:
321
322
  - lib/gitlab/qa/support/http_request.rb
322
323
  - lib/gitlab/qa/support/invalid_response_error.rb
323
324
  - lib/gitlab/qa/version.rb
325
+ - tls_certificates/gitaly/ssl/gitaly.test.crt
326
+ - tls_certificates/gitaly/ssl/gitaly.test.key
327
+ - tls_certificates/gitaly/trusted-certs/gitaly.test.crt
328
+ - tls_certificates/gitaly/trusted-certs/gitlab.test.crt
324
329
  - tls_certificates/gitlab/gitlab.test.crt
325
330
  - tls_certificates/gitlab/gitlab.test.key
326
331
  homepage: http://about.gitlab.com