gitlab-qa 2.7.3 → 2.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0e668db418c2898f97674ac4d384fbb9dbf98ae00fa7b1fd8813a21c70119b1
4
- data.tar.gz: ddee7d1abbb129b84ac39d8dd70e78865d694fc59cc2fa4cd56d23f8db93a94d
3
+ metadata.gz: 10cf0ac3fcf95c6576b31b1c1fb0947b6a2f9eb5bb1bfc78281e4375001ecdc4
4
+ data.tar.gz: 2ed071bfb04c06a6004c1669e981aeb3f3673b1512fde01bf31dadb94a794d0d
5
5
  SHA512:
6
- metadata.gz: fac3397d2a8d66055f56f6241cb066fa38a9bf41e63cb9b7bcf904026aa525e3601b75a06810f8ee247991cd852a65996d79243d7c55715bc2ac153b73ef504d
7
- data.tar.gz: c4e6f54cd40685dff86016fb1bfbbd75ce4125d09d9522eaad48e7fd18311b07bc0070e0861edf42a318b5516550ff3575cd164152bfe4e2f63ce0b6ce4897ac
6
+ metadata.gz: 597b819e4181911f326165fe5e6e26ded947992e55dbc994cd4568172ba4f9102011fdb7b238f74c4a1a92ee4189658a8d32ccfa98bb9ea944a9cddbc54a8757
7
+ data.tar.gz: a05d29929286348904d2c12c2d247bf19c2654cb0598512e4ce7b7ba8eb145d2a939fd1a055b63af79060f58f1c0b5ba901a202d65b7d650c8ea24baf59236c3
data/.gitlab-ci.yml CHANGED
@@ -4,12 +4,14 @@ services:
4
4
  stages:
5
5
  - check
6
6
  - test
7
+ - notify
7
8
 
8
9
  variables:
9
10
  TEST_IMAGE: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-qa
10
11
  DOCKER_DRIVER: overlay
11
12
  DOCKER_HOST: tcp://docker:2375
12
13
  QA_ARTIFACTS_DIR: $CI_PROJECT_DIR
14
+ QA_CAN_TEST_GIT_PROTOCOL_V2: 'false'
13
15
 
14
16
  before_script:
15
17
  - bundle install
@@ -248,3 +250,25 @@ ee:object_storage:
248
250
  <<: *test
249
251
  <<: *high-capacity
250
252
  <<: *ee-qa
253
+
254
+ .notify_upstream_commit: &notify_upstream_commit
255
+ stage: notify
256
+ image: $TEST_IMAGE
257
+ before_script:
258
+ - gem install gitlab --no-document
259
+ only:
260
+ variables:
261
+ - $TOP_UPSTREAM_SOURCE_PROJECT
262
+ - $TOP_UPSTREAM_SOURCE_SHA
263
+
264
+ notify_upstream_commit:success:
265
+ <<: *notify_upstream_commit
266
+ script:
267
+ - bin/notify_upstream_commit success
268
+ when: on_success
269
+
270
+ notify_upstream_commit:failure:
271
+ <<: *notify_upstream_commit
272
+ script:
273
+ - bin/notify_upstream_commit failure
274
+ when: on_failure
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'gitlab'
5
+
6
+ # Configure credentials to be used with gitlab gem
7
+ Gitlab.configure do |config|
8
+ config.endpoint = 'https://gitlab.com/api/v4'
9
+ config.private_token = ENV['GITLAB_BOT_MULTI_PROJECT_PIPELINE_POLLING_TOKEN']
10
+ end
11
+
12
+ class CommitComment
13
+ def self.post!(status)
14
+ unless ENV['TOP_UPSTREAM_SOURCE_SHA']
15
+ puts "The 'TOP_UPSTREAM_SOURCE_SHA' environment variable is missing, cannot post a comment on a missing upstream commit."
16
+ return
17
+ end
18
+
19
+ top_upstream_source_sha = ENV['TOP_UPSTREAM_SOURCE_SHA']
20
+
21
+ unless ENV['TOP_UPSTREAM_SOURCE_PROJECT']
22
+ puts "The 'TOP_UPSTREAM_SOURCE_PROJECT' environment variable is missing, cannot post a comment on the upstream #{top_upstream_source_sha} commit."
23
+ return
24
+ end
25
+
26
+ top_upstream_source_project = ENV['TOP_UPSTREAM_SOURCE_PROJECT']
27
+
28
+ status_with_icon =
29
+ case status
30
+ when :success
31
+ "passed. :white_check_mark:"
32
+ when :failure
33
+ "failed! :boom:"
34
+ end
35
+
36
+ Gitlab.create_commit_comment(
37
+ top_upstream_source_project,
38
+ top_upstream_source_sha,
39
+ "The [`gitlab-qa` downstream pipeline](#{ENV['CI_PIPELINE_URL']}) #{status_with_icon}")
40
+ rescue Gitlab::Error::Error => error
41
+ puts "Ignoring the following error: #{error}"
42
+ end
43
+ end
44
+
45
+ status = ARGV[0].to_s.strip
46
+ if status != ''
47
+ CommitComment.post!(status.to_sym)
48
+ else
49
+ puts "Please provide a status!"
50
+ end
@@ -0,0 +1,7 @@
1
+ dn: ou=Global Groups,dc=example,dc=org
2
+ objectClass: organizationalUnit
3
+ ou: Global Groups
4
+
5
+ dn: ou=People,ou=Global Groups,dc=example,dc=org
6
+ objectClass: organizationalUnit
7
+ ou: People
@@ -0,0 +1,237 @@
1
+
2
+ # 1. Human Resources
3
+
4
+ dn: uid=hruser1,ou=People,ou=Global Groups,dc=example,dc=org
5
+ cn: HR User 1
6
+ givenName: HR
7
+ sn: User1
8
+ uid: hruser1
9
+ uidNumber: 5000
10
+ gidNumber: 10000
11
+ homeDirectory: /home/hruser1
12
+ mail: hruser1@example.org
13
+ objectClass: top
14
+ objectClass: posixAccount
15
+ objectClass: shadowAccount
16
+ objectClass: inetOrgPerson
17
+ objectClass: organizationalPerson
18
+ objectClass: person
19
+ loginShell: /bin/bash
20
+ # hashed value for 'password'
21
+ userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
22
+
23
+ dn: uid=hruser2,ou=People,ou=Global Groups,dc=example,dc=org
24
+ cn: HR User 2
25
+ givenName: HR
26
+ sn: User2
27
+ uid: hruser2
28
+ uidNumber: 5001
29
+ gidNumber: 10001
30
+ homeDirectory: /home/hruser2
31
+ mail: hruser2@example.org
32
+ objectClass: top
33
+ objectClass: posixAccount
34
+ objectClass: shadowAccount
35
+ objectClass: inetOrgPerson
36
+ objectClass: organizationalPerson
37
+ objectClass: person
38
+ loginShell: /bin/bash
39
+ # hashed value for 'password'
40
+ userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
41
+
42
+ dn: uid=hruser3,ou=People,ou=Global Groups,dc=example,dc=org
43
+ cn: HR User 3
44
+ givenName: HR
45
+ sn: User3
46
+ uid: hruser3
47
+ uidNumber: 5002
48
+ gidNumber: 10002
49
+ homeDirectory: /home/hruser3
50
+ mail: hruser3@example.org
51
+ objectClass: top
52
+ objectClass: posixAccount
53
+ objectClass: shadowAccount
54
+ objectClass: inetOrgPerson
55
+ objectClass: organizationalPerson
56
+ objectClass: person
57
+ loginShell: /bin/bash
58
+ # hashed value for 'password'
59
+ userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
60
+
61
+ # 2. Engineering
62
+
63
+ dn: uid=enguser1,ou=People,ou=Global Groups,dc=example,dc=org
64
+ cn: ENG User 1
65
+ givenName: ENG
66
+ sn: User1
67
+ uid: enguser1
68
+ uidNumber: 5003
69
+ gidNumber: 10003
70
+ homeDirectory: /home/enguser1
71
+ mail: enguser1@example.org
72
+ objectClass: top
73
+ objectClass: posixAccount
74
+ objectClass: shadowAccount
75
+ objectClass: inetOrgPerson
76
+ objectClass: organizationalPerson
77
+ objectClass: person
78
+ loginShell: /bin/bash
79
+ # hashed value for 'password'
80
+ userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
81
+
82
+ dn: uid=enguser2,ou=People,ou=Global Groups,dc=example,dc=org
83
+ cn: ENG User 2
84
+ givenName: ENG
85
+ sn: User2
86
+ uid: enguser2
87
+ uidNumber: 5004
88
+ gidNumber: 10004
89
+ homeDirectory: /home/enguser2
90
+ mail: enguser2@example.org
91
+ objectClass: top
92
+ objectClass: posixAccount
93
+ objectClass: shadowAccount
94
+ objectClass: inetOrgPerson
95
+ objectClass: organizationalPerson
96
+ objectClass: person
97
+ loginShell: /bin/bash
98
+ # hashed value for 'password'
99
+ userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
100
+
101
+ dn: uid=enguser3,ou=People,ou=Global Groups,dc=example,dc=org
102
+ cn: ENG User 3
103
+ givenName: ENG
104
+ sn: User3
105
+ uid: enguser3
106
+ uidNumber: 5005
107
+ gidNumber: 10005
108
+ homeDirectory: /home/enguser3
109
+ mail: enguser3@example.org
110
+ objectClass: top
111
+ objectClass: posixAccount
112
+ objectClass: shadowAccount
113
+ objectClass: inetOrgPerson
114
+ objectClass: organizationalPerson
115
+ objectClass: person
116
+ loginShell: /bin/bash
117
+ # hashed value for 'password'
118
+ userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
119
+
120
+
121
+ # 3. Security
122
+
123
+ dn: uid=securityuser1,ou=People,ou=Global Groups,dc=example,dc=org
124
+ cn: Security User 1
125
+ givenName: Security
126
+ sn: User1
127
+ uid: securityuser1
128
+ uidNumber: 5006
129
+ gidNumber: 10006
130
+ homeDirectory: /home/securityuser1
131
+ mail: securityuser1@example.org
132
+ objectClass: top
133
+ objectClass: posixAccount
134
+ objectClass: shadowAccount
135
+ objectClass: inetOrgPerson
136
+ objectClass: organizationalPerson
137
+ objectClass: person
138
+ loginShell: /bin/bash
139
+ # hashed value for 'password'
140
+ userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
141
+
142
+ dn: uid=securityuser2,ou=People,ou=Global Groups,dc=example,dc=org
143
+ cn: Security User 2
144
+ givenName: Security
145
+ sn: User2
146
+ uid: securityuser2
147
+ uidNumber: 5007
148
+ gidNumber: 10007
149
+ homeDirectory: /home/securityuser2
150
+ mail: securityuser1@example.org
151
+ objectClass: top
152
+ objectClass: posixAccount
153
+ objectClass: shadowAccount
154
+ objectClass: inetOrgPerson
155
+ objectClass: organizationalPerson
156
+ objectClass: person
157
+ loginShell: /bin/bash
158
+ # hashed value for 'password'
159
+ userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
160
+
161
+ dn: uid=securityuser3,ou=People,ou=Global Groups,dc=example,dc=org
162
+ cn: Security User 3
163
+ givenName: Security
164
+ sn: User3
165
+ uid: securityuser3
166
+ uidNumber: 5008
167
+ gidNumber: 10008
168
+ homeDirectory: /home/securityuser3
169
+ mail: securityuser3@example.org
170
+ objectClass: top
171
+ objectClass: posixAccount
172
+ objectClass: shadowAccount
173
+ objectClass: inetOrgPerson
174
+ objectClass: organizationalPerson
175
+ objectClass: person
176
+ loginShell: /bin/bash
177
+ # hashed value for 'password'
178
+ userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
179
+
180
+ # 3. Admin
181
+
182
+ dn: uid=adminuser1,ou=People,ou=Global Groups,dc=example,dc=org
183
+ cn: Admin User 1
184
+ givenName: Admin
185
+ sn: User1
186
+ uid: adminuser1
187
+ uidNumber: 5009
188
+ gidNumber: 10009
189
+ homeDirectory: /home/adminuser1
190
+ mail: adminuser1@example.org
191
+ objectClass: top
192
+ objectClass: posixAccount
193
+ objectClass: shadowAccount
194
+ objectClass: inetOrgPerson
195
+ objectClass: organizationalPerson
196
+ objectClass: person
197
+ loginShell: /bin/bash
198
+ # hashed value for 'password'
199
+ userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
200
+
201
+ dn: uid=adminuser2,ou=People,ou=Global Groups,dc=example,dc=org
202
+ cn: Admin User 2
203
+ givenName: Admin
204
+ sn: User1
205
+ uid: adminuser2
206
+ uidNumber: 5010
207
+ gidNumber: 10010
208
+ homeDirectory: /home/adminuser2
209
+ mail: adminuser2@example.org
210
+ objectClass: top
211
+ objectClass: posixAccount
212
+ objectClass: shadowAccount
213
+ objectClass: inetOrgPerson
214
+ objectClass: organizationalPerson
215
+ objectClass: person
216
+ loginShell: /bin/bash
217
+ # hashed value for 'password'
218
+ userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
219
+
220
+ dn: uid=adminuser3,ou=People,ou=Global Groups,dc=example,dc=org
221
+ cn: Admin User 3
222
+ givenName: Admin
223
+ sn: User1
224
+ uid: adminuser3
225
+ uidNumber: 5011
226
+ gidNumber: 10011
227
+ homeDirectory: /home/adminuser3
228
+ mail: adminuser3@example.org
229
+ objectClass: top
230
+ objectClass: posixAccount
231
+ objectClass: shadowAccount
232
+ objectClass: inetOrgPerson
233
+ objectClass: organizationalPerson
234
+ objectClass: person
235
+ loginShell: /bin/bash
236
+ # hashed value for 'password'
237
+ userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
@@ -0,0 +1,39 @@
1
+ # 1. Human Resources
2
+
3
+ dn: cn=Human Resources,ou=Global Groups,dc=example,dc=org
4
+ objectClass: groupofnames
5
+ cn: Human Resources
6
+ description: Human Resources
7
+ member: uid=hruser1,ou=People,ou=Global Groups,dc=example,dc=org
8
+ member: uid=hruser2,ou=People,ou=Global Groups,dc=example,dc=org
9
+ member: uid=hruser3,ou=People,ou=Global Groups,dc=example,dc=org
10
+
11
+ # 2. Engineering
12
+
13
+ dn: cn=Engineering,ou=Global Groups,dc=example,dc=org
14
+ objectClass: groupofnames
15
+ cn: Engineering
16
+ description: Engineering
17
+ member: uid=enguser1,ou=People,ou=Global Groups,dc=example,dc=org
18
+ member: uid=enguser2,ou=People,ou=Global Groups,dc=example,dc=org
19
+ member: uid=enguser3,ou=People,ou=Global Groups,dc=example,dc=org
20
+
21
+ # 3. Security
22
+
23
+ dn: cn=Security,ou=Global Groups,dc=example,dc=org
24
+ objectClass: groupofnames
25
+ cn: Security
26
+ description: Security
27
+ member: uid=securityuser1,ou=People,ou=Global Groups,dc=example,dc=org
28
+ member: uid=securityuser2,ou=People,ou=Global Groups,dc=example,dc=org
29
+ member: uid=securityuser3,ou=People,ou=Global Groups,dc=example,dc=org
30
+
31
+ # 4. Admin
32
+
33
+ dn: cn=AdminGroup,ou=Global Groups,dc=example,dc=org
34
+ objectClass: groupofnames
35
+ cn: AdminGroup
36
+ description: Human Resources
37
+ member: uid=adminuser1,ou=People,ou=Global Groups,dc=example,dc=org
38
+ member: uid=adminuser2,ou=People,ou=Global Groups,dc=example,dc=org
39
+ member: uid=adminuser3,ou=People,ou=Global Groups,dc=example,dc=org
@@ -30,8 +30,8 @@ module Gitlab
30
30
  BASE_DN = 'dc=example,dc=org'.freeze
31
31
  BIND_DN = 'cn=admin,dc=example,dc=org'.freeze
32
32
  BOOTSTRAP_LDIF = '/container/service/slapd/assets/config/bootstrap/ldif/custom'.freeze
33
- GROUP_BASE = 'ou=groups,dc=example,dc=org'.freeze
34
- ADMIN_GROUP = 'admin'.freeze
33
+ GROUP_BASE = 'ou=Global Groups,dc=example,dc=org'.freeze
34
+ ADMIN_GROUP = 'AdminGroup'.freeze
35
35
  FIXTURE_PATH = File.expand_path('../../../../fixtures/ldap'.freeze, __dir__)
36
36
 
37
37
  attr_reader :docker
@@ -149,7 +149,7 @@ module Gitlab
149
149
  uid: 'uid'
150
150
  bind_dn: #{BIND_DN}
151
151
  password: #{ADMIN_PASSWORD}
152
- method: #{tls? ? 'simple_tls' : 'plain'}
152
+ encryption: #{tls? ? 'simple_tls' : 'plain'}
153
153
  verify_certificates: false
154
154
  base: #{BASE_DN}
155
155
  user_filter: ''
@@ -16,6 +16,8 @@ module Gitlab
16
16
  gitlab.omnibus_config = <<~OMNIBUS
17
17
  gitlab_rails['ldap_enabled'] = true;
18
18
  gitlab_rails['ldap_servers'] = #{ldap.to_config};
19
+ gitlab_rails['ldap_sync_worker_cron'] = '* * * * *';
20
+ gitlab_rails['ldap_group_sync_worker_cron'] = '* * * * *';
19
21
  OMNIBUS
20
22
  end
21
23
  end
@@ -19,6 +19,8 @@ module Gitlab
19
19
  gitlab_rails['ldap_servers'] = #{ldap.to_config};
20
20
  letsencrypt['enable'] = false;
21
21
  external_url '#{gitlab.address}';
22
+ gitlab_rails['ldap_sync_worker_cron'] = '* * * * *';
23
+ gitlab_rails['ldap_group_sync_worker_cron'] = '* * * * *';
22
24
  OMNIBUS
23
25
  end
24
26
  end
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module QA
3
- VERSION = '2.7.3'.freeze
3
+ VERSION = '2.8.0'.freeze
4
4
  end
5
5
  end
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: 2.7.3
4
+ version: 2.8.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: 2018-11-02 00:00:00.000000000 Z
11
+ date: 2018-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control
@@ -130,6 +130,7 @@ files:
130
130
  - Rakefile
131
131
  - bin/console
132
132
  - bin/expect_exit_code_and_text
133
+ - bin/notify_upstream_commit
133
134
  - bin/qa
134
135
  - bin/setup
135
136
  - docs/README.md
@@ -140,6 +141,9 @@ files:
140
141
  - docs/waits.md
141
142
  - docs/what_tests_can_be_run.md
142
143
  - exe/gitlab-qa
144
+ - fixtures/ldap/1_add_nodes.ldif
145
+ - fixtures/ldap/2_add_users.ldif
146
+ - fixtures/ldap/3_add_groups.ldif
143
147
  - fixtures/ldap/tanuki.ldif
144
148
  - gitlab-qa.gemspec
145
149
  - lib/gitlab/qa.rb