Compare commits

..

211 commits

Author SHA1 Message Date
Pirate Praveen
cea0ccbb86
Upload to bullseye-fasttrack 2023-05-26 03:24:30 +05:30
Pirate Praveen
b2cb24356b
Upload to bullseye-fasttrack 2023-05-24 19:40:05 +05:30
Pirate Praveen
0d048b61fc
Merge tag 'debian/15.9.8+ds1-3' into bullseye-fasttrack
gitlab Debian release 15.9.8+ds1-3
2023-05-24 19:39:33 +05:30
Pirate Praveen
1f2e6e2bb9
Upload to bullseye-fasttrack 2023-05-16 01:54:01 +05:30
Pirate Praveen
d964dbc309
Update minimum version of ruby-json to 2.6.3 2023-05-16 01:54:00 +05:30
Pirate Praveen
0e68c3da45
Update minimum version of ruby-gitlab-markup to 1.9~ 2023-05-16 01:09:41 +05:30
Pirate Praveen
57f7efdcc0
Add ruby-google-apis-container-v1 as dependency 2023-05-15 22:38:25 +05:30
Pirate Praveen
79fe71a5ac
Add ruby-digest-crc to dependency 2023-05-15 22:28:46 +05:30
Pirate Praveen
6ec50405ae
Merge tag 'debian/15.9.8+ds1-1' into bullseye-fasttrack
gitlab Debian release 15.9.8+ds1-1
2023-05-12 19:02:02 +05:30
Vinay Keshava
cea4606c27
release 15.8.5+ds1-1~fto11+1 to bullseye-fasttrack 2023-04-08 23:14:29 +05:30
Vinay Keshava
4ff576b45c Merge tag 'debian/15.8.5+ds1-1' into bullseye-fasttrack
gitlab Debian release 15.8.5+ds1-1
2023-04-05 01:29:52 +05:30
Pirate Praveen
6bb22bc1bb
Upload to bullseye-fasttrack 2023-03-24 19:30:32 +05:30
Pirate Praveen
a592d9c929
Add epoch to ruby-google-protobuf version to force update 2023-03-24 19:29:32 +05:30
Pirate Praveen
981d59c8fd
Update rack version for gem install to ~> 2.2.6 2023-03-24 19:29:05 +05:30
Vinay Keshava
e507386a6d
Upload to bullseye-fasttrack 2023-03-24 10:13:06 +05:30
Vinay Keshava
fcb141bae8
Install rack gem from rubygems.org in postinst 2023-03-24 10:12:43 +05:30
Vinay Keshava
5b1717be56
release v15.8.4+ds1-1~fto11+1 to bullseye-fasttrack 2023-03-23 16:14:56 +05:30
Vinay Keshava
4900136b45 Merge tag 'debian/15.8.4+ds1-1' into bullseye-fasttrack
gitlab Debian release 15.8.4+ds1-1
2023-03-19 16:00:59 +05:30
Pirate Praveen
0dc8eadedd
Upload to bullseye-fasttrack 2023-03-15 18:01:40 +05:30
Pirate Praveen
26bbe6e518
Merge tag 'debian/15.7.8+ds1-11' into bullseye-fasttrack
gitlab Debian release 15.7.8+ds1-11
2023-03-15 18:00:21 +05:30
Pirate Praveen
4021f5bb54
Update minimum version of ruby-grpc to 1.42~ 2023-03-15 17:59:44 +05:30
Pirate Praveen
ec9da8f207
Upload to bullseye-fasttrack 2023-03-10 22:08:09 +05:30
Pirate Praveen
454d166ee8
Merge tag 'debian/15.7.8+ds1-9' into bullseye-fasttrack
gitlab Debian release 15.7.8+ds1-9
2023-03-10 22:07:38 +05:30
Pirate Praveen
2098105f87
Upload to bullseye-fasttrack 2023-03-09 11:19:56 +05:30
Pirate Praveen
35385a004c
Merge tag 'debian/15.7.8+ds1-8' into bullseye-fasttrack
gitlab Debian release 15.7.8+ds1-8
2023-03-09 11:19:38 +05:30
Pirate Praveen
365ae51aea
Update minimum version of ruby-net-ldap to 0.17 2023-03-09 00:49:58 +05:30
Pirate Praveen
21a8a0b1b2
Upload to bullseye-fasttrack 2023-03-08 23:30:12 +05:30
Pirate Praveen
3d1c341815
Merge tag 'debian/15.7.8+ds1-7' into bullseye-fasttrack
gitlab Debian release 15.7.8+ds1-7
2023-03-08 23:29:57 +05:30
Pirate Praveen
78bb876e0e
Relax dependency on ruby-net-ldap 2023-03-08 23:06:13 +05:30
Pirate Praveen
02498ef53e
Upload to bullseye-fasttrack 2023-03-08 19:04:08 +05:30
Pirate Praveen
af29d71f66
Merge tag 'debian/15.7.8+ds1-6' into bullseye-fasttrack
gitlab Debian release 15.7.8+ds1-6
2023-03-08 19:03:50 +05:30
Pirate Praveen
953068ef23
Update minimum versions of ruby-gpgme and ruby-doorkeeper-openid-connect 2023-03-07 21:08:13 +05:30
Pirate Praveen
56c6d3fb04
Upload to bullseye-fasttrack 2023-03-07 16:10:11 +05:30
Pirate Praveen
e2e896dca0
Merge tag 'debian/15.7.8+ds1-4' into bullseye-fasttrack
gitlab Debian release 15.7.8+ds1-4
2023-03-07 16:09:50 +05:30
Pirate Praveen
032ef57464
Upload to bullseye-fasttrack 2023-03-04 20:04:18 +05:30
Pirate Praveen
a677551a08
Update minimum version of ruby-gitlab-sidekiq-fetcher to (>= 0.9~) 2023-03-04 20:02:40 +05:30
Pirate Praveen
43ddb8f856
Upload to bullseye-fasttrack 2023-02-28 19:53:27 +05:30
Pirate Praveen
d9534baea3
Merge tag 'debian/15.6.8+ds1-2' into bullseye-fasttrack
gitlab Debian release 15.6.8+ds1-2
2023-02-28 19:53:08 +05:30
Pirate Praveen
acab1cf9ee
Upload to bullseye-fasttrack 2023-02-27 16:04:53 +05:30
Pirate Praveen
10c1dda48e
Add ruby-hashie >= 5.0 to Depends 2023-02-27 16:04:52 +05:30
Pirate Praveen
06bb25cb8c
Merge tag 'debian/15.6.8+ds1-1' into bullseye-fasttrack
gitlab Debian release 15.6.8+ds1-1
2023-02-27 12:46:41 +05:30
Mohammed Bilal
4a577edb20
Upload to bullseye-fasttrack 2023-02-09 21:50:36 +05:30
Mohammed Bilal
ec19adfbd7
use matching versions of tiptap core and its extensions 2023-02-09 21:50:18 +05:30
Mohammed Bilal
2f8bbd8338
Upload to bullseye-fasttrack 2023-02-09 15:40:14 +05:30
Mohammed Bilal
9b456716d6
relax net-ldap version 2023-02-08 21:46:04 +05:30
Mohammed Bilal
988547851e
Add patch to relax oj in ipynbdiff 2023-02-08 15:16:46 +00:00
Mohammed Bilal
76450fe888
Update min versions
- ruby-oj + oj-introspect [ header file fix]
- ruby-cfpropertylist [ Diff 500 fix ]
2023-02-08 15:16:44 +00:00
Mohammed Bilal
df367c93bc
Add patch to check for gitlab-shell-check binary 2023-02-07 21:33:15 +05:30
Mohammed Bilal
9a8656169b
Merge tag 'debian/15.6.6+ds1-2' into bullseye-fasttrack
gitlab Debian release 15.6.6+ds1-2
2023-02-06 01:21:04 +05:30
Mohammed Bilal
36b32dd7c5
Upload to bullseye-fasttrack 2023-01-10 18:49:06 +05:30
Mohammed Bilal
a900ba5e48
Merge tag 'debian/15.5.7+ds1-1' into bullseye-fasttrack
gitlab Debian release 15.5.7+ds1-1
2023-01-10 18:47:14 +05:30
Pirate Praveen
c5465fa1c5
Upload to bullseye-fasttrack 2022-12-12 20:04:22 +05:30
Pirate Praveen
948549c749
Relax dependency on gitlab-labkit (to match gitaly) 2022-12-12 20:03:47 +05:30
Pirate Praveen
c7a3546253
Upload to bullseye-fasttrack 2022-12-12 17:28:37 +05:30
Pirate Praveen
c253deb109
Merge tag 'debian/15.5.4+ds3-2' into bullseye-fasttrack
gitlab Debian release 15.5.4+ds3-2
2022-12-12 17:28:07 +05:30
Pirate Praveen
e46e999a66
Upload to bullseye-fasttrack 2022-12-08 23:42:09 +05:30
Pirate Praveen
47fd2f6fd6
Merge tag 'debian/15.5.4+ds3-1' into bullseye-fasttrack
gitlab Debian release 15.5.4+ds3-1
2022-12-08 23:41:39 +05:30
Pirate Praveen
a99ef59dea
Upload to bullseye-fasttrack 2022-10-27 22:29:54 +05:30
Pirate Praveen
ed75aca943
Tighten node-lodash version for nodejs:any fix 2022-10-27 22:29:54 +05:30
Pirate Praveen
271fd5fb7f
Restorre using yaml from system for older nodejs compat 2022-10-27 17:05:18 +05:30
Pirate Praveen
90d63fd52d
Upload to bullseye-fasttrack 2022-10-25 00:12:07 +05:30
Pirate Praveen
f1584cd406
Transpile some newer javascript with babel to run on bullseye's nodejs 2022-10-25 00:12:07 +05:30
Pirate Praveen
c94514e0f9
Upload to bullseye-fasttrack 2022-10-24 17:21:32 +05:30
Pirate Praveen
60f90c022a
Update minimum version of puma and ruby-omniauth 2022-10-24 17:21:31 +05:30
Pirate Praveen
5a084edfb1
Merge tag 'debian/15.4.2+ds1-1' into bullseye-fasttrack
gitlab Debian release 15.4.2+ds1-1
2022-10-22 16:57:55 +05:30
Pirate Praveen
bdb783f5a0
Upload to bullseye-fasttrack 2022-10-03 11:44:42 +05:30
Pirate Praveen
06037ebf8a
Merge tag 'debian/15.3.4+ds1-1' into bullseye-fasttrack
gitlab Debian release 15.3.4+ds1-1
2022-10-03 11:44:25 +05:30
Pirate Praveen
d68a93e0a5
Upload to bullseye-fasttrack 2022-09-15 01:45:29 +05:30
Pirate Praveen
0fdbd22e09
Merge tag 'debian/15.3.2+ds1-1' into bullseye-fasttrack
gitlab Debian release 15.3.2+ds1-1
2022-09-15 01:21:23 +05:30
Mohammed Bilal
b0d46307d1
Upload to bullseye-fasttrack 2022-09-07 13:06:50 +00:00
Mohammed Bilal
e61b5c4f28
install danger gem from rubygems.org
We need danger < 9 (dep of gitlab-dangerfiles) inorder to avoid octokit conflict
2022-09-07 13:05:55 +00:00
Mohammed Bilal
abb882aa7b
Add patch to include babel plugins 2022-09-06 18:59:50 +05:30
Mohammed Bilal
af0eff889d
Use packaged version of node-yaml 2022-09-04 06:14:29 +05:30
Mohammed Bilal
f35aed7c04
Refresh patches 2022-09-04 06:12:58 +05:30
Pirate Praveen
23306c5fbf
Adjust gitlab-labkit version to 0.24.0 in postinst 2022-09-04 06:10:12 +05:30
Mohammed Bilal
fe50619253 Update upstream source from tag 'upstream/15.3.2+ds1'
Update to upstream version '15.3.2+ds1'
with Debian dir 67f5367d04
2022-09-04 06:09:36 +05:30
Pirate Praveen
87826b6b66
Upload to bullseye-fasttrack 2022-08-29 23:00:54 +05:30
Pirate Praveen
ebf66a360c
Merge tag 'debian/15.3.1+ds1-2' into bullseye-fasttrack
gitlab Debian release 15.3.1+ds1-2
2022-08-29 23:00:35 +05:30
Pirate Praveen
748748ff93
Update minimum version of ruby-oj 2022-08-29 19:11:34 +05:30
Pirate Praveen
b3e4915c7f
Upload to bullseye-fasttrack 2022-08-28 22:52:54 +05:30
Pirate Praveen
afbe7b30b5
Merge tag 'debian/15.3.1+ds1-1' into bullseye-fasttrack
gitlab Debian release 15.3.1+ds1-1
2022-08-28 22:52:29 +05:30
Mohammed Bilal
9c8f7d9758
Upload to bullseye-fasttrack 2022-08-26 00:44:29 +05:30
Mohammed Bilal
6ac74efaa5
Upload to experimental 2022-08-26 00:43:18 +05:30
Mohammed Bilal
dc60d323ae
Update minimum version of yamux in runtime dependency 2022-08-26 00:43:17 +05:30
Mohammed Bilal
15cb84395c
Upload to experimental 2022-08-26 00:43:17 +05:30
Mohammed Bilal
1977aa0604
Add info regarding gitlab-workhorse 2022-08-26 00:43:17 +05:30
Mohammed Bilal
a4b6bed574
New upstream version 15.2.3+ds1 2022-08-26 00:43:16 +05:30
Pirate Praveen
ec1e973cec
Upload to experimental 2022-08-26 00:43:15 +05:30
Pirate Praveen
a283812fe9
Add workhorse-vendor in upstream-file-list 2022-08-26 00:43:15 +05:30
Pirate Praveen
d7bc097bfc
Upload to experimental 2022-08-26 00:43:13 +05:30
Pirate Praveen
0239773ab3
Fix arch:all build by separating dh overrides for gitlab and gitlab-workhorse 2022-08-26 00:42:02 +05:30
Pirate Praveen
0c9f487dd3
Upload to bullseye-fasttrack 2022-08-19 21:46:05 +05:30
Pirate Praveen
7e8c98c640
Merge tag 'debian/15.2.2+ds1-4' into bullseye-fasttrack
gitlab Debian release 15.2.2+ds1-4
2022-08-19 21:45:48 +05:30
Pirate Praveen
ce0d6fe829
Upload to bullseye-fasttrack 2022-08-19 15:07:39 +05:30
Pirate Praveen
dc6c33945b
Merge tag 'debian/15.2.2+ds1-3' into bullseye-fasttrack
gitlab Debian release 15.2.2+ds1-3
2022-08-19 15:07:22 +05:30
Pirate Praveen
ec6cb7b888
Upload to bullseye-fasttrack 2022-08-15 23:22:19 +05:30
Pirate Praveen
ae7682b478
Merge tag 'debian/15.2.2+ds1-2' into bullseye-fasttrack
gitlab Debian release 15.2.2+ds1-2
2022-08-15 23:22:01 +05:30
Pirate Praveen
23e5d437ae
Upload to bullseye-fasttrack 2022-08-15 15:22:50 +05:30
Pirate Praveen
4371edbfff
Merge tag 'debian/15.2.2+ds1-1' into bullseye-fasttrack
gitlab Debian release 15.2.2+ds1-1
2022-08-15 15:22:35 +05:30
Pirate Praveen
ac80ba892b
Merge tag 'debian/15.1.4+ds1-1' into bullseye-fasttrack
gitlab Debian release 15.1.4+ds1-1
2022-08-11 16:21:30 +05:30
Pirate Praveen
6ac4a3b52a
Remove obsolete initializers/00_active_record_gitlab_schema.rb 2022-08-11 00:12:19 +05:30
Pirate Praveen
7fe56bd4ea
Merge branch 'master' into bullseye-fasttrack 2022-08-10 23:15:19 +05:30
Pirate Praveen
3e3e02b4ba
Update changelog 2022-08-10 01:06:52 +05:30
Pirate Praveen
4a89e39628
Merge branch 'master' into bullseye-fasttrack 2022-08-10 01:06:22 +05:30
Pirate Praveen
e18fb39a9d
Upload to bullseye-fasttrack 2022-07-18 18:11:29 +02:00
Pirate Praveen
edfaae75c2
Update minimum version of ruby-bootsnap to 1.9.4 2022-07-18 18:11:10 +02:00
Pirate Praveen
1b77fbb596
Upload to bullseye-fasttrack 2022-07-17 23:13:14 +02:00
Pirate Praveen
e6f348532b
Merge tag 'debian/15.0.4+ds1-1' into bullseye-fasttrack
gitlab Debian release 15.0.4+ds1-1
2022-07-17 23:12:59 +02:00
Pirate Praveen
595c1bd8b0
Upload to bullseye-fasttrack 2022-07-01 16:53:45 +05:30
Pirate Praveen
a9be3ef707
Merge tag 'debian/14.10.5+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.10.5+ds1-1
2022-07-01 16:53:15 +05:30
Pirate Praveen
c5e170e90d
Upload to bullseye-fasttrack 2022-06-30 23:16:09 +05:30
Pirate Praveen
d2d676b910
Merge tag 'debian/14.10.4+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.10.4+ds1-1
2022-06-30 23:15:50 +05:30
Pirate Praveen
5608c6d44f
Upload to bullseye-fasttrack 2022-06-02 22:39:22 +05:30
Pirate Praveen
330e938d92
Merge tag 'debian/14.9.5+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.9.5+ds1-1
2022-06-02 22:38:41 +05:30
Pirate Praveen
38743b3d79
Switch to packaged version of node-postcss 2022-05-10 18:41:43 +05:30
Pirate Praveen
56fce92038
Upload to bullseye-fasttrack 2022-05-09 17:12:14 +05:30
Pirate Praveen
f428e3cb32
Merge tag 'debian/14.9.4+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.9.4+ds1-1
2022-05-09 17:11:47 +05:30
Pirate Praveen
a3d1e722ff
Upload to bullseye-fasttrack 2022-05-03 18:58:21 +05:30
Pirate Praveen
90788c398d
Merge tag 'debian/14.8.6+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.8.6+ds1-1
2022-05-03 18:57:57 +05:30
Pirate Praveen
e6bb01daea Upload to bullseye-fasttrack 2022-04-10 17:17:50 +05:30
Pirate Praveen
521ad2271a Merge tag 'debian/14.8.5+ds1-3' into bullseye-fasttrack
gitlab Debian release 14.8.5+ds1-3
2022-04-10 17:17:35 +05:30
Pirate Praveen
a46dac89ad Upload to bullseye-fasttrack 2022-04-09 00:28:25 +05:30
Pirate Praveen
d486e56b39 Merge tag 'debian/14.8.5+ds1-2' into bullseye-fasttrack
gitlab Debian release 14.8.5+ds1-2
2022-04-09 00:28:05 +05:30
Pirate Praveen
99069a2eaf Upload to bullseye-fasttrack 2022-04-06 16:00:37 +05:30
Pirate Praveen
296fc8d07f Update minimum version of ruby-gitlab-experiment 2022-04-06 15:59:44 +05:30
Pirate Praveen
7e0d4e22c4 Upload to bullseye-fasttrack 2022-04-05 18:19:17 +05:30
Pirate Praveen
40d82784bc Merge tag 'debian/14.8.5+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.8.5+ds1-1
2022-04-05 18:18:40 +05:30
Pirate Praveen
93a87a8e62 Upload to bullseye-fasttrack 2022-04-03 01:01:50 +05:30
Pirate Praveen
c1e0934ed1 Fix max version of obsolete sherlock.rb initializer 2022-04-03 00:59:34 +05:30
Pirate Praveen
ef60272ff4 Upload to bullseye-fasttrack 2022-04-02 15:50:29 +05:30
Pirate Praveen
c4f6780f18 Merge tag 'debian/14.7.7+ds1-2' into bullseye-fasttrack 2022-04-02 15:50:08 +05:30
Pirate Praveen
a4df1f3837 Update minimum version of gitaly* to 14.7 2022-04-02 14:08:05 +05:30
Pirate Praveen
51e7039a88 Upload to bullseye-fasttrack 2022-04-02 02:26:02 +05:30
Pirate Praveen
c025f29cd2 Update minimum version of ruby-acme-client 2022-04-02 02:23:34 +05:30
Pirate Praveen
8a651755da Upload to bullseye-fasttrack 2022-04-02 00:21:12 +05:30
Pirate Praveen
d00cc5cd3f Merge tag 'debian/14.7.7+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.7.7+ds1-1
2022-04-01 23:53:35 +05:30
Pirate Praveen
e4592c26a6 Set GEM_HOME and GEM_PATH variables in rake-tasks.sh 2022-03-14 16:03:16 +05:30
Pirate Praveen
79068085e6 Update minimum version of ruby-google-protobuf 2022-03-14 16:02:56 +05:30
Pirate Praveen
e10abf300a Upload to bullseye-fasttrack 2022-03-04 16:50:39 +05:30
Pirate Praveen
5ee0b73dea Merge tag 'debian/14.7.4+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.7.4+ds1-1
2022-03-04 16:50:20 +05:30
Pirate Praveen
aaee64c9d3 Upload to bullseye-fasttrack 2022-02-28 00:30:13 +05:30
Pirate Praveen
9955cb274b Update minimum version of gitaly (for ruby-gollum-lib update) 2022-02-28 00:28:40 +05:30
Pirate Praveen
438a9e3f3e Update minimum version of ruby-ruby-magic (for ruby-mini-portile2 compat) 2022-02-28 00:17:55 +05:30
Pirate Praveen
f6ede0814b Upload to bullseye-fasttrack 2022-02-27 20:32:01 +05:30
Pirate Praveen
3dba71748b Merge tag 'debian/14.6.5+ds1-2' into bullseye-fasttrack
gitlab Debian release 14.6.5+ds1-2
2022-02-27 20:31:42 +05:30
Pirate Praveen
b550d26796 Relax dependency on ruby-sanitize 2022-02-27 20:05:41 +05:30
Pirate Praveen
e1d41d9ca2 Upload to bullseye-fasttrack 2022-02-27 19:28:25 +05:30
Pirate Praveen
b917e54ddc Merge tag 'debian/14.6.5+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.6.5+ds1-1
2022-02-27 19:21:58 +05:30
Pirate Praveen
cf8b304eba Upload to bullseye-fasttrack 2022-02-06 11:23:37 +05:30
Pirate Praveen
5a3585742f Merge tag 'debian/14.6.4+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.6.4+ds1-1
2022-02-06 11:23:03 +05:30
Pirate Praveen
68e413fd48 Upload to bullseye-fasttrack 2022-01-27 12:47:05 +05:30
Pirate Praveen
fed4dac303 Merge tag 'debian/14.6.3+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.6.3+ds1-1
2022-01-27 12:46:35 +05:30
Pirate Praveen
81a3602504 Upload to bullseye-fasttrack 2022-01-13 15:25:14 +05:30
Pirate Praveen
e47599f29f Merge tag 'debian/14.5.3+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.5.3+ds1-1
2022-01-13 15:24:40 +05:30
Pirate Praveen
8edcc43912 Upload to bullseye-fasttrack 2021-12-17 16:14:00 +05:30
Pirate Praveen
85b380087e Merge tag 'debian/14.5.2+ds1-4' into bullseye-fasttrack
gitlab Debian release 14.5.2+ds1-4
2021-12-17 16:13:45 +05:30
Pirate Praveen
25eafd6501 Upload to bullseye-fasttrack 2021-12-17 00:53:55 +05:30
Pirate Praveen
2c955869e2 Merge tag 'debian/14.5.2+ds1-3' into bullseye-fasttrack
gitlab Debian release 14.5.2+ds1-3
2021-12-17 00:53:35 +05:30
Pirate Praveen
8e459628c8 Upload to bullseye-fasttrack 2021-12-14 15:55:26 +05:30
Pirate Praveen
0be99bae27 Merge tag 'debian/14.5.2+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.5.2+ds1-1
2021-12-14 15:55:03 +05:30
Pirate Praveen
94ade1180b Upload to bullseye-fasttrack 2021-12-08 11:27:09 +05:30
Pirate Praveen
73257248a7 Merge tag 'debian/14.4.4+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.4.4+ds1-1
2021-12-08 11:26:46 +05:30
Pirate Praveen
3faabbd5a9 Upload to bullseye-fasttrack 2021-11-20 20:10:55 +05:30
Pirate Praveen
1b0b3a8dd5 Build with golang-any >= 2:1.17 2021-11-20 20:10:54 +05:30
Pirate Praveen
1578fce0a5 Merge tag 'debian/14.4.2+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.4.2+ds1-1
2021-11-19 21:14:14 +05:30
Pirate Praveen
238ee86fe4 Upload to bullseye-fasttrack 2021-11-16 22:09:00 +05:30
Pirate Praveen
cdf9b30fb6 Merge tag 'debian/14.3.4+ds1-2' into bullseye-fasttrack
gitlab Debian release 14.3.4+ds1-2
2021-11-16 22:08:40 +05:30
Pirate Praveen
0ffb8476ca Update minimum versions of dependencies 2021-11-16 22:06:40 +05:30
Pirate Praveen
90dafd3755 Upload to bullseye-fasttrack 2021-11-16 19:10:29 +05:30
Pirate Praveen
87179374c9 Replace gitaly build dependency with golang-gitlab-gitlab-org-gitaly-dev 2021-11-16 19:10:29 +05:30
Pirate Praveen
fade7eb59b Merge tag 'debian/14.3.4+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.3.4+ds1-1
2021-11-16 16:27:16 +05:30
Pirate Praveen
3c45b82d7d Upload to bullseye-fasttrack 2021-11-05 19:31:48 +05:30
Pirate Praveen
fe12a55251 Merge tag 'debian/14.2.6+ds1-3' into bullseye-fasttrack
gitlab Debian release 14.2.6+ds1-3
2021-11-05 19:31:30 +05:30
Pirate Praveen
4bf27a8396 Upload to bullseye-fasttrack 2021-11-04 02:35:55 +05:30
Pirate Praveen
c9624c6d99 Merge tag 'debian/14.2.6+ds1-2' into bullseye-fasttrack
gitlab Debian release 14.2.6+ds1-2
2021-11-04 02:35:37 +05:30
Pirate Praveen
0d185ecd41 Tighten dependencies on more tiptap extentions in package.json 2021-11-03 01:08:31 +05:30
Pirate Praveen
2ed87c3567 Add a preinst script to check version of postgresql 2021-11-02 22:56:40 +05:30
Pirate Praveen
d921a91c48 Use matching version of @tiptap/core in package.json 2021-11-02 20:07:46 +05:30
Pirate Praveen
14b902cd8f Merge branch 'master' into bullseye-fasttrack 2021-11-02 03:57:08 +05:30
Pirate Praveen
2a1f42d82b Update minimum version of ruby-unleash 2021-11-02 03:42:57 +05:30
Pirate Praveen
bb6bd0cc76 Target bullseye-fasttrack 2021-11-01 21:18:10 +05:30
Pirate Praveen
c3cfe9779b Merge branch 'master' into bullseye-fasttrack 2021-11-01 21:17:05 +05:30
Pirate Praveen
961741e6e4 Upload to bullseye-fasttrack 2021-10-04 23:21:23 +05:30
Pirate Praveen
6feb86b5b0 Merge tag 'debian/14.1.7+ds1-2' into bullseye-fasttrack
gitlab Debian release 14.1.7+ds1-2
2021-10-04 23:21:06 +05:30
Pirate Praveen
21d8e8fe81 Upload to bullseye-fasttrack 2021-10-04 02:04:56 +05:30
Pirate Praveen
c443d3af7e Merge tag 'debian/14.1.7+ds1-1' into bullseye-fasttrack
gitlab Debian release 14.1.7+ds1-1
2021-10-04 02:04:36 +05:30
Pirate Praveen
1f9069626d Upload to bullseye-fasttrack 2021-09-21 00:24:56 +05:30
Pirate Praveen
3662436496 Merge tag 'debian/14.0.10-2' into bullseye-fasttrack
gitlab Debian release 14.0.10-2
2021-09-21 00:24:35 +05:30
Pirate Praveen
915260cee3 Update minimum version of postgresql-contrib (>= 12~) 2021-09-20 20:26:19 +05:30
Pirate Praveen
fddfdd534d Update minimum version of ruby-grape-logging (>= 1.8~) 2021-09-20 20:22:26 +05:30
Pirate Praveen
d9566dc65c Update minimum version of nodejs (>= 12~) for yarn 3.0 2021-09-20 20:15:42 +05:30
Pirate Praveen
95716ff917 Upload to bullseye-fasttrack 2021-09-09 20:49:19 +05:30
Pirate Praveen
2d670d7638 Merge tag 'debian/14.0.10-1' into bullseye-fasttrack
gitlab Debian release 14.0.10-1
2021-09-09 20:43:36 +05:30
Pirate Praveen
a3a44ddf1a Upload to bullseye-fasttrack 2021-08-10 02:22:44 +05:30
Pirate Praveen
31d72fdce3 Merge tag 'debian/13.12.9+ds1-2' into bullseye-fasttrack 2021-08-10 02:22:10 +05:30
Pirate Praveen
2539221e6a Upload to bullseye-fasttrack 2021-08-04 17:44:32 +05:30
Pirate Praveen
0a503b5639 Merge tag 'debian/13.12.9+ds1-1' into bullseye-fasttrack
gitlab Debian release 13.12.9+ds1-1
2021-08-04 17:19:14 +05:30
Pirate Praveen
3822043566 Upload to bullseye-fasttrack 2021-07-08 22:57:07 +05:30
Pirate Praveen
ec876b3b10 Merge tag 'debian/13.12.8+ds1-1' into bullseye-fasttrack
gitlab Debian release 13.12.8+ds1-1
2021-07-08 22:56:13 +05:30
Pirate Praveen
b27e69a09f Upload to bullseye-fasttrack 2021-07-02 16:50:25 +05:30
Pirate Praveen
09ae272f43 Merge tag 'debian/13.12.6+ds1-1' into bullseye-fasttrack
gitlab Debian release 13.12.6+ds1-1
2021-07-02 16:49:18 +05:30
Pirate Praveen
de260f76e6 Upload to bullseye-fasttrack 2021-06-22 01:06:41 +05:30
Pirate Praveen
cd8b5e7a8a Merge tag 'debian/13.12.4+ds1-1' into bullseye-fasttrack
gitlab Debian release 13.12.4+ds1-1
2021-06-22 01:05:55 +05:30
Pirate Praveen
bc53b3202f Upload to bullseye-fasttrack 2021-06-21 22:08:00 +05:30
Pirate Praveen
17b0488b0f Merge tag 'debian/13.12.3+ds1-7' into bullseye-fasttrack
gitlab Debian release 13.12.3+ds1-7
2021-06-21 22:07:29 +05:30
Pirate Praveen
756fe5d9f1 Upload to bullseye-fasttrack 2021-06-19 19:15:36 +05:30
Pirate Praveen
35d3eccf73 Merge tag 'debian/13.12.3+ds1-4' into bullseye-fasttrack
gitlab Debian release 13.12.3+ds1-4
2021-06-19 19:14:44 +05:30
Pirate Praveen
071a550760 Upload to bullseye-fasttrack 2021-05-12 23:12:54 +05:30
Pirate Praveen
0ccc13eda7 Merge tag 'debian/13.11.3+ds1-1' into bullseye-fasttrack
gitlab Debian release 13.11.3+ds1-1
2021-05-12 23:12:05 +05:30
Pirate Praveen
be25dd45b6 Upload to bullseye-fasttrack 2021-05-10 01:10:37 +05:30
Pirate Praveen
698b4708e8 Use node-rails-actioncable from system 2021-05-10 01:10:00 +05:30
17885 changed files with 386999 additions and 721842 deletions

View file

@ -17,18 +17,5 @@ charset = utf-8
[*.{md,markdown,js.snap}] [*.{md,markdown,js.snap}]
trim_trailing_whitespace = false trim_trailing_whitespace = false
[doc/**/*.md]
trim_trailing_whitespace = true
[*.rb] [*.rb]
max_line_length = 120 max_line_length = 120
# Don't apply editorconfig rules to vendor/ resources
[vendor/**]
charset = unset
end_of_line = unset
indent_size = unset
indent_style = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
max_line_length = unset

View file

@ -28,11 +28,11 @@ rules:
import/no-unresolved: import/no-unresolved:
- error - error
- ignore: - ignore:
# In FOSS, these import paths are rewritten using # In FOSS, these import paths are rewritten using
# NormalModuleReplacementPlugin, which import/no-unresolved doesn't # NormalModuleReplacementPlugin, which import/no-unresolved doesn't
# consider. See # consider. See
# https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89831. # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89831.
- '^(ee|jh)_component/' - '^(ee|jh)_component/'
# Disabled for now, to make the airbnb-base 12.1.0 -> 13.1.0 update smoother # Disabled for now, to make the airbnb-base 12.1.0 -> 13.1.0 update smoother
no-else-return: no-else-return:
- error - error
@ -48,12 +48,12 @@ rules:
'@gitlab/vue-no-new-non-primitive-in-template': '@gitlab/vue-no-new-non-primitive-in-template':
- error - error
- allowNames: - allowNames:
- 'class(es)?$' - 'class(es)?$'
- '^style$' - '^style$'
- '^to$' - '^to$'
- '^$' - '^$'
- '^variables$' - '^variables$'
- 'attrs?$' - 'attrs?$'
no-param-reassign: no-param-reassign:
- error - error
- props: true - props: true
@ -117,11 +117,6 @@ rules:
message: 'Migrate to GlSkeletonLoader, or import GlDeprecatedSkeletonLoading.' message: 'Migrate to GlSkeletonLoader, or import GlDeprecatedSkeletonLoading.'
- selector: ImportSpecifier[imported.name='GlSafeHtmlDirective'] - selector: ImportSpecifier[imported.name='GlSafeHtmlDirective']
message: 'Use directive at ~/vue_shared/directives/safe_html.js instead.' message: 'Use directive at ~/vue_shared/directives/safe_html.js instead.'
no-restricted-imports:
- error
- paths:
- name: mousetrap
message: 'Import { Mousetrap } from ~/lib/mousetrap instead.'
# See https://gitlab.com/gitlab-org/gitlab/-/issues/360551 # See https://gitlab.com/gitlab-org/gitlab/-/issues/360551
vue/multi-word-component-names: off vue/multi-word-component-names: off
unicorn/prefer-dom-node-dataset: unicorn/prefer-dom-node-dataset:
@ -136,11 +131,10 @@ rules:
methods: 'sanitize' methods: 'sanitize'
overrides: overrides:
- files: - files:
- '{,ee/,jh/}spec/frontend*/**/*' - '{,ee/,jh/}spec/frontend*/**/*'
rules: rules:
'@gitlab/require-i18n-strings': off '@gitlab/require-i18n-strings': off
'@gitlab/no-runtime-template-compiler': off '@gitlab/no-runtime-template-compiler': off
'require-await': error
'import/no-dynamic-require': off 'import/no-dynamic-require': off
'no-import-assign': off 'no-import-assign': off
'no-restricted-syntax': 'no-restricted-syntax':
@ -153,8 +147,6 @@ overrides:
message: 'Prefer explicit waitForPromises (or equivalent), or jest.runAllTimers (or equivalent) to vague setImmediate calls.' message: 'Prefer explicit waitForPromises (or equivalent), or jest.runAllTimers (or equivalent) to vague setImmediate calls.'
- selector: ImportSpecifier[imported.name='GlSkeletonLoading'] - selector: ImportSpecifier[imported.name='GlSkeletonLoading']
message: 'Migrate to GlSkeletonLoader, or import GlDeprecatedSkeletonLoading.' message: 'Migrate to GlSkeletonLoader, or import GlDeprecatedSkeletonLoading.'
- selector: CallExpression[arguments.length=1][arguments.0.type='Literal'] CallExpression[callee.property.name='toBe'] CallExpression[callee.property.name='attributes'][arguments.length=1][arguments.0.value='disabled']
message: Avoid asserting disabled attribute exact value, because Vue.js 2 and Vue.js 3 renders it differently. Use toBeDefined / toBeUndefined instead
no-unsanitized/method: off no-unsanitized/method: off
no-unsanitized/property: off no-unsanitized/property: off
- files: - files:
@ -182,7 +174,8 @@ overrides:
- '@graphql-eslint' - '@graphql-eslint'
parserOptions: parserOptions:
parser: '@graphql-eslint/eslint-plugin' parser: '@graphql-eslint/eslint-plugin'
operations: '{,ee/,jh/}app/**/*.graphql' operations:
- '{,ee/,jh/}app/**/*.graphql'
schema: './tmp/tests/graphql/gitlab_schema_apollo.graphql' schema: './tmp/tests/graphql/gitlab_schema_apollo.graphql'
rules: rules:
filenames/match-regex: off filenames/match-regex: off
@ -200,6 +193,6 @@ overrides:
'@graphql-eslint/no-unused-fragments': error '@graphql-eslint/no-unused-fragments': error
'@graphql-eslint/no-duplicate-fields': error '@graphql-eslint/no-duplicate-fields': error
- files: - files:
- '{,ee/}spec/contracts/consumer/**/*' - '{,ee/}spec/contracts/consumer/**/*'
rules: rules:
'@gitlab/require-i18n-strings': off '@gitlab/require-i18n-strings': off

2
.gitignore vendored
View file

@ -69,7 +69,7 @@ eslint-report.html
/rails_best_practices_output.html /rails_best_practices_output.html
/tags /tags
/vendor/bundle/* /vendor/bundle/*
/vendor/package_metadata_db/ /vendor/gitaly-ruby
/builds* /builds*
/.gitlab_workhorse_secret /.gitlab_workhorse_secret
/.gitlab_pages_secret /.gitlab_pages_secret

View file

@ -26,18 +26,21 @@ default:
# Default job timeout set to 90m https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/10520 # Default job timeout set to 90m https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/10520
timeout: 90m timeout: 90m
.default-ruby-variables: &default-ruby-variables .ruby3-variables: &ruby3-variables
RUBY_VERSION: "3.0" RUBY_VERSION: "3.0"
OMNIBUS_GITLAB_RUBY3_BUILD: "true" OMNIBUS_GITLAB_RUBY3_BUILD: "true"
OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY3" OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY3"
.backcompat-ruby-variables: &backcompat-ruby-variables .ruby2-variables: &ruby2-variables
RUBY_VERSION: "2.7" RUBY_VERSION: "2.7"
OMNIBUS_GITLAB_RUBY2_BUILD: "true" OMNIBUS_GITLAB_RUBY2_BUILD: "true"
OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY2" OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY2"
.default-branch-pipeline-failure-variables: &default-branch-pipeline-failure-variables .default-branch-incident-variables: &default-branch-incident-variables
CREATE_ISSUES_FOR_FAILING_TESTS: "true" CREATE_INCIDENT_FOR_PIPELINE_FAILURE: "true"
NOTIFY_PIPELINE_FAILURE_CHANNEL: "master-broken"
BROKEN_BRANCH_INCIDENTS_PROJECT: "gitlab-org/quality/engineering-productivity/master-broken-incidents"
BROKEN_BRANCH_INCIDENTS_PROJECT_TOKEN: "${BROKEN_MASTER_INCIDENTS_PROJECT_TOKEN}"
workflow: workflow:
name: '$PIPELINE_NAME' name: '$PIPELINE_NAME'
@ -45,8 +48,8 @@ workflow:
# If `$FORCE_GITLAB_CI` is set, create a pipeline. # If `$FORCE_GITLAB_CI` is set, create a pipeline.
- if: '$FORCE_GITLAB_CI' - if: '$FORCE_GITLAB_CI'
variables: variables:
<<: *default-ruby-variables <<: *ruby2-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION forced pipeline' PIPELINE_NAME: 'Ruby 2 forced pipeline'
# As part of the process of creating RCs automatically, we update stable # As part of the process of creating RCs automatically, we update stable
# branches with the changes of the most recent production deployment. The # branches with the changes of the most recent production deployment. The
# merge requests used for this merge a branch release-tools/X into a stable # merge requests used for this merge a branch release-tools/X into a stable
@ -57,72 +60,74 @@ workflow:
# For merge requests running exclusively in Ruby 2.7 # For merge requests running exclusively in Ruby 2.7
- if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby2/' - if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby2/'
variables: variables:
<<: *backcompat-ruby-variables <<: *ruby2-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline' PIPELINE_NAME: 'Ruby 2 $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline'
NO_SOURCEMAPS: 'true'
- if: '$CI_MERGE_REQUEST_LABELS =~ /Community contribution/' - if: '$CI_MERGE_REQUEST_LABELS =~ /Community contribution/'
variables: variables:
<<: *default-ruby-variables <<: *ruby2-variables
GITLAB_DEPENDENCY_PROXY_ADDRESS: "" GITLAB_DEPENDENCY_PROXY_ADDRESS: ""
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline (community contribution)' PIPELINE_NAME: 'Ruby 2 $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline (community contribution)'
NO_SOURCEMAPS: 'true'
# For (detached) merge request pipelines. # For (detached) merge request pipelines.
- if: '$CI_MERGE_REQUEST_IID' - if: '$CI_MERGE_REQUEST_IID'
variables: variables:
<<: *default-ruby-variables <<: *ruby2-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline' PIPELINE_NAME: 'Ruby 2 $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline'
NO_SOURCEMAPS: 'true'
# For the scheduled pipelines, we set specific variables. # For the scheduled pipelines, we set specific variables.
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule"' - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule"'
variables: variables:
<<: *default-ruby-variables <<: *ruby3-variables
<<: *default-branch-pipeline-failure-variables <<: *default-branch-incident-variables
CRYSTALBALL: "true" CRYSTALBALL: "true"
PIPELINE_NAME: 'Scheduled Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline' PIPELINE_NAME: 'Scheduled Ruby 3 $CI_COMMIT_BRANCH branch pipeline'
# Run pipelines for ruby2 branch # Run pipelines for ruby2 branch
- if: '$CI_COMMIT_BRANCH == "ruby2" && $CI_PIPELINE_SOURCE == "schedule"' - if: '$CI_COMMIT_BRANCH == "ruby2" && $CI_PIPELINE_SOURCE == "schedule"'
variables: variables:
<<: *backcompat-ruby-variables <<: *ruby2-variables
PIPELINE_NAME: 'Scheduled Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline' NOTIFY_PIPELINE_FAILURE_CHANNEL: "f_ruby3"
PIPELINE_NAME: 'Scheduled Ruby 2 $CI_COMMIT_BRANCH branch pipeline'
# This work around https://gitlab.com/gitlab-org/gitlab/-/issues/332411 whichs prevents usage of dependency proxy # This work around https://gitlab.com/gitlab-org/gitlab/-/issues/332411 whichs prevents usage of dependency proxy
# when pipeline is triggered by a project access token. # when pipeline is triggered by a project access token.
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $GITLAB_USER_LOGIN =~ /project_\d+_bot\d*/' - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $GITLAB_USER_LOGIN =~ /project_\d+_bot\d*/'
variables: variables:
<<: *default-ruby-variables <<: *ruby3-variables
<<: *default-branch-pipeline-failure-variables <<: *default-branch-incident-variables
GITLAB_DEPENDENCY_PROXY_ADDRESS: "" GITLAB_DEPENDENCY_PROXY_ADDRESS: ""
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline (triggered by a project token)' PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_BRANCH branch pipeline (triggered by a project token)'
# For `$CI_DEFAULT_BRANCH` branch, create a pipeline (this includes on schedules, pushes, merges, etc.). # For `$CI_DEFAULT_BRANCH` branch, create a pipeline (this includes on schedules, pushes, merges, etc.).
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
variables: variables:
<<: *default-ruby-variables <<: *ruby3-variables
<<: *default-branch-pipeline-failure-variables <<: *default-branch-incident-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline' PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_BRANCH branch pipeline'
# For tags, create a pipeline. # For tags, create a pipeline.
- if: '$CI_COMMIT_TAG' - if: '$CI_COMMIT_TAG'
variables: variables:
<<: *default-ruby-variables <<: *ruby2-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_TAG tag pipeline' PIPELINE_NAME: 'Ruby 2 $CI_COMMIT_TAG tag pipeline'
# If `$GITLAB_INTERNAL` isn't set, don't create a pipeline. # If `$GITLAB_INTERNAL` isn't set, don't create a pipeline.
- if: '$GITLAB_INTERNAL == null' - if: '$GITLAB_INTERNAL == null'
when: never when: never
# For stable, auto-deploy, and security branches, create a pipeline. # For stable, auto-deploy, and security branches, create a pipeline.
- if: '$CI_COMMIT_BRANCH =~ /^[\d-]+-stable(-ee)?$/' - if: '$CI_COMMIT_BRANCH =~ /^[\d-]+-stable(-ee)?$/'
variables: variables:
<<: *default-ruby-variables <<: *ruby2-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline' NOTIFY_PIPELINE_FAILURE_CHANNEL: "releases"
PIPELINE_NAME: 'Ruby 2 $CI_COMMIT_BRANCH branch pipeline'
CREATE_INCIDENT_FOR_PIPELINE_FAILURE: "true"
BROKEN_BRANCH_INCIDENTS_PROJECT: "gitlab-org/release/tasks"
BROKEN_BRANCH_INCIDENTS_PROJECT_TOKEN: "${BROKEN_STABLE_INCIDENTS_PROJECT_TOKEN}"
- if: '$CI_COMMIT_BRANCH =~ /^\d+-\d+-auto-deploy-\d+$/' - if: '$CI_COMMIT_BRANCH =~ /^\d+-\d+-auto-deploy-\d+$/'
variables: variables:
<<: *default-ruby-variables <<: *ruby2-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline' PIPELINE_NAME: 'Ruby 2 $CI_COMMIT_BRANCH branch pipeline'
- if: '$CI_COMMIT_BRANCH =~ /^security\//' - if: '$CI_COMMIT_BRANCH =~ /^security\//'
variables: variables:
<<: *default-ruby-variables <<: *ruby2-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline' PIPELINE_NAME: 'Ruby 2 $CI_COMMIT_BRANCH branch pipeline'
variables: variables:
PG_VERSION: "13" PG_VERSION: "12"
DEFAULT_CI_IMAGE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}.patched-golang-${GO_VERSION}-rust-${RUST_VERSION}-node-16.14-postgresql-${PG_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-yarn-1.22-graphicsmagick-1.3.36" DEFAULT_CI_IMAGE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}.patched-golang-${GO_VERSION}-rust-${RUST_VERSION}-node-16.14-postgresql-${PG_VERSION}:rubygems-3.2-git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-yarn-1.22-graphicsmagick-1.3.36"
# We set $GITLAB_DEPENDENCY_PROXY to another variable (since it's set at the group level and has higher precedence than .gitlab-ci.yml) # We set $GITLAB_DEPENDENCY_PROXY to another variable (since it's set at the group level and has higher precedence than .gitlab-ci.yml)
# so that we can override $GITLAB_DEPENDENCY_PROXY_ADDRESS in workflow rules. # so that we can override $GITLAB_DEPENDENCY_PROXY_ADDRESS in workflow rules.
GITLAB_DEPENDENCY_PROXY_ADDRESS: "${GITLAB_DEPENDENCY_PROXY}" GITLAB_DEPENDENCY_PROXY_ADDRESS: "${GITLAB_DEPENDENCY_PROXY}"
@ -132,19 +137,17 @@ variables:
BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3" BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3"
BUNDLE_FROZEN: "true" BUNDLE_FROZEN: "true"
# we override the max_old_space_size to prevent OOM errors # we override the max_old_space_size to prevent OOM errors
NODE_OPTIONS: --max_old_space_size=4096 NODE_OPTIONS: --max_old_space_size=3584
GIT_DEPTH: "20" GIT_DEPTH: "20"
# 'GIT_STRATEGY: clone' optimizes the pack-objects cache hit ratio # 'GIT_STRATEGY: clone' optimizes the pack-objects cache hit ratio
GIT_STRATEGY: "clone" GIT_STRATEGY: "clone"
GIT_SUBMODULE_STRATEGY: "none" GIT_SUBMODULE_STRATEGY: "none"
GET_SOURCES_ATTEMPTS: "3" GET_SOURCES_ATTEMPTS: "3"
DEBIAN_VERSION: "bullseye" DEBIAN_VERSION: "bullseye"
UBI_VERSION: "8.6"
CHROME_VERSION: "109" CHROME_VERSION: "109"
DOCKER_VERSION: "23.0.1" DOCKER_VERSION: "20.10.14"
RUBY_VERSION: "2.7" RUBY_VERSION: "2.7"
RUBYGEMS_VERSION: "3.4" GO_VERSION: "1.18"
GO_VERSION: "1.19"
RUST_VERSION: "1.65" RUST_VERSION: "1.65"
FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json
@ -154,18 +157,15 @@ variables:
JUNIT_RETRY_FILE: rspec/junit_rspec-retry.xml JUNIT_RETRY_FILE: rspec/junit_rspec-retry.xml
KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/report-master.json KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/report-master.json
RSPEC_CHANGED_FILES_PATH: rspec/changed_files.txt RSPEC_CHANGED_FILES_PATH: rspec/changed_files.txt
RSPEC_FOSS_IMPACT_PIPELINE_TEMPLATE_YML: .gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb RSPEC_FOSS_IMPACT_PIPELINE_YML: rspec-foss-impact-pipeline.yml
RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML: .gitlab/ci/rails/rspec-predictive.gitlab-ci.yml.erb
RSPEC_LAST_RUN_RESULTS_FILE: rspec/rspec_last_run_results.txt RSPEC_LAST_RUN_RESULTS_FILE: rspec/rspec_last_run_results.txt
RSPEC_MATCHING_JS_FILES_PATH: rspec/js_matching_files.txt RSPEC_MATCHING_JS_FILES_PATH: rspec/js_matching_files.txt
RSPEC_VIEWS_INCLUDING_PARTIALS_PATH: rspec/views_including_partials.txt
RSPEC_MATCHING_TESTS_PATH: rspec/matching_tests.txt RSPEC_MATCHING_TESTS_PATH: rspec/matching_tests.txt
RSPEC_MATCHING_TESTS_FOSS_PATH: rspec/matching_tests-foss.txt RSPEC_MATCHING_TESTS_FOSS_PATH: rspec/matching_tests-foss.txt
RSPEC_MATCHING_TESTS_EE_PATH: rspec/matching_tests-ee.txt RSPEC_MATCHING_TESTS_EE_PATH: rspec/matching_tests-ee.txt
RSPEC_PACKED_TESTS_MAPPING_PATH: crystalball/packed-mapping.json RSPEC_PACKED_TESTS_MAPPING_PATH: crystalball/packed-mapping.json
RSPEC_PROFILING_FOLDER_PATH: rspec/profiling RSPEC_PROFILING_FOLDER_PATH: rspec/profiling
RSPEC_TESTS_MAPPING_PATH: crystalball/mapping.json RSPEC_TESTS_MAPPING_PATH: crystalball/mapping.json
RSPEC_FAST_QUARANTINE_LOCAL_PATH: rspec/fast_quarantine-gitlab.txt
TMP_TEST_FOLDER: "${CI_PROJECT_DIR}/tmp/tests" TMP_TEST_FOLDER: "${CI_PROJECT_DIR}/tmp/tests"
TMP_TEST_GITLAB_WORKHORSE_PATH: "${TMP_TEST_FOLDER}/${GITLAB_WORKHORSE_FOLDER}" TMP_TEST_GITLAB_WORKHORSE_PATH: "${TMP_TEST_FOLDER}/${GITLAB_WORKHORSE_FOLDER}"
@ -175,6 +175,7 @@ variables:
CACHE_CLASSES: "true" CACHE_CLASSES: "true"
CHECK_PRECOMPILED_ASSETS: "true" CHECK_PRECOMPILED_ASSETS: "true"
FF_USE_FASTZIP: "true" FF_USE_FASTZIP: "true"
SKIP_FLAKY_TESTS_AUTOMATICALLY: "false"
RETRY_FAILED_TESTS_IN_NEW_PROCESS: "true" RETRY_FAILED_TESTS_IN_NEW_PROCESS: "true"
# Run with decomposed databases by default # Run with decomposed databases by default
DECOMPOSED_DB: "true" DECOMPOSED_DB: "true"

File diff suppressed because it is too large Load diff

View file

@ -1,13 +1,9 @@
.as-if-jh-sandbox-variables:
variables:
AS_IF_JH_BRANCH: "as-if-jh/${CI_COMMIT_REF_NAME}"
SANDBOX_REPOSITORY: "https://dummy:${AS_IF_JH_TOKEN}@gitlab.com/gitlab-org-sandbox/gitlab-jh-validation.git"
.shared-as-if-jh: .shared-as-if-jh:
extends:
- .as-if-jh-sandbox-variables
variables: variables:
SANDBOX_PROJECT: "gitlab-org-sandbox/gitlab-jh-validation"
SANDBOX_REPOSITORY: "https://dummy:${AS_IF_JH_TOKEN}@gitlab.com/${SANDBOX_PROJECT}.git"
GITLAB_JH_MIRROR_PROJECT: "33019816" GITLAB_JH_MIRROR_PROJECT: "33019816"
AS_IF_JH_BRANCH: "as-if-jh/${CI_COMMIT_REF_NAME}"
JH_FILES_TO_COMMIT: "jh package.json yarn.lock" JH_FILES_TO_COMMIT: "jh package.json yarn.lock"
add-jh-files: add-jh-files:
@ -41,66 +37,27 @@ prepare-as-if-jh-branch:
stage: prepare stage: prepare
needs: needs:
- add-jh-files - add-jh-files
variables:
# We can't apply --filter=tree:0 for runner to set up the repository,
# so instead we tell runner to not clone anything, and we set up the
# repository by ourselves.
GIT_STRATEGY: "none"
before_script:
- git clone --filter=tree:0 "${CI_REPOSITORY_URL}" gitlab
# We should checkout before moving/changing files
- cd gitlab
- git checkout -b "${AS_IF_JH_BRANCH}" "${CI_COMMIT_SHA}"
- cd ..
- mv ${JH_FILES_TO_COMMIT} gitlab/
script: script:
- cd gitlab # Fetch for the history of the branch so it does not cause the following error:
# ! [remote rejected] ref -> ref (shallow update not allowed)
- git fetch --unshallow --filter=tree:0 origin "${CI_COMMIT_SHA}"
- git checkout -b "${AS_IF_JH_BRANCH}"
- git add ${JH_FILES_TO_COMMIT} - git add ${JH_FILES_TO_COMMIT}
- git commit -m 'Add JH files' # TODO: Mark which SHA we add - git commit -m 'Add JH files' # TODO: Mark which SHA we add
- git push -f "${SANDBOX_REPOSITORY}" "${AS_IF_JH_BRANCH}" - git push -f "${SANDBOX_REPOSITORY}" "${AS_IF_JH_BRANCH}"
sync-as-if-jh-branch: start-as-if-jh:
extends: extends:
- .as-if-jh-sandbox-variables - .shared-as-if-jh
- .as-if-jh:rules:sync-as-if-jh - .as-if-jh:rules:start-as-if-jh
stage: prepare stage: prepare
needs: ["prepare-as-if-jh-branch"] needs: ["prepare-as-if-jh-branch"]
inherit:
variables:
# From .gitlab-ci.yml for the default Docker image and cache
- DEFAULT_CI_IMAGE
- REGISTRY_HOST
- REGISTRY_GROUP
- DEBIAN_VERSION
- RUBY_VERSION
- GO_VERSION
- RUST_VERSION
- PG_VERSION
- RUBYGEMS_VERSION
- CHROME_VERSION
- NODE_ENV
variables:
MERGE_FROM: "${CI_COMMIT_SHA}" # This is used in https://jihulab.com/gitlab-cn/gitlab/-/blob/e98bcb37aea4cfe1e78e1daef1b58b5f732cf289/jh/bin/build_packagejson where we run in https://gitlab.com/gitlab-org-sandbox/gitlab-jh-validation
trigger:
# What this runs can be found at:
# https://gitlab.com/gitlab-org-sandbox/gitlab-jh-validation/-/blob/as-if-jh-code-sync/jh/.gitlab-ci.yml
project: gitlab-org-sandbox/gitlab-jh-validation
branch: as-if-jh-code-sync
strategy: depend
start-as-if-jh:
extends:
- .as-if-jh:rules:start-as-if-jh
stage: prepare
needs:
- job: "prepare-as-if-jh-branch"
- job: "sync-as-if-jh-branch"
optional: true
inherit: inherit:
variables: false variables: false
variables: variables:
AS_IF_EDITION: "jh"
FORCE_GITLAB_CI: "true" # TODO: Trigger a merge request pipeline FORCE_GITLAB_CI: "true" # TODO: Trigger a merge request pipeline
trigger: trigger:
project: gitlab-org-sandbox/gitlab-jh-validation project: gitlab-org-sandbox/gitlab-jh-validation # ${SANDBOX_PROJECT} does not work here
branch: as-if-jh/${CI_COMMIT_REF_NAME} branch: as-if-jh/${CI_COMMIT_REF_NAME} # ${AS_IF_JH_BRANCH} does not work here
strategy: depend strategy: depend

View file

@ -1,13 +1,13 @@
.base-image-build: .base-image-build:
extends: .use-kaniko extends: .use-kaniko
variables: variables:
GIT_LFS_SKIP_SMUDGE: 1 # disable pulling objects from lfs GIT_LFS_SKIP_SMUDGE: 1 # disable pulling objects from lfs
retry: 2 retry: 2
.base-image-build-buildx: .base-image-build-buildx:
extends: .use-buildx extends: .use-buildx
variables: variables:
GIT_LFS_SKIP_SMUDGE: 1 # disable pulling objects from lfs GIT_LFS_SKIP_SMUDGE: 1 # disable pulling objects from lfs
retry: 2 retry: 2
# This image is used by: # This image is used by:
@ -71,10 +71,3 @@ build-assets-image:
# The `cached-assets-hash.txt` file is used in `review-build-cng-env` (`.gitlab/ci/review-apps/main.gitlab-ci.yml`) # The `cached-assets-hash.txt` file is used in `review-build-cng-env` (`.gitlab/ci/review-apps/main.gitlab-ci.yml`)
# to pass the assets image tag to the CNG downstream pipeline. # to pass the assets image tag to the CNG downstream pipeline.
- cached-assets-hash.txt - cached-assets-hash.txt
build-assets-image as-if-foss:
extends:
- build-assets-image
- .as-if-foss
- .build-images:rules:build-assets-image-as-if-foss
needs: ["compile-production-assets as-if-foss"]

View file

@ -4,7 +4,7 @@ templates-shellcheck:
- .default-before_script - .default-before_script
- .default-retry - .default-retry
- .ruby-cache - .ruby-cache
- .use-pg14 - .use-pg13
stage: test stage: test
needs: needs:
- setup-test-env - setup-test-env

View file

@ -1,43 +1,13 @@
include: include:
- local: .gitlab/ci/rails/shared.gitlab-ci.yml - local: .gitlab/ci/rails/shared.gitlab-ci.yml
db:rollback single-db-ci-connection:
extends:
- db:rollback
- .single-db-ci-connection
- .rails:rules:single-db-ci-connection
db:migrate:reset single-db-ci-connection:
extends:
- db:migrate:reset
- .single-db-ci-connection
- .rails:rules:single-db-ci-connection
db:check-schema-single-db-ci-connection:
extends:
- db:check-schema
- .single-db-ci-connection
- .rails:rules:single-db-ci-connection
db:post_deployment_migrations_validator-single-db-ci-connection:
extends:
- db:post_deployment_migrations_validator
- .single-db-ci-connection
- .rails:rules:db:check-migrations-single-db-ci-connection
db:backup_and_restore single-db-ci-connection:
extends:
- db:backup_and_restore
- .single-db-ci-connection
- .rails:rules:db-backup
db:rollback: db:rollback:
extends: extends:
- .db-job-base - .db-job-base
- .rails:rules:db-rollback - .rails:rules:db-rollback
script: script:
- bundle exec rake db:migrate VERSION=20220502173045 # 14.10 (last 14.x version) - scripts/db_tasks db:migrate VERSION=20220502173045 # 14.10 (last 14.x version)
- bundle exec rake db:migrate - scripts/db_tasks db:migrate
db:rollback single-db: db:rollback single-db:
extends: extends:
@ -61,7 +31,8 @@ db:check-schema:
- .db-job-base - .db-job-base
- .rails:rules:ee-mr-and-default-branch-only - .rails:rules:ee-mr-and-default-branch-only
script: script:
- run_timed_command "bundle exec rake db:drop db:create db:migrate" - run_timed_command "bundle exec rake db:drop db:create"
- run_timed_command "scripts/db_tasks db:migrate"
db:check-schema-single-db: db:check-schema-single-db:
extends: extends:
@ -126,7 +97,7 @@ db:backup_and_restore:
GITLAB_ASSUME_YES: "1" GITLAB_ASSUME_YES: "1"
script: script:
- . scripts/prepare_build.sh - . scripts/prepare_build.sh
- bundle exec rake db:drop db:create db:schema:load db:seed_fu - bundle exec rake db:drop db:create db:structure:load db:seed_fu
- mkdir -p tmp/tests/public/uploads tmp/tests/{artifacts,pages,lfs-objects,terraform_state,registry,packages} - mkdir -p tmp/tests/public/uploads tmp/tests/{artifacts,pages,lfs-objects,terraform_state,registry,packages}
- bundle exec rake gitlab:backup:create - bundle exec rake gitlab:backup:create
- date - date

View file

@ -3,7 +3,7 @@
- .default-retry - .default-retry
- .rails-cache - .rails-cache
- .default-before_script - .default-before_script
- .use-pg13 - .use-pg12
stage: test stage: test
needs: ["setup-test-env"] needs: ["setup-test-env"]
variables: variables:
@ -15,8 +15,8 @@
# SEED_NESTED_GROUPS: "false" # requires network connection # SEED_NESTED_GROUPS: "false" # requires network connection
.run-dev-fixtures-script: &run-dev-fixtures-script .run-dev-fixtures-script: &run-dev-fixtures-script
- section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"; # Do not use 'bundle exec' here - run_timed_command "scripts/gitaly-test-spawn"
- section_start "seeding-db" "Seeding DB"; bundle exec rake db:seed_fu; section_end "seeding-db"; - run_timed_command "bundle exec rake db:seed_fu"
run-dev-fixtures: run-dev-fixtures:
extends: extends:
@ -29,7 +29,7 @@ run-dev-fixtures-ee:
extends: extends:
- .run-dev-fixtures - .run-dev-fixtures
- .dev-fixtures:rules:ee-only - .dev-fixtures:rules:ee-only
- .use-pg13-es7-ee - .use-pg12-es7-ee
script: script:
- cp ee/db/fixtures/development/* $FIXTURE_PATH - cp ee/db/fixtures/development/* $FIXTURE_PATH
- *run-dev-fixtures-script - *run-dev-fixtures-script

View file

@ -42,7 +42,7 @@ review-docs-cleanup:
docs-lint links: docs-lint links:
extends: extends:
- .docs:rules:docs-lint - .docs:rules:docs-lint
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-docs/lint-html:alpine-3.17-ruby-3.2.1-f53af000 image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-docs/lint-html:alpine-3.16-ruby-3.0.5-869cfc5d
stage: lint stage: lint
needs: [] needs: []
script: script:
@ -58,7 +58,7 @@ docs-lint links:
.docs-markdown-lint-image: .docs-markdown-lint-image:
# When updating the image version here, update it in /scripts/lint-doc.sh too. # When updating the image version here, update it in /scripts/lint-doc.sh too.
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-docs/lint-markdown:alpine-3.17-vale-2.24.0-markdownlint-0.33.0-markdownlint2-0.6.0 image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-docs/lint-markdown:alpine-3.16-vale-2.22.0-markdownlint-0.32.2-markdownlint2-0.6.0
docs-lint markdown: docs-lint markdown:
extends: extends:

View file

@ -3,7 +3,7 @@
- .default-retry - .default-retry
- .default-before_script - .default-before_script
- .assets-compile-cache - .assets-compile-cache
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}-node-16.14:rubygems-${RUBYGEMS_VERSION}-git-2.33-lfs-2.9-yarn-1.22-graphicsmagick-1.3.36 image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}-node-16.14:rubygems-3.2-git-2.33-lfs-2.9-yarn-1.22-graphicsmagick-1.3.36
variables: variables:
SETUP_DB: "false" SETUP_DB: "false"
WEBPACK_VENDOR_DLL: "true" WEBPACK_VENDOR_DLL: "true"
@ -49,12 +49,6 @@ compile-production-assets:
after_script: after_script:
- rm -f /etc/apt/sources.list.d/google*.list # We don't need to update Chrome here - rm -f /etc/apt/sources.list.d/google*.list # We don't need to update Chrome here
compile-production-assets as-if-foss:
extends:
- compile-production-assets
- .as-if-foss
- .frontend:rules:compile-production-assets-as-if-foss
compile-test-assets: compile-test-assets:
extends: extends:
- .compile-assets-base - .compile-assets-base
@ -102,50 +96,19 @@ update-storybook-yarn-cache:
script: script:
- yarn_install_script - yarn_install_script
retrieve-frontend-fixtures:
variables:
SETUP_DB: "false"
extends:
- .default-retry
- .frontend:rules:default-frontend-jobs
stage: prepare
script:
- source scripts/utils.sh
- source scripts/gitlab_component_helpers.sh
- install_gitlab_gem
- export_fixtures_sha_for_download
- |
if check_fixtures_download; then
run_timed_command "download_and_extract_fixtures"
fi
artifacts:
paths:
- tmp/tests/frontend/
# Download fixtures only when a merge request contains changes to only JS files
# and fixtures are present in the package registry.
.frontend-fixtures-base: .frontend-fixtures-base:
extends: extends:
- .default-retry - .default-retry
- .default-before_script - .default-before_script
- .rails-cache - .rails-cache
- .use-pg13 - .use-pg12
stage: fixtures stage: fixtures
needs: ["setup-test-env", "retrieve-tests-metadata", "retrieve-frontend-fixtures"] needs: ["setup-test-env", "retrieve-tests-metadata"]
variables: variables:
# Don't add `CRYSTALBALL: "false"` here as we're enabling Crystalball for scheduled pipelines (in `.gitlab-ci.yml`), so that we get coverage data
# for the `frontend fixture RSpec files` that will be added to the Crystalball mapping in `update-tests-metadata`.
# More information in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74003.
WEBPACK_VENDOR_DLL: "true" WEBPACK_VENDOR_DLL: "true"
script: script:
- source scripts/gitlab_component_helpers.sh
- |
if check_fixtures_reuse; then
echoinfo "INFO: Reusing frontend fixtures from 'retrieve-frontend-fixtures'."
exit 0
fi
- run_timed_command "gem install knapsack --no-document" - run_timed_command "gem install knapsack --no-document"
- section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"; # Do not use 'bundle exec' here - run_timed_command "scripts/gitaly-test-spawn"
- source ./scripts/rspec_helpers.sh - source ./scripts/rspec_helpers.sh
- rspec_paralellized_job - rspec_paralellized_job
artifacts: artifacts:
@ -174,33 +137,10 @@ rspec-all frontend_fixture as-if-foss:
- .frontend-fixtures-base - .frontend-fixtures-base
- .frontend:rules:frontend_fixture-as-if-foss - .frontend:rules:frontend_fixture-as-if-foss
- .as-if-foss - .as-if-foss
variables:
# We explicitely disable Crystalball here so as even in scheduled pipelines we don't need it since it's already enabled for `rspec-all frontend_fixture` there.
CRYSTALBALL: "false"
WEBPACK_VENDOR_DLL: "true"
KNAPSACK_GENERATE_REPORT: ""
FLAKY_RSPEC_GENERATE_REPORT: ""
needs: needs:
- !reference [.frontend-fixtures-base, needs] - !reference [.frontend-fixtures-base, needs]
- "compile-test-assets as-if-foss" - "compile-test-assets as-if-foss"
# Uploads EE fixtures in the EE project.
# Uploads FOSS fixtures in the FOSS project.
upload-frontend-fixtures:
extends:
- .frontend-fixtures-base
- .frontend:rules:upload-frontend-fixtures
stage: fixtures
needs: ["rspec-all frontend_fixture"]
script:
- source scripts/utils.sh
- source scripts/gitlab_component_helpers.sh
- export_fixtures_sha_for_upload
- 'fixtures_archive_doesnt_exist || { echoinfo "INFO: Exiting early as package exists."; exit 0; }'
- run_timed_command "create_fixtures_package"
- run_timed_command "upload_fixtures_package"
artifacts: {}
graphql-schema-dump: graphql-schema-dump:
variables: variables:
SETUP_DB: "false" SETUP_DB: "false"
@ -297,7 +237,9 @@ jest-integration:
- .frontend:rules:default-frontend-jobs - .frontend:rules:default-frontend-jobs
script: script:
- run_timed_command "yarn jest:integration --ci" - run_timed_command "yarn jest:integration --ci"
needs: ["rspec-all frontend_fixture", "graphql-schema-dump"] needs:
- job: "rspec-all frontend_fixture"
- job: "graphql-schema-dump"
coverage-frontend: coverage-frontend:
extends: extends:
@ -380,7 +322,9 @@ startup-css-check:
extends: extends:
- .startup-css-check-base - .startup-css-check-base
- .frontend:rules:default-frontend-jobs - .frontend:rules:default-frontend-jobs
needs: ["compile-test-assets", "rspec-all frontend_fixture"] needs:
- job: "compile-test-assets"
- job: "rspec-all frontend_fixture"
startup-css-check as-if-foss: startup-css-check as-if-foss:
extends: extends:

View file

@ -2,7 +2,7 @@ glfm-verify:
extends: extends:
- .rails-job-base - .rails-job-base
- .glfm:rules:glfm-verify - .glfm:rules:glfm-verify
- .use-pg13 - .use-pg12
stage: test stage: test
needs: ["setup-test-env"] needs: ["setup-test-env"]
script: script:

View file

@ -2,13 +2,11 @@
retry: retry:
max: 2 # This is confusing but this means "3 runs at max". max: 2 # This is confusing but this means "3 runs at max".
when: when:
- api_failure
- data_integrity_failure
- job_execution_timeout
- runner_system_failure
- scheduler_failure
- stuck_or_timeout_failure
- unknown_failure - unknown_failure
- api_failure
- runner_system_failure
- job_execution_timeout
- stuck_or_timeout_failure
.default-utils-before_script: .default-utils-before_script:
before_script: before_script:
@ -39,12 +37,22 @@
<<: *ruby-gems-cache <<: *ruby-gems-cache
policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up. policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up.
.gitaly-ruby-gems-cache: &gitaly-ruby-gems-cache
key: "gitaly-ruby-gems-debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}"
paths:
- vendor/gitaly-ruby/
policy: pull
.gitaly-ruby-gems-cache-push: &gitaly-ruby-gems-cache-push
<<: *gitaly-ruby-gems-cache
policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up.
.gitaly-binaries-cache: &gitaly-binaries-cache .gitaly-binaries-cache: &gitaly-binaries-cache
key: key:
files: files:
- GITALY_SERVER_VERSION - GITALY_SERVER_VERSION
- lib/gitlab/setup_helper.rb - lib/gitlab/setup_helper.rb
prefix: "gitaly-binaries-debian-${DEBIAN_VERSION}" prefix: "gitaly-binaries-debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}"
paths: paths:
- ${TMP_TEST_FOLDER}/gitaly/_build/bin/ - ${TMP_TEST_FOLDER}/gitaly/_build/bin/
- ${TMP_TEST_FOLDER}/gitaly/_build/deps/git/install/ - ${TMP_TEST_FOLDER}/gitaly/_build/deps/git/install/
@ -56,6 +64,7 @@
- ${TMP_TEST_FOLDER}/gitaly/Makefile - ${TMP_TEST_FOLDER}/gitaly/Makefile
- ${TMP_TEST_FOLDER}/gitaly/praefect.config.toml - ${TMP_TEST_FOLDER}/gitaly/praefect.config.toml
- ${TMP_TEST_FOLDER}/gitaly/praefect-db.config.toml - ${TMP_TEST_FOLDER}/gitaly/praefect-db.config.toml
- ${TMP_TEST_FOLDER}/gitaly/ruby/
policy: pull policy: pull
.go-pkg-cache: &go-pkg-cache .go-pkg-cache: &go-pkg-cache
@ -129,12 +138,14 @@
.setup-test-env-cache: .setup-test-env-cache:
cache: cache:
- *ruby-gems-cache - *ruby-gems-cache
- *gitaly-ruby-gems-cache
- *gitaly-binaries-cache - *gitaly-binaries-cache
- *go-pkg-cache - *go-pkg-cache
.setup-test-env-cache-push: .setup-test-env-cache-push:
cache: cache:
- *ruby-gems-cache-push - *ruby-gems-cache-push
- *gitaly-ruby-gems-cache-push
- *go-pkg-cache-push - *go-pkg-cache-push
.gitaly-binaries-cache-push: .gitaly-binaries-cache-push:
@ -149,6 +160,7 @@
.rails-cache: .rails-cache:
cache: cache:
- *ruby-gems-cache - *ruby-gems-cache
- *gitaly-ruby-gems-cache
.static-analysis-cache: .static-analysis-cache:
cache: cache:
@ -217,11 +229,19 @@
- *node-modules-cache # We don't push this cache as it's already rebuilt by `update-assets-compile-*-cache` - *node-modules-cache # We don't push this cache as it's already rebuilt by `update-assets-compile-*-cache`
- *storybook-node-modules-cache-push - *storybook-node-modules-cache-push
.use-pg11:
services:
- name: postgres:11.6
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- name: redis:5.0-alpine
variables:
POSTGRES_HOST_AUTH_METHOD: trust
PG_VERSION: "11"
.use-pg12: .use-pg12:
services: services:
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:postgres-12-pgvector-0.4.1 - name: postgres:12
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
alias: postgres
- name: redis:6.0-alpine - name: redis:6.0-alpine
variables: variables:
POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_HOST_AUTH_METHOD: trust
@ -229,29 +249,32 @@
.use-pg13: .use-pg13:
services: services:
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:postgres-13-pgvector-0.4.1 - name: postgres:13
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
alias: postgres
- name: redis:6.2-alpine - name: redis:6.2-alpine
variables: variables:
POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_HOST_AUTH_METHOD: trust
PG_VERSION: "13" PG_VERSION: "13"
.use-pg14: .use-pg11-es7-ee:
services: services:
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:postgres-14-pgvector-0.4.1 - name: postgres:11.6
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
alias: postgres - name: redis:5.0-alpine
- name: redis:6.2-alpine - name: elasticsearch:7.17.6
command: ["elasticsearch", "-E", "discovery.type=single-node", "-E", "xpack.security.enabled=false"]
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:zoekt-ci-image-1.0
alias: zoekt-ci-image
variables: variables:
POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_HOST_AUTH_METHOD: trust
PG_VERSION: "14" PG_VERSION: "11"
ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060
ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070
.use-pg12-es7-ee: .use-pg12-es7-ee:
services: services:
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:postgres-12-pgvector-0.4.1 - name: postgres:12
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
alias: postgres
- name: redis:6.0-alpine - name: redis:6.0-alpine
- name: elasticsearch:7.17.6 - name: elasticsearch:7.17.6
command: ["elasticsearch", "-E", "discovery.type=single-node", "-E", "xpack.security.enabled=false"] command: ["elasticsearch", "-E", "discovery.type=single-node", "-E", "xpack.security.enabled=false"]
@ -265,9 +288,8 @@
.use-pg13-es7-ee: .use-pg13-es7-ee:
services: services:
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:postgres-13-pgvector-0.4.1 - name: postgres:13
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
alias: postgres
- name: redis:6.2-alpine - name: redis:6.2-alpine
- name: elasticsearch:7.17.6 - name: elasticsearch:7.17.6
command: ["elasticsearch", "-E", "discovery.type=single-node", "-E", "xpack.security.enabled=false"] command: ["elasticsearch", "-E", "discovery.type=single-node", "-E", "xpack.security.enabled=false"]
@ -279,61 +301,26 @@
ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060 ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060
ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070 ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070
.use-pg14-es7-ee: .use-pg12-es8-ee:
services: services:
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:postgres-14-pgvector-0.4.1 - name: postgres:12
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
alias: postgres
- name: redis:6.2-alpine
- name: elasticsearch:7.17.6
command: ["elasticsearch", "-E", "discovery.type=single-node", "-E", "xpack.security.enabled=false"]
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:zoekt-ci-image-1.0
alias: zoekt-ci-image
variables:
POSTGRES_HOST_AUTH_METHOD: trust
PG_VERSION: "14"
ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060
ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070
.use-pg13-es8-ee:
services:
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:postgres-13-pgvector-0.4.1
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
alias: postgres
- name: redis:6.0-alpine - name: redis:6.0-alpine
- name: elasticsearch:8.6.2 - name: elasticsearch:8.5.3
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:zoekt-ci-image-1.0 - name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:zoekt-ci-image-1.0
alias: zoekt-ci-image alias: zoekt-ci-image
variables: variables:
POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_HOST_AUTH_METHOD: trust
PG_VERSION: "13" PG_VERSION: "12"
ES_SETTING_DISCOVERY_TYPE: "single-node" ES_SETTING_DISCOVERY_TYPE: "single-node"
ES_SETTING_XPACK_SECURITY_ENABLED: "false" ES_SETTING_XPACK_SECURITY_ENABLED: "false"
ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060 ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060
ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070 ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070
.use-pg14-es8-ee: .use-pg12-opensearch1-ee:
services: services:
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:postgres-14-pgvector-0.4.1 - name: postgres:12
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
alias: postgres
- name: redis:6.0-alpine
- name: elasticsearch:8.6.2
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:zoekt-ci-image-1.0
alias: zoekt-ci-image
variables:
POSTGRES_HOST_AUTH_METHOD: trust
PG_VERSION: "14"
ES_SETTING_DISCOVERY_TYPE: "single-node"
ES_SETTING_XPACK_SECURITY_ENABLED: "false"
ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060
ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070
.use-pg13-opensearch1-ee:
services:
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:postgres-13-pgvector-0.4.1
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
alias: postgres
- name: redis:6.0-alpine - name: redis:6.0-alpine
- name: opensearchproject/opensearch:1.3.5 - name: opensearchproject/opensearch:1.3.5
alias: elasticsearch alias: elasticsearch
@ -342,15 +329,14 @@
alias: zoekt-ci-image alias: zoekt-ci-image
variables: variables:
POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_HOST_AUTH_METHOD: trust
PG_VERSION: "13" PG_VERSION: "12"
ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060 ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060
ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070 ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070
.use-pg13-opensearch2-ee: .use-pg12-opensearch2-ee:
services: services:
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:postgres-13-pgvector-0.4.1 - name: postgres:12
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
alias: postgres
- name: redis:6.0-alpine - name: redis:6.0-alpine
- name: opensearchproject/opensearch:2.2.1 - name: opensearchproject/opensearch:2.2.1
alias: elasticsearch alias: elasticsearch
@ -359,41 +345,7 @@
alias: zoekt-ci-image alias: zoekt-ci-image
variables: variables:
POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_HOST_AUTH_METHOD: trust
PG_VERSION: "13" PG_VERSION: "12"
ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060
ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070
.use-pg14-opensearch1-ee:
services:
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:postgres-14-pgvector-0.4.1
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
alias: postgres
- name: redis:6.0-alpine
- name: opensearchproject/opensearch:1.3.5
alias: elasticsearch
command: ["bin/opensearch", "-E", "discovery.type=single-node", "-E", "plugins.security.disabled=true"]
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:zoekt-ci-image-1.0
alias: zoekt-ci-image
variables:
POSTGRES_HOST_AUTH_METHOD: trust
PG_VERSION: "14"
ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060
ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070
.use-pg14-opensearch2-ee:
services:
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:postgres-14-pgvector-0.4.1
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
alias: postgres
- name: redis:6.0-alpine
- name: opensearchproject/opensearch:2.2.1
alias: elasticsearch
command: ["bin/opensearch", "-E", "discovery.type=single-node", "-E", "plugins.security.disabled=true"]
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:zoekt-ci-image-1.0
alias: zoekt-ci-image
variables:
POSTGRES_HOST_AUTH_METHOD: trust
PG_VERSION: "14"
ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060 ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060
ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070 ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070
@ -424,7 +376,7 @@
.use-buildx: .use-buildx:
extends: .use-docker-in-docker extends: .use-docker-in-docker
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-slim:docker-${DOCKER_VERSION} image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-slim:docker-${DOCKER_VERSION}-buildx-0.8
variables: variables:
QEMU_IMAGE: tonistiigi/binfmt:qemu-v7.0.0 QEMU_IMAGE: tonistiigi/binfmt:qemu-v7.0.0
before_script: before_script:
@ -437,7 +389,7 @@
docker run --rm --privileged ${QEMU_IMAGE} --uninstall qemu-*; docker run --rm --privileged ${QEMU_IMAGE} --uninstall qemu-*;
docker run --rm --privileged ${QEMU_IMAGE} --install all; docker run --rm --privileged ${QEMU_IMAGE} --install all;
fi fi
- docker buildx create --use # creates and set's to active buildkit builder - docker buildx create --use # creates and set's to active buildkit builder
.use-kube-context: .use-kube-context:
before_script: before_script:

View file

@ -20,7 +20,7 @@ memory-on-boot:
extends: extends:
- .only-code-memory-job-base - .only-code-memory-job-base
- .production - .production
- .use-pg13 - .use-pg12
stage: test stage: test
needs: ["setup-test-env", "compile-test-assets"] needs: ["setup-test-env", "compile-test-assets"]
variables: variables:

View file

@ -3,39 +3,70 @@
dependencies: [] dependencies: []
cache: {} cache: {}
create-issues-for-failing-tests: .notify-slack:
extends: extends:
- .notify-defaults - .notify-defaults
- .notify:rules:create-issues-for-failing-tests image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}alpine/curl
variables:
MERGE_REQUEST_URL: ${CI_MERGE_REQUEST_PROJECT_URL}/-/merge_requests/${CI_MERGE_REQUEST_IID}
before_script:
- apk update && apk add git bash
- echo "NOTIFY_CHANNEL is ${NOTIFY_CHANNEL}"
- echo "CI_PIPELINE_URL is ${CI_PIPELINE_URL}"
notify-update-gitaly:
extends:
- .notify-slack
rules:
- if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $GITALY_UPDATE_BRANCH'
when: on_failure
allow_failure: true
variables:
NOTIFY_CHANNEL: g_gitaly
GITALY_UPDATE_BRANCH: release-tools/update-gitaly
script:
- scripts/slack ${NOTIFY_CHANNEL} "☠️ \`${GITALY_UPDATE_BRANCH}\` failed! ☠️ See ${CI_PIPELINE_URL} (triggered from ${MERGE_REQUEST_URL})" ci_failing "GitLab QA Bot"
notify-security-pipeline:
extends:
- .notify-slack
- .delivery:rules:security-pipeline-merge-result-failure
variables:
NOTIFY_CHANNEL: f_upcoming_release
script:
# <!subteam^S0127FU8PDE> mentions the `@release-managers` group
- scripts/slack ${NOTIFY_CHANNEL} "<!subteam^S0127FU8PDE> ☠️ Pipeline for merged result failed! ☠️ See ${CI_PIPELINE_URL} (triggered from ${MERGE_REQUEST_URL})" ci_failing "GitLab Release Tools Bot"
notify-pipeline-failure:
extends:
- .notify-defaults
- .notify:rules:notify-pipeline-failure
image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION} image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION}
variables: variables:
FAILED_TESTS_DIR: "${CI_PROJECT_DIR}/tmp/failed_tests" INCIDENT_PROJECT: "${BROKEN_BRANCH_INCIDENTS_PROJECT}"
FAILING_ISSUES_PROJECT: "gitlab-org/quality/engineering-productivity/flaky-tests-playground" BROKEN_BRANCH_PROJECT_TOKEN: "${BROKEN_BRANCH_INCIDENTS_PROJECT_TOKEN}"
FAILING_ISSUE_JSON_DIR: "${CI_PROJECT_DIR}/tmp/issues" INCIDENT_JSON: "${CI_PROJECT_DIR}/incident.json"
before_script: SLACK_CHANNEL: "${NOTIFY_PIPELINE_FAILURE_CHANNEL}"
- source ./scripts/utils.sh FAILED_PIPELINE_SLACK_MESSAGE_FILE: "${CI_PROJECT_DIR}/failed_pipeline_slack_message.json"
- source ./scripts/rspec_helpers.sh
- install_gitlab_gem
script:
- mkdir -p "${FAILING_ISSUE_JSON_DIR}"
- retrieve_failed_tests "${FAILED_TESTS_DIR}" "json" "latest"
- scripts/pipeline/create_test_failure_issues.rb --project "${FAILING_ISSUES_PROJECT}" --tests-report-file "${FAILED_TESTS_DIR}/rspec_failed_tests.json" --issues-json-folder "${FAILING_ISSUE_JSON_DIR}" --api-token "${FAILING_ISSUES_PROJECT_TOKEN}"
- scripts/pipeline/create_test_failure_issues.rb --project "${FAILING_ISSUES_PROJECT}" --tests-report-file "${FAILED_TESTS_DIR}/rspec_ee_failed_tests.json" --issues-json-folder "${FAILING_ISSUE_JSON_DIR}" --api-token "${FAILING_ISSUES_PROJECT_TOKEN}"
artifacts:
paths:
- ${FAILED_TESTS_DIR}/
- ${FAILING_ISSUE_JSON_DIR}/
when: always
expire_in: 2 days
notify-package-and-test-failure:
extends:
- .notify-defaults
- .notify:rules:notify-package-and-test-failure
image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION}
before_script: before_script:
- source scripts/utils.sh - source scripts/utils.sh
- apt-get update - apt-get update && apt-get install -y jq
- install_gitlab_gem - install_gitlab_gem
script: script:
- scripts/generate-failed-package-and-test-mr-message.rb - |
if [[ "${CREATE_INCIDENT_FOR_PIPELINE_FAILURE}" == "true" ]]; then
scripts/create-pipeline-failure-incident.rb -p ${INCIDENT_PROJECT} -f ${INCIDENT_JSON} -t ${BROKEN_BRANCH_PROJECT_TOKEN} ||
scripts/slack ${SLACK_CHANNEL} "☠️ Broken pipeline incident creation failed! ☠️ See ${CI_JOB_URL}" ci_failing "Failed pipeline reporter";
echosuccess "Created incident $(jq '.web_url' ${INCIDENT_JSON})";
fi
- |
scripts/generate-failed-pipeline-slack-message.rb -i ${INCIDENT_JSON} -f ${FAILED_PIPELINE_SLACK_MESSAGE_FILE};
curl -X POST -H 'Content-Type: application/json' --data @${FAILED_PIPELINE_SLACK_MESSAGE_FILE} "$CI_SLACK_WEBHOOK_URL" ||
scripts/slack ${SLACK_CHANNEL} "☠️ Broken pipeline notification failed! ☠️ See ${CI_JOB_URL}" ci_failing "Failed pipeline reporter";
artifacts:
paths:
- ${INCIDENT_JSON}
- ${FAILED_PIPELINE_SLACK_MESSAGE_FILE}
when: always
expire_in: 2 days

View file

@ -1,87 +0,0 @@
include:
- local: .gitlab/ci/qa-common/main.gitlab-ci.yml
- local: .gitlab/ci/qa-common/rules.gitlab-ci.yml
- local: .gitlab/ci/qa-common/variables.gitlab-ci.yml
workflow:
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "nightly"'
.ce:
variables:
RELEASE: ${REGISTRY_HOST}/${REGISTRY_GROUP}/build/omnibus-gitlab-mirror/gitlab-ce:${CI_COMMIT_SHA}
.ee:
variables:
RELEASE: ${REGISTRY_HOST}/${REGISTRY_GROUP}/build/omnibus-gitlab-mirror/gitlab-ee:${CI_COMMIT_SHA}
# ==========================================
# Prepare stage
# ==========================================
# TODO: enable once ee jobs are added
# trigger-omnibus-env:
# extends:
# - .trigger-omnibus-env
trigger-omnibus-env-ce:
extends:
- .trigger-omnibus-env-ce
variables:
FOSS_ONLY: "1" # set FOSS_ONLY because we don't pass it via trigger job
# TODO: enable once ee jobs are added
# trigger-omnibus:
# extends:
# - .trigger-omnibus
# needs:
# - trigger-omnibus-env
trigger-omnibus-ce:
extends:
- .trigger-omnibus-ce
needs:
- trigger-omnibus-env-ce
# TODO: enable when first parallel job is added
# download-knapsack-report:
# extends:
# - .download-knapsack-report
# - .rules:download-knapsack
# ==========================================
# Test stage
# ==========================================
update-ee-to-ce:
extends:
- .qa
- .update-script
- .ce
variables:
UPDATE_TYPE: minor
UPDATE_FROM_EDITION: ee
QA_RSPEC_TAGS: --tag smoke
# ==========================================
# Post test stage
# ==========================================
e2e-test-report:
extends:
- .e2e-test-report
# TODO: enable when first parallel job is added
# upload-knapsack-report:
# extends:
# - .upload-knapsack-report
# - .rules:report:process-results
export-test-metrics:
extends:
- .export-test-metrics
relate-test-failures:
extends:
- .relate-test-failures
notify-slack:
extends:
- .notify-slack

View file

@ -1,9 +1,73 @@
# E2E tests pipeline loaded dynamically by script: scripts/generate-e2e-pipeline # E2E tests pipeline loaded dynamically by script: scripts/generate-e2e-pipeline
# For adding new tests, refer to: doc/development/testing_guide/end_to_end/package_and_test_pipeline.md # For adding new tests, refer to: doc/development/testing_guide/end_to_end/package_and_test_pipeline.md
default:
interruptible: true
include: include:
- local: .gitlab/ci/qa-common/main.gitlab-ci.yml - local: .gitlab/ci/package-and-test/rules.gitlab-ci.yml
- local: .gitlab/ci/qa-common/rules.gitlab-ci.yml - local: .gitlab/ci/package-and-test/variables.gitlab-ci.yml
- local: .gitlab/ci/qa-common/variables.gitlab-ci.yml - project: gitlab-org/quality/pipeline-common
ref: 2.0.0
file:
- /ci/base.gitlab-ci.yml
- /ci/allure-report.yml
- /ci/knapsack-report.yml
stages:
- test
- report
- notify
# ==========================================
# Templates
# ==========================================
.parallel:
parallel: 5
variables:
QA_KNAPSACK_REPORT_PATH: $CI_PROJECT_DIR/qa/knapsack
.ruby-image:
# Because this pipeline template can be included directly in other projects,
# image path and registry needs to be defined explicitly
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-ruby-${RUBY_VERSION}:bundler-2.3
.qa-install:
variables:
BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES: "true"
BUNDLE_SILENCE_ROOT_WARNING: "true"
extends:
- .gitlab-qa-install
.update-script:
script:
- export QA_COMMAND="bundle exec gitlab-qa Test::Omnibus::UpdateFromPrevious $RELEASE $GITLAB_VERSION $UPDATE_TYPE -- $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"
- echo "Running - '$QA_COMMAND'"
- eval "$QA_COMMAND"
.qa:
extends:
- .qa-base
- .qa-install
- .gitlab-qa-report
stage: test
tags:
- e2e
needs:
- job: trigger-omnibus
optional: true
- job: download-knapsack-report
artifacts: true
optional: true
variables:
QA_GENERATE_ALLURE_REPORT: "true"
QA_CAN_TEST_PRAEFECT: "false"
QA_INTERCEPT_REQUESTS: "true"
QA_RUN_TYPE: e2e-package-and-test
EE_LICENSE: $QA_EE_LICENSE
GITHUB_ACCESS_TOKEN: $QA_GITHUB_ACCESS_TOKEN
GITLAB_QA_ADMIN_ACCESS_TOKEN: $QA_ADMIN_ACCESS_TOKEN
GITLAB_LICENSE_MODE: test
# ========================================== # ==========================================
# Prepare stage # Prepare stage
@ -20,34 +84,103 @@ check-release-set:
echo "Omnibus installation image is set to '$RELEASE'" echo "Omnibus installation image is set to '$RELEASE'"
fi fi
dont-interrupt-me:
extends: .rules:dont-interrupt
stage: .pre
interruptible: false
script:
- echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible."
trigger-omnibus-env: trigger-omnibus-env:
extends: extends:
- .trigger-omnibus-env
- .rules:omnibus-build - .rules:omnibus-build
stage: .pre
needs:
# We need this job because we need its `cached-assets-hash.txt` artifact, so that we can pass the assets image tag to the downstream omnibus-gitlab pipeline.
- pipeline: $PARENT_PIPELINE_ID
job: build-assets-image
variables:
BUILD_ENV: build.env
before_script:
- |
# This is duplicating the function from `scripts/utils.sh` since `.gitlab/ci/package-and-test/main.gitlab-ci.yml` can be included in other projects.
function assets_image_tag() {
local cache_assets_hash_file="cached-assets-hash.txt"
trigger-omnibus-env-ce: if [[ -n "${CI_COMMIT_TAG}" ]]; then
extends: echo -n "${CI_COMMIT_REF_NAME}"
- .trigger-omnibus-env-ce elif [[ -f "${cache_assets_hash_file}" ]]; then
- .rules:omnibus-build-ce echo -n "assets-hash-$(cat ${cache_assets_hash_file} | cut -c1-10)"
else
echo -n "${CI_COMMIT_SHA}"
fi
}
script:
- |
SECURITY_SOURCES=$([[ ! "$CI_PROJECT_NAMESPACE" =~ ^gitlab-org\/security ]] || echo "true")
echo "SECURITY_SOURCES=${SECURITY_SOURCES:-false}" > $BUILD_ENV
echo "OMNIBUS_GITLAB_CACHE_UPDATE=${OMNIBUS_GITLAB_CACHE_UPDATE:-false}" >> $BUILD_ENV
for version_file in *_VERSION; do echo "$version_file=$(cat $version_file)" >> $BUILD_ENV; done
echo "OMNIBUS_GITLAB_RUBY3_BUILD=${OMNIBUS_GITLAB_RUBY3_BUILD:-false}" >> $BUILD_ENV
echo "OMNIBUS_GITLAB_CACHE_EDITION=${OMNIBUS_GITLAB_CACHE_EDITION:-GITLAB}" >> $BUILD_ENV
echo "GITLAB_ASSETS_TAG=$(assets_image_tag)" >> $BUILD_ENV
echo "EE=$([[ $FOSS_ONLY == '1' ]] && echo 'false' || echo 'true')" >> $BUILD_ENV
target_branch_name="${CI_MERGE_REQUEST_TARGET_BRANCH_NAME:-${CI_COMMIT_REF_NAME}}"
echo "TRIGGER_BRANCH=$([[ "${target_branch_name}" =~ ^[0-9-]+-stable(-ee)?$ ]] && echo ${target_branch_name%-ee} || echo 'master')" >> $BUILD_ENV
echo "Built environment file for omnibus build:"
cat $BUILD_ENV
artifacts:
reports:
dotenv: $BUILD_ENV
trigger-omnibus: trigger-omnibus:
extends: extends: .rules:omnibus-build
- .trigger-omnibus stage: .pre
- .rules:omnibus-build
needs: needs:
- trigger-omnibus-env - trigger-omnibus-env
inherit:
trigger-omnibus-ce: variables: false
extends: variables:
- .trigger-omnibus-ce GITALY_SERVER_VERSION: $GITALY_SERVER_VERSION
- .rules:omnibus-build-ce GITLAB_ELASTICSEARCH_INDEXER_VERSION: $GITLAB_ELASTICSEARCH_INDEXER_VERSION
needs: GITLAB_KAS_VERSION: $GITLAB_KAS_VERSION
- trigger-omnibus-env-ce GITLAB_METRICS_EXPORTER_VERSION: $GITLAB_METRICS_EXPORTER_VERSION
GITLAB_PAGES_VERSION: $GITLAB_PAGES_VERSION
GITLAB_SHELL_VERSION: $GITLAB_SHELL_VERSION
GITLAB_WORKHORSE_VERSION: $GITLAB_WORKHORSE_VERSION
GITLAB_VERSION: $CI_COMMIT_SHA
GITLAB_ASSETS_TAG: $GITLAB_ASSETS_TAG
IMAGE_TAG: $CI_COMMIT_SHA
TOP_UPSTREAM_SOURCE_PROJECT: $CI_PROJECT_PATH
SECURITY_SOURCES: $SECURITY_SOURCES
CACHE_UPDATE: $OMNIBUS_GITLAB_CACHE_UPDATE
RUBY3_BUILD: $OMNIBUS_GITLAB_RUBY3_BUILD
CACHE_EDITION: $OMNIBUS_GITLAB_CACHE_EDITION
SKIP_QA_DOCKER: "true"
SKIP_QA_TEST: "true"
ee: $EE
trigger:
project: gitlab-org/build/omnibus-gitlab-mirror
branch: $TRIGGER_BRANCH
strategy: depend
download-knapsack-report: download-knapsack-report:
extends: extends:
- .download-knapsack-report - .gitlab-qa-image
- .rules:download-knapsack - .rules:download-knapsack
stage: .pre
variables:
KNAPSACK_DIR: ${CI_PROJECT_DIR}/qa/knapsack
GIT_STRATEGY: none
script:
# when using qa-image, code runs in /home/gitlab/qa folder
- bundle exec rake "knapsack:download[test]"
- mkdir -p "$KNAPSACK_DIR" && cp knapsack/*.json "${KNAPSACK_DIR}/"
allow_failure: true
artifacts:
paths:
- qa/knapsack/*.json
expire_in: 1 day
cache-gems: cache-gems:
extends: extends:
@ -73,7 +206,7 @@ cache-gems:
# Run manual quarantine job # Run manual quarantine job
# this job requires passing QA_SCENARIO variable # this job requires passing QA_SCENARIO variable
# and optionally QA_TESTS to run specific quarantined tests # and optionally QA_TESTS to run specific quarantined tests
_quarantine: _ee:quarantine:
extends: extends:
- .qa - .qa
- .rules:test:manual - .rules:test:manual
@ -89,7 +222,7 @@ _quarantine:
# ------------------------------------------ # ------------------------------------------
# Run specs with feature flags set to the opposite of the default state # Run specs with feature flags set to the opposite of the default state
instance-ff-inverse: ee:instance-ff-inverse:
extends: extends:
- .qa - .qa
- .parallel - .parallel
@ -103,23 +236,23 @@ instance-ff-inverse:
# ------------------------------------------ # ------------------------------------------
# Jobs with parallel variant # Jobs with parallel variant
# ------------------------------------------ # ------------------------------------------
instance-selective: ee:instance-selective:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Instance::Image QA_SCENARIO: Test::Instance::Image
rules: rules:
- !reference [.rules:test:qa-selective, rules] - !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/ - if: $QA_SUITES =~ /Test::Instance::All/
instance: ee:instance:
extends: extends:
- .parallel - .parallel
- instance-selective - ee:instance-selective
rules: rules:
- !reference [.rules:test:feature-flags-set, rules] # always run instance to validate ff change - !reference [.rules:test:feature-flags-set, rules] # always run ee:instance to validate ff change
- !reference [.rules:test:qa-parallel, rules] - !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/ - if: $QA_SUITES =~ /Test::Instance::All/
praefect-selective: ee:praefect-selective:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::Praefect QA_SCENARIO: Test::Integration::Praefect
@ -127,117 +260,117 @@ praefect-selective:
rules: rules:
- !reference [.rules:test:qa-selective, rules] - !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/ - if: $QA_SUITES =~ /Test::Instance::All/
praefect: ee:praefect:
extends: extends:
- .parallel - .parallel
- praefect-selective - ee:praefect-selective
rules: rules:
- !reference [.rules:test:qa-parallel, rules] - !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/ - if: $QA_SUITES =~ /Test::Instance::All/
relative-url-selective: ee:relative-url-selective:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Instance::RelativeUrl QA_SCENARIO: Test::Instance::RelativeUrl
rules: rules:
- !reference [.rules:test:qa-selective, rules] - !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/ - if: $QA_SUITES =~ /Test::Instance::All/
relative-url: ee:relative-url:
extends: extends:
- .parallel - .parallel
- relative-url-selective - ee:relative-url-selective
rules: rules:
- !reference [.rules:test:qa-parallel, rules] - !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/ - if: $QA_SUITES =~ /Test::Instance::All/
decomposition-single-db-selective: ee:decomposition-single-db-selective:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Instance::Image QA_SCENARIO: Test::Instance::Image
GITLAB_QA_OPTS: --omnibus-config decomposition_single_db $EXTRA_GITLAB_QA_OPTS GITLAB_QA_OPTS: --omnibus-config decomposition_single_db
rules: rules:
- !reference [.rules:test:qa-selective, rules] - !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/ - if: $QA_SUITES =~ /Test::Instance::All/
decomposition-single-db: ee:decomposition-single-db:
extends: extends:
- .parallel - .parallel
- decomposition-single-db-selective - ee:decomposition-single-db-selective
rules: rules:
- !reference [.rules:test:qa-parallel, rules] - !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/ - if: $QA_SUITES =~ /Test::Instance::All/
decomposition-multiple-db-selective: ee:decomposition-multiple-db-selective:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Instance::Image QA_SCENARIO: Test::Instance::Image
GITLAB_ALLOW_SEPARATE_CI_DATABASE: "true" GITLAB_ALLOW_SEPARATE_CI_DATABASE: "true"
GITLAB_QA_OPTS: --omnibus-config decomposition_multiple_db $EXTRA_GITLAB_QA_OPTS GITLAB_QA_OPTS: --omnibus-config decomposition_multiple_db
rules: rules:
- !reference [.rules:test:qa-selective, rules] - !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/ - if: $QA_SUITES =~ /Test::Instance::All/
decomposition-multiple-db: ee:decomposition-multiple-db:
extends: extends:
- .parallel - .parallel
- decomposition-multiple-db-selective - ee:decomposition-multiple-db-selective
rules: rules:
- !reference [.rules:test:qa-parallel, rules] - !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/ - if: $QA_SUITES =~ /Test::Instance::All/
object-storage-selective: ee:object-storage-selective:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Instance::Image QA_SCENARIO: Test::Instance::Image
QA_RSPEC_TAGS: --tag object_storage QA_RSPEC_TAGS: --tag object_storage
GITLAB_QA_OPTS: --omnibus-config object_storage $EXTRA_GITLAB_QA_OPTS GITLAB_QA_OPTS: --omnibus-config object_storage
rules: rules:
- !reference [.rules:test:qa-selective, rules] - !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::ObjectStorage/ - if: $QA_SUITES =~ /Test::Instance::ObjectStorage/
object-storage: ee:object-storage:
extends: object-storage-selective extends: ee:object-storage-selective
parallel: 2 parallel: 2
rules: rules:
- !reference [.rules:test:qa-parallel, rules] - !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::ObjectStorage/ - if: $QA_SUITES =~ /Test::Instance::ObjectStorage/
object-storage-aws-selective: ee:object-storage-aws-selective:
extends: object-storage-selective extends: ee:object-storage-selective
variables: variables:
AWS_S3_ACCESS_KEY: $QA_AWS_S3_ACCESS_KEY AWS_S3_ACCESS_KEY: $QA_AWS_S3_ACCESS_KEY
AWS_S3_BUCKET_NAME: $QA_AWS_S3_BUCKET_NAME AWS_S3_BUCKET_NAME: $QA_AWS_S3_BUCKET_NAME
AWS_S3_KEY_ID: $QA_AWS_S3_KEY_ID AWS_S3_KEY_ID: $QA_AWS_S3_KEY_ID
AWS_S3_REGION: $QA_AWS_S3_REGION AWS_S3_REGION: $QA_AWS_S3_REGION
GITLAB_QA_OPTS: --omnibus-config object_storage_aws $EXTRA_GITLAB_QA_OPTS GITLAB_QA_OPTS: --omnibus-config object_storage_aws
object-storage-aws: ee:object-storage-aws:
extends: object-storage-aws-selective extends: ee:object-storage-aws-selective
parallel: 2 parallel: 2
rules: rules:
- !reference [object-storage, rules] - !reference [ee:object-storage, rules]
object-storage-gcs-selective: ee:object-storage-gcs-selective:
extends: object-storage-selective extends: ee:object-storage-selective
variables: variables:
GCS_BUCKET_NAME: $QA_GCS_BUCKET_NAME GCS_BUCKET_NAME: $QA_GCS_BUCKET_NAME
GOOGLE_PROJECT: $QA_GOOGLE_PROJECT GOOGLE_PROJECT: $QA_GOOGLE_PROJECT
GOOGLE_JSON_KEY: $QA_GOOGLE_JSON_KEY GOOGLE_JSON_KEY: $QA_GOOGLE_JSON_KEY
GOOGLE_CLIENT_EMAIL: $QA_GOOGLE_CLIENT_EMAIL GOOGLE_CLIENT_EMAIL: $QA_GOOGLE_CLIENT_EMAIL
GITLAB_QA_OPTS: --omnibus-config object_storage_gcs $EXTRA_GITLAB_QA_OPTS GITLAB_QA_OPTS: --omnibus-config object_storage_gcs
object-storage-gcs: ee:object-storage-gcs:
extends: object-storage-gcs-selective extends: ee:object-storage-gcs-selective
parallel: 2 parallel: 2
rules: rules:
- !reference [object-storage, rules] - !reference [ee:object-storage, rules]
packages-selective: ee:packages-selective:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Instance::Image QA_SCENARIO: Test::Instance::Image
QA_RSPEC_TAGS: --tag packages QA_RSPEC_TAGS: --tag packages
GITLAB_QA_OPTS: --omnibus-config packages $EXTRA_GITLAB_QA_OPTS GITLAB_QA_OPTS: --omnibus-config packages
rules: rules:
- !reference [.rules:test:qa-selective, rules] - !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::Packages/ - if: $QA_SUITES =~ /Test::Instance::Packages/
packages: ee:packages:
extends: packages-selective extends: ee:packages-selective
parallel: 2 parallel: 2
rules: rules:
- !reference [.rules:test:qa-parallel, rules] - !reference [.rules:test:qa-parallel, rules]
@ -246,7 +379,7 @@ packages:
# ------------------------------------------ # ------------------------------------------
# Non parallel jobs # Non parallel jobs
# ------------------------------------------ # ------------------------------------------
update-minor: ee:update-minor:
extends: extends:
- .qa - .qa
- .update-script - .update-script
@ -258,7 +391,7 @@ update-minor:
- if: $QA_SUITES =~ /Test::Instance::Smoke/ - if: $QA_SUITES =~ /Test::Instance::Smoke/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
update-major: ee:update-major:
extends: extends:
- .qa - .qa
- .update-script - .update-script
@ -270,7 +403,7 @@ update-major:
- if: $QA_SUITES =~ /Test::Instance::Smoke/ - if: $QA_SUITES =~ /Test::Instance::Smoke/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
gitlab-pages: ee:gitlab-pages:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::GitlabPages QA_SCENARIO: Test::Integration::GitlabPages
@ -279,7 +412,7 @@ gitlab-pages:
- if: $QA_SUITES =~ /Test::Instance::GitlabPages/ - if: $QA_SUITES =~ /Test::Instance::GitlabPages/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
gitaly-cluster: ee:gitaly-cluster:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::GitalyCluster QA_SCENARIO: Test::Integration::GitalyCluster
@ -288,26 +421,16 @@ gitaly-cluster:
- if: $QA_SUITES =~ /Test::Integration::GitalyCluster/ - if: $QA_SUITES =~ /Test::Integration::GitalyCluster/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
group-saml: ee:group-saml:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::GroupSAML QA_SCENARIO: Test::Integration::GroupSAML
rules: rules:
- !reference [.rules:test:ee-only, rules]
- !reference [.rules:test:qa, rules] - !reference [.rules:test:qa, rules]
- if: $QA_SUITES =~ /Test::Integration::GroupSAML/ - if: $QA_SUITES =~ /Test::Integration::GroupSAML/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
oauth: ee:instance-saml:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::OAuth
rules:
- !reference [.rules:test:qa-default-branch, rules]
- if: $QA_SUITES =~ /Test::Integration::OAuth/
- !reference [.rules:test:manual, rules]
instance-saml:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::InstanceSAML QA_SCENARIO: Test::Integration::InstanceSAML
@ -316,16 +439,18 @@ instance-saml:
- if: $QA_SUITES =~ /Test::Integration::InstanceSAML/ - if: $QA_SUITES =~ /Test::Integration::InstanceSAML/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
jira: ee:jira:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::Jira QA_SCENARIO: Test::Integration::Jira
JIRA_ADMIN_USERNAME: $QA_JIRA_ADMIN_USERNAME
JIRA_ADMIN_PASSWORD: $QA_JIRA_ADMIN_PASSWORD
rules: rules:
- !reference [.rules:test:qa, rules] - !reference [.rules:test:qa, rules]
- if: $QA_SUITES =~ /Test::Integration::Jira/ - if: $QA_SUITES =~ /Test::Integration::Jira/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
integrations: ee:integrations:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::Integrations QA_SCENARIO: Test::Integration::Integrations
@ -334,7 +459,7 @@ integrations:
- if: $QA_SUITES =~ /Test::Integration::Integrations/ - if: $QA_SUITES =~ /Test::Integration::Integrations/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
ldap-no-server: ee:ldap-no-server:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::LDAPNoServer QA_SCENARIO: Test::Integration::LDAPNoServer
@ -343,7 +468,7 @@ ldap-no-server:
- if: $QA_SUITES =~ /Test::Integration::LDAPNoServer/ - if: $QA_SUITES =~ /Test::Integration::LDAPNoServer/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
ldap-tls: ee:ldap-tls:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::LDAPTLS QA_SCENARIO: Test::Integration::LDAPTLS
@ -352,7 +477,7 @@ ldap-tls:
- if: $QA_SUITES =~ /Test::Integration::LDAPTLS/ - if: $QA_SUITES =~ /Test::Integration::LDAPTLS/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
ldap-no-tls: ee:ldap-no-tls:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::LDAPNoTLS QA_SCENARIO: Test::Integration::LDAPNoTLS
@ -361,7 +486,7 @@ ldap-no-tls:
- if: $QA_SUITES =~ /Test::Integration::LDAPNoTLS/ - if: $QA_SUITES =~ /Test::Integration::LDAPNoTLS/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
mtls: ee:mtls:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::MTLS QA_SCENARIO: Test::Integration::MTLS
@ -370,7 +495,7 @@ mtls:
- if: $QA_SUITES =~ /Test::Integration::Mtls/ - if: $QA_SUITES =~ /Test::Integration::Mtls/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
mattermost: ee:mattermost:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::Mattermost QA_SCENARIO: Test::Integration::Mattermost
@ -379,7 +504,7 @@ mattermost:
- if: $QA_SUITES =~ /Test::Integration::Mattermost/ - if: $QA_SUITES =~ /Test::Integration::Mattermost/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
registry: ee:registry:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::Registry QA_SCENARIO: Test::Integration::Registry
@ -388,7 +513,7 @@ registry:
- if: $QA_SUITES =~ /Test::Integration::Registry/ - if: $QA_SUITES =~ /Test::Integration::Registry/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
registry-with-cdn: ee:registry-with-cdn:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::RegistryWithCDN QA_SCENARIO: Test::Integration::RegistryWithCDN
@ -405,7 +530,7 @@ registry-with-cdn:
- if: $QA_SUITES =~ /Test::Integration::RegistryWithCDN/ - if: $QA_SUITES =~ /Test::Integration::RegistryWithCDN/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
repository-storage: ee:repository-storage:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Instance::RepositoryStorage QA_SCENARIO: Test::Instance::RepositoryStorage
@ -414,7 +539,7 @@ repository-storage:
- if: $QA_SUITES =~ /Test::Instance::RepositoryStorage/ - if: $QA_SUITES =~ /Test::Instance::RepositoryStorage/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
service-ping-disabled: ee:service-ping-disabled:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::ServicePingDisabled QA_SCENARIO: Test::Integration::ServicePingDisabled
@ -423,7 +548,7 @@ service-ping-disabled:
- if: $QA_SUITES =~ /Test::Integration::ServicePingDisabled/ - if: $QA_SUITES =~ /Test::Integration::ServicePingDisabled/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
smtp: ee:smtp:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::SMTP QA_SCENARIO: Test::Integration::SMTP
@ -432,7 +557,7 @@ smtp:
- if: $QA_SUITES =~ /Test::Integration::SMTP/ - if: $QA_SUITES =~ /Test::Integration::SMTP/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
cloud-activation: ee:cloud-activation:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Instance::Image QA_SCENARIO: Test::Instance::Image
@ -442,7 +567,7 @@ cloud-activation:
- if: $QA_SUITES =~ /Test::Instance::CloudActivation/ - if: $QA_SUITES =~ /Test::Instance::CloudActivation/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
large-setup: ee:large-setup:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Instance::Image QA_SCENARIO: Test::Instance::Image
@ -452,7 +577,7 @@ large-setup:
- if: $QA_SUITES =~ /Test::Instance::LargeSetup/ - if: $QA_SUITES =~ /Test::Instance::LargeSetup/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
metrics: ee:metrics:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::Metrics QA_SCENARIO: Test::Integration::Metrics
@ -461,31 +586,31 @@ metrics:
- if: $QA_SUITES =~ /Test::Instance::Metrics/ - if: $QA_SUITES =~ /Test::Instance::Metrics/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
elasticsearch: ee:elasticsearch:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: "Test::Integration::Elasticsearch" QA_SCENARIO: "Test::Integration::Elasticsearch"
before_script: before_script:
- !reference [.qa, before_script] - !reference [.qa, before_script]
rules: rules:
- !reference [.rules:test:ee-only, rules]
- !reference [.rules:test:qa, rules] - !reference [.rules:test:qa, rules]
- if: $QA_SUITES =~ /Test::Integration::Elasticsearch/ - if: $QA_SUITES =~ /Test::Integration::Elasticsearch/
- !reference [.rules:test:manual, rules] - !reference [.rules:test:manual, rules]
registry-object-storage-tls: ee:registry-object-storage-tls:
extends: object-storage-aws-selective extends: ee:object-storage-aws-selective
variables: variables:
QA_SCENARIO: Test::Integration::RegistryTLS QA_SCENARIO: Test::Integration::RegistryTLS
QA_RSPEC_TAGS: "" QA_RSPEC_TAGS: ""
GITLAB_TLS_CERTIFICATE: $QA_GITLAB_TLS_CERTIFICATE GITLAB_TLS_CERTIFICATE: $QA_GITLAB_TLS_CERTIFICATE
GITLAB_QA_OPTS: --omnibus-config registry_object_storage $EXTRA_GITLAB_QA_OPTS GITLAB_QA_OPTS: --omnibus-config registry_object_storage
importers: ee:importers:
extends: .qa extends: .qa
variables: variables:
QA_SCENARIO: Test::Integration::Import QA_SCENARIO: Test::Integration::Import
QA_MOCK_GITHUB: "true" QA_MOCK_GITHUB: "true"
GITLAB_QA_OPTS: --set-feature-flags bulk_import_projects=enabled
rules: rules:
- !reference [.rules:test:qa, rules] - !reference [.rules:test:qa, rules]
- if: $QA_SUITES =~ /Test::Integration::Import/ - if: $QA_SUITES =~ /Test::Integration::Import/
@ -496,30 +621,89 @@ importers:
# ========================================== # ==========================================
e2e-test-report: e2e-test-report:
extends: extends:
- .e2e-test-report - .generate-allure-report-base
- .rules:report:allure-report - .rules:report:allure-report
stage: report
variables:
GITLAB_AUTH_TOKEN: $PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE
ALLURE_PROJECT_PATH: $CI_PROJECT_PATH
ALLURE_MERGE_REQUEST_IID: $CI_MERGE_REQUEST_IID
ALLURE_JOB_NAME: e2e-package-and-test
GIT_STRATEGY: none
upload-knapsack-report: upload-knapsack-report:
extends: extends:
- .upload-knapsack-report - .generate-knapsack-report-base
- .qa-install
- .ruby-image
- .rules:report:process-results - .rules:report:process-results
stage: report
when: always
export-test-metrics: export-test-metrics:
extends: extends:
- .export-test-metrics - .qa-install
- .ruby-image
- .rules:report:process-results - .rules:report:process-results
stage: report
when: always
script:
- bundle exec rake "ci:export_test_metrics[$CI_PROJECT_DIR/gitlab-qa-run-*/**/test-metrics-*.json]"
relate-test-failures: relate-test-failures:
extends: extends:
- .relate-test-failures - .qa-install
- .ruby-image
- .rules:report:process-results - .rules:report:process-results
stage: report
variables:
QA_FAILURES_REPORTING_PROJECT: gitlab-org/gitlab
QA_FAILURES_MAX_DIFF_RATIO: "0.15"
GITLAB_QA_ACCESS_TOKEN: $QA_GITLAB_CI_TOKEN
when: on_failure
script:
- |
bundle exec gitlab-qa-report \
--relate-failure-issue "$CI_PROJECT_DIR/gitlab-qa-run-*/**/rspec-*.json" \
--project "$QA_FAILURES_REPORTING_PROJECT" \
--max-diff-ratio "$QA_FAILURES_MAX_DIFF_RATIO"
generate-test-session: generate-test-session:
extends: extends:
- .generate-test-session - .qa-install
- .ruby-image
- .rules:report:process-results - .rules:report:process-results
stage: report
variables:
QA_TESTCASE_SESSIONS_PROJECT: gitlab-org/quality/testcase-sessions
GITLAB_QA_ACCESS_TOKEN: $QA_TEST_SESSION_TOKEN
GITLAB_CI_API_TOKEN: $QA_GITLAB_CI_TOKEN
when: always
script:
- |
bundle exec gitlab-qa-report \
--generate-test-session "$CI_PROJECT_DIR/gitlab-qa-run-*/**/rspec-*.json" \
--project "$QA_TESTCASE_SESSIONS_PROJECT"
artifacts:
when: always
expire_in: 1d
paths:
- qa/REPORT_ISSUE_URL
notify-slack: notify-slack:
extends: extends:
- .notify-slack - .notify-slack-qa
- .qa-install
- .ruby-image
- .rules:report:process-results - .rules:report:process-results
stage: notify
variables:
ALLURE_JOB_NAME: e2e-package-and-test
SLACK_ICON_EMOJI: ci_failing
STATUS_SYM: ☠️
STATUS: failed
TYPE: "(package-and-test) "
when: on_failure
script:
- bundle exec gitlab-qa-report --prepare-stage-reports "$CI_PROJECT_DIR/gitlab-qa-run-*/**/rspec-*.xml" # generate summary
- !reference [.notify-slack-qa, script]

View file

@ -0,0 +1,139 @@
# Specific specs passed
.specific-specs: &specific-specs
if: $QA_TESTS != ""
# No specific specs passed
.all-specs: &all-specs
if: $QA_TESTS == ""
# FF changes
.feature-flags-set: &feature-flags-set
if: $QA_FEATURE_FLAGS =~ /enabled|disabled/
# Manually trigger job on ff changes but with default ff state instead of inverted
.feature-flags-set-manual: &feature-flags-set-manual
<<: *feature-flags-set
when: manual
allow_failure: true
# Run all tests when framework changes present, full suite execution is explicitly enabled or a feature flag file is removed
.qa-run-all-tests: &qa-run-all-tests
if: $QA_FRAMEWORK_CHANGES == "true" || $QA_RUN_ALL_TESTS == "true" || $QA_FEATURE_FLAGS =~ /deleted/
# Process test results (notify failure to slack, create test session report, relate test failures)
.process-test-results: &process-test-results
if: $PROCESS_TEST_RESULTS == "true"
.not-canonical-project: &not-canonical-project
if: '$CI_PROJECT_PATH != "gitlab-org/gitlab" && $CI_PROJECT_PATH != "gitlab-cn/gitlab"'
# Selective test execution against omnibus instance have following execution scenarios:
# * only e2e spec files changed - runs only changed specs
# * qa framework changes - runs full test suite
# * feature flag changed - runs full test suite with base gitlab instance configuration with both ff states
# * quarantined e2e spec - skips execution of e2e tests by creating a no-op pipeline
# ------------------------------------------
# Prepare
# ------------------------------------------
.rules:prepare:
rules:
- when: always
.rules:dont-interrupt:
rules:
- if: '$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_MERGE_REQUEST_IID == null'
allow_failure: true
- if: '$CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached"'
when: manual
allow_failure: true
.rules:omnibus-build:
rules:
- if: $SKIP_OMNIBUS_TRIGGER == "true"
when: never
- when: always
.rules:update-cache:
rules:
- <<: *not-canonical-project
when: never
- when: always
# This job requires project access token with api permissions to detect parallel jobs,
# it is problematic to set for every project that would include this template
# Because parallel jobs themselves can download knapsack report, skip for non canonical runs
.rules:download-knapsack:
rules:
- <<: *not-canonical-project
when: never
- when: always
# ------------------------------------------
# Test
# ------------------------------------------
.rules:test:manual:
rules:
- when: manual
allow_failure: true
variables:
QA_TESTS: ""
.rules:test:feature-flags-set:
rules:
# unset specific specs if pipeline has feature flag changes and run full suite
- <<: *feature-flags-set
variables:
QA_TESTS: ""
# parallel and non parallel rules are used for jobs that require parallel execution and thus need to switch
# between parallel and non parallel when only certain specs are executed
.rules:test:qa-selective:
rules:
# always run parallel with full suite when framework changes present or ff state changed
- <<: *qa-run-all-tests
when: never
- <<: *all-specs
when: never
- <<: *feature-flags-set
when: never
.rules:test:qa-parallel:
rules:
- *qa-run-all-tests
- <<: *specific-specs
when: manual
allow_failure: true
variables:
QA_TESTS: ""
- *feature-flags-set-manual
# general qa job rule for jobs without the need to run in parallel
.rules:test:qa:
rules:
- *qa-run-all-tests
- *feature-flags-set-manual
.rules:test:update:
rules:
# skip upgrade jobs if gitlab version is not provided
# these jobs need gitlab version because we can't reliably detect it from just the image
- if: $GITLAB_VERSION == null
when: never
- !reference [.rules:test:qa, rules]
# ------------------------------------------
# Report
# ------------------------------------------
.rules:report:allure-report:
rules:
- if: $SKIP_ALLURE_REPORT == "true"
when: never
- when: always
.rules:report:process-results:
rules:
- <<: *not-canonical-project
when: never
- *process-test-results

View file

@ -4,14 +4,9 @@ variables:
REGISTRY_HOST: "registry.gitlab.com" REGISTRY_HOST: "registry.gitlab.com"
REGISTRY_GROUP: "gitlab-org" REGISTRY_GROUP: "gitlab-org"
SKIP_REPORT_IN_ISSUES: "true" SKIP_REPORT_IN_ISSUES: "true"
SKIP_OMNIBUS_TRIGGER: "true"
OMNIBUS_GITLAB_CACHE_UPDATE: "false" OMNIBUS_GITLAB_CACHE_UPDATE: "false"
OMNIBUS_GITLAB_RUBY3_BUILD: "false" OMNIBUS_GITLAB_RUBY3_BUILD: "false"
OMNIBUS_GITLAB_RUBY2_BUILD: "false"
OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB" OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB"
OMNIBUS_GITLAB_BUILD_ON_ALL_OS: "false"
ALLURE_JOB_NAME: $CI_PROJECT_NAME
COLORIZED_LOGS: "true"
QA_LOG_LEVEL: "info" QA_LOG_LEVEL: "info"
QA_TESTS: "" QA_TESTS: ""
QA_FEATURE_FLAGS: "" QA_FEATURE_FLAGS: ""

View file

@ -1,66 +1,14 @@
.preflight-job-base: rails-production-environment:
stage: preflight
extends: extends:
- .default-retry
needs: []
.qa-preflight-job:
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-ruby-${RUBY_VERSION}:bundler-2.3-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}
extends:
- .preflight-job-base
- .qa-cache
variables:
USE_BUNDLE_INSTALL: "false"
SETUP_DB: "false"
before_script:
- !reference [.default-before_script, before_script]
- cd qa && bundle install
rails-production-server-boot:
extends:
- .preflight-job-base
- .default-before_script - .default-before_script
- .production - .production
- .ruby-cache - .ruby-cache
- .setup:rules:rails-production-server-boot - .setup:rules:rails-production-environment
- .use-pg13 - .use-pg12
stage: preflight
variables: variables:
BUNDLE_WITHOUT: "development:test" BUNDLE_WITHOUT: "development:test"
BUNDLE_WITH: "production" BUNDLE_WITH: "production"
needs: [] needs: []
script: script:
- source scripts/utils.sh - bundle exec rails runner --environment=production 'puts Rails.env'
- cp config/puma.rb.example config/puma.rb
- sed --in-place "s:/home/git/gitlab:${PWD}:" config/puma.rb
- echo 'bind "tcp://127.0.0.1:3000"' >> config/puma.rb
- bundle exec puma --environment production --config config/puma.rb &
- sleep 40 # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114124#note_1309506358
- retry_times_sleep 10 5 "curl http://127.0.0.1:3000"
- kill $(jobs -p)
no-ee-check:
extends:
- .preflight-job-base
- .setup:rules:no-ee-check
script:
- scripts/no-dir-check ee
no-jh-check:
extends:
- .preflight-job-base
- .setup:rules:no-jh-check
script:
- scripts/no-dir-check jh
qa:selectors:
extends:
- .qa-preflight-job
- .qa:rules:ee-and-foss
script:
- bundle exec bin/qa Test::Sanity::Selectors
qa:selectors-as-if-foss:
extends:
- qa:selectors
- .qa:rules:as-if-foss
- .as-if-foss

View file

@ -1,280 +0,0 @@
default:
interruptible: true
workflow:
name: $PIPELINE_NAME
include:
- project: gitlab-org/quality/pipeline-common
ref: 5.1.1
file:
- /ci/base.gitlab-ci.yml
- /ci/allure-report.yml
- /ci/knapsack-report.yml
stages:
- test
- report
- notify
# ==========================================
# Templates
# ==========================================
.parallel:
parallel: 5
variables:
QA_KNAPSACK_REPORT_PATH: $CI_PROJECT_DIR/qa/knapsack
.ruby-image:
# Because this pipeline template can be included directly in other projects,
# image path and registry needs to be defined explicitly
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-ruby-${RUBY_VERSION}:bundler-2.3
.qa-install:
variables:
BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES: "true"
BUNDLE_SILENCE_ROOT_WARNING: "true"
extends:
- .gitlab-qa-install
.update-script:
script:
- !reference [.bundle-prefix]
- export QA_COMMAND="$BUNDLE_PREFIX gitlab-qa Test::Omnibus::UpdateFromPrevious $RELEASE $GITLAB_SEMVER_VERSION $UPDATE_TYPE $UPDATE_FROM_EDITION -- $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"
- echo "Running - '$QA_COMMAND'"
- eval "$QA_COMMAND"
.qa:
extends:
- .qa-base
- .qa-install
- .gitlab-qa-report
stage: test
tags:
- e2e
variables:
QA_GENERATE_ALLURE_REPORT: "true"
QA_CAN_TEST_PRAEFECT: "false"
QA_INTERCEPT_REQUESTS: "true"
GITLAB_LICENSE_MODE: test
GITLAB_QA_ADMIN_ACCESS_TOKEN: $QA_ADMIN_ACCESS_TOKEN
GITLAB_QA_OPTS: $EXTRA_GITLAB_QA_OPTS
# todo: remove in 16.1 milestone when not needed for backwards compatibility anymore
EE_LICENSE: $QA_EE_LICENSE
GITHUB_ACCESS_TOKEN: $QA_GITHUB_ACCESS_TOKEN
# Allow QA jobs to fail as they are flaky. The top level `package-and-e2e:ee`
# pipeline is not allowed to fail, so without allowing QA to fail, we will be
# blocking merges due to flaky tests.
allow_failure: true
.trigger-omnibus-env:
stage: .pre
needs:
# We need this job because we need its `cached-assets-hash.txt` artifact, so that we can pass the assets image tag to the downstream omnibus-gitlab pipeline.
- pipeline: $PARENT_PIPELINE_ID
job: build-assets-image
variables:
BUILD_ENV: build.env
before_script:
- |
# This is duplicating the function from `scripts/utils.sh` since `.gitlab/ci/package-and-test/main.gitlab-ci.yml` can be included in other projects.
function assets_image_tag() {
local cache_assets_hash_file="cached-assets-hash.txt"
if [[ -n "${CI_COMMIT_TAG}" ]]; then
echo -n "${CI_COMMIT_REF_NAME}"
elif [[ -f "${cache_assets_hash_file}" ]]; then
echo -n "assets-hash-$(cat ${cache_assets_hash_file} | cut -c1-10)"
else
echo -n "${CI_COMMIT_SHA}"
fi
}
script:
- |
SECURITY_SOURCES=$([[ ! "$CI_PROJECT_NAMESPACE" =~ ^gitlab-org\/security ]] || echo "true")
echo "SECURITY_SOURCES=${SECURITY_SOURCES:-false}" > $BUILD_ENV
echo "OMNIBUS_GITLAB_CACHE_UPDATE=${OMNIBUS_GITLAB_CACHE_UPDATE:-false}" >> $BUILD_ENV
for version_file in *_VERSION; do echo "$version_file=$(cat $version_file)" >> $BUILD_ENV; done
echo "OMNIBUS_GITLAB_RUBY3_BUILD=${OMNIBUS_GITLAB_RUBY3_BUILD:-false}" >> $BUILD_ENV
echo "OMNIBUS_GITLAB_RUBY2_BUILD=${OMNIBUS_GITLAB_RUBY2_BUILD:-false}" >> $BUILD_ENV
echo "OMNIBUS_GITLAB_CACHE_EDITION=${OMNIBUS_GITLAB_CACHE_EDITION:-GITLAB}" >> $BUILD_ENV
echo "OMNIBUS_GITLAB_BUILD_ON_ALL_OS=${OMNIBUS_GITLAB_BUILD_ON_ALL_OS:-false}" >> $BUILD_ENV
echo "GITLAB_ASSETS_TAG=$(assets_image_tag)" >> $BUILD_ENV
echo "EE=$([[ $FOSS_ONLY == '1' ]] && echo 'false' || echo 'true')" >> $BUILD_ENV
target_branch_name="${CI_MERGE_REQUEST_TARGET_BRANCH_NAME:-${CI_COMMIT_REF_NAME}}"
echo "TRIGGER_BRANCH=$([[ "${target_branch_name}" =~ ^[0-9-]+-stable(-ee)?$ ]] && echo ${target_branch_name%-ee} || echo 'master')" >> $BUILD_ENV
- |
echo "Built environment file for omnibus build:"
cat $BUILD_ENV
artifacts:
expire_in: 3 days
reports:
dotenv: $BUILD_ENV
paths:
- $BUILD_ENV
.trigger-omnibus-env-ce:
extends: .trigger-omnibus-env
needs:
- pipeline: $PARENT_PIPELINE_ID
job: build-assets-image as-if-foss
.trigger-omnibus:
stage: .pre
inherit:
variables: false
variables:
GITALY_SERVER_VERSION: $GITALY_SERVER_VERSION
GITLAB_ELASTICSEARCH_INDEXER_VERSION: $GITLAB_ELASTICSEARCH_INDEXER_VERSION
GITLAB_KAS_VERSION: $GITLAB_KAS_VERSION
GITLAB_METRICS_EXPORTER_VERSION: $GITLAB_METRICS_EXPORTER_VERSION
GITLAB_PAGES_VERSION: $GITLAB_PAGES_VERSION
GITLAB_SHELL_VERSION: $GITLAB_SHELL_VERSION
GITLAB_WORKHORSE_VERSION: $GITLAB_WORKHORSE_VERSION
GITLAB_VERSION: $CI_COMMIT_SHA
GITLAB_ASSETS_TAG: $GITLAB_ASSETS_TAG
IMAGE_TAG: $CI_COMMIT_SHA
TOP_UPSTREAM_SOURCE_PROJECT: $CI_PROJECT_PATH
SECURITY_SOURCES: $SECURITY_SOURCES
CACHE_UPDATE: $OMNIBUS_GITLAB_CACHE_UPDATE
RUBY3_BUILD: $OMNIBUS_GITLAB_RUBY3_BUILD
RUBY2_BUILD: $OMNIBUS_GITLAB_RUBY2_BUILD
CACHE_EDITION: $OMNIBUS_GITLAB_CACHE_EDITION
BUILD_ON_ALL_OS: $OMNIBUS_GITLAB_BUILD_ON_ALL_OS
SKIP_QA_TEST: "true"
ee: $EE
trigger:
project: gitlab-org/build/omnibus-gitlab-mirror
branch: $TRIGGER_BRANCH
strategy: depend
.trigger-omnibus-ce:
extends:
- .trigger-omnibus
variables:
# Override gitlab repository so that omnibus doesn't use foss repository for CE build
GITLAB_ALTERNATIVE_REPO: $CI_PROJECT_URL
.download-knapsack-report:
extends:
- .gitlab-qa-image
stage: .pre
variables:
KNAPSACK_DIR: ${CI_PROJECT_DIR}/qa/knapsack
GIT_STRATEGY: none
script:
# when using qa-image, code runs in /home/gitlab/qa folder
- bundle exec rake "knapsack:download[test]"
- mkdir -p "$KNAPSACK_DIR" && cp knapsack/*.json "${KNAPSACK_DIR}/"
allow_failure: true
artifacts:
paths:
- qa/knapsack/*.json
expire_in: 1 day
.e2e-test-report:
extends:
- .generate-allure-report-base
stage: report
variables:
GITLAB_AUTH_TOKEN: $PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE
ALLURE_PROJECT_PATH: $CI_PROJECT_PATH
ALLURE_MERGE_REQUEST_IID: $CI_MERGE_REQUEST_IID
.upload-knapsack-report:
extends:
- .generate-knapsack-report-base
- .qa-install
- .ruby-image
stage: report
when: always
.export-test-metrics:
extends:
- .qa-install
- .ruby-image
stage: report
when: always
variables:
QA_METRICS_REPORT_FILE_PATTERN: $CI_PROJECT_DIR/gitlab-qa-run-*/**/test-metrics-*.json
script:
- bundle exec rake "ci:export_test_metrics[$QA_METRICS_REPORT_FILE_PATTERN]"
.relate-test-failures:
extends:
- .qa-install
- .ruby-image
stage: report
when: always
variables:
QA_RSPEC_JSON_FILE_PATTERN: "${CI_PROJECT_DIR}/gitlab-qa-run-*/**/rspec-*.json"
script:
- |
if [ "$SUITE_FAILED" != "true" ] && [ "$SUITE_RAN" == "true" ]; then
echo "Test suite passed. Exiting..."
exit 0
fi
- |
bundle exec relate-failure-issue \
--input-files "${QA_RSPEC_JSON_FILE_PATTERN}" \
--project "gitlab-org/gitlab" \
--token "${QA_RELATE_FAILURE_ISSUE_TOKEN}"
.generate-test-session:
extends:
- .qa-install
- .ruby-image
stage: report
when: always
variables:
QA_RSPEC_JSON_FILE_PATTERN: "${CI_PROJECT_DIR}/gitlab-qa-run-*/**/rspec-*.json"
script:
- |
bundle exec generate-test-session \
--input-files "${QA_RSPEC_JSON_FILE_PATTERN}" \
--project "gitlab-org/quality/testcase-sessions" \
--token "${QA_TEST_SESSION_TOKEN}" \
--ci-project-token "${GENERATE_TEST_SESSION_READ_API_REPORTER_TOKEN}" \
--issue-url-file report_issue_url.txt
artifacts:
when: always
expire_in: 1d
paths:
- qa/report_issue_url.txt
.notify-slack:
extends:
- .notify-slack-qa
- .qa-install
- .ruby-image
stage: notify
variables:
QA_RSPEC_XML_FILE_PATTERN: "${CI_PROJECT_DIR}/gitlab-qa-run-*/**/rspec-*.xml"
SLACK_ICON_EMOJI: ci_failing
STATUS_SYM: ☠️
STATUS: failed
TYPE: "($QA_RUN_TYPE) "
when: always
script:
- |
if [ "$SUITE_FAILED" != "true" ] && [ "$SUITE_RAN" == "true" ]; then
echo "Test suite passed. Exiting..."
exit 0
fi
- bundle exec prepare-stage-reports --input-files "${QA_RSPEC_XML_FILE_PATTERN}"
- !reference [.notify-slack-qa, script]
# ==========================================
# Pre stage
# ==========================================
dont-interrupt-me:
stage: .pre
interruptible: false
script:
- echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible."
rules:
- if: '$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_MERGE_REQUEST_IID == null'
allow_failure: true
- if: '$CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached"'
when: manual
allow_failure: true

View file

@ -1,154 +0,0 @@
# Specific specs passed
.specific-specs: &specific-specs
if: $QA_TESTS != ""
# No specific specs passed
.all-specs: &all-specs
if: $QA_TESTS == ""
# FF changes
.feature-flags-set: &feature-flags-set
if: $QA_FEATURE_FLAGS =~ /enabled|disabled/
# Manually trigger job on ff changes but with default ff state instead of inverted
.feature-flags-set-manual: &feature-flags-set-manual
<<: *feature-flags-set
when: manual
allow_failure: true
# Run the job on master pipeline
.default-branch: &default-branch
if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
# Run all tests when QA framework changes present, full suite execution is explicitly enabled or a feature flag file is removed
.qa-run-all-tests: &qa-run-all-tests
if: $QA_FRAMEWORK_CHANGES == "true" || $QA_RUN_ALL_TESTS == "true" || $QA_RUN_ALL_E2E_LABEL == "true" || $QA_FEATURE_FLAGS =~ /deleted/
# Run job when MR has pipeline:run-all-e2e label
.qa-run-all-e2e-label: &qa-run-all-e2e-label
if: $QA_RUN_ALL_E2E_LABEL == "true"
# Process test results (notify failure to slack, create test session report, relate test failures)
.process-test-results: &process-test-results
if: $PROCESS_TEST_RESULTS == "true"
.not-canonical-project: &not-canonical-project
if: '$CI_PROJECT_PATH != "gitlab-org/gitlab" && $CI_PROJECT_PATH != "gitlab-cn/gitlab"'
# Selective test execution against omnibus instance have following execution scenarios:
# * only e2e spec files changed - runs only changed specs
# * qa framework changes - runs full test suite
# * feature flag changed - runs full test suite with base gitlab instance configuration with both ff states
# * quarantined e2e spec - skips execution of e2e tests by creating a no-op pipeline
# ------------------------------------------
# Prepare
# ------------------------------------------
.rules:prepare:
rules:
- when: always
.rules:omnibus-build:
rules:
- if: $SKIP_OMNIBUS_TRIGGER == "true"
when: never
- if: $FOSS_ONLY != "1"
.rules:omnibus-build-ce:
rules:
- if: $SKIP_OMNIBUS_TRIGGER == "true"
when: never
- if: $FOSS_ONLY == "1"
.rules:update-cache:
rules:
- if: '$UPDATE_QA_CACHE == "true"'
.rules:download-knapsack:
rules:
- when: always
# ------------------------------------------
# Test
# ------------------------------------------
.rules:test:manual:
rules:
- when: manual
allow_failure: true
variables:
QA_TESTS: ""
.rules:test:feature-flags-set:
rules:
# unset specific specs if pipeline has feature flag changes and run full suite
- <<: *feature-flags-set
variables:
QA_TESTS: ""
# parallel and non parallel rules are used for jobs that require parallel execution and thus need to switch
# between parallel and non parallel when only certain specs are executed
.rules:test:qa-selective:
rules:
# always run parallel with full suite when framework changes present or ff state changed
- <<: *qa-run-all-tests
when: never
- <<: *all-specs
when: never
- <<: *feature-flags-set
when: never
.rules:test:qa-parallel:
rules:
- *qa-run-all-tests
- <<: *specific-specs
when: manual
allow_failure: true
variables:
QA_TESTS: ""
- *feature-flags-set-manual
# general qa job rule for jobs without the need to run in parallel
.rules:test:qa:
rules:
- *qa-run-all-tests
- *feature-flags-set-manual
.rules:test:ee-only:
rules:
- if: $FOSS_ONLY == "1"
when: never
.rules:test:update:
rules:
# skip upgrade jobs if gitlab version is not in semver compatible format
# these jobs need gitlab version because we can't reliably detect it from just the image
- if: $GITLAB_SEMVER_VERSION !~ /^\d+\.\d+\.\d+/
when: never
# update type tests are used to check if gitlab upgrade can be performed correctly (mainly migrations)
# there isn't much benefit in running tests after update with new sidebar enabled and there
# is also an issue to properly pass feature toggle to this job due to how gitlab-qa parses cli args
- if: $QA_SUPER_SIDEBAR_ENABLED == "true"
when: never
- !reference [.rules:test:ee-only, rules]
- !reference [.rules:test:qa, rules]
.rules:test:qa-default-branch:
rules:
- *qa-run-all-e2e-label
- *default-branch
- *feature-flags-set-manual
# ------------------------------------------
# Report
# ------------------------------------------
.rules:report:allure-report:
rules:
- if: $SKIP_ALLURE_REPORT == "true"
when: never
- when: always
.rules:report:process-results:
rules:
- <<: *not-canonical-project
when: never
- *process-test-results

View file

@ -12,40 +12,6 @@
- !reference [.default-before_script, before_script] - !reference [.default-before_script, before_script]
- cd qa && bundle install - cd qa && bundle install
.e2e-trigger-base:
extends: .production # this makes sure GITLAB_ALLOW_SEPARATE_CI_DATABASE is passed to the child pipeline
stage: qa
needs:
- build-assets-image
- build-qa-image
- e2e-test-pipeline-generate
variables:
# This is needed by `trigger-omnibus-env` (`.gitlab/ci/package-and-test/main.gitlab-ci.yml`).
PARENT_PIPELINE_ID: $CI_PIPELINE_ID
SKIP_MESSAGE: Skipping package-and-test due to mr containing only quarantine changes!
GITLAB_QA_IMAGE: "${CI_REGISTRY_IMAGE}/gitlab-ee-qa:${CI_COMMIT_SHA}"
RUN_WITH_BUNDLE: "true" # instructs pipeline to install and run gitlab-qa gem via bundler
QA_PATH: qa # sets the optional path for bundler to run from
DYNAMIC_PIPELINE_YML: package-and-test-pipeline.yml # yml files are generated by scripts/generate-e2e-pipeline script
inherit:
variables:
- CHROME_VERSION
- RUBY_VERSION
- DOCKER_VERSION
- REGISTRY_GROUP
- REGISTRY_HOST
- OMNIBUS_GITLAB_CACHE_EDITION
- OMNIBUS_GITLAB_RUBY3_BUILD
- OMNIBUS_GITLAB_RUBY2_BUILD
trigger:
strategy: depend
forward:
yaml_variables: true
pipeline_variables: true
include:
- artifact: $DYNAMIC_PIPELINE_YML
job: e2e-test-pipeline-generate
qa:internal: qa:internal:
extends: extends:
- .qa-job-base - .qa-job-base
@ -59,6 +25,13 @@ qa:internal-as-if-foss:
- .qa:rules:internal-as-if-foss - .qa:rules:internal-as-if-foss
- .as-if-foss - .as-if-foss
qa:selectors:
extends:
- .qa-job-base
- .qa:rules:ee-and-foss
script:
- bundle exec bin/qa Test::Sanity::Selectors
qa:master-auto-quarantine-dequarantine: qa:master-auto-quarantine-dequarantine:
extends: extends:
- .qa-job-base - .qa-job-base
@ -77,6 +50,12 @@ qa:nightly-auto-quarantine-dequarantine:
- bundle exec confiner -r .confiner/nightly.yml - bundle exec confiner -r .confiner/nightly.yml
allow_failure: true allow_failure: true
qa:selectors-as-if-foss:
extends:
- qa:selectors
- .qa:rules:as-if-foss
- .as-if-foss
qa:update-qa-cache: qa:update-qa-cache:
extends: extends:
- .qa-job-base - .qa-job-base
@ -86,68 +65,41 @@ qa:update-qa-cache:
script: script:
- echo "Cache has been updated and ready to be uploaded." - echo "Cache has been updated and ready to be uploaded."
e2e:package-and-test-ee: e2e:package-and-test:
extends: extends:
- .e2e-trigger-base - .production # this makes sure GITLAB_ALLOW_SEPARATE_CI_DATABASE is passed to the child pipeline
- .qa:rules:package-and-test-ee - .qa:rules:package-and-test
stage: qa
needs: needs:
- build-assets-image - build-assets-image
- build-qa-image - build-qa-image
- e2e-test-pipeline-generate - e2e-test-pipeline-generate
variables: variables:
# This is needed by `trigger-omnibus-env` (`.gitlab/ci/package-and-test/main.gitlab-ci.yml`).
PARENT_PIPELINE_ID: $CI_PIPELINE_ID
SKIP_MESSAGE: Skipping package-and-test due to mr containing only quarantine changes!
RELEASE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/build/omnibus-gitlab-mirror/gitlab-ee:${CI_COMMIT_SHA}" RELEASE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/build/omnibus-gitlab-mirror/gitlab-ee:${CI_COMMIT_SHA}"
QA_RUN_TYPE: e2e-package-and-test GITLAB_QA_IMAGE: "${CI_REGISTRY_IMAGE}/gitlab-ee-qa:${CI_COMMIT_SHA}"
ALLURE_JOB_NAME: e2e-package-and-test RUN_WITH_BUNDLE: "true" # instructs pipeline to install and run gitlab-qa gem via bundler
PIPELINE_NAME: E2E Omnibus GitLab EE QA_PATH: qa # sets the optional path for bundler to run from
inherit:
e2e:package-and-test-ce: variables:
extends: - CHROME_VERSION
- e2e:package-and-test-ee - RUBY_VERSION
- .qa:rules:package-and-test-ce - DOCKER_VERSION
needs: - REGISTRY_GROUP
- build-assets-image as-if-foss - REGISTRY_HOST
- build-qa-image as-if-foss trigger:
- e2e-test-pipeline-generate strategy: depend
variables: forward:
FOSS_ONLY: "1" yaml_variables: true
RELEASE: ${REGISTRY_HOST}/${REGISTRY_GROUP}/build/omnibus-gitlab-mirror/gitlab-ce:${CI_COMMIT_SHA} pipeline_variables: true
GITLAB_QA_IMAGE: ${CI_REGISTRY_IMAGE}/gitlab-ce-qa:${CI_COMMIT_SHA} include:
QA_RUN_TYPE: e2e-package-and-test-ce - artifact: package-and-test-pipeline.yml
ALLURE_JOB_NAME: e2e-package-and-test-ce job: e2e-test-pipeline-generate
PIPELINE_NAME: E2E Omnibus GitLab CE
e2e:package-and-test-super-sidebar:
extends:
- e2e:package-and-test-ee
- .qa:rules:package-and-test-sidebar
when: manual
variables:
QA_SUPER_SIDEBAR_ENABLED: "true"
EXTRA_GITLAB_QA_OPTS: --set-feature-flags super_sidebar_nav=enabled
QA_RUN_TYPE: e2e-package-and-test-super-sidebar
ALLURE_JOB_NAME: e2e-package-and-test-super-sidebar
PIPELINE_NAME: E2E Omnibus Super Sidebar
e2e:package-and-test-nightly:
extends:
- .e2e-trigger-base
- .qa:rules:package-and-test-nightly
needs:
- build-assets-image
- build-assets-image as-if-foss
- build-qa-image
- build-qa-image as-if-foss
- e2e-test-pipeline-generate
variables:
GITLAB_SEMVER_VERSION: $GITLAB_SEMVER_VERSION
QA_RUN_TYPE: nightly
ALLURE_JOB_NAME: nightly
PIPELINE_NAME: E2E Omnibus GitLab Nightly
DYNAMIC_PIPELINE_YML: package-and-test-nightly-pipeline.yml
e2e:test-on-gdk: e2e:test-on-gdk:
extends: extends:
- .e2e-trigger-base
- .qa:rules:e2e:test-on-gdk - .qa:rules:e2e:test-on-gdk
stage: qa stage: qa
needs: needs:
@ -155,12 +107,10 @@ e2e:test-on-gdk:
# In MRs we assume the last scheduled master pipeline built the image already. # In MRs we assume the last scheduled master pipeline built the image already.
- job: build-qa-on-gdk-master-image - job: build-qa-on-gdk-master-image
optional: true optional: true
- job: e2e-test-pipeline-generate
artifacts: true
variables:
ALLURE_JOB_NAME: e2e-test-on-gdk
QA_RUN_TYPE: e2e-test-on-gdk
PIPELINE_NAME: E2E GDK
DYNAMIC_PIPELINE_YML: test-on-gdk-pipeline.yml
SKIP_MESSAGE: Skipping test-on-gdk due to mr containing only quarantine changes!
allow_failure: true allow_failure: true
trigger:
strategy: depend
forward:
yaml_variables: true
pipeline_variables: true
include: .gitlab/ci/test-on-gdk/main.gitlab-ci.yml

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
# RSpec FOSS impact pipeline loaded dynamically by script: scripts/generate_rspec_pipeline.rb # RSpec FOSS impact pipeline loaded dynamically by script: scripts/generate-rspec-foss-impact-pipeline
include: include:
- local: .gitlab/ci/rails/shared.gitlab-ci.yml - local: .gitlab/ci/rails/shared.gitlab-ci.yml
@ -21,8 +21,8 @@ dont-interrupt-me:
script: script:
- echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible." - echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible."
.base-rspec-foss-impact: rspec foss-impact:
extends: .rspec-base-pg13-as-if-foss extends: .rspec-base-pg12-as-if-foss
needs: needs:
- pipeline: $PARENT_PIPELINE_ID - pipeline: $PARENT_PIPELINE_ID
job: detect-tests job: detect-tests
@ -37,54 +37,14 @@ dont-interrupt-me:
variables: variables:
RSPEC_TESTS_FILTER_FILE: "${RSPEC_MATCHING_TESTS_FOSS_PATH}" RSPEC_TESTS_FILTER_FILE: "${RSPEC_MATCHING_TESTS_FOSS_PATH}"
RSPEC_TESTS_MAPPING_ENABLED: "true" RSPEC_TESTS_MAPPING_ENABLED: "true"
<% if Integer(parallel_value) > 1 %>
parallel: <%= parallel_value %>
<% end %>
script: script:
- !reference [.base-script, script] - !reference [.base-script, script]
- rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration --tag ~zoekt" - rspec_paralellized_job "--tag ~quarantine --tag ~level:migration --tag ~zoekt"
artifacts: artifacts:
expire_in: 7d expire_in: 7d
paths: paths:
- "${RSPEC_MATCHING_TESTS_FOSS_PATH}" - "${RSPEC_MATCHING_TESTS_FOSS_PATH}"
- tmp/capybara/ - tmp/capybara/
<% if rspec_files_per_test_level[:migration][:files].size > 0 %>
rspec migration foss-impact:
extends: .base-rspec-foss-impact
<% if rspec_files_per_test_level[:migration][:parallelization] > 1 %>
parallel: <%= rspec_files_per_test_level[:migration][:parallelization] %>
<% end %>
script:
- !reference [.base-script, script]
- rspec_paralellized_job "--tag ~quarantine --tag ~zoekt"
<% end %>
<% if rspec_files_per_test_level[:background_migration][:files].size > 0 %>
rspec background_migration foss-impact:
extends: .base-rspec-foss-impact
<% if rspec_files_per_test_level[:background_migration][:parallelization] > 1 %>
parallel: <%= rspec_files_per_test_level[:background_migration][:parallelization] %>
<% end %>
<% end %>
<% if rspec_files_per_test_level[:unit][:files].size > 0 %>
rspec unit foss-impact:
extends: .base-rspec-foss-impact
<% if rspec_files_per_test_level[:unit][:parallelization] > 1 %>
parallel: <%= rspec_files_per_test_level[:unit][:parallelization] %>
<% end %>
<% end %>
<% if rspec_files_per_test_level[:integration][:files].size > 0 %>
rspec integration foss-impact:
extends: .base-rspec-foss-impact
<% if rspec_files_per_test_level[:integration][:parallelization] > 1 %>
parallel: <%= rspec_files_per_test_level[:integration][:parallelization] %>
<% end %>
<% end %>
<% if rspec_files_per_test_level[:system][:files].size > 0 %>
rspec system foss-impact:
extends: .base-rspec-foss-impact
<% if rspec_files_per_test_level[:system][:parallelization] > 1 %>
parallel: <%= rspec_files_per_test_level[:system][:parallelization] %>
<% end %>
<% end %>

View file

@ -1,153 +0,0 @@
# RSpec preditive pipeline loaded dynamically by script: scripts/generate_rspec_pipeline.rb
include:
- local: .gitlab/ci/rails/shared.gitlab-ci.yml
default:
image: $DEFAULT_CI_IMAGE
tags:
- gitlab-org
# Default job timeout set to 90m https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/10520
timeout: 90m
interruptible: true
stages:
- test
dont-interrupt-me:
extends: .rules:dont-interrupt
stage: .pre
interruptible: false
script:
- echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible."
.base-predictive:
needs:
- pipeline: $PARENT_PIPELINE_ID
job: detect-tests
- pipeline: $PARENT_PIPELINE_ID
job: setup-test-env
- pipeline: $PARENT_PIPELINE_ID
job: retrieve-tests-metadata
- pipeline: $PARENT_PIPELINE_ID
job: compile-test-assets
rules:
- when: always
variables:
RSPEC_TESTS_MAPPING_ENABLED: "true"
<% if test_suite_prefix.nil? %>
.base-rspec-predictive:
extends:
- .rspec-base-pg12
- .base-predictive
variables:
# We're using the FOSS one here because we want to exclude EE-only ones
# For EE-only ones, we have EE-only jobs.
RSPEC_TESTS_FILTER_FILE: "${RSPEC_MATCHING_TESTS_FOSS_PATH}"
<% if rspec_files_per_test_level.dig(:migration, :files).size > 0 %>
rspec migration predictive:
extends:
- .base-rspec-predictive
- .rspec-base-migration
<% if rspec_files_per_test_level.dig(:migration, :parallelization) > 1 %>
parallel: <%= rspec_files_per_test_level.dig(:migration, :parallelization) %>
<% end %>
<% end %>
<% if rspec_files_per_test_level.dig(:background_migration, :files).size > 0 %>
rspec background_migration predictive:
extends:
- .base-rspec-predictive
- .rspec-base-migration
<% if rspec_files_per_test_level.dig(:background_migration, :parallelization) > 1 %>
parallel: <%= rspec_files_per_test_level.dig(:background_migration, :parallelization) %>
<% end %>
<% end %>
<% if rspec_files_per_test_level.dig(:unit, :files).size > 0 %>
rspec unit predictive:
extends:
- .base-rspec-predictive
<% if rspec_files_per_test_level.dig(:unit, :parallelization) > 1 %>
parallel: <%= rspec_files_per_test_level.dig(:unit, :parallelization) %>
<% end %>
<% end %>
<% if rspec_files_per_test_level.dig(:integration, :files).size > 0 %>
rspec integration predictive:
extends:
- .base-rspec-predictive
<% if rspec_files_per_test_level.dig(:integration, :parallelization) > 1 %>
parallel: <%= rspec_files_per_test_level.dig(:integration, :parallelization) %>
<% end %>
<% end %>
<% if rspec_files_per_test_level.dig(:system, :files).size > 0 %>
rspec system predictive:
extends:
- .base-rspec-predictive
<% if rspec_files_per_test_level.dig(:system, :parallelization) > 1 %>
parallel: <%= rspec_files_per_test_level.dig(:system, :parallelization) %>
<% end %>
<% end %>
<% end %>
<% if test_suite_prefix == 'ee/' %>
.base-rspec-ee-predictive:
extends:
- .rspec-ee-base-pg12
- .base-predictive
variables:
RSPEC_TESTS_FILTER_FILE: "${RSPEC_MATCHING_TESTS_EE_PATH}"
<% if rspec_files_per_test_level.dig(:migration, :files).size > 0 %>
rspec-ee migration predictive:
extends:
- .base-rspec-ee-predictive
- .rspec-base-migration
<% if rspec_files_per_test_level.dig(:migration, :parallelization) > 1 %>
parallel: <%= rspec_files_per_test_level.dig(:migration, :parallelization) %>
<% end %>
<% end %>
<% if rspec_files_per_test_level.dig(:background_migration, :files).size > 0 %>
rspec-ee background_migration predictive:
extends:
- .base-rspec-ee-predictive
- .rspec-base-migration
<% if rspec_files_per_test_level.dig(:background_migration, :parallelization) > 1 %>
parallel: <%= rspec_files_per_test_level.dig(:background_migration, :parallelization) %>
<% end %>
<% end %>
<% if rspec_files_per_test_level.dig(:unit, :files).size > 0 %>
rspec-ee unit predictive:
extends:
- .base-rspec-ee-predictive
<% if rspec_files_per_test_level.dig(:unit, :parallelization) > 1 %>
parallel: <%= rspec_files_per_test_level.dig(:unit, :parallelization) %>
<% end %>
<% end %>
<% if rspec_files_per_test_level.dig(:integration, :files).size > 0 %>
rspec-ee integration predictive:
extends:
- .base-rspec-ee-predictive
<% if rspec_files_per_test_level.dig(:integration, :parallelization) > 1 %>
parallel: <%= rspec_files_per_test_level.dig(:integration, :parallelization) %>
<% end %>
<% end %>
<% if rspec_files_per_test_level.dig(:system, :files).size > 0 %>
rspec-ee system predictive:
extends:
- .base-rspec-ee-predictive
<% if rspec_files_per_test_level.dig(:system, :parallelization) > 1 %>
parallel: <%= rspec_files_per_test_level.dig(:system, :parallelization) %>
<% end %>
<% end %>
<% end %>

View file

@ -25,24 +25,20 @@ include:
# gems could not be found under some circumstance. No idea why, hours wasted. # gems could not be found under some circumstance. No idea why, hours wasted.
- run_timed_command "gem install knapsack --no-document" - run_timed_command "gem install knapsack --no-document"
- echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly" - echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"
- section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn" # Do not use 'bundle exec' here - run_timed_command "scripts/gitaly-test-spawn" # Do not use 'bundle exec' here
- echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K" - echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"
.predictive-rspec-tests:
variables:
RSPEC_TESTS_MAPPING_ENABLED: "true"
.single-db: .single-db:
variables: variables:
DECOMPOSED_DB: "false" DECOMPOSED_DB: "false"
.single-db-ci-connection:
extends: .single-db
variables:
CI_CONNECTION_DB: "true"
.single-db-rspec: .single-db-rspec:
extends: .single-db extends: .single-db
.single-db-ci-connection-rspec:
extends: .single-db-ci-connection
.praefect-with-db: .praefect-with-db:
variables: variables:
GITALY_PRAEFECT_WITH_DB: '1' GITALY_PRAEFECT_WITH_DB: '1'
@ -57,6 +53,7 @@ include:
RUBY_GC_MALLOC_LIMIT_MAX: 134217728 RUBY_GC_MALLOC_LIMIT_MAX: 134217728
RECORD_DEPRECATIONS: "true" RECORD_DEPRECATIONS: "true"
GEO_SECONDARY_PROXY: 0 GEO_SECONDARY_PROXY: 0
RSPEC_TESTS_FILTER_FILE: "${RSPEC_MATCHING_TESTS_PATH}"
SUCCESSFULLY_RETRIED_TEST_EXIT_CODE: 137 SUCCESSFULLY_RETRIED_TEST_EXIT_CODE: 137
needs: needs:
- job: "setup-test-env" - job: "setup-test-env"
@ -95,21 +92,21 @@ include:
- !reference [.base-script, script] - !reference [.base-script, script]
- rspec_paralellized_job "--tag ~quarantine --tag ~zoekt" - rspec_paralellized_job "--tag ~quarantine --tag ~zoekt"
.rspec-base-pg11:
extends:
- .rspec-base
- .use-pg11
.rspec-base-pg12: .rspec-base-pg12:
extends: extends:
- .rspec-base - .rspec-base
- .use-pg12 - .use-pg12
.rspec-base-pg13: .rspec-base-pg12-as-if-foss:
extends:
- .rspec-base
- .use-pg13
.rspec-base-pg13-as-if-foss:
extends: extends:
- .rspec-base - .rspec-base
- .as-if-foss - .as-if-foss
- .use-pg13 - .use-pg12
needs: needs:
- job: "setup-test-env" - job: "setup-test-env"
- job: "retrieve-tests-metadata" - job: "retrieve-tests-metadata"
@ -117,67 +114,49 @@ include:
- job: "detect-tests" - job: "detect-tests"
optional: true optional: true
.rspec-base-pg14: .rspec-base-pg13:
extends: extends:
- .rspec-base - .rspec-base
- .use-pg14 - .use-pg13
.rspec-ee-base-pg11:
extends:
- .rspec-base
- .use-pg11-es7-ee
.rspec-ee-base-pg12: .rspec-ee-base-pg12:
extends: extends:
- .rspec-base - .rspec-base
- .use-pg12-es7-ee - .use-pg12-es7-ee
.rspec-ee-base-pg12-es8:
extends:
- .rspec-base
- .use-pg12-es8-ee
- .rails:rules:run-search-tests
.rspec-ee-base-pg12-opensearch1:
extends:
- .rspec-base
- .use-pg12-opensearch1-ee
- .rails:rules:run-search-tests
.rspec-ee-base-pg12-opensearch2:
extends:
- .rspec-base
- .use-pg12-opensearch2-ee
- .rails:rules:run-search-tests
.rspec-ee-base-pg13: .rspec-ee-base-pg13:
extends: extends:
- .rspec-base - .rspec-base
- .use-pg13-es7-ee - .use-pg13-es7-ee
.rspec-ee-base-pg13-es8:
extends:
- .rspec-base
- .use-pg13-es8-ee
- .rails:rules:run-search-tests
.rspec-ee-base-pg13-opensearch1:
extends:
- .rspec-base
- .use-pg13-opensearch1-ee
- .rails:rules:run-search-tests
.rspec-ee-base-pg13-opensearch2:
extends:
- .rspec-base
- .use-pg13-opensearch2-ee
- .rails:rules:run-search-tests
.rspec-ee-base-pg14:
extends:
- .rspec-base
- .use-pg14-es7-ee
.rspec-ee-base-pg14-es8:
extends:
- .rspec-base
- .use-pg14-es8-ee
- .rails:rules:run-search-tests
.rspec-ee-base-pg14-opensearch1:
extends:
- .rspec-base
- .use-pg14-opensearch1-ee
- .rails:rules:run-search-tests
.rspec-ee-base-pg14-opensearch2:
extends:
- .rspec-base
- .use-pg14-opensearch2-ee
- .rails:rules:run-search-tests
.db-job-base: .db-job-base:
extends: extends:
- .rails-job-base - .rails-job-base
- .rails:rules:ee-and-foss-migration - .rails:rules:ee-and-foss-migration
- .use-pg13 - .use-pg12
stage: test stage: test
needs: ["setup-test-env"] needs: ["setup-test-env"]
# rspec job base specs # rspec job base specs

View file

@ -4,7 +4,6 @@ default:
stages: stages:
- prepare - prepare
- deploy
include: include:
- local: .gitlab/ci/global.gitlab-ci.yml - local: .gitlab/ci/global.gitlab-ci.yml
@ -57,38 +56,7 @@ release-environments-build-cng:
GITLAB_SHELL_VERSION: "${GITLAB_SHELL_VERSION}" GITLAB_SHELL_VERSION: "${GITLAB_SHELL_VERSION}"
GITALY_SERVER_VERSION: "${GITALY_SERVER_VERSION}" GITALY_SERVER_VERSION: "${GITALY_SERVER_VERSION}"
RUBY_VERSION: "${FULL_RUBY_VERSION}" RUBY_VERSION: "${FULL_RUBY_VERSION}"
IMAGE_TAG_EXT: "-${CI_COMMIT_SHORT_SHA}"
trigger: trigger:
project: gitlab-org/build/CNG-mirror project: gitlab-org/build/CNG-mirror
branch: $TRIGGER_BRANCH branch: $TRIGGER_BRANCH
strategy: depend strategy: depend
release-environments-deploy-env:
allow_failure: true
stage: deploy
needs: ["release-environments-build-cng"]
variables:
DEPLOY_ENV: deploy.env
script:
- ./scripts/construct-release-environments-versions.rb > $DEPLOY_ENV
artifacts:
reports:
dotenv: $DEPLOY_ENV
paths:
- $DEPLOY_ENV
expire_in: 7 days
when: always
release-environments-deploy:
allow_failure: true
stage: deploy
needs: ["release-environments-deploy-env"]
inherit:
variables: false
variables:
VERSIONS: "${VERSIONS}"
ENVIRONMENT: "${ENVIRONMENT}"
trigger:
project: gitlab-com/gl-infra/release-environments
branch: main
strategy: depend

View file

@ -3,6 +3,7 @@ include:
- template: Jobs/SAST.gitlab-ci.yml - template: Jobs/SAST.gitlab-ci.yml
- template: Jobs/Secret-Detection.gitlab-ci.yml - template: Jobs/Secret-Detection.gitlab-ci.yml
- template: Jobs/Dependency-Scanning.gitlab-ci.yml - template: Jobs/Dependency-Scanning.gitlab-ci.yml
- template: Jobs/License-Scanning.gitlab-ci.yml
code_quality: code_quality:
extends: extends:
@ -31,7 +32,7 @@ code_quality:
variables: variables:
SAST_BRAKEMAN_LEVEL: 2 # GitLab-specific SAST_BRAKEMAN_LEVEL: 2 # GitLab-specific
SAST_EXCLUDED_PATHS: "qa, spec, doc, ee/spec, config/gitlab.yml.example, tmp" # GitLab-specific SAST_EXCLUDED_PATHS: "qa, spec, doc, ee/spec, config/gitlab.yml.example, tmp" # GitLab-specific
SAST_EXCLUDED_ANALYZERS: bandit, flawfinder, phpcs-security-audit, pmd-apex, security-code-scan, spotbugs, eslint, nodejs-scan, sobelow SAST_EXCLUDED_ANALYZERS: bandit, flawfinder, phpcs-security-audit, pmd-apex, security-code-scan, spotbugs, eslint, nodejs-scan
brakeman-sast: brakeman-sast:
rules: !reference [".reports:rules:brakeman-sast", rules] rules: !reference [".reports:rules:brakeman-sast", rules]
@ -125,3 +126,11 @@ package_hunter-bundler:
- .reports:rules:package_hunter-bundler - .reports:rules:package_hunter-bundler
variables: variables:
PACKAGE_MANAGER: bundler PACKAGE_MANAGER: bundler
license_scanning:
extends: .default-retry
stage: lint
needs: []
artifacts:
expire_in: 1 week # GitLab-specific
rules: !reference [".reports:rules:license_scanning", rules]

View file

@ -5,14 +5,14 @@
extends: extends:
- .reports:rules:schedule-dast - .reports:rules:schedule-dast
image: image:
name: "${CI_TEMPLATE_REGISTRY_HOST}/security-products/dast:$DAST_VERSION" name: "${REGISTRY_HOST}/security-products/dast:$DAST_VERSION"
resource_group: dast_scan resource_group: dast_scan
variables: variables:
DAST_USERNAME_FIELD: "name:user[login]" DAST_USERNAME_FIELD: "user[login]"
DAST_PASSWORD_FIELD: "name:user[password]" DAST_PASSWORD_FIELD: "user[password]"
DAST_SUBMIT_FIELD: "css:.js-sign-in-button" DAST_SUBMIT_FIELD: "name:button"
DAST_FULL_SCAN_ENABLED: "true" DAST_FULL_SCAN_ENABLED: "true"
DAST_VERSION: 3 DAST_VERSION: 2
GIT_STRATEGY: none GIT_STRATEGY: none
# -Xmx is used to set the JVM memory to 6GB to prevent DAST OutOfMemoryError. # -Xmx is used to set the JVM memory to 6GB to prevent DAST OutOfMemoryError.
DAST_ZAP_CLI_OPTIONS: "-Xmx6144m" DAST_ZAP_CLI_OPTIONS: "-Xmx6144m"

View file

@ -4,7 +4,6 @@ default:
stages: stages:
- prepare - prepare
- deploy - deploy
- post-deploy
- qa - qa
- post-qa - post-qa
- dast - dast
@ -90,13 +89,13 @@ review-build-cng:
strategy: depend strategy: depend
.review-workflow-base: .review-workflow-base:
extends:
- .default-retry
image: ${REVIEW_APPS_IMAGE} image: ${REVIEW_APPS_IMAGE}
retry:
max: 2 # This is confusing but this means "3 runs at max"
variables: variables:
HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}" HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}"
DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}" DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}"
GITLAB_HELM_CHART_REF: "febc4ad69acb7bba0eeb4a62daa577d0b7c3ee71" # 6.9.1: https://gitlab.com/gitlab-org/charts/gitlab/-/commit/febc4ad69acb7bba0eeb4a62daa577d0b7c3ee71 GITLAB_HELM_CHART_REF: "afcef7854ac72c5ff958035ef210ba6c68ec800b" # 6.8.0: https://gitlab.com/gitlab-org/charts/gitlab/-/commit/afcef7854ac72c5ff958035ef210ba6c68ec800b
environment: environment:
name: review/${CI_COMMIT_REF_SLUG}${SCHEDULE_TYPE} # No separator for SCHEDULE_TYPE so it's compatible as before and looks nice without it name: review/${CI_COMMIT_REF_SLUG}${SCHEDULE_TYPE} # No separator for SCHEDULE_TYPE so it's compatible as before and looks nice without it
url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN} url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}
@ -110,7 +109,7 @@ review-deploy:
image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}dtzar/helm-kubectl:3.9.3 image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}dtzar/helm-kubectl:3.9.3
needs: needs:
- review-build-cng - review-build-cng
- review-delete-deployment # We always want to start from a clean slate (i.e. no helm release, no k8s namespace) - review-delete-deployment # We always want to start from a clean slate (i.e. no helm release, no k8s namespace)
cache: cache:
key: "review-deploy-dependencies-charts-${GITLAB_HELM_CHART_REF}-v1" key: "review-deploy-dependencies-charts-${GITLAB_HELM_CHART_REF}-v1"
paths: paths:
@ -126,7 +125,6 @@ review-deploy:
- *base-before_script - *base-before_script
- !reference [".use-kube-context", before_script] - !reference [".use-kube-context", before_script]
script: script:
- run_timed_command "retry delete_helm_release"
- run_timed_command "check_kube_domain" - run_timed_command "check_kube_domain"
- run_timed_command "download_chart" - run_timed_command "download_chart"
- run_timed_command "deploy" || (display_deployment_debug && exit 1) - run_timed_command "deploy" || (display_deployment_debug && exit 1)

View file

@ -1,11 +1,10 @@
include: include:
- project: gitlab-org/quality/pipeline-common - project: gitlab-org/quality/pipeline-common
ref: 5.1.1 ref: 2.0.0
file: file:
- /ci/base.gitlab-ci.yml - /ci/base.gitlab-ci.yml
- /ci/allure-report.yml - /ci/allure-report.yml
- /ci/knapsack-report.yml - /ci/knapsack-report.yml
- template: Verify/Browser-Performance.gitlab-ci.yml
.test-variables: .test-variables:
variables: variables:
@ -40,6 +39,7 @@ include:
WD_INSTALL_DIR: /usr/local/bin WD_INSTALL_DIR: /usr/local/bin
RSPEC_REPORT_OPTS: --force-color --order random --format documentation --format RspecJunitFormatter --out tmp/rspec-${CI_JOB_ID}.xml RSPEC_REPORT_OPTS: --force-color --order random --format documentation --format RspecJunitFormatter --out tmp/rspec-${CI_JOB_ID}.xml
script: script:
- export EE_LICENSE="$(cat $REVIEW_APPS_EE_LICENSE_FILE)"
- QA_COMMAND="bundle exec bin/qa ${QA_SCENARIO} ${QA_GITLAB_URL} -- ${QA_TESTS} ${RSPEC_REPORT_OPTS}" - QA_COMMAND="bundle exec bin/qa ${QA_SCENARIO} ${QA_GITLAB_URL} -- ${QA_TESTS} ${RSPEC_REPORT_OPTS}"
- echo "Running - '${QA_COMMAND}'" - echo "Running - '${QA_COMMAND}'"
- eval "$QA_COMMAND" - eval "$QA_COMMAND"
@ -107,14 +107,31 @@ review-qa-non-blocking-parallel:
- .rules:qa-non-blocking-parallel - .rules:qa-non-blocking-parallel
parallel: 5 parallel: 5
browser_performance: review-performance:
extends: extends:
- .default-retry - .default-retry
- .review:rules:review-performance - .review:rules:review-performance
image:
name: sitespeedio/sitespeed.io
entrypoint: [""]
stage: qa stage: qa
needs: ["review-deploy"] needs: ["review-deploy"]
variables: before_script:
URL: environment_url.txt - export CI_ENVIRONMENT_URL="$(cat environment_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:
- /start.sh --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
expire_in: 31d
e2e-test-report: e2e-test-report:
extends: extends:
@ -169,7 +186,7 @@ notify-slack:
TYPE: "(review-app) " TYPE: "(review-app) "
when: on_failure when: on_failure
script: script:
- bundle exec prepare-stage-reports --input-files "${CI_PROJECT_DIR}/qa/tmp/rspec-*.xml" - bundle exec gitlab-qa-report --prepare-stage-reports "$CI_PROJECT_DIR/qa/tmp/rspec-*.xml" # generate summary
- !reference [.notify-slack-qa, script] - !reference [.notify-slack-qa, script]
export-test-metrics: export-test-metrics:

View file

@ -20,7 +20,7 @@
# Run all tests when framework changes present or explicitly enabled full suite execution # Run all tests when framework changes present or explicitly enabled full suite execution
.qa-run-all-tests: &qa-run-all-tests .qa-run-all-tests: &qa-run-all-tests
if: $QA_FRAMEWORK_CHANGES == "true" || $QA_RUN_ALL_TESTS == "true" || $QA_RUN_ALL_E2E_LABEL == "true" if: $QA_FRAMEWORK_CHANGES == "true" || $QA_RUN_ALL_TESTS == "true"
.default-branch: &default-branch .default-branch: &default-branch
if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH

View file

@ -16,7 +16,7 @@ review-cleanup:
- install_gitlab_gem - install_gitlab_gem
- setup_gcloud - setup_gcloud
script: script:
- scripts/review_apps/automated_cleanup.rb --dry-run="${DRY_RUN:-false}" || (scripts/slack review-apps-monitoring "☠️ \`${CI_JOB_NAME}\` failed! ☠️ See ${CI_JOB_URL} - <https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/blob/main/runbooks/review-apps.md#review-cleanup-job-failed|📗 RUNBOOK 📕>" warning "GitLab Bot" && exit 1); - scripts/review_apps/automated_cleanup.rb || (scripts/slack review-apps-monitoring "☠️ \`${CI_JOB_NAME}\` failed! ☠️ See ${CI_JOB_URL} - <https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/blob/main/runbooks/review-apps.md#review-cleanup-job-failed|📗 RUNBOOK 📕>" warning "GitLab Bot" && exit 1);
review-stop: review-stop:
extends: extends:

File diff suppressed because it is too large Load diff

View file

@ -51,6 +51,22 @@ gitlab_git_test:
script: script:
- spec/support/prepare-gitlab-git-test-for-commit --check-for-changes - spec/support/prepare-gitlab-git-test-for-commit --check-for-changes
no-ee-check:
extends:
- .predictive-job
- .setup:rules:no-ee-check
stage: test
script:
- scripts/no-dir-check ee
no-jh-check:
extends:
- .predictive-job
- .setup:rules:no-jh-check
stage: test
script:
- scripts/no-dir-check jh
verify-ruby-3.0: verify-ruby-3.0:
extends: extends:
- .absolutely-predictive-job - .absolutely-predictive-job
@ -63,7 +79,7 @@ verify-ruby-3.0:
verify-tests-yml: verify-tests-yml:
extends: extends:
- .setup:rules:verify-tests-yml - .setup:rules:verify-tests-yml
image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION}-alpine3.16 image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION}-alpine3.13
stage: test stage: test
needs: [] needs: []
script: script:
@ -83,14 +99,14 @@ verify-approvals:
generate-frontend-fixtures-mapping: generate-frontend-fixtures-mapping:
extends: extends:
- .setup:rules:generate-frontend-fixtures-mapping - .setup:rules:generate-frontend-fixtures-mapping
- .use-pg13 - .use-pg12
- .rails-cache - .rails-cache
needs: ["setup-test-env"] needs: ["setup-test-env"]
stage: prepare stage: prepare
before_script: before_script:
- !reference [.default-before_script, before_script] - !reference [.default-before_script, before_script]
- source ./scripts/rspec_helpers.sh - source ./scripts/rspec_helpers.sh
- section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"; # Do not use 'bundle exec' here - run_timed_command "scripts/gitaly-test-spawn"
script: script:
- generate_frontend_fixtures_mapping - generate_frontend_fixtures_mapping
artifacts: artifacts:
@ -106,7 +122,7 @@ detect-tests:
variables: variables:
RSPEC_TESTS_MAPPING_ENABLED: "true" RSPEC_TESTS_MAPPING_ENABLED: "true"
before_script: before_script:
- apt-get update && apt-get install -y curl # Not present in ruby-slim, so we add it manually - apt-get update && apt-get install -y curl # Not present in ruby-slim, so we add it manually
script: script:
- source ./scripts/utils.sh - source ./scripts/utils.sh
- source ./scripts/rspec_helpers.sh - source ./scripts/rspec_helpers.sh
@ -118,12 +134,13 @@ detect-tests:
- | - |
if [ -n "$CI_MERGE_REQUEST_IID" ]; then if [ -n "$CI_MERGE_REQUEST_IID" ]; then
mkdir -p $(dirname "$RSPEC_CHANGED_FILES_PATH") mkdir -p $(dirname "$RSPEC_CHANGED_FILES_PATH")
tooling/bin/find_changes ${RSPEC_CHANGED_FILES_PATH};
tooling/bin/predictive_tests tooling/bin/find_tests ${RSPEC_CHANGED_FILES_PATH} ${RSPEC_MATCHING_TESTS_PATH};
tooling/bin/js_to_system_specs_mappings ${RSPEC_CHANGED_FILES_PATH} ${RSPEC_MATCHING_TESTS_PATH};
tooling/bin/find_changes ${RSPEC_CHANGED_FILES_PATH} ${RSPEC_MATCHING_TESTS_PATH} ${FRONTEND_FIXTURES_MAPPING_PATH};
filter_rspec_matched_foss_tests ${RSPEC_MATCHING_TESTS_PATH} ${RSPEC_MATCHING_TESTS_FOSS_PATH}; filter_rspec_matched_foss_tests ${RSPEC_MATCHING_TESTS_PATH} ${RSPEC_MATCHING_TESTS_FOSS_PATH};
filter_rspec_matched_ee_tests ${RSPEC_MATCHING_TESTS_PATH} ${RSPEC_MATCHING_TESTS_EE_PATH}; filter_rspec_matched_ee_tests ${RSPEC_MATCHING_TESTS_PATH} ${RSPEC_MATCHING_TESTS_EE_PATH};
tooling/bin/view_to_js_mappings ${RSPEC_CHANGED_FILES_PATH} ${RSPEC_MATCHING_JS_FILES_PATH};
echoinfo "Changed files: $(cat $RSPEC_CHANGED_FILES_PATH)"; echoinfo "Changed files: $(cat $RSPEC_CHANGED_FILES_PATH)";
echoinfo "Related FOSS RSpec tests: $(cat $RSPEC_MATCHING_TESTS_FOSS_PATH)"; echoinfo "Related FOSS RSpec tests: $(cat $RSPEC_MATCHING_TESTS_FOSS_PATH)";
echoinfo "Related EE RSpec tests: $(cat $RSPEC_MATCHING_TESTS_EE_PATH)"; echoinfo "Related EE RSpec tests: $(cat $RSPEC_MATCHING_TESTS_EE_PATH)";
@ -135,10 +152,9 @@ detect-tests:
- ${FRONTEND_FIXTURES_MAPPING_PATH} - ${FRONTEND_FIXTURES_MAPPING_PATH}
- ${RSPEC_CHANGED_FILES_PATH} - ${RSPEC_CHANGED_FILES_PATH}
- ${RSPEC_MATCHING_JS_FILES_PATH} - ${RSPEC_MATCHING_JS_FILES_PATH}
- ${RSPEC_MATCHING_TESTS_EE_PATH}
- ${RSPEC_MATCHING_TESTS_FOSS_PATH}
- ${RSPEC_MATCHING_TESTS_PATH} - ${RSPEC_MATCHING_TESTS_PATH}
- ${RSPEC_VIEWS_INCLUDING_PARTIALS_PATH} - ${RSPEC_MATCHING_TESTS_FOSS_PATH}
- ${RSPEC_MATCHING_TESTS_EE_PATH}
detect-previous-failed-tests: detect-previous-failed-tests:
extends: extends:
@ -163,6 +179,8 @@ e2e-test-pipeline-generate:
stage: prepare stage: prepare
variables: variables:
ENV_FILE: $CI_PROJECT_DIR/qa_tests_vars.env ENV_FILE: $CI_PROJECT_DIR/qa_tests_vars.env
OMNIBUS_PIPELINE_YML: package-and-test-pipeline.yml
REVIEW_PIPELINE_YML: review-app-pipeline.yml
COLORIZED_LOGS: "true" COLORIZED_LOGS: "true"
script: script:
- bundle exec rake "ci:detect_changes[$ENV_FILE]" - bundle exec rake "ci:detect_changes[$ENV_FILE]"
@ -170,4 +188,5 @@ e2e-test-pipeline-generate:
artifacts: artifacts:
expire_in: 1 day expire_in: 1 day
paths: paths:
- '*-pipeline.yml' - $OMNIBUS_PIPELINE_YML
- $REVIEW_PIPELINE_YML

View file

@ -45,7 +45,7 @@ static-verification-with-database:
- .static-analysis-base - .static-analysis-base
- .rubocop-job-cache - .rubocop-job-cache
- .static-analysis:rules:static-verification-with-database - .static-analysis:rules:static-verification-with-database
- .use-pg13 - .use-pg12
script: script:
- bundle exec rake lint:static_verification_with_database - bundle exec rake lint:static_verification_with_database
variables: variables:

View file

@ -18,7 +18,7 @@ retrieve-tests-metadata:
image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION}-slim image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION}-slim
stage: prepare stage: prepare
script: script:
- apt-get update && apt-get install -y curl # Not present in ruby-slim, so we add it manually - apt-get update && apt-get install -y curl # Not present in ruby-slim, so we add it manually
- install_gitlab_gem - install_gitlab_gem
- source ./scripts/rspec_helpers.sh - source ./scripts/rspec_helpers.sh
- retrieve_tests_metadata - retrieve_tests_metadata
@ -32,17 +32,17 @@ update-tests-metadata:
- retrieve-tests-metadata - retrieve-tests-metadata
- generate-frontend-fixtures-mapping - generate-frontend-fixtures-mapping
- setup-test-env - setup-test-env
- rspec migration pg13 - rspec migration pg12
- rspec-all frontend_fixture - rspec-all frontend_fixture
- rspec unit pg13 - rspec unit pg12
- rspec integration pg13 - rspec integration pg12
- rspec system pg13 - rspec system pg12
- rspec background_migration pg13 - rspec background_migration pg12
- rspec-ee migration pg13 - rspec-ee migration pg12
- rspec-ee unit pg13 - rspec-ee unit pg12
- rspec-ee integration pg13 - rspec-ee integration pg12
- rspec-ee system pg13 - rspec-ee system pg12
- rspec-ee background_migration pg13 - rspec-ee background_migration pg12
script: script:
- run_timed_command "retry gem install fog-aws mime-types activesupport rspec_profiling postgres-copy --no-document" - run_timed_command "retry gem install fog-aws mime-types activesupport rspec_profiling postgres-copy --no-document"
- source ./scripts/rspec_helpers.sh - source ./scripts/rspec_helpers.sh

View file

@ -1,7 +1,15 @@
default:
interruptible: true
include: include:
- local: .gitlab/ci/qa-common/main.gitlab-ci.yml - local: .gitlab/ci/package-and-test/rules.gitlab-ci.yml
- local: .gitlab/ci/qa-common/rules.gitlab-ci.yml
- local: .gitlab/ci/qa-common/variables.gitlab-ci.yml dont-interrupt-me:
extends: .rules:dont-interrupt
stage: test
interruptible: false
script:
- echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible."
.run-tests: .run-tests:
stage: test stage: test
@ -13,19 +21,19 @@ include:
before_script: before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- sysctl -n -w fs.inotify.max_user_watches=524288 - sysctl -n -w fs.inotify.max_user_watches=524288
- echo "SUITE_RAN=true" > suite_status.env
variables: variables:
DOCKER_DRIVER: overlay2 DOCKER_DRIVER: overlay2
DOCKER_HOST: tcp://docker:2375 DOCKER_HOST: tcp://docker:2375
QA_GDK_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-qa-gdk:master" QA_GDK_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-qa-gdk:master"
QA_GENERATE_ALLURE_REPORT: "true" QA_GENERATE_ALLURE_REPORT: "false"
QA_CAN_TEST_PRAEFECT: "false" QA_CAN_TEST_PRAEFECT: "false"
QA_INTERCEPT_REQUESTS: "false" QA_INTERCEPT_REQUESTS: "false"
QA_RUN_TYPE: e2e-test-on-gdk
TEST_LICENSE_MODE: $QA_TEST_LICENSE_MODE TEST_LICENSE_MODE: $QA_TEST_LICENSE_MODE
EE_LICENSE: $QA_EE_LICENSE EE_LICENSE: $QA_EE_LICENSE
GITHUB_ACCESS_TOKEN: $QA_GITHUB_ACCESS_TOKEN GITHUB_ACCESS_TOKEN: $QA_GITHUB_ACCESS_TOKEN
GITLAB_QA_ADMIN_ACCESS_TOKEN: $QA_ADMIN_ACCESS_TOKEN GITLAB_QA_ADMIN_ACCESS_TOKEN: $QA_ADMIN_ACCESS_TOKEN
RSPEC_REPORT_OPTS: "--format QA::Support::JsonFormatter --out tmp/rspec-${CI_JOB_ID}.json --format RspecJunitFormatter --out tmp/rspec-${CI_JOB_ID}.xml --format html --out tmp/rspec-${CI_JOB_ID}.htm --color --format documentation" QA_KNAPSACK_REPORTS: qa-smoke,ee-instance-parallel
timeout: 2 hours timeout: 2 hours
artifacts: artifacts:
when: always when: always
@ -33,9 +41,6 @@ include:
- test_output - test_output
- logs - logs
expire_in: 7 days expire_in: 7 days
reports:
junit: test_output/**/rspec-*.xml
dotenv: suite_status.env
script: script:
- echo -e "\e[0Ksection_start:`date +%s`:pull_image\r\e[0KPull GDK QA image" - echo -e "\e[0Ksection_start:`date +%s`:pull_image\r\e[0KPull GDK QA image"
- docker pull ${QA_GDK_IMAGE} - docker pull ${QA_GDK_IMAGE}
@ -44,7 +49,7 @@ include:
- cd qa && bundle install --jobs=$(nproc) --retry=3 --quiet - cd qa && bundle install --jobs=$(nproc) --retry=3 --quiet
- mkdir -p $CI_PROJECT_DIR/test_output $CI_PROJECT_DIR/logs/gdk $CI_PROJECT_DIR/logs/gitlab - mkdir -p $CI_PROJECT_DIR/test_output $CI_PROJECT_DIR/logs/gdk $CI_PROJECT_DIR/logs/gitlab
# This command matches the permissions of the user that runs GDK inside the container. # This command matches the permissions of the user that runs GDK inside the container.
- chown -R 1000:1000 $CI_PROJECT_DIR/test_output $CI_PROJECT_DIR/logs $CI_PROJECT_DIR/qa/knapsack - chown -R 1000:1000 $CI_PROJECT_DIR/test_output $CI_PROJECT_DIR/logs
- | - |
docker run --rm --name gdk --add-host gdk.test:127.0.0.1 --shm-size=2gb \ docker run --rm --name gdk --add-host gdk.test:127.0.0.1 --shm-size=2gb \
--env-file <(bundle exec rake ci:env_var_name_list) \ --env-file <(bundle exec rake ci:env_var_name_list) \
@ -52,20 +57,9 @@ include:
--volume $CI_PROJECT_DIR/test_output:/home/gdk/gdk/gitlab/qa/tmp:z \ --volume $CI_PROJECT_DIR/test_output:/home/gdk/gdk/gitlab/qa/tmp:z \
--volume $CI_PROJECT_DIR/logs/gdk:/home/gdk/gdk/log \ --volume $CI_PROJECT_DIR/logs/gdk:/home/gdk/gdk/log \
--volume $CI_PROJECT_DIR/logs/gitlab:/home/gdk/gdk/gitlab/log \ --volume $CI_PROJECT_DIR/logs/gitlab:/home/gdk/gdk/gitlab/log \
--volume $CI_PROJECT_DIR/qa/knapsack:/home/gdk/gdk/gitlab/qa/knapsack \ ${QA_GDK_IMAGE} "${CI_COMMIT_REF_SLUG}" "$TEST_GDK_TAGS --tag ~requires_praefect" || true
${QA_GDK_IMAGE} "${CI_COMMIT_SHA}" "$RSPEC_REPORT_OPTS $TEST_GDK_TAGS --tag ~requires_praefect" - echo -e "\e[0Ksection_end:`date +%s`:launch_gdk_and_tests\r\e[0K"
# The above image's launch script takes two arguments only - first one is the commit sha and the second one Rspec Args
allow_failure: true allow_failure: true
after_script:
- |
if [ "$CI_JOB_STATUS" == "failed" ]; then
echo "SUITE_FAILED=true" >> suite_status.env
fi
download-knapsack-report:
extends:
- .download-knapsack-report
- .rules:download-knapsack
test-on-gdk-smoke: test-on-gdk-smoke:
extends: extends:
@ -73,6 +67,7 @@ test-on-gdk-smoke:
parallel: 2 parallel: 2
variables: variables:
TEST_GDK_TAGS: "--tag smoke" TEST_GDK_TAGS: "--tag smoke"
QA_KNAPSACK_REPORT_NAME: qa-smoke
rules: rules:
- when: always - when: always
@ -80,50 +75,7 @@ test-on-gdk-full:
extends: extends:
- .run-tests - .run-tests
parallel: 5 parallel: 5
variables:
QA_KNAPSACK_REPORT_NAME: ee-instance-parallel
rules: rules:
- when: manual - when: manual
# ==========================================
# Post test stage
# ==========================================
e2e-test-report:
extends:
- .e2e-test-report
- .rules:report:allure-report
variables:
ALLURE_RESULTS_GLOB: test_output/allure-results
upload-knapsack-report:
extends:
- .upload-knapsack-report
- .rules:report:process-results
variables:
QA_KNAPSACK_REPORT_FILE_PATTERN: $CI_PROJECT_DIR/test_output/knapsack/*/*.json
export-test-metrics:
extends:
- .export-test-metrics
- .rules:report:process-results
variables:
QA_METRICS_REPORT_FILE_PATTERN: $CI_PROJECT_DIR/test_output/test-metrics-*.json
relate-test-failures:
extends:
- .relate-test-failures
- .rules:report:process-results
variables:
QA_RSPEC_JSON_FILE_PATTERN: $CI_PROJECT_DIR/test_output/rspec-*.json
generate-test-session:
extends:
- .generate-test-session
- .rules:report:process-results
variables:
QA_RSPEC_JSON_FILE_PATTERN: $CI_PROJECT_DIR/test_output/rspec-*.json
notify-slack:
extends:
- .notify-slack
- .rules:report:process-results
variables:
QA_RSPEC_XML_FILE_PATTERN: $CI_PROJECT_DIR/test_output/rspec-*.xml

View file

@ -38,6 +38,14 @@ vendor omniauth-azure-oauth2:
include: vendor/gems/omniauth-azure-oauth2/.gitlab-ci.yml include: vendor/gems/omniauth-azure-oauth2/.gitlab-ci.yml
strategy: depend strategy: depend
vendor omniauth-cas3:
extends:
- .vendor:rules:omniauth-cas3
needs: []
trigger:
include: vendor/gems/omniauth-cas3/.gitlab-ci.yml
strategy: depend
vendor omniauth_crowd: vendor omniauth_crowd:
extends: extends:
- .vendor:rules:omniauth_crowd - .vendor:rules:omniauth_crowd
@ -85,19 +93,3 @@ vendor gitlab_active_record:
trigger: trigger:
include: vendor/gems/gitlab_active_record/.gitlab-ci.yml include: vendor/gems/gitlab_active_record/.gitlab-ci.yml
strategy: depend strategy: depend
vendor cloud_profiler_agent:
extends:
- .vendor:rules:cloud_profiler_agent
needs: []
trigger:
include: vendor/gems/cloud_profiler_agent/.gitlab-ci.yml
strategy: depend
vendor sidekiq-reliable-fetch:
extends:
- .vendor:rules:sidekiq-reliable-fetch
needs: []
trigger:
include: vendor/gems/sidekiq-reliable-fetch/.gitlab-ci.yml
strategy: depend

View file

@ -10,7 +10,7 @@ workhorse:verify:
.workhorse:test: .workhorse:test:
extends: .workhorse:rules:workhorse extends: .workhorse:rules:workhorse
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}-rust-${RUST_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.36-exiftool-12.60 image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}:git-2.36
variables: variables:
GITALY_ADDRESS: "tcp://127.0.0.1:8075" GITALY_ADDRESS: "tcp://127.0.0.1:8075"
stage: test stage: test
@ -18,6 +18,7 @@ workhorse:verify:
- setup-test-env - setup-test-env
before_script: before_script:
- go version - go version
- apt-get update && apt-get -y install libimage-exiftool-perl
- scripts/gitaly-test-build - scripts/gitaly-test-build
script: script:
- make -C workhorse test - make -C workhorse test
@ -36,10 +37,7 @@ workhorse:test go:
workhorse:test fips: workhorse:test fips:
extends: .workhorse:test extends: .workhorse:test
parallel: image: registry.gitlab.com/gitlab-org/gitlab-omnibus-builder/ubuntu_20.04_fips:4.0.0
matrix:
- GO_VERSION: ["1.18", "1.19"]
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/ubi-${UBI_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}-rust-${RUST_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.36-exiftool-12.60
variables: variables:
FIPS_MODE: 1 FIPS_MODE: 1

View file

@ -1,147 +0,0 @@
<!--
HOW TO USE THIS TEMPLATE
To propose an AI experiment, focus on completing the “Experiment” section first. As you refine the idea and gather feedback on your experiment, use the “Feature release” section to define how it will evolve as a Beta or GA capability. It's important that we link experiment to feature release. Feel free to add sections, but keep the existing ones.
You can choose how to get started with this template. For example, the proposal can start as an issue, and then be promoted to an epic to house all the work related to the experiment/prototype and feature release. If you prefer to start with an epic, you have to manually apply the proposal template. Regardless, if the experiment is eventually prioritized for development, the template content will need to appear in a top-level epic so it can be tracked alongside other prioritized AI experiments.
TITLE FORMAT
🤖 [AI Proposal] {Need/outcome} {Beneficiary} {Job/Small Job}
The title should be something that is easily understood that quickly communicates the intent of the project allowing team members to easily understand and recognize the expected work that will be done. A proposal title should combine the beneficiary of the feature/UI, the job it will allow them to accomplish (see https://about.gitlab.com/handbook/product/ux/jobs-to-be-done/#how-to-write-a-jtbd), and their expected outcome when the work is delivered. Well-defined statements are concise without sacrificing the substance of the proposal so that anyone can understand it at a glance. (e.g. {Reduce the effort} {for security teams} {when prioritizing business-critical risks in their assets}).
-->
# Experiment
This section should be completed prior to work on the Experiment beginning.
# [Experiment](https://docs.gitlab.com/ee/policy/alpha-beta-support.html#experiment)
## Problem to be solved
### User problem
_What user problem will this solve?_
### Solution hypothesis
_Why do you believe this AI solution is a good way to solve this problem?_
### Assumption
_What assumptions are you making about this problem and the solution?_
### Personas
_What [personas](https://about.gitlab.com/handbook/product/personas/#list-of-user-personas) have this problem, who is the intended user?_
## Proposal
<!-- Explain the proposed changes, including details around usage and business drivers. -->
### Success
_How will you measure whether this experiment is a success?_
# Feature release
<!-- DO NOT REMOVE THIS SECTION
Although the initial focus is on the “Experiment” section, do not remove this “Feature release” section. It's important that we link experiment to feature release. Fill this section as you progress.
-->
### Main Job story
_What job to be done will this solve?_
<!-- What is the [Main Job story](https://about.gitlab.com/handbook/product/ux/jobs-to-be-done/#how-to-write-a-jtbd) that this proposal was derived from? (e.g. When I am on triage rotation, I want to address all the business-critical risks in my assets, So I can minimize the likelihood of my organization being compromised by a security breach.) -->
## Proposal updates/additions
<!-- Explain any changes or updates to the original proposal from the experiment, including details around usage, business drivers, and reasonings that drove the updates/additions. -->
### Problem validation
_What validation exists that customers have this problem?_
<!-- Refer to https://about.gitlab.com/handbook/product/ux/ux-research/research-in-the-AI-space/#guideline-1-problem-validation --- to help identify and understand user needs -->
### Business objective
_What business objective will be achieved with this proposal?_
<!-- Objectives (from a business point of view) that will be achieved upon completion. (For instance, Increase engagement by making the experience efficient while reducing the chances of users overlooking high-priority items. -->
### Confidence
_Has this proposal been derived from research?_
<!-- How well do we understand the user's problem and their need? Refer to https://about.gitlab.com/handbook/product/ux/product-design/ux-roadmaps/#confidence to assess confidence -->
| Confidence | Research |
| ----------------- | ------------------------------ |
| [High/Medium/Low] | [research/insight issue](Link) |
### Requirements
_What tasks or actions should the user be capable of performing with this feature?_
<!-- Requirements can be taken from existing features or design issues used to build this proposal. Any related issues should be linked with this issue in the Feature/solution issues section below. They are more granular validated needs, goals, and additional details that the proposal encompasses. -->
> ⚠️ Related feature and research issues should be linked in the related issues section (Delete this line when this is done)
#### The user needs to be able to:
- ...
- ...
## Checklist
### Experiment
<details> <summary> Issue information </summary>
- [ ] Add information to the issue body about:
- [ ] The user problem being solved
- [ ] Your assumptions
- [ ] Who it's for, list of personas impacted
- [ ] Your proposal
- [ ] Add relevant designs to the Design Management area of the issue if available
- [ ] Confirm that an unexpected outage of this feature will not negatively impact the application or other features
- [ ] Add a feature flag so that this feature can be quickly disabled if/when needed
- [ ] If this experiment introduces a new service or data store, ensure it is not processing or storing [red data](https://about.gitlab.com/handbook/security/data-classification-standard.html#data-classification-levels) without a security and if needed legal review
- *NOTE*: We recommend using one of the already adopted models or data stores. If you need to use something else, be aware that using other models or data stores will require additional review during the feature stage for operational fitness and compliance.
- [ ] Ensure this issue has the ~wg-ai-integration label to ensure visibility to various teams working on this
</details>
### Feature release
<details> <summary> Issue information </summary>
- [ ] Add information to the issue body about:
- [ ] Your proposal
- [ ] The Job Statement it's expected to satisfy
- [ ] Details about the user problem and provide any research or problem validation
- [ ] List the personas impacted by the proposal.
- [ ] Add all relevant solution validation issues to the Linked items section that shows this proposal will solve the customer problem, or details explaining why it's not possible to provide that validation.
- [ ] Add relevant designs to the Design Management area of the issue.
- [ ] You have adhered to our [Definition of Done](https://docs.gitlab.com/ee/development/contributing/merge_request_workflow.html#definition-of-done) standards
- [ ] Ensure this issue has the ~wg-ai-integration label to ensure visibility to various teams working on this
</details>
<details> <summary> Technical needs </summary>
- [ ] Please consider the operational aspects of the feature you are creating. A list of things to think about is in: https://gitlab.com/gitlab-org/gitlab/-/issues/403859. We will be improving this process in the future: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117637#note_1353253349.
- [ ] @ mention your [AppSec Stable Counterpart](https://about.gitlab.com/handbook/product/categories/) and read the [AI secure coding guidelines](https://docs.gitlab.com/ee/development/secure_coding_guidelines.html#artificial-intelligence-ai-features)
1. Work estimate and skills needs to build an ML viable feature: To build any ML feature depending on the work, there are many personas that contribute including, Data Scientist, NLP engineer, ML Engineer, MLOps Engineer, ML Infra engineers, and Fullstack engineer to integrate the ML Services with Gitlab. Post-prototype we would assess the skills needed to build a production-grade ML feature for the prototype.
2. Data Limitation: We would like to upfront validate if we have viable data for the feature including whether we can use the DataOps pipeline of ModelOps or create a custom one. We would want to understand the training data, test data, and feedback data to dial up the accuracy and the limitations of the data.
3. Model Limitation: We would want to understand if we can use an open-source pre-trained model, tune and customize it or start a model from scratch as well. Further, we would assess based on the ModelOps model evaluation framework which would be the right model to use based on the use case.
4. Cost, Scalability, Reliability: We would want to estimate the cost of hosting, serving, inference of the model, and the full end-to-end infrastructure including monitoring and observability.
5. Legal and Ethical Framework: We would want to align with legal and ethical framework like any other ModelOps features to cover across the nine principles of responsible ML and any legal support needed.
</details>
<details> <summary> Dependency needs </summary>
- [ ] Please consider the operational aspects of the service you are creating. A list of things to think about is in: https://gitlab.com/gitlab-org/gitlab/-/issues/403859. We will be improving this process in the future: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117637#note_1353253349.
</details>
<details> <summary> Legal needs </summary>
- [ ] TBD
</details>
## Additional resources
- If you'd like help with technical validation, or would like to discuss UX considerations for AI mention the AI Assisted group using `@gitlab-org/modelops/applied-ml`.
- Read about our [AI Integration strategy](https://internal-handbook.gitlab.io/handbook/product/ai-strategy/ai-integration-effort/)
- Slack channels
- `#wg_ai_integration` - Slack channel for the working group and the high level alignment on getting AI ready for Production (Development, Product, UX, Legal, etc.) But from the other channels fell free to reach out and post progress here
- `#ai_integration_dev_lobby` - Channel for all implementation related topics and discussions of actual AI features (e.g. explain the code)
- `#ai_enablement_team` - Channel for the AI Enablement Team which is building the base for all features (experimentation API, Abstraction Layer, Embeddings, etc.)
/label ~wg-ai-integration
/cc @tmccaslin @hbenson @wayne @pedroms @jmandell
/confidential

View file

@ -49,9 +49,9 @@ Which tier is this feature available in?
Please add links to the relevant merge requests. Please add links to the relevant merge requests.
- As soon as possible, but no later than the third milestone preceding the major release (for example, given the following release schedule: `14.8, 14.9, 14.10, 15.0` `14.8` is the third milestone preceding the major release): - As soon as possible, but no later than the third milestone preceding the major release (for example, given the following release schedule: `14.8, 14.9, 14.10, 15.0` `14.8` is the third milestone preceding the major release):
- [ ] A [deprecation announcement entry](https://about.gitlab.com/handbook/marketing/blog/release-posts/#creating-the-announcement) has been created so the deprecation will appear in release posts and on the [general deprecation page](https://docs.gitlab.com/ee/update/deprecations). - [ ] A [deprecation announcement entry](https://about.gitlab.com/handbook/marketing/blog/release-posts/#creating-a-deprecation-announcement) has been created so the deprecation will appear in release posts and on the [general deprecation page](https://docs.gitlab.com/ee/update/deprecations).
- [ ] Documentation has been updated to mark the feature as [deprecated](https://docs.gitlab.com/ee/development/documentation/versions.html#deprecations-and-removals). - [ ] Documentation has been updated to mark the feature as [deprecated](https://docs.gitlab.com/ee/development/documentation/versions.html#deprecations-and-removals).
- [ ] On or before the major milestone: A [removal entry](https://about.gitlab.com/handbook/marketing/blog/release-posts/#creating-the-announcement-1) has been created so the removal will appear on the [removals by milestones](https://docs.gitlab.com/ee/update/removals) page and be announced in the release post. - [ ] On or before the major milestone: A [removal entry](https://about.gitlab.com/handbook/marketing/blog/release-posts/#removals) has been created so the removal will appear on the [removals by milestones](https://docs.gitlab.com/ee/update/removals) page and be announced in the release post.
- On the major milestone: - On the major milestone:
- [ ] The deprecated item has been removed. - [ ] The deprecated item has been removed.
- [ ] If the removal of the deprecated item is a [breaking change](https://about.gitlab.com/handbook/product/gitlab-the-product/#examples-of-breaking-changes), the merge request is labeled ~"breaking change". - [ ] If the removal of the deprecated item is a [breaking change](https://about.gitlab.com/handbook/product/gitlab-the-product/#examples-of-breaking-changes), the merge request is labeled ~"breaking change".

View file

@ -48,4 +48,4 @@ Are there any other stages or teams involved that need to be kept in the loop?
- [ ] Close this rollout issue. - [ ] Close this rollout issue.
/label ~"feature flag" ~"type::maintenance" ~"maintenance::removal" /label ~"feature flag" ~"type::feature" ~"feature::addition"

View file

@ -75,15 +75,11 @@ Note: Please make sure to run the chatops commands in the slack channel that get
- [ ] `/chatops run auto_deploy status <merge-commit-of-your-feature>` - [ ] `/chatops run auto_deploy status <merge-commit-of-your-feature>`
- [ ] Enable the feature globally on non-production environments. - [ ] Enable the feature globally on non-production environments.
- [ ] `/chatops run feature set <feature-flag-name> true --dev --staging --staging-ref` - [ ] `/chatops run feature set <feature-flag-name> true --dev --staging --staging-ref`
- If the feature flag causes QA end-to-end tests to fail:
- [ ] Disable the feature flag on staging to avoid blocking [deployments](https://about.gitlab.com/handbook/engineering/deployments-and-releases/deployments/).
- [ ] Verify that the feature works as expected. Posting the QA result in this issue is preferable. - [ ] Verify that the feature works as expected. Posting the QA result in this issue is preferable.
The best environment to validate the feature in is [staging-canary](https://about.gitlab.com/handbook/engineering/infrastructure/environments/#staging-canary) The best environment to validate the feature in is [staging-canary](https://about.gitlab.com/handbook/engineering/infrastructure/environments/#staging-canary)
as this is the first environment deployed to. Note you will need to make sure you are configured to use canary as outlined [here](https://about.gitlab.com/handbook/engineering/infrastructure/environments/canary-stage/) as this is the first environment deployed to. Note you will need to make sure you are configured to use canary as outlined [here](https://about.gitlab.com/handbook/engineering/infrastructure/environments/canary-stage/)
when accessing the staging environment in order to make sure you are testing appropriately. when accessing the staging environment in order to make sure you are testing appropriately.
For assistance with QA end-to-end test failures, please reach out via the `#quality` Slack channel. Note that QA test failures on staging-ref [don't block deployments](https://about.gitlab.com/handbook/engineering/infrastructure/environments/staging-ref/#how-to-use-staging-ref).
### Specific rollout on production ### Specific rollout on production
For visibility, all `/chatops` commands that target production should be executed in the `#production` slack channel and cross-posted (with the command results) to the responsible team's slack channel (`#g_TEAM_NAME`). For visibility, all `/chatops` commands that target production should be executed in the `#production` slack channel and cross-posted (with the command results) to the responsible team's slack channel (`#g_TEAM_NAME`).

View file

@ -54,7 +54,7 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
```ruby ```ruby
# frozen_string_literal: true # frozen_string_literal: true
class CreateCoolWidgetRegistry < Gitlab::Database::Migration[2.1] class CreateCoolWidgetRegistry < Gitlab::Database::Migration[2.0]
def change def change
create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t| create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t|
t.bigint :cool_widget_id, null: false t.bigint :cool_widget_id, null: false
@ -80,19 +80,11 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
t.index :retry_at t.index :retry_at
t.index :state t.index :state
# To optimize performance of CoolWidgetRegistry.verification_failed_batch # To optimize performance of CoolWidgetRegistry.verification_failed_batch
t.index :verification_retry_at, t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))"
name: :cool_widget_registry_failed_verification,
order: "NULLS FIRST",
where: "((state = 2) AND (verification_state = 3))"
# To optimize performance of CoolWidgetRegistry.needs_verification_count # To optimize performance of CoolWidgetRegistry.needs_verification_count
t.index :verification_state, t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))"
name: :cool_widget_registry_needs_verification,
where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))"
# To optimize performance of CoolWidgetRegistry.verification_pending_batch # To optimize performance of CoolWidgetRegistry.verification_pending_batch
t.index :verified_at, t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))"
name: :cool_widget_registry_pending_verification,
order: "NULLS FIRST",
where: "((state = 2) AND (verification_state = 0))"
end end
end end
end end
@ -100,7 +92,7 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md). - [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
- [ ] Add the new table to the [database dictionary](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/database/database_dictionary.md) defined in [`ee/db/geo/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/ee/db/geo/docs): - [ ] Add the new table to the [database dictionary](database_dictionary.md) defined in [`ee/db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/ee/db/docs):
```yaml ```yaml
table_name: cool_widget_registry table_name: cool_widget_registry
@ -137,7 +129,7 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
```ruby ```ruby
# frozen_string_literal: true # frozen_string_literal: true
class CreateCoolWidgetStates < Gitlab::Database::Migration[2.1] class CreateCoolWidgetStates < Gitlab::Database::Migration[2.0]
VERIFICATION_STATE_INDEX_NAME = "index_cool_widget_states_on_verification_state" VERIFICATION_STATE_INDEX_NAME = "index_cool_widget_states_on_verification_state"
PENDING_VERIFICATION_INDEX_NAME = "index_cool_widget_states_pending_verification" PENDING_VERIFICATION_INDEX_NAME = "index_cool_widget_states_pending_verification"
FAILED_VERIFICATION_INDEX_NAME = "index_cool_widget_states_failed_verification" FAILED_VERIFICATION_INDEX_NAME = "index_cool_widget_states_failed_verification"
@ -157,17 +149,9 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
t.text :verification_failure, limit: 255 t.text :verification_failure, limit: 255
t.index :verification_state, name: VERIFICATION_STATE_INDEX_NAME t.index :verification_state, name: VERIFICATION_STATE_INDEX_NAME
t.index :verified_at, t.index :verified_at, where: "(verification_state = 0)", order: { verified_at: 'ASC NULLS FIRST' }, name: PENDING_VERIFICATION_INDEX_NAME
where: "(verification_state = 0)", t.index :verification_retry_at, where: "(verification_state = 3)", order: { verification_retry_at: 'ASC NULLS FIRST' }, name: FAILED_VERIFICATION_INDEX_NAME
order: { verified_at: 'ASC NULLS FIRST' }, t.index :verification_state, where: "(verification_state = 0 OR verification_state = 3)", name: NEEDS_VERIFICATION_INDEX_NAME
name: PENDING_VERIFICATION_INDEX_NAME
t.index :verification_retry_at,
where: "(verification_state = 3)",
order: { verification_retry_at: 'ASC NULLS FIRST' },
name: FAILED_VERIFICATION_INDEX_NAME
t.index :verification_state,
where: "(verification_state = 0 OR verification_state = 3)",
name: NEEDS_VERIFICATION_INDEX_NAME
end end
end end
@ -179,20 +163,17 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md). - [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
- [ ] If `cool_widgets` is a high-traffic table, follow [the database documentation to use `with_lock_retries`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/migration_style_guide.md#when-to-use-the-helper-method) - [ ] Add the new table to the [database dictionary](database_dictionary.md) defined in [`db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/db/docs):
- [ ] Add the new table to the [database dictionary](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/database/database_dictionary.md) defined in [`db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/db/docs):
```yaml ```yaml
---
table_name: cool_widget_states table_name: cool_widget_states
description: Separate table for cool widget verification states description: Description example
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/XXXXX introduced_by_url: Merge request link
milestone: 'XX.Y' milestone: Milestone example
feature_categories: feature_categories:
- geo_replication - Feature category example
classes: classes:
- Geo::CoolWidgetState - Class example
gitlab_schema: gitlab_main gitlab_schema: gitlab_main
``` ```
@ -204,6 +185,20 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
- [ ] Be sure to commit the relevant changes in `db/structure.sql` and the file under `db/schema_migrations` - [ ] Be sure to commit the relevant changes in `db/structure.sql` and the file under `db/schema_migrations`
- [ ] Add an entry for the state table in `db/docs/cool_widget_states.yml`
```yaml
---
table_name: cool_widget_states
classes:
- Geo::CoolWidgetState
feature_categories:
- geo_replication
description: Separate table for cool widget verification states
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/XXXXX
milestone: 'XX.Y'
```
That's all of the required database changes. That's all of the required database changes.
### Implement Geo support of Cool Widgets behind a feature flag ### Implement Geo support of Cool Widgets behind a feature flag
@ -235,30 +230,23 @@ That's all of the required database changes.
with_replicator Geo::CoolWidgetReplicator with_replicator Geo::CoolWidgetReplicator
mount_uploader :file, CoolWidgetUploader
has_one :cool_widget_state, autosave: false, inverse_of: :cool_widget, class_name: 'Geo::CoolWidgetState' has_one :cool_widget_state, autosave: false, inverse_of: :cool_widget, class_name: 'Geo::CoolWidgetState'
after_save :save_verification_details after_save :save_verification_details
scope :with_verification_state, ->(state) { joins(:cool_widget_state).where(cool_widget_states: { verification_state: verification_state_value(state) }) }
scope :checksummed, -> { joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil } ) }
scope :not_checksummed, -> { joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil } ) }
scope :available_verifiables, -> { joins(:cool_widget_state) }
# Override the `all` default if not all records can be replicated. For an # Override the `all` default if not all records can be replicated. For an
# example of an existing Model that needs to do this, see # example of an existing Model that needs to do this, see
# `EE::MergeRequestDiff`. # `EE::MergeRequestDiff`.
# scope :available_replicables, -> { all } # scope :available_replicables, -> { all }
scope :available_verifiables, -> { joins(:cool_widget_state) }
scope :checksummed, -> {
joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil })
}
scope :not_checksummed, -> {
joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil })
}
scope :with_verification_state, ->(state) {
joins(:cool_widget_state)
.where(cool_widget_states: { verification_state: verification_state_value(state) })
}
def verification_state_object def verification_state_object
cool_widget_state cool_widget_state
end end
@ -269,8 +257,7 @@ That's all of the required database changes.
... ...
# @param primary_key_in [Range, CoolWidget] arg to pass to primary_key_in scope # @param primary_key_in [Range, CoolWidget] arg to pass to primary_key_in scope
# @return [ActiveRecord::Relation<CoolWidget>] everything that should be synced # @return [ActiveRecord::Relation<CoolWidget>] everything that should be synced to this node, restricted by primary key
# to this node, restricted by primary key
def replicables_for_current_secondary(primary_key_in) def replicables_for_current_secondary(primary_key_in)
# This issue template does not help you write this method. # This issue template does not help you write this method.
# #
@ -278,8 +265,7 @@ That's all of the required database changes.
# we want to know which records to replicate. This is not easy to automate # we want to know which records to replicate. This is not easy to automate
# because for example: # because for example:
# #
# * The "selective sync" feature allows admins to choose which namespaces # * The "selective sync" feature allows admins to choose which namespaces # to replicate, per secondary site. Most Models are scoped to a
# to replicate, per secondary site. Most Models are scoped to a
# namespace, but the nature of the relationship to a namespace varies # namespace, but the nature of the relationship to a namespace varies
# between Models. # between Models.
# * The "selective sync" feature allows admins to choose which shards to # * The "selective sync" feature allows admins to choose which shards to
@ -318,8 +304,8 @@ That's all of the required database changes.
```ruby ```ruby
include_examples 'a replicable model with a separate table for verification state' do include_examples 'a replicable model with a separate table for verification state' do
let(:verifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is in `Geo::ReplicableModel.verifiables` scope let(:verifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is included in `available_verifiables`
let(:unverifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is NOT included in `Geo::ReplicableModel.verifiables` scope let(:unverifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is NOT included in `available_verifiables`
end end
``` ```
@ -337,6 +323,10 @@ That's all of the required database changes.
::CoolWidget ::CoolWidget
end end
def repository
model_record.repository
end
def self.git_access_class def self.git_access_class
::Gitlab::GitAccessCoolWidget ::Gitlab::GitAccessCoolWidget
end end
@ -363,10 +353,6 @@ That's all of the required database changes.
# (see `RepositoryReplicatorStrategy#before_housekeeping`) # (see `RepositoryReplicatorStrategy#before_housekeeping`)
false false
end end
def repository
model_record.repository
end
end end
end end
``` ```
@ -416,7 +402,7 @@ That's all of the required database changes.
require 'spec_helper' require 'spec_helper'
RSpec.describe Geo::CoolWidgetReplicator, feature_category: :geo_replication do RSpec.describe Geo::CoolWidgetReplicator do
let(:model_record) { build(:cool_widget) } let(:model_record) { build(:cool_widget) }
include_examples 'a repository replicator' include_examples 'a repository replicator'
@ -465,7 +451,6 @@ That's all of the required database changes.
state { Geo::CoolWidgetRegistry.state_value(:failed) } state { Geo::CoolWidgetRegistry.state_value(:failed) }
last_synced_at { 1.day.ago } last_synced_at { 1.day.ago }
retry_count { 2 } retry_count { 2 }
retry_at { 2.hours.from_now }
last_sync_failure { 'Random error' } last_sync_failure { 'Random error' }
end end
@ -491,7 +476,7 @@ That's all of the required database changes.
require 'spec_helper' require 'spec_helper'
RSpec.describe Geo::CoolWidgetRegistry, :geo, type: :model, feature_category: :geo_replication do RSpec.describe Geo::CoolWidgetRegistry, :geo, type: :model do
let_it_be(:registry) { create(:geo_cool_widget_registry) } let_it_be(:registry) { create(:geo_cool_widget_registry) }
specify 'factory is valid' do specify 'factory is valid' do
@ -506,21 +491,17 @@ That's all of the required database changes.
- [ ] Add the following to `ee/spec/factories/cool_widgets.rb`: - [ ] Add the following to `ee/spec/factories/cool_widgets.rb`:
```ruby ```ruby
# frozen_string_literal: true
FactoryBot.modify do FactoryBot.modify do
factory :cool_widget do trait :verification_succeeded do
trait :verification_succeeded do with_file
with_file verification_checksum { 'abc' }
verification_checksum { 'abc' } verification_state { CoolWidget.verification_state_value(:verification_succeeded) }
verification_state { CoolWidget.verification_state_value(:verification_succeeded) } end
end
trait :verification_failed do trait :verification_failed do
with_file with_file
verification_failure { 'Could not calculate the checksum' } verification_failure { 'Could not calculate the checksum' }
verification_state { CoolWidget.verification_state_value(:verification_failed) } verification_state { CoolWidget.verification_state_value(:verification_failed) }
end
end end
end end
``` ```
@ -568,7 +549,7 @@ That's all of the required database changes.
end end
``` ```
- [ ] Add `[:geo_cool_widget_state, any]` to `skipped` in `spec/models/factories_spec.rb` - [ ] Add `[:cool_widget, :remote_store]` and `[:geo_cool_widget_state, any]` to `skipped` in `spec/models/factories_spec.rb`
#### Step 2. Implement metrics gathering #### Step 2. Implement metrics gathering
@ -592,19 +573,18 @@ Metrics are gathered by `Geo::MetricsUpdateWorker`, persisted in `GeoNodeStatus`
- [ ] Add the following fields to the `Sidekiq metrics` table in `doc/administration/monitoring/prometheus/gitlab_metrics.md`: - [ ] Add the following fields to the `Sidekiq metrics` table in `doc/administration/monitoring/prometheus/gitlab_metrics.md`:
```markdown ```markdown
| `geo_cool_widgets` | Gauge | XX.Y | Number of Cool Widgets on primary | `url` | | `geo_cool_widgets` | Gauge | XX.Y | Number of Cool Widgets on primary | `url` |
| `geo_cool_widgets_checksum_total` | Gauge | XX.Y | Number of Cool Widgets to checksum on primary | `url` | | `geo_cool_widgets_checksum_total` | Gauge | XX.Y | Number of Cool Widgets checksummed successfully on primary | `url` |
| `geo_cool_widgets_checksummed` | Gauge | XX.Y | Number of Cool Widgets that successfully calculated the checksum on primary | `url` | | `geo_cool_widgets_checksummed` | Gauge | XX.Y | Number of Cool Widgets failed to calculate the checksum on primary | `url` |
| `geo_cool_widgets_checksum_failed` | Gauge | XX.Y | Number of Cool Widgets that failed to calculate the checksum on primary | `url` | | `geo_cool_widgets_checksum_failed` | Gauge | XX.Y | Number of Cool Widgets tried to checksum on primary | `url` |
| `geo_cool_widgets_synced` | Gauge | XX.Y | Number of syncable Cool Widgets synced on secondary | `url` | | `geo_cool_widgets_synced` | Gauge | XX.Y | Number of syncable Cool Widgets synced on secondary | `url` |
| `geo_cool_widgets_failed` | Gauge | XX.Y | Number of syncable Cool Widgets failed to sync on secondary | `url` | | `geo_cool_widgets_failed` | Gauge | XX.Y | Number of syncable Cool Widgets failed to sync on secondary | `url` |
| `geo_cool_widgets_registry` | Gauge | XX.Y | Number of Cool Widgets in the registry | `url` | | `geo_cool_widgets_registry` | Gauge | XX.Y | Number of Cool Widgets in the registry | `url` |
| `geo_cool_widgets_verification_total` | Gauge | XX.Y | Number of Cool Widgets to attempt to verify on secondary | `url` | | `geo_cool_widgets_verification_total` | Gauge | XX.Y | Number of Cool Widgets verified on secondary | `url` |
| `geo_cool_widgets_verified` | Gauge | XX.Y | Number of Cool Widgets successfully verified on secondary | `url` | | `geo_cool_widgets_verified` | Gauge | XX.Y | Number of Cool Widgets' verifications failed on secondary | `url` |
| `geo_cool_widgets_verification_failed` | Gauge | XX.Y | Number of Cool Widgets that failed verification on secondary | `url` | | `geo_cool_widgets_verification_failed` | Gauge | XX.Y | Number of Cool Widgets' verifications tried on secondary | `url` |
``` ```
- [ ] Run the rake task `geo:dev:ssf_metrics` and commit the changes to `ee/config/metrics/object_schemas/geo_node_usage.json`
Cool Widget replication and verification metrics should now be available in the API, the `Admin > Geo > Sites` view, and Prometheus. Cool Widget replication and verification metrics should now be available in the API, the `Admin > Geo > Nodes` view, and Prometheus.
#### Step 3. Implement the GraphQL API #### Step 3. Implement the GraphQL API
@ -645,7 +625,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
require 'spec_helper' require 'spec_helper'
RSpec.describe Resolvers::Geo::CoolWidgetRegistriesResolver, feature_category: :geo_replication do RSpec.describe Resolvers::Geo::CoolWidgetRegistriesResolver do
it_behaves_like 'a Geo registries resolver', :geo_cool_widget_registry it_behaves_like 'a Geo registries resolver', :geo_cool_widget_registry
end end
``` ```
@ -669,7 +649,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
require 'spec_helper' require 'spec_helper'
RSpec.describe Geo::CoolWidgetRegistryFinder, feature_category: :geo_replication do RSpec.describe Geo::CoolWidgetRegistryFinder do
it_behaves_like 'a framework registry finder', :geo_cool_widget_registry it_behaves_like 'a framework registry finder', :geo_cool_widget_registry
end end
``` ```
@ -703,7 +683,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
require 'spec_helper' require 'spec_helper'
RSpec.describe GitlabSchema.types['CoolWidgetRegistry'], feature_category: :geo_replication do RSpec.describe GitlabSchema.types['CoolWidgetRegistry'] do
it_behaves_like 'a Geo registry type' it_behaves_like 'a Geo registry type'
it 'has the expected fields (other than those included in RegistryType)' do it 'has the expected fields (other than those included in RegistryType)' do

View file

@ -56,7 +56,7 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
```ruby ```ruby
# frozen_string_literal: true # frozen_string_literal: true
class CreateCoolWidgetRegistry < Gitlab::Database::Migration[2.1] class CreateCoolWidgetRegistry < Gitlab::Database::Migration[2.0]
def change def change
create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t| create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t|
t.bigint :cool_widget_id, null: false t.bigint :cool_widget_id, null: false
@ -80,19 +80,11 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
t.index :retry_at t.index :retry_at
t.index :state t.index :state
# To optimize performance of CoolWidgetRegistry.verification_failed_batch # To optimize performance of CoolWidgetRegistry.verification_failed_batch
t.index :verification_retry_at, t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))"
name: :cool_widget_registry_failed_verification,
order: "NULLS FIRST",
where: "((state = 2) AND (verification_state = 3))"
# To optimize performance of CoolWidgetRegistry.needs_verification_count # To optimize performance of CoolWidgetRegistry.needs_verification_count
t.index :verification_state, t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))"
name: :cool_widget_registry_needs_verification,
where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))"
# To optimize performance of CoolWidgetRegistry.verification_pending_batch # To optimize performance of CoolWidgetRegistry.verification_pending_batch
t.index :verified_at, t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))"
name: :cool_widget_registry_pending_verification,
order: "NULLS FIRST",
where: "((state = 2) AND (verification_state = 0))"
end end
end end
end end
@ -100,7 +92,7 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md). - [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
- [ ] Add the new table to the [database dictionary](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/database/database_dictionary.md) defined in [`ee/db/geo/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/ee/db/geo/docs): - [ ] Add the new table to the [database dictionary](database_dictionary.md) defined in [`ee/db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/ee/db/docs):
```yaml ```yaml
table_name: cool_widget_registry table_name: cool_widget_registry
@ -139,7 +131,7 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
```ruby ```ruby
# frozen_string_literal: true # frozen_string_literal: true
class CreateCoolWidgetStates < Gitlab::Database::Migration[2.1] class CreateCoolWidgetStates < Gitlab::Database::Migration[2.0]
VERIFICATION_STATE_INDEX_NAME = "index_cool_widget_states_on_verification_state" VERIFICATION_STATE_INDEX_NAME = "index_cool_widget_states_on_verification_state"
PENDING_VERIFICATION_INDEX_NAME = "index_cool_widget_states_pending_verification" PENDING_VERIFICATION_INDEX_NAME = "index_cool_widget_states_pending_verification"
FAILED_VERIFICATION_INDEX_NAME = "index_cool_widget_states_failed_verification" FAILED_VERIFICATION_INDEX_NAME = "index_cool_widget_states_failed_verification"
@ -152,28 +144,16 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
t.datetime_with_timezone :verification_started_at t.datetime_with_timezone :verification_started_at
t.datetime_with_timezone :verification_retry_at t.datetime_with_timezone :verification_retry_at
t.datetime_with_timezone :verified_at t.datetime_with_timezone :verified_at
t.references :cool_widget, t.references :cool_widget, primary_key: true, default: nil, index: false, foreign_key: { on_delete: :cascade }
primary_key: true,
default: nil,
index: false,
foreign_key: { on_delete: :cascade }
t.integer :verification_state, default: 0, limit: 2, null: false t.integer :verification_state, default: 0, limit: 2, null: false
t.integer :verification_retry_count, default: 0, limit: 2, null: false t.integer :verification_retry_count, default: 0, limit: 2, null: false
t.binary :verification_checksum, using: 'verification_checksum::bytea' t.binary :verification_checksum, using: 'verification_checksum::bytea'
t.text :verification_failure, limit: 255 t.text :verification_failure, limit: 255
t.index :verification_state, name: VERIFICATION_STATE_INDEX_NAME t.index :verification_state, name: VERIFICATION_STATE_INDEX_NAME
t.index :verified_at, t.index :verified_at, where: "(verification_state = 0)", order: { verified_at: 'ASC NULLS FIRST' }, name: PENDING_VERIFICATION_INDEX_NAME
where: "(verification_state = 0)", t.index :verification_retry_at, where: "(verification_state = 3)", order: { verification_retry_at: 'ASC NULLS FIRST' }, name: FAILED_VERIFICATION_INDEX_NAME
order: { verified_at: 'ASC NULLS FIRST' }, t.index :verification_state, where: "(verification_state = 0 OR verification_state = 3)", name: NEEDS_VERIFICATION_INDEX_NAME
name: PENDING_VERIFICATION_INDEX_NAME
t.index :verification_retry_at,
where: "(verification_state = 3)",
order: { verification_retry_at: 'ASC NULLS FIRST' },
name: FAILED_VERIFICATION_INDEX_NAME
t.index :verification_state,
where: "(verification_state = 0 OR verification_state = 3)",
name: NEEDS_VERIFICATION_INDEX_NAME
end end
end end
@ -185,20 +165,17 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md). - [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
- [ ] If `cool_widgets` is a high-traffic table, follow [the database documentation to use `with_lock_retries`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/migration_style_guide.md#when-to-use-the-helper-method) - [ ] Add the new table to the database dictionary defined in [`db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/db/docs):
- [ ] Add the new table to the [database dictionary](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/database/database_dictionary.md) defined in [`db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/db/docs):
```yaml ```yaml
---
table_name: cool_widget_states table_name: cool_widget_states
description: Separate table for cool widget verification states description: Description example
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/XXXXX introduced_by_url: Merge request link
milestone: 'XX.Y' milestone: Milestone example
feature_categories: feature_categories:
- geo_replication - Feature category example
classes: classes:
- Geo::CoolWidgetState - Class example
gitlab_schema: gitlab_main gitlab_schema: gitlab_main
``` ```
@ -208,8 +185,24 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
bin/rake db:migrate bin/rake db:migrate
``` ```
- [ ] If `cool_widgets` is a high-traffic table, follow [the database documentation to use `with_lock_retries`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/migration_style_guide.md#when-to-use-the-helper-method)
- [ ] Be sure to commit the relevant changes in `db/structure.sql` and the file under `db/schema_migrations` - [ ] Be sure to commit the relevant changes in `db/structure.sql` and the file under `db/schema_migrations`
- [ ] Add an entry for the state table in `db/docs/cool_widget_states.yml`
```yaml
---
table_name: cool_widget_states
classes:
- Geo::CoolWidgetState
feature_categories:
- geo_replication
description: Separate table for cool widget verification states
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/XXXXX
milestone: 'XX.Y'
```
That's all of the required database changes. That's all of the required database changes.
### Implement Geo support of Cool Widgets behind a feature flag ### Implement Geo support of Cool Widgets behind a feature flag
@ -245,26 +238,17 @@ That's all of the required database changes.
after_save :save_verification_details after_save :save_verification_details
scope :with_verification_state, ->(state) { joins(:cool_widget_state).where(cool_widget_states: { verification_state: verification_state_value(state) }) }
scope :checksummed, -> { joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil } ) }
scope :not_checksummed, -> { joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil } ) }
scope :available_verifiables, -> { joins(:cool_widget_state) }
# Override the `all` default if not all records can be replicated. For an # Override the `all` default if not all records can be replicated. For an
# example of an existing Model that needs to do this, see # example of an existing Model that needs to do this, see
# `EE::MergeRequestDiff`. # `EE::MergeRequestDiff`.
# scope :available_replicables, -> { all } # scope :available_replicables, -> { all }
scope :available_verifiables, -> { joins(:cool_widget_state) }
scope :checksummed, -> {
joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil })
}
scope :not_checksummed, -> {
joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil })
}
scope :with_verification_state, ->(state) {
joins(:cool_widget_state)
.where(cool_widget_states: { verification_state: verification_state_value(state) })
}
def verification_state_object def verification_state_object
cool_widget_state cool_widget_state
end end
@ -275,8 +259,7 @@ That's all of the required database changes.
... ...
# @param primary_key_in [Range, CoolWidget] arg to pass to primary_key_in scope # @param primary_key_in [Range, CoolWidget] arg to pass to primary_key_in scope
# @return [ActiveRecord::Relation<CoolWidget>] everything that should be synced # @return [ActiveRecord::Relation<CoolWidget>] everything that should be synced to this node, restricted by primary key
# to this node, restricted by primary key
def replicables_for_current_secondary(primary_key_in) def replicables_for_current_secondary(primary_key_in)
# This issue template does not help you write this method. # This issue template does not help you write this method.
# #
@ -318,8 +301,8 @@ That's all of the required database changes.
```ruby ```ruby
include_examples 'a replicable model with a separate table for verification state' do include_examples 'a replicable model with a separate table for verification state' do
let(:verifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is in `Geo::ReplicableModel.verifiables` scope let(:verifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is included in `available_verifiables`
let(:unverifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is NOT included in `Geo::ReplicableModel.verifiables` scope let(:unverifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is NOT included in `available_verifiables`
end end
``` ```
@ -349,6 +332,7 @@ That's all of the required database changes.
# (see `VerifiableReplicator.verification_enabled?`) # (see `VerifiableReplicator.verification_enabled?`)
true true
end end
end end
end end
``` ```
@ -376,7 +360,7 @@ That's all of the required database changes.
require 'spec_helper' require 'spec_helper'
RSpec.describe Geo::CoolWidgetReplicator, feature_category: :geo_replication do RSpec.describe Geo::CoolWidgetReplicator do
let(:model_record) { build(:cool_widget) } let(:model_record) { build(:cool_widget) }
include_examples 'a blob replicator' include_examples 'a blob replicator'
@ -425,7 +409,6 @@ That's all of the required database changes.
state { Geo::CoolWidgetRegistry.state_value(:failed) } state { Geo::CoolWidgetRegistry.state_value(:failed) }
last_synced_at { 1.day.ago } last_synced_at { 1.day.ago }
retry_count { 2 } retry_count { 2 }
retry_at { 2.hours.from_now }
last_sync_failure { 'Random error' } last_sync_failure { 'Random error' }
end end
@ -451,7 +434,7 @@ That's all of the required database changes.
require 'spec_helper' require 'spec_helper'
RSpec.describe Geo::CoolWidgetRegistry, :geo, type: :model, feature_category: :geo_replication do RSpec.describe Geo::CoolWidgetRegistry, :geo, type: :model do
let_it_be(:registry) { create(:geo_cool_widget_registry) } let_it_be(:registry) { create(:geo_cool_widget_registry) }
specify 'factory is valid' do specify 'factory is valid' do
@ -466,21 +449,17 @@ That's all of the required database changes.
- [ ] Add the following to `spec/factories/cool_widgets.rb`: - [ ] Add the following to `spec/factories/cool_widgets.rb`:
```ruby ```ruby
# frozen_string_literal: true
FactoryBot.modify do FactoryBot.modify do
factory :cool_widget do trait :verification_succeeded do
trait :verification_succeeded do with_file
with_file verification_checksum { 'abc' }
verification_checksum { 'abc' } verification_state { CoolWidget.verification_state_value(:verification_succeeded) }
verification_state { CoolWidget.verification_state_value(:verification_succeeded) } end
end
trait :verification_failed do trait :verification_failed do
with_file with_file
verification_failure { 'Could not calculate the checksum' } verification_failure { 'Could not calculate the checksum' }
verification_state { CoolWidget.verification_state_value(:verification_failed) } verification_state { CoolWidget.verification_state_value(:verification_failed) }
end
end end
end end
``` ```
@ -560,19 +539,18 @@ Metrics are gathered by `Geo::MetricsUpdateWorker`, persisted in `GeoNodeStatus`
```markdown ```markdown
| `geo_cool_widgets` | Gauge | XX.Y | Number of Cool Widgets on primary | `url` | | `geo_cool_widgets` | Gauge | XX.Y | Number of Cool Widgets on primary | `url` |
| `geo_cool_widgets_checksum_total` | Gauge | XX.Y | Number of Cool Widgets to checksum on primary | `url` | | `geo_cool_widgets_checksum_total` | Gauge | XX.Y | Number of Cool Widgets checksummed successfully on primary | `url` |
| `geo_cool_widgets_checksummed` | Gauge | XX.Y | Number of Cool Widgets that successfully calculated the checksum on primary | `url` | | `geo_cool_widgets_checksummed` | Gauge | XX.Y | Number of Cool Widgets failed to calculate the checksum on primary | `url` |
| `geo_cool_widgets_checksum_failed` | Gauge | XX.Y | Number of Cool Widgets that failed to calculate the checksum on primary | `url` | | `geo_cool_widgets_checksum_failed` | Gauge | XX.Y | Number of Cool Widgets tried to checksum on primary | `url` |
| `geo_cool_widgets_synced` | Gauge | XX.Y | Number of syncable Cool Widgets synced on secondary | `url` | | `geo_cool_widgets_synced` | Gauge | XX.Y | Number of syncable Cool Widgets synced on secondary | `url` |
| `geo_cool_widgets_failed` | Gauge | XX.Y | Number of syncable Cool Widgets failed to sync on secondary | `url` | | `geo_cool_widgets_failed` | Gauge | XX.Y | Number of syncable Cool Widgets failed to sync on secondary | `url` |
| `geo_cool_widgets_registry` | Gauge | XX.Y | Number of Cool Widgets in the registry | `url` | | `geo_cool_widgets_registry` | Gauge | XX.Y | Number of Cool Widgets in the registry | `url` |
| `geo_cool_widgets_verification_total` | Gauge | XX.Y | Number of Cool Widgets to attempt to verify on secondary | `url` | | `geo_cool_widgets_verification_total` | Gauge | XX.Y | Number of Cool Widgets verified on secondary | `url` |
| `geo_cool_widgets_verified` | Gauge | XX.Y | Number of Cool Widgets successfully verified on secondary | `url` | | `geo_cool_widgets_verified` | Gauge | XX.Y | Number of Cool Widgets' verifications failed on secondary | `url` |
| `geo_cool_widgets_verification_failed` | Gauge | XX.Y | Number of Cool Widgets that failed verification on secondary | `url` | | `geo_cool_widgets_verification_failed` | Gauge | XX.Y | Number of Cool Widgets' verifications tried on secondary | `url` |
``` ```
- [ ] Run the rake task `geo:dev:ssf_metrics` and commit the changes to `ee/config/metrics/object_schemas/geo_node_usage.json`
Cool Widget replication and verification metrics should now be available in the API, the `Admin > Geo > Sites` view, and Prometheus. Cool Widget replication and verification metrics should now be available in the API, the `Admin > Geo > Nodes` view, and Prometheus.
#### Step 3. Implement the GraphQL API #### Step 3. Implement the GraphQL API
@ -613,7 +591,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
require 'spec_helper' require 'spec_helper'
RSpec.describe Resolvers::Geo::CoolWidgetRegistriesResolver, feature_category: :geo_replication do RSpec.describe Resolvers::Geo::CoolWidgetRegistriesResolver do
it_behaves_like 'a Geo registries resolver', :geo_cool_widget_registry it_behaves_like 'a Geo registries resolver', :geo_cool_widget_registry
end end
``` ```
@ -637,7 +615,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
require 'spec_helper' require 'spec_helper'
RSpec.describe Geo::CoolWidgetRegistryFinder, feature_category: :geo_replication do RSpec.describe Geo::CoolWidgetRegistryFinder do
it_behaves_like 'a framework registry finder', :geo_cool_widget_registry it_behaves_like 'a framework registry finder', :geo_cool_widget_registry
end end
``` ```
@ -671,7 +649,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
require 'spec_helper' require 'spec_helper'
RSpec.describe GitlabSchema.types['CoolWidgetRegistry'], feature_category: :geo_replication do RSpec.describe GitlabSchema.types['CoolWidgetRegistry'] do
it_behaves_like 'a Geo registry type' it_behaves_like 'a Geo registry type'
it 'has the expected fields (other than those included in RegistryType)' do it 'has the expected fields (other than those included in RegistryType)' do

View file

@ -4,23 +4,12 @@
<!-- Use this section to explain the proposed changes, including details around usage and business drivers. --> <!-- Use this section to explain the proposed changes, including details around usage and business drivers. -->
#### Other locations that were considered
<!-- Include other design patterns or places you considered for this feature besides navigation. -->
### Checklist ### Checklist
- [ ] Review the handbook page for [navigation changes](https://about.gitlab.com/handbook/product/ux/navigation/#when-to-consider-making-a-change-to-the-navigation)
- [ ] Add relevant information to the issue description detailing your proposal, including usage and business drivers. - [ ] Add relevant information to the issue description detailing your proposal, including usage and business drivers.
- [ ] List at least two other places you considered to introduce your feature - [ ] Follow the [product development workflow](https://about.gitlab.com/handbook/product-development-flow/#validation-phase-2-problem-validation) validation process to ensure you are solving a well understood problem and that the proposed change is understandable and non-disruptive to users. Navigation-specific research is strongly encouraged.
- [ ] Add relevant designs to the Design Management area of the issue - [ ] Engage the [Foundations Product Manager](https://about.gitlab.com/handbook/product/categories/#foundations-group) for approval. The Foundations DRI will work with UX partners in product design, research, and technical writing, as applicable.
- [ ] Ensure your UI suggestion align with the [Documentation Style Guide](https://docs.gitlab.com/ee/development/documentation/styleguide/) - [ ] Engage the [Foundations](https://about.gitlab.com/handbook/product/categories/#foundations-group) team to ensure your proposal is in alignment with holistic changes happening to the left side bar.
- [ ] Engage ~"Technical Writing". They can help craft a term that best describes the feature(s) youre proposing. - [ ] Consider whether you need to communicate the change somehow, or if you will have an interim period in the UI where your nav item will live in more than one place.
- [ ] Follow the [product development workflow](https://about.gitlab.com/handbook/product-development-flow/#validation-phase-2-problem-validation) validation process to ensure you are solving a well understood problem and that the proposed change is understandable and non-disruptive to users. Navigation-specific research is mandatory for additions or when restructuring.
- [ ] Engage the [Foundations Product Manager](https://about.gitlab.com/handbook/product/categories/#foundations-group) for approval. The Foundations DRI (@cdybenko) will work with UX partners in product design, research, and technical writing, as applicable.
- [ ] Consider whether you need to [communicate the change somehow](https://design.gitlab.com/patterns/navigation#messaging-changes-to-users), or if you will have an interim period in the UI where your item will live in more than one place.
- [ ] Ensure engineers are familiar with the [implementation steps for navigation](https://docs.gitlab.com/ee/development/navigation_sidebar.html#navigation-sidebar).
/label ~UX ~"UI text" ~"documentation" ~"Category:Navigation & Settings" ~navigation ~type::ignore /label ~UX ~"UI text" ~"documentation" ~"documentation" ~"Category:Navigation & Settings" ~"Category:Foundations" ~navigation
/label ~"Nav request::Start"

View file

@ -20,7 +20,6 @@ _NOTE: If the issue has addressed all of these questions, this separate section
Some relevant technical details, if applicable, such as: Some relevant technical details, if applicable, such as:
- Does this need a ~"feature flag"? - Does this need a ~"feature flag"?
- Does there need to be an associated ~"instrumentation" issue created related to this work?
- Is there an example response showing the data structure that should be returned (new endpoints only)? - Is there an example response showing the data structure that should be returned (new endpoints only)?
- What permissions should be used? - What permissions should be used?
- Is this EE or CE? - Is this EE or CE?

View file

@ -13,7 +13,6 @@ Set the title to: `Description of the original issue`
- [ ] Add a `~severity::x` label to the issue and all associated merge requests. - [ ] Add a `~severity::x` label to the issue and all associated merge requests.
- [ ] **IMPORTANT**: Mark this [issue as linked] to the Security Release Tracking Issue. You can find it [here](https://gitlab.com/gitlab-org/gitlab/-/issues?sort=created_date&state=opened&label_name[]=upcoming+security+release). This issue - [ ] **IMPORTANT**: Mark this [issue as linked] to the Security Release Tracking Issue. You can find it [here](https://gitlab.com/gitlab-org/gitlab/-/issues?sort=created_date&state=opened&label_name[]=upcoming+security+release). This issue
MUST be linked for the release bot to know that the associated merge requests should be merged for this security release. MUST be linked for the release bot to know that the associated merge requests should be merged for this security release.
- [ ] Mark this [issue as linked] to the `gitlab-org/gitlab` issue that describes the security vulnerability.
- Fill out the [Links section](#links): - Fill out the [Links section](#links):
- [ ] Next to **Issue on GitLab**, add a link to the `gitlab-org/gitlab` issue that describes the security vulnerability. - [ ] Next to **Issue on GitLab**, add a link to the `gitlab-org/gitlab` issue that describes the security vulnerability.
- [ ] If this change affects the public interface (public API or UI) of the product, post in the `#support_gitlab-com` Slack channel to explain the impact and discuss a mitigation plan for users that might be affected. If you need Support feedback or approval, reach out in `#spt_managers` Slack channel or mention `@gitlab-com/support/managers`. - [ ] If this change affects the public interface (public API or UI) of the product, post in the `#support_gitlab-com` Slack channel to explain the impact and discuss a mitigation plan for users that might be affected. If you need Support feedback or approval, reach out in `#spt_managers` Slack channel or mention `@gitlab-com/support/managers`.

View file

@ -1,25 +1,39 @@
<!-- Most of the work designers do will be on themes in the (Now) Next 1-3 milestone column of their UX Roadmap. These themes are comprised of high-confidence outcomes and validated needs. The UX theme issue is where collaboration should occur, including plans and discussion on subthemes, research, and design feedback. Related design exploration and solution validation issues should stem from the theme issue. <!-- A majority of the work designers do will be on themes in the (Now) Next 1-3 milestone column of their UX Roadmap. These themes are comprised of high-confidence outcomes and validated needs. The UX theme issue is where collaboration should occur, including plans and discussion on subthemes, research, and design feedback. Related issues for design exploration and solution validation should stem from the theme issue.
One of the advantages of working with UX themes is that it allows us to think and design holistically by designing the theme as a whole instead of a single issue at a time, trying to piece them together as we go. For more details, please refer to this section of the handbook when creating UX Themes: https://about.gitlab.com/handbook/product/ux/product-design/ux-roadmaps/#ux-theme-structure --> One of the advantages of working with UX themes is that it allows us to think and design holistically by designing the theme as a whole as opposed to a single issue at a time trying to piece them together as you go. For more details please refer to this section of the handbook when creating UX Themes: https://about.gitlab.com/handbook/product/ux/product-design/ux-roadmaps/#theme-structure -->
<!-- <!-- Theme Issue Title {UX Theme: <theme statement here>} -->
!!Note: The theme statement is the defacto title that will reference the theme and serve as the theme issue title.!! It should be something that is easily understood that quickly communicates the intent of the theme allowing team members to easily understand and recognize the expected work that will be done. <!-- Theme Statement: A theme is written as a statement that combines the beneficiary, their need, and the expected outcome when the work is delivered. Well-defined statements are concise without sacrificing the substance of the theme so that anyone can understand it at a glance. (For instance; Reduce the effort for security teams to identify and escalate business-critical risks)
!!Note: The theme statement is the defacto title that will be used to reference the theme and serve as the theme issue title.!! It should be something that is easily understood, that quickly communicates the intent of the theme allowing team members to easily understand and recognize the expected work that will be done.
--> -->
---- ----
### Theme statement ### Problem to solve
<!-- A theme statement combines the beneficiary, their job, and their expected outcome when the work is delivered and serves as the design goal for the team who owns the theme. Well-defined statements are concise without sacrificing the substance of the theme so that anyone can understand it at a glance. Well-defined statements are concise without sacrificing the substance of the theme so that anyone can understand it at a glance. (For instance, Reduce the effort for security teams when prioritizing business-critical risks in their assets.) --> <!-- In a brief statement, summerize the problem we are intending to address with this theme. For instance, users are unable to complete [task], or, users struggle with the amount of steps required to complete [task] -->
<!-- Also Theme issue tile -->
{`Need/outcome` } + {`Beneficiary`} + {`Job/Small Job`}
#### Main Job story ### Beneficiary
<!-- What is the [Main Job story](https://about.gitlab.com/handbook/product/ux/jobs-to-be-done/#how-to-write-a-jtbd) that this theme was derived from? (For instance, When I am on triage rotation, I want to address all the business-critical risks in my assets, So I can minimize the likelihood of my organization being compromised by a security breach.) --> <!-- Who is the recipient(s) of the value this theme provides; a customer, end-user, or buyer. Who benefits from this theme being executed? This can be a role, a team, or a persona. For instance: "Development teams, [or] Developers, [or], Sasha the Software Engineer". -->
- **[Direct beneficiary]**
#### Need & Primary JTBD
<!-- What is the JTBD and what are the needs related to the beneficiary and theme?
- JTBD: The JTBD statement, for instance, (When I am triaging vulns, I want to address business-critical risks, So I can ensure there is no unattended risk in my orgs assets.)
- Need: Abstracted from the JTBD, for instance, (Identify and escalate business-critical risks detected in my orgs assets.)
-->
- **JTBD:**
- **Need:**
#### Expected outcome
<!-- What will the user be able to achieve when this theme is executed? For instance, (Users will be able to effectively triage vulnerabilities at scale across all their orgs assets.) -->
#### Business objective #### Business objective
<!-- Objectives (from a business point of view) that will be achieved upon completion. (For instance, Increase engagement by making the experience efficient while reducing the chances of users overlooking high-priority items. --> <!-- What business objective will result from delivering this theme? This answers why we are working on this theme from a business perspective. Examples of objectives are but are not limited to: Sales rate / conversion rate, Success rate / completion rate, Traffic / visitor count, Engagement, or other business-oriented goals. -->
#### Confidence #### Confidence
@ -30,22 +44,41 @@ One of the advantages of working with UX themes is that it allows us to think an
| --- | --- | | --- | --- |
| [High/Medium/Low] | [research/insight issue](Link) | | [High/Medium/Low] | [research/insight issue](Link) |
### User-stories
<!-- Product designers should work with their PMs to gather up all of the relevant user stories. Look for alignment with the JTBD added above. Overall, the solution you and your team come up with should help to support the user stories. -->
### Requirements - [user-story here]
<!-- Requirements can be taken from existing features or design issues used to build this theme. Any related issues should be linked with this issue in the Feature/solution issues section below. They are more granular validated needs, goals, and additional details that the theme encompasses. These are typically reserved for themes in the next (1-3 milestones) column. Requirements should answer “what” the beneficiary of this theme needs from the solution. - [user-story here]
- [user-story here]
Note: This is not a backlog. If the issue can not be delivered in the theme timeframe, then the theme is too big and needs to be broken down into multiple themes. -->
>⚠️ Related feature and research issues should be linked in the related issues section (Delete this line when this is done)
#### The beneficiary needs to be able to:
- [Small job statement]
- [Micro job statement]
- [Micro job statement]
- [etc.] - [etc.]
### Requirements
<!-- Requirements can be taken from existing features or design issues that were used to build this theme. Any related issues should be linked with this issue in the Feature/solution issues section below. They are more granular validated needs, goals, and additional details that the theme encompasses. These are typically reserved for themes in the next (1-3 milestones) column. Requirements should answer “what” the beneficiary of this theme needs from the solution.
Note: This is not a backlog. If the issue can not be delivered in the theme timeframe then the theme is too big and needs to be broken down into multiple themes. -->
The beneficieray needs to be able to:
- [need here]
- [need here]
- [need here]
- [etc.]
#### Feature/solution issues
<!-- Use this table to track feature issues related to this theme (if applicable). Not all themes require sub-issues as they are typically discovered while working on the theme itself. Think of these issues as if they were the result of breaking down the design into discrete work items.
Note: if feature issues already exist then you can add them to this table. Keep in mind that these issues will require validation if they are being added to a Theme that's in the Next (1-3 milestones) container and are assumptive.
Refer to https://about.gitlab.com/handbook/product/ux/product-designer/#ux-issue-weights for calculating UX weights.
-->
| Issue | UX Weight |
| ---------- | --------- |
| [Issue](link) | `0 - 10` |
| [Issue](link) | `0 - 10` |
| [Issue](link) | `0 - 10` |
#### Research #### Research
<!-- Researchers and Designers; Use this table to track UX research related to this theme. This may include problem validation and solution validation activities. <!-- Use this table to track UX research related to this theme. This may include, problem validation and/or solution validation activities.
--> -->
| Issue | Research type | Research status | | Issue | Research type | Research status |
@ -54,35 +87,16 @@ Note: This is not a backlog. If the issue can not be delivered in the theme time
| [Issue]() | <!--Solution validation, Problem validation, etc., --> | <!-- Planned, In Progress, Complete, etc.,--> | | [Issue]() | <!--Solution validation, Problem validation, etc., --> | <!-- Planned, In Progress, Complete, etc.,--> |
#### Ready for design checklist #### Ready for design checklist
The items are self-check suggestions; they could be contributed by designers, product managers, or researchers The items are self-check suggestions; they could be contributed by designers, product managers or researchers
* [ ] The `theme` has high confidence (derived from research or other data-gathering techniques) * [ ] The stated `Problem to solve` has high confidence (derived from research or other data-gathering techniques)
* [ ] The `Related issues`, features, research, and other background information are linked to the related issues section * [ ] Relevant issues, research, and other background information are linked to the Related issues section
* [ ] The stated `Beneficiary` has been defined
* [ ] There is high confidence in the stated `Need & Primary JTBD` (derived from research or other data gathering techniques)
* [ ] The `Expected outcome` has been defined
* [ ] The `Business objective` has been defined * [ ] The `Business objective` has been defined
* [ ] The `Requirements` have been defined, and the scope has been agreed upon * [ ] The theme `Confidence` has been defined as High
* [ ] This UX Theme contains everything necessary to complete a design solution and is ready for design * [ ] `User-stories` have been defined
* [ ] The `Requirements` have been defined and the scope has been agreed upon
#### [Thematic design workflow checklist](https://about.gitlab.com/handbook/product/ux/product-design/ux-roadmaps/#suggested-workflow) * [ ] This UX Theme contains everyhting necessary to complete a design solution and is ready for design
<!-- please refer to the [suggested workflow](https://about.gitlab.com/handbook/product/ux/product-design/ux-roadmaps/#suggested-workflow) when working on UX themes-->
* [ ] **Theme assessed** Ready for design checklist complete
* [ ] **Ideate and Iterate**
* [ ] User flow diagram generated
* [ ] Low-fidelity wireframes of the entire theme created
* [ ] [Feedback requested](https://about.gitlab.com/handbook/product/ux/product-designer/#design-reviews) and incorporated into flow diagram and wireframes
* [ ] **Validate**
* [ ] [Solution validation](https://about.gitlab.com/handbook/product/ux/ux-research/solution-validation-and-methods/) conducted on Low/mid-fidelity flow
* [ ] **Refine**
* [ ] Resaerch findings incorporated into design
* [ ] All micro-interactions are defined
* [ ] All edge-cases are accounted for and defined
* [ ] All copy has been reviewed by tech writing
* [ ] Accessibnility guidelines have been considered
* [ ] High-fidelity designs posted
* [ ] Feedback requested from counterparts
* [ ] (If necessary) Validate high-fidelity flow in a 2nd round of user testing
* [ ] Refine final design from feedback and user research
* [ ] **Hand-off**
* [ ] Designs broken down based on the their ability to stand alone and that they provide value to the user.
* [ ] MVC plan agreement reached
* [ ] Planning breakdown complete
/label ~"UX" ~"UX Theme" /label ~"UX" ~"UX Theme"

View file

@ -1,166 +0,0 @@
<!---
Please read this!
Before opening a new issue, make sure to search for keywords in the issues
filtered by the "regression" or "type::bug" label:
- https://gitlab.com/gitlab-org/gitlab/-/merge_requests?scope=all&label_name[]=group%3A%3Autilization&label_name[]=section%3A%3Afulfillment&label_name%5B%5D=type::regression
- https://gitlab.com/gitlab-org/gitlab/-/merge_requests?scope=all&label_name[]=group%3A%3Autilization&label_name[]=section%3A%3Afulfillment&label_name%5B%5D=type::bug
and verify the issue you're about to submit isn't a duplicate.
--->
Utilization group: Bug Report Template
## Bug Summary
<!-- Provide a brief overview of the issue. What is the problem that needs to be addressed? -->
## Steps to reproduce
<!-- Provide a clear and detailed description of the steps needed to reproduce the bug. This should include any specific inputs, expected outputs, and observed outputs. -->
1. [Step 1]
1. [Step 2]
1. [Step 3]
1. [Step 4]
1. [Step 5]
## Example Project
<!-- If possible, please create an example project here on GitLab.com that exhibits the problematic
behavior, and link to it here in the bug report. If you are using an older version of GitLab, this
will also determine whether the bug is fixed in a more recent version. -->
## What is the current *bug* behavior?
<!-- Describe the current behavior of the system or application in response to the actions described in the steps above. -->
## What is the expected *correct* behavior?
<!-- Describe the expected behavior of the system or application in response to the actions described in the steps above. -->
## Reproducibility
<!-- Describe how frequently the bug occurs. -->
## Impact Assessment
<!-- Describe the impact of this bug on the user experience and/or the product as a whole. -->
## Severity
<!-- Provide an assessment of the severity of the bug, based on its impact on the user experience and/or the product as a whole. -->
## Environment
<!-- List the relevant environment information, including the operating system, web browser, device, etc. -->
## Screenshots and/or Relevant logs
<!-- Include any relevant screenshots to help illustrate the bug. -->
<!-- Paste any relevant logs - please use code blocks (```) to format console output, logs, and code
as it's tough to read otherwise. -->
## Output of checks (GitLab.com)
<!-- If you are reporting a bug on GitLab.com, uncomment below, if not, delete this section -->
<!-- This bug happens on GitLab.com -->
<!-- /label ~"reproduced on GitLab.com" -->
## Results of GitLab environment info
<!-- Input any relevant GitLab environment information if needed. -->
<details>
<summary>Expand for output related to GitLab environment info</summary>
<pre>
(For installations with omnibus-gitlab package run and paste the output of:
`sudo gitlab-rake gitlab:env:info`)
(For installations from source run and paste the output of:
`sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
</pre>
</details>
## Results of GitLab application Check
<!-- Input any relevant GitLab application check information if needed. -->
<details>
<summary>Expand for output related to the GitLab application check</summary>
<pre>
(For installations with omnibus-gitlab package run and paste the output of:
`sudo gitlab-rake gitlab:check SANITIZE=true`)
(For installations from source run and paste the output of:
`sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true`)
(we will only investigate if the tests are passing)
</pre>
</details>
## Possible fixes
<!-- If you can, link to the line of code that might be responsible for the problem. -->
<!-- If you have any suggestions for how to fix the bug, provide them here. -->
<!-- If you are unsure about the subtype of this bug, please check our SSOT https://about.gitlab.com/handbook/engineering/metrics/?_gl=1*920mnx*_ga*ODQ3OTI1Mjk1LjE2NzA0MDg0NjU.*_ga_ENFH3X7M5Y*MTY4MTM3OTA3My4yNzkuMS4xNjgxMzc5MTI0LjAuMC4w#work-type-classification -->
/label ~"type::bug"
/label ~"Category:Consumables Cost Management"
/label ~"group::utilization"
/label ~"section::fulfillment"
---
<details>
<summary>Illustrative Description: (This is not an actual issue, but rather a sample report that demonstrates how a bug could be presented)</summary>
## Bug Summary
When attempting to log in to GitLab using a new account, the system does not recognize the account and returns an error message.
## Steps to Reproduce
1. Navigate to the GitLab login page.
1. Enter the email and password for a new account.
1. Click the "Log In" button.
1. Observe the error message: "The email or password you entered is incorrect. Please try again."
## What is the current *bug* behavior?
The system does not recognize the new account and returns an error message.
## What is the expected *correct* behavior?
The system should recognize the new account and allow the user to log in.
## Reproducibility
This bug occurs consistently when attempting to log in with a new account.
## Impact Assessment
This bug prevents new users from accessing GitLab and may result in frustration and lost productivity.
## Severity
This bug is of medium severity, as it prevents new users from accessing the system, but does not affect the functionality of existing users.
## Environment
- Operating System: macOS Ventura
- Browser: Google Chrome 111.0.5563.146
## Screenshots and/or Relevant logs
[Insert screenshot of the error message.]
## Possible Fix
It is unclear what may be causing this bug. Further investigation is required to identify a possible fix.
</details>

View file

@ -1,65 +0,0 @@
Utilization group: Feature Template
## Description
<!-- As a [user or stakeholder], I want [goal or objective] so that [reason or benefit]. -->
## Acceptance Criteria
<!--
- [ ] [Describe what must be achieved to complete this issue.]
- [ ] [Describe another requirement needed to complete this issue.]
- [ ] [Add additional acceptance criteria as needed.]
-->
## Technical Requirements
<!-- [If applicable, please list out any technical requirements for this feature/enhancement.] -->
## Design Requirements
<!-- [If applicable, please provide a link to the design specifications for this feature/enhancement.] -->
## Impact Assessment
<!-- [Please describe the impact this feature/enhancement will have on the user experience and/or the product as a whole.] -->
## User Story
<!-- [Provide a user story to illustrate the use case for this feature/enhancement. Include examples to help communicate the intended functionality.] -->
/label ~"type::feature"
/label ~"Category:Consumables Cost Management"
/label ~"group::utilization"
/label ~"section::fulfillment"
<details>
<summary>Illustrative Description: (This is not an actual issue, but rather a sample report that demonstrates how a feature could be presented) </summary>
## Description
As a developer, I want to be able to easily create and manage merge requests, so that I can collaborate effectively with my team and ensure that code changes are reviewed and merged efficiently.
## Acceptance Criteria
- [ ] The merge request feature should allow developers to create a new merge request from a branch.
- [ ] The merge request feature should allow developers to assign the merge request to another team member for review.
- [ ] The merge request feature should provide a clear and easy-to-use interface for managing merge requests.
- [ ] The merge request feature should integrate with other GitLab features, such as issue tracking and continuous integration.
## Technical Requirements
- The merge request feature should be implemented using GitLab's API.
- The merge request feature should be integrated with GitLab's existing authentication and authorization system.
- The merge request feature should be optimized for performance and scalability.
## Design Requirements
- [Design specifications for this feature can be found here.](insert_design_link_here)
## Impact Assessment
This feature will significantly enhance the collaboration and code review process for developers using GitLab. By providing an intuitive and easy-to-use interface for managing merge requests, developers will be able to work more efficiently and effectively as a team. Additionally, integrating the merge request feature with other GitLab features will further streamline the development process.
## User Story
As a developer working on a new feature branch, I want to be able to create a new merge request and assign it to a team member for review, so that I can ensure that my code changes are thoroughly reviewed before being merged into the main codebase. With the new merge request feature, I can easily create a new merge request, assign it to a team member for review, and track its status throughout the review process. This will help me work more efficiently and effectively as a team, while also maintaining high code quality and reliability.
</details>

View file

@ -1,69 +0,0 @@
Utilization Group: Maintenance Template
## Description
<!-- Briefly describe the maintenance issue. -->
## Acceptance Criteria
<!--
- [ ] [Describe the completion requirements.]
- [ ] [Add additional acceptance criteria as necessary.]
-->
## Technical Requirements
<!-- [List any technical requirements for this maintenance issue.] -->
## Impact Assessment
<!-- [Describe the impact of this maintenance issue on the user experience and/or the product as a whole.] -->
## Steps to Reproduce
<!-- [Provide detailed steps on how to reproduce the maintenance issue.] -->
## Expected Results
<!-- [Describe the expected outcome when the maintenance issue is resolved.] -->
## Actual Results
<!-- [Describe the current outcome of the maintenance issue.] -->
/label ~type::maintenance
/label ~"Category:Consumables Cost Management"
/label ~"group::utilization"
/label ~"section::fulfillment"
<details>
<summary>Illustrative Description: (This is not an actual maintenance issue, but rather a sample report that demonstrates how a maintenance issue could be presented) </summary>
## Description
The login page is taking longer than expected to load, which is impacting the user experience.
## Acceptance Criteria
- [ ] The login page should load in less than 3 seconds on both desktop and mobile devices.
- [ ] The login page should be tested on different browsers to ensure compatibility.
- [ ] The login page should not display any errors or warnings in the console.
## Technical Requirements
- [ ] The login page should be optimized for performance.
- [ ] The login page should be tested on different browsers.
- [ ] The login page should be updated to use the latest version of the authentication library.
## Impact Assessment
This maintenance issue is impacting the user experience by causing delays in the login process. By resolving this issue, users will be able to log in faster and have a better overall experience.
## Steps to Reproduce
1. Open the login page.
1. Wait for the page to load.
1. Measure the time it takes for the page to fully load.
## Expected Results
The login page should load in less than 3 seconds on both desktop and mobile devices.
## Actual Results
The login page is currently taking more than 5 seconds to load on desktop devices and more than 7 seconds on mobile devices. This is causing frustration and delays for users.
</details>

View file

@ -1,125 +0,0 @@
**Please note:** if the incident relates to sensitive data or is security-related, consider
labeling this issue with ~security and mark it confidential, or create it in a private repository.
There is now a separate internal-only RCA template for SIRT issues referenced https://about.gitlab.com/handbook/security/root-cause-analysis.html
***
## Summary
A brief summary of what happened. Try to make it as executive-friendly as possible.
- Service(s) affected:
- Team attribution:
- Minutes downtime or degradation:
## Impact & Metrics
Start with the following:
| Question | Answer |
| ----- | ----- |
| What was the impact? | (i.e. service outage, sub-service brown-out, exposure of sensitive data, ...) |
| Who was impacted? | (i.e. external customers, internal customers, specific teams, ...) |
| How did this impact customers? | (i.e. preventing them from doing X, incorrect display of Y, ...) |
| How many attempts made to access? | |
| How many customers affected? | |
| How many customers tried to access? | |
Include any additional metrics that are of relevance.
Provide any relevant graphs that could help understand the impact of the incident and its dynamics.
## Detection & Response
Start with the following:
| Question | Answer |
| ----- | ----- |
| When was the incident detected? | YYYY-MM-DD UTC |
| How was the incident detected? | (i.e. DELKE, H1 Report, ...) |
| Did alarming work as expected? | |
| How long did it take from the start of the incident to its detection? | |
| How long did it take from detection to remediation? | |
| What steps were taken to remediate? | |
| Were there any issues with the response? | (i.e. bastion host used to access the service was not available, relevant team member wasn't page-able, ...) |
## MR Checklist
Consider these questions if a code change introduced the issue.
| Question | Answer |
| ----- | ----- |
| Was the [MR acceptance checklist](https://docs.gitlab.com/ee/development/code_review.html#acceptance-checklist) marked as reviewed in the MR? | |
| Should the checklist be updated to help reduce chances of future recurrences? If so, who is the DRI to do so? | |
## Timeline
YYYY-MM-DD
- 00:00 UTC - something happened
- 00:01 UTC - something else happened
- ...
YYYY-MM-DD+1
- 00:00 UTC - and then this happened
- 00:01 UTC - and more happened
- ...
## Root Cause Analysis
The purpose of this document is to understand the reasons that caused an incident, and to create mechanisms to prevent it from recurring in the future. A root cause can **never be a person**, the way of writing has to refer to the system and the context rather than the specific actors.
Follow the "**5 whys**" in a **blameless** manner as the core of the root cause analysis.
For this, it is necessary to start with the incident and question why it happened. Keep iterating asking "why?" 5 times. While it's not a hard rule that it has to be 5 times, it helps to keep questions get deeper in finding the actual root cause.
Keep in mind that from one "why?" there may come more than one answer, consider following the different branches.
### Example of the usage of "5 whys"
The vehicle will not start. (the problem)
1. Why? - The battery is dead.
2. Why? - The alternator is not functioning.
3. Why? - The alternator belt has broken.
4. Why? - The alternator belt was well beyond its useful service life and not replaced.
5. Why? - The vehicle was not maintained according to the recommended service schedule. (Fifth why, a root cause)
## What went well
Start with the following:
- Identify the things that worked well or as expected.
- Any additional call-outs for what went particularly well.
## What can be improved
Start with the following:
- Using the root cause analysis, explain what can be improved to prevent this from happening again.
- Is there anything that could have been done to improve the detection or time to detection?
- Is there anything that could have been done to improve the response or time to response?
- Is there an existing issue that would have either prevented this incident or reduced the impact?
- Did we have any indication or beforehand knowledge that this incident might take place?
- Was the [MR acceptance checklist](https://docs.gitlab.com/ee/development/code_review.html#acceptance-checklist) marked as reviewed in the MR?
- Should the checklist be updated to help reduce chances of future recurrences?
## Corrective actions
- List issues that have been created as corrective actions from this incident.
- For each issue, include the following:
- `<Bare issue link>` - Issue labeled as ~"corrective action".
- An estimated date of completion of the corrective action.
- The named individual who owns the delivery of the corrective action.
## Guidelines
- [Blameless RCA Guideline](https://about.gitlab.com/handbook/customer-success/professional-services-engineering/workflows/internal/root-cause-analysis.html)
- [5 whys](https://en.wikipedia.org/wiki/5_Whys)
/confidential
/label ~RCA

View file

@ -14,14 +14,17 @@
## Moving docs to a new location? ## Moving docs to a new location?
Read the [redirect guidelines](https://docs.gitlab.com/ee/development/documentation/redirects.html) first. Read the guidelines:
https://docs.gitlab.com/ee/development/documentation/index.html#move-or-rename-a-page
- [ ] Make sure the old link is not removed and has its contents replaced with - [ ] Make sure the old link is not removed and has its contents replaced with
a link to the new location. a link to the new location.
- [ ] Make sure internal links pointing to the document in question are not broken. - [ ] Make sure internal links pointing to the document in question are not broken.
- [ ] Search and replace any links referring to old docs in GitLab Rails app, - [ ] Search and replace any links referring to old docs in GitLab Rails app,
specifically under the `app/views/` and `ee/app/views` (for GitLab EE) directories. specifically under the `app/views/` and `ee/app/views` (for GitLab EE) directories.
- [ ] Update the link in [`features.yml`](https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/data/features.yml) (if applicable). - [ ] Make sure to add [`redirect_from`](https://docs.gitlab.com/ee/development/documentation/index.html#redirections-for-pages-with-disqus-comments)
to the new document if there are any Disqus comments on the old document thread.
- [ ] Update the link in `features.yml` (if applicable).
- [ ] Assign one of the technical writers for review. - [ ] Assign one of the technical writers for review.
/label ~documentation ~"Technical Writing" ~"type::maintenance" ~"maintenance::refactor" /label ~documentation ~"Technical Writing"

View file

@ -8,8 +8,6 @@ that reviewers can understand your intent. Keeping the description updated is
especially important if they didn't participate in the discussion. especially important if they didn't participate in the discussion.
--> -->
%{first_multiline_commit}
## Screenshots or screen recordings ## Screenshots or screen recordings
_Screenshots are required for UI changes, and strongly recommended for all other merge requests._ _Screenshots are required for UI changes, and strongly recommended for all other merge requests._
@ -27,6 +25,10 @@ _Numbered steps to set up and validate the change are strongly suggested._
<!-- <!--
Example below: Example below:
1. Enable the invite modal
```ruby
Feature.enable(:invite_members_group_modal)
```
1. In rails console enable the experiment fully 1. In rails console enable the experiment fully
```ruby ```ruby
Feature.enable(:member_areas_of_focus) Feature.enable(:member_areas_of_focus)

View file

@ -106,4 +106,4 @@ If you have trouble running the Rake task, check the [troubleshooting steps](htt
/label ~"release post" ~"release post item" ~"Technical Writing" ~"release post item::deprecation" /label ~"release post" ~"release post item" ~"Technical Writing" ~"release post item::deprecation"
/label ~"type::maintenance" /label ~"type::maintenance"
/label ~"maintenance::removal" /label ~"maintenance::refactor"

View file

@ -4,26 +4,6 @@
Please link to the respective test case in the testcases project Please link to the respective test case in the testcases project
--> -->
## How to set up and validate locally
<!--
In most cases this will be the command to run the test, e.g.:
From the `qa` directory:
```
bundle install
export WEBDRIVER_HEADLESS=false # If you'd like to watch the test in action
export QA_GITLAB_URL="http://gdk.test:3000" # Only needed if GDK is not running on http://127.0.0.1:3000
bundle exec rspec <path/to/spec.rb>
```
This may be particularly helpful if you're requesting reviews from engineers who aren't familiar with GitLab's E2E tests.
Any other necessary setup should be included here as well, especially if it's an orchestrated test that requires a
[special setup](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/running_tests_that_require_special_setup.html)
to run locally against GDK.
-->
### Checklist ### Checklist
- [ ] Confirm the test has a [`testcase:` tag linking to an existing test case](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/best_practices.html#link-a-test-to-its-test-case-issue) in the test case project. - [ ] Confirm the test has a [`testcase:` tag linking to an existing test case](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/best_practices.html#link-a-test-to-its-test-case-issue) in the test case project.

View file

@ -1,6 +1,6 @@
<!-- <!--
When creating a new cop that could be applied to multiple applications, When creating a new cop that could be applied to multiple applications,
we encourage you to add it to https://gitlab.com/gitlab-org/ruby/gems/gitlab-styles gem. we encourage you to add it to https://gitlab.com/gitlab-org/gitlab-styles gem.
--> -->
## Description of the proposal ## Description of the proposal

View file

@ -1,7 +1,7 @@
<!-- Set the correct label and milestone using autocomplete for guidance. Please @mention only the DRI(s) for each stage or group rather than an entire department. --> <!-- Set the correct label and milestone using autocomplete for guidance. Please @mention only the DRI(s) for each stage or group rather than an entire department. -->
/label ~"release post" ~"release post item" ~"Technical Writing" ~devops:: ~group:: ~"release post item::removal" /label ~"release post" ~"release post item" ~"Technical Writing" ~devops:: ~group:: ~"release post item::removal"
/label ~"type::maintenance" ~"maintenance::removal" /label ~"type::maintenance"
/milestone % /milestone %
/assign `@EM/PM` (choose the DRI; remove backticks here, and below) /assign `@EM/PM` (choose the DRI; remove backticks here, and below)
@ -46,6 +46,7 @@ Please review:
- [ ] Set yourself as the Assignee, meaning you are the DRI. - [ ] Set yourself as the Assignee, meaning you are the DRI.
- [ ] If the removal is a [breaking change](https://about.gitlab.com/handbook/product/gitlab-the-product/#breaking-change), add label `breaking change`. - [ ] If the removal is a [breaking change](https://about.gitlab.com/handbook/product/gitlab-the-product/#breaking-change), add label `breaking change`.
- [ ] Follow the process to [create a removal YAML file](https://about.gitlab.com/handbook/marketing/blog/release-posts/#creating-a-removal-entry). - [ ] Follow the process to [create a removal YAML file](https://about.gitlab.com/handbook/marketing/blog/release-posts/#creating-a-removal-entry).
- [ ] Make sure that the milestone dates are based on the dates in [Product milestone creation](https://about.gitlab.com/handbook/product/milestones/#product-milestone-creation).
- [ ] Add reviewers by the 10th. - [ ] Add reviewers by the 10th.
- [ ] When ready to be merged and not later than the 15th, add the ~ready label and @ message the TW for final review and merge. - [ ] When ready to be merged and not later than the 15th, add the ~ready label and @ message the TW for final review and merge.
- Removal notices should not be merged before the code is removed from the product. Do not mark ~ready until the removal is complete, or you are certain it will be completed within the current milestone and released. If PMs are not sure, they should confirm with their Engineering Manager. - Removal notices should not be merged before the code is removed from the product. Do not mark ~ready until the removal is complete, or you are certain it will be completed within the current milestone and released. If PMs are not sure, they should confirm with their Engineering Manager.

View file

@ -12,7 +12,6 @@
- [ ] Create an issue to reinstate the merge request and assign it to the author of the reverted merge request. - [ ] Create an issue to reinstate the merge request and assign it to the author of the reverted merge request.
- [ ] If the revert is to resolve a [broken 'master' incident](https://about.gitlab.com/handbook/engineering/workflow/#broken-master), please read through the [Responsibilities of the Broken `master` resolution DRI](https://about.gitlab.com/handbook/engineering/workflow/#responsibilities-of-the-resolution-dri). - [ ] If the revert is to resolve a [broken 'master' incident](https://about.gitlab.com/handbook/engineering/workflow/#broken-master), please read through the [Responsibilities of the Broken `master` resolution DRI](https://about.gitlab.com/handbook/engineering/workflow/#responsibilities-of-the-resolution-dri).
- [ ] If the revert involves a database migration, please read through [Deleting existing migrations](https://docs.gitlab.com/ee/development/database/deleting_migrations.html).
- [ ] Add the appropriate labels **before** the MR is created. We can skip CI/CD jobs only if the labels are added **before** the CI/CD pipeline is created. - [ ] Add the appropriate labels **before** the MR is created. We can skip CI/CD jobs only if the labels are added **before** the CI/CD pipeline is created.
### Milestone info ### Milestone info

View file

@ -18,18 +18,18 @@ This checklist encourages us to confirm any changes have been analyzed to reduce
* [ ] This MR is backporting a bug fix, documentation update, or spec fix, previously merged in the default branch. * [ ] This MR is backporting a bug fix, documentation update, or spec fix, previously merged in the default branch.
* [ ] The original MR has been deployed to GitLab.com (not applicable for documentation or spec changes). * [ ] The original MR has been deployed to GitLab.com (not applicable for documentation or spec changes).
* [ ] This MR has a [severity label] assigned (if applicable). * [ ] This MR has a [severity label] assigned (if applicable).
* [ ] This MR has been approved by a maintainer (only one approval is required). * [ ] Ensure the `e2e:package-and-test` job has either succeeded or been approved by a Software Engineer in Test.
* [ ] Ensure the `e2e:package-and-test-ee` job has either succeeded or been approved by a Software Engineer in Test.
#### Note to the merge request author and maintainer #### Note to the merge request author and maintainer
If you have questions about the patch release process, please: The process of backporting bug fixes into stable branches is tracked as part of an
[internal pilot]. If you have questions about this process, please:
* Refer to the [internal pilot] issue for feedback or questions.
* Refer to the [patch release runbook for engineers and maintainers] for guidance. * Refer to the [patch release runbook for engineers and maintainers] for guidance.
* Ask questions on the [`#releases`] Slack channel (internal only).
[severity label]: https://about.gitlab.com/handbook/engineering/quality/issue-triage/#severity [severity label]: https://about.gitlab.com/handbook/engineering/quality/issue-triage/#severity
[patch release runbook for engineers and maintainers]: https://gitlab.com/gitlab-org/release/docs/-/blob/master/general/patch/engineers.md [internal pilot]: https://gitlab.com/gitlab-com/gl-infra/delivery/-/issues/2886
[`#releases`]: https://gitlab.slack.com/archives/C0XM5UU6B [patch release runbook for engineers and maintainers]: https://gitlab.com/gitlab-org/release/docs/-/blob/master/general/patch/process_new.md
/assign me /assign me

View file

@ -4,8 +4,3 @@
[secrets.ruleset.identifier] [secrets.ruleset.identifier]
type = "gitleaks_rule_id" type = "gitleaks_rule_id"
value = "Password in URL" value = "Password in URL"
[[secrets.passthrough]]
type = "file"
# note this must be gitleaks.toml
target = "gitleaks.toml"
value = "config/gitleaks.toml"

View file

@ -1,3 +0,0 @@
7e07fe42d34916b276a7b068f4faa8bdc0ebc984:doc/architecture/blueprints/runner_tokens/index.md:gitlab-rrt:485
f6504b498548380198ad38295d9caa71412115f0:doc/architecture/blueprints/runner_tokens/index.md:generic-api-key:506
afedb913baf4203aa688421873fdb9f94649578e:doc/api/users.md:generic-api-key:2201

View file

@ -51,9 +51,6 @@ tasks:
[[ -f /workspace/gitpod_start_time.sh ]] && source /workspace/gitpod_start_time.sh [[ -f /workspace/gitpod_start_time.sh ]] && source /workspace/gitpod_start_time.sh
SECONDS=0 SECONDS=0
cd /workspace/gitlab-development-kit cd /workspace/gitlab-development-kit
make gitlab-update
make gitlab-shell-update
make gitlab-workhorse-update
# update GDK # update GDK
if [ "$GITLAB_UPDATE_GDK" == true ]; then if [ "$GITLAB_UPDATE_GDK" == true ]; then
echo "$(date) Updating GDK" | tee -a /workspace/startup.log echo "$(date) Updating GDK" | tee -a /workspace/startup.log
@ -129,4 +126,3 @@ vscode:
- dbaeumer.vscode-eslint@2.2.6 - dbaeumer.vscode-eslint@2.2.6
- GitLab.gitlab-workflow@3.56.0 - GitLab.gitlab-workflow@3.56.0
- DavidAnson.vscode-markdownlint@0.47.0 - DavidAnson.vscode-markdownlint@0.47.0
- esbenp.prettier-vscode

View file

@ -1,17 +0,0 @@
#!/usr/bin/env bash
set -e
shopt -s nocasematch # Enable case-insensitive matching
local_branch="$(git rev-parse --abbrev-ref HEAD)"
security_branch_regex="^security.+"
url="$2"
if [[ $local_branch =~ $security_branch_regex ]] && [[ "$url" != *"gitlab-org/security/"* ]]
then
echo "Pushing security branches to remotes other than gitlab.com/gitlab-org/security has been disabled!"
echo "Please read https://gitlab.com/gitlab-org/release/docs/blob/master/general/security/developer.md#do-not-push-to-gitlab-orggitlab"
echo
exit 1
fi

View file

@ -52,7 +52,6 @@ proper-names:
"Geo", "Geo",
"Git LFS", "Git LFS",
"git-annex", "git-annex",
"git-credential-oauth",
"git-sizer", "git-sizer",
"Git", "Git",
"Gitaly", "Gitaly",

View file

@ -19,9 +19,6 @@ inherit_from:
<% if RUBY_VERSION[/^\d+\.\d+/, 0] == '3.0' %> <% if RUBY_VERSION[/^\d+\.\d+/, 0] == '3.0' %>
- ./rubocop/rubocop-ruby30.yml - ./rubocop/rubocop-ruby30.yml
<% end %> <% end %>
<% if RUBY_VERSION[/^\d+\.\d+/, 0] == '3.1' %>
- ./rubocop/rubocop-ruby31.yml
<% end %>
- ./rubocop/rubocop-migrations.yml - ./rubocop/rubocop-migrations.yml
- ./rubocop/rubocop-usage-data.yml - ./rubocop/rubocop-usage-data.yml
- ./rubocop/rubocop-code_reuse.yml - ./rubocop/rubocop-code_reuse.yml
@ -33,7 +30,6 @@ inherit_mode:
merge: merge:
- Include - Include
- Exclude - Exclude
- AllowedPatterns
AllCops: AllCops:
# Target the current Ruby version. For example, "2.7" or "3.0". # Target the current Ruby version. For example, "2.7" or "3.0".
@ -54,10 +50,6 @@ AllCops:
- 'shared/packages/**/*' - 'shared/packages/**/*'
- 'spec/support/*.git/**/*' # e.g. spec/support/gitlab-git-test.git - 'spec/support/*.git/**/*' # e.g. spec/support/gitlab-git-test.git
- 'db/ci_migrate/*.rb' # since the `db/ci_migrate` is a symlinked to `db/migrate` - 'db/ci_migrate/*.rb' # since the `db/ci_migrate` is a symlinked to `db/migrate`
# Adding this specifically for a large revert: !118368
<% File.readlines('.rubocop_revert_ignores.txt').map(&:chomp).each do |f| %>
- '<%= f %>'
<% end %>
# Use absolute path to avoid orphan directories with changed workspace root. # Use absolute path to avoid orphan directories with changed workspace root.
CacheRootDirectory: <%= Dir.getwd %>/tmp CacheRootDirectory: <%= Dir.getwd %>/tmp
MaxFilesInCache: 1_000_000 MaxFilesInCache: 1_000_000
@ -105,19 +97,12 @@ InternalAffairs/DeprecateCopHelper:
Include: Include:
- spec/rubocop/**/*.rb - spec/rubocop/**/*.rb
Layout/LineLength:
AllowedPatterns: ['^RSpec\.describe\s.*\sdo']
Exclude:
- 'ee/spec/controllers/concerns/routable_actions_spec.rb'
- 'ee/spec/lib/gitlab/auth/group_saml/sso_enforcer_spec.rb'
Lint/LastKeywordArgument: Lint/LastKeywordArgument:
Safe: false Safe: false
Lint/EmptyFile: Lint/EmptyFile:
Exclude: Exclude:
- 'db/seeds.rb' - 'db/seeds.rb'
- 'ee/db/embedding/seeds.rb'
- 'ee/db/geo/seeds.rb' - 'ee/db/geo/seeds.rb'
# This cop checks whether some constant value isn't a # This cop checks whether some constant value isn't a
@ -152,8 +137,6 @@ RSpec/FilePath:
- 'ee/spec/frontend/fixtures/*' - 'ee/spec/frontend/fixtures/*'
- 'spec/requests/api/v3/*' - 'spec/requests/api/v3/*'
- 'spec/fixtures/**/*' - 'spec/fixtures/**/*'
CustomTransform:
HTTPartyBasicAuth: httparty_basic_auth
# Configuration parameters: AllowSubject. # Configuration parameters: AllowSubject.
RSpec/MultipleMemoizedHelpers: RSpec/MultipleMemoizedHelpers:
@ -453,18 +436,11 @@ BackgroundMigration/FeatureCategory:
Include: Include:
- 'lib/gitlab/background_migration/*.rb' - 'lib/gitlab/background_migration/*.rb'
BackgroundMigration/MissingDictionaryFile:
Enabled: true
EnforcedSince: 20230307160251
Include:
- 'db/post_migrate/*.rb'
# See https://gitlab.com/gitlab-org/gitlab/-/issues/373194 # See https://gitlab.com/gitlab-org/gitlab/-/issues/373194
Gitlab/RSpec/AvoidSetup: Gitlab/RSpec/AvoidSetup:
Enabled: true Enabled: true
Include: Include:
- 'ee/spec/features/registrations/saas/**/*' - 'ee/spec/features/registrations/saas/**/*'
- 'ee/spec/features/trials/saas/**/*'
RSpec/DuplicateSpecLocation: RSpec/DuplicateSpecLocation:
Enabled: true Enabled: true
@ -527,12 +503,6 @@ RSpec/AvoidTestProf:
- 'ee/spec/lib/gitlab/background_migration/**/*.rb' - 'ee/spec/lib/gitlab/background_migration/**/*.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/**/*.rb' - 'ee/spec/lib/ee/gitlab/background_migration/**/*.rb'
RSpec/AvoidConditionalStatements:
Enabled: true
Include:
- 'spec/features/**/*.rb'
- 'ee/spec/features/**/*.rb'
RSpec/FactoriesInMigrationSpecs: RSpec/FactoriesInMigrationSpecs:
Enabled: true Enabled: true
Include: Include:
@ -983,27 +953,3 @@ Cop/FeatureFlagUsage:
Style/ArgumentsForwarding: Style/ArgumentsForwarding:
Enabled: true Enabled: true
AllowOnlyRestArgument: false AllowOnlyRestArgument: false
Search/NamespacedClass:
Enabled: true
Exclude:
- 'config/**/*.rb'
- 'db/**/*.rb'
- 'ee/db/**/*.rb'
- 'ee/bin/**/*'
- 'ee/elastic/**/*.rb' # Advanced Search migrations issue: <>
- 'scripts/**/*'
- 'spec/migrations/**/*.rb'
- 'app/experiments/**/*_experiment.rb'
- 'ee/app/experiments/**/*_experiment.rb'
- 'lib/gitlab/instrumentation/**/*.rb'
SidekiqLoadBalancing/WorkerDataConsistency:
Enabled: true
Include:
- 'app/workers/**/*'
- 'ee/app/workers/**/*'
# This cop is disabled for Ruby 3.0+ anyway.
Lint/NonDeterministicRequireOrder:
Enabled: false

View file

@ -1,390 +0,0 @@
db/migrate/20211202041233_init_schema.rb
db/migrate/20211202094944_move_loose_fk_deleted_records_to_dynamic_schema.rb
db/migrate/20211202135508_add_index_on_packages_build_infos_package_id_pipeline_id.rb
db/migrate/20211203160952_add_updated_state_by_user_id_to_merge_request_reviewers.rb
db/migrate/20211203161149_add_index_to_merge_request_reviewers_updated_state_by_user_id.rb
db/migrate/20211203161840_add_updated_state_by_user_id_to_merge_request_assignees.rb
db/migrate/20211203161942_add_index_to_merge_request_assignees_updated_state_by_user_id.rb
db/migrate/20211204010826_add_index_snippets_on_project_id_and_title.rb
db/migrate/20211207154413_add_ci_runners_index_on_created_at_where_active_is_false.rb
db/migrate/20211207154414_add_ci_runners_index_on_contacted_at_where_active_is_false.rb
db/migrate/20211207165508_add_protected_environments_required_approval_count_check_constraint.rb
db/migrate/20211208111425_add_executor_type_column_to_ci_runners.rb
db/migrate/20211209230042_add_status_to_cluster_agent_tokens.rb
db/migrate/20211210025754_alter_constraint_of_phone.rb
db/migrate/20211210031721_change_user_details_phone_text_limit.rb
db/migrate/20211213130324_update_timelogs_spent_at_default.rb
db/migrate/20211213142344_add_settings_user_email_lookup_limit.rb
db/migrate/20211213154259_add_status_to_packages_package_files.rb
db/migrate/20211213154704_add_status_index_to_packages_package_files.rb
db/migrate/20211214110307_remove_temp_index_from_vulnerability_occurrences.rb
db/migrate/20211215182006_update_application_settings_protected_paths.rb
db/migrate/20211216133107_add_cluster_agent_id_to_vulnerability_reads.rb
db/migrate/20211216134134_add_text_limit_to_vulnerability_reads_cluster_agent_id.rb
db/migrate/20211216135651_add_index_to_cluster_agent_id.rb
db/migrate/20211216220939_add_group_crm_settings.rb
db/migrate/20211217050753_remove_artifacts_archive_id_foreign_key_from_project_pages_metadata.rb
db/migrate/20211220174504_add_secure_scanning_actions_to_onboarding_progresses.rb
db/migrate/20211223125921_add_temp_index_to_members_state.rb
db/migrate/20211224112937_add_packages_cleanup_package_file_worker_capacity_to_application_settings.rb
db/migrate/20211224114539_add_packages_cleanup_package_file_worker_capacity_check_constraint_to_app_settings.rb
db/migrate/20220104174445_add_ci_runners_index_on_active_state.rb
db/migrate/20220105082217_add_verification_token_to_external_ae_destinations.rb
db/migrate/20220105121325_add_route_namespace_reference.rb
db/migrate/20220105152547_add_foreign_key_to_updated_state_by_user_id_to_merge_request_assignees.rb
db/migrate/20220105153149_add_foreign_key_to_updated_state_by_user_id_to_merge_request_reviewers.rb
db/migrate/20220106111958_add_insert_or_update_vulnerability_reads_trigger.rb
db/migrate/20220106112043_add_update_vulnerability_reads_trigger.rb
db/migrate/20220106112085_add_update_vulnerability_reads_location_trigger.rb
db/migrate/20220106141756_remove_lock_version_indexes.rb
db/migrate/20220106163326_add_has_issues_on_vulnerability_reads_trigger.rb
db/migrate/20220106230629_add_registry_migration_application_settings.rb
db/migrate/20220106230712_add_migration_columns_to_container_repositories.rb
db/migrate/20220107091629_add_route_namespace_index.rb
db/migrate/20220107165036_remove_note_id_index.rb
db/migrate/20220109133006_remove_ci_pipelines_lock_version_index.rb
db/migrate/20220110170953_create_ci_secure_files.rb
db/migrate/20220111095006_add_maintainer_note_to_ci_runners.rb
db/migrate/20220111095007_add_text_limit_to_ci_runners_maintainer_note.rb
db/migrate/20220111154950_add_token_expires_at_to_ci_runners.rb
db/migrate/20220111154951_add_index_to_ci_runners_token_expires_at.rb
db/migrate/20220111200254_remove_index_from_merge_requests.rb
db/migrate/20220112115413_add_requires_verification_to_user_details.rb
db/migrate/20220112205111_create_security_training_providers.rb
db/migrate/20220112232037_add_member_namespace_reference.rb
db/migrate/20220112232605_add_member_namespace_index.rb
db/migrate/20220113125401_create_security_trainings.rb
db/migrate/20220113135449_add_package_files_limit_to_application_settings.rb
db/migrate/20220113135924_add_application_settings_package_files_limit_constraints.rb
db/migrate/20220113164801_add_diffs_colors_to_user_preferences.rb
db/migrate/20220113164901_add_text_limit_to_user_preferences_diffs_colors.rb
db/migrate/20220114131950_add_status_only_index_to_packages_package_files.rb
db/migrate/20220117082611_add_text_limit_to_exad_verification_tokens.rb
db/migrate/20220117225936_add_text_limits_to_container_repositories_migration_columns.rb
db/migrate/20220118015633_add_url_text_to_issuable_metric_images.rb
db/migrate/20220118020026_add_url_text_limit_to_issuable_metric_images.rb
db/migrate/20220118141950_add_text_limit_to_container_registry_import_target_plan.rb
db/migrate/20220118155846_add_runner_token_expiration_interval_settings_to_application_settings.rb
db/migrate/20220118155847_add_runner_token_expiration_interval_settings_to_namespace_settings.rb
db/migrate/20220118155848_add_runner_token_expiration_interval_settings_to_project_settings.rb
db/migrate/20220119094023_add_unique_index_to_aed_verification_token.rb
db/migrate/20220119141407_add_dependency_proxy_size_to_namespace_statistics.rb
db/migrate/20220119144253_add_dependency_proxy_size_to_namespace_root_storage_statistics.rb
db/migrate/20220119170426_remove_temporary_vulnerability_occurrences_deduplication_index.rb
db/migrate/20220119220620_add_scan_method_to_dast_site_profile.rb
db/migrate/20220120033115_create_alert_management_alert_metric_images.rb
db/migrate/20220120085655_add_ci_runner_project_index_to_runner_id_and_project_id.rb
db/migrate/20220120160625_remove_temp_index_on_id_from_vulnerability_occurrences.rb
db/migrate/20220120211831_temp_index_for_group_namespace_member_backfill.rb
db/migrate/20220124200927_add_index_to_issues.rb
db/migrate/20220125084127_add_cleanup_attempts_to_loose_foreign_keys_deleted_records.rb
db/migrate/20220125122228_add_topics_non_private_projects_count.rb
db/migrate/20220125122725_add_topics_non_private_projects_count_index.rb
db/migrate/20220125230538_add_compound_index_on_project_id_and_id_for_vulnerabilities.rb
db/migrate/20220126191624_add_scan_file_path_to_dast_site_profile.rb
db/migrate/20220128093756_add_ecdsa_sk_and_ed25519_sk_key_restrictions_to_application_settings.rb
db/migrate/20220128194722_add_index_on_migration_state_and_import_done_at_to_container_repositories.rb
db/migrate/20220131135725_add_severity_level_to_merge_requests_compliance_violations.rb
db/migrate/20220131192643_add_show_diff_preview_in_email_to_project_settings.rb
db/migrate/20220201205300_remove_index_for_vulnerability_occurrences.rb
db/migrate/20220202034409_add_tmp_index_on_id_and_migration_state_to_container_repositories.rb
db/migrate/20220202115350_add_migration_indexes_to_container_repositories.rb
db/migrate/20220203074916_add_topics_lower_name_index.rb
db/migrate/20220203091304_fix_unique_packages_index_excluding_pending_destruction_status.rb
db/migrate/20220203123333_add_batched_migration_max_batch.rb
db/migrate/20220203133652_add_legacy_open_source_license_available_to_project_settings.rb
db/migrate/20220203134942_add_hidden_to_projects.rb
db/migrate/20220204093120_create_analytics_cycle_analytics_aggregations.rb
db/migrate/20220204154220_add_index_on_greatest_done_at_to_container_repositories.rb
db/migrate/20220204193000_add_integrations_encrypted_properties.rb
db/migrate/20220207083129_add_users_get_by_id_limit_to_application_setting.rb
db/migrate/20220208170445_add_not_valid_foreign_key_to_ci_builds_runner_id.rb
db/migrate/20220208171826_update_default_scan_method_of_dast_site_profile.rb
db/migrate/20220211090920_cleanup_populate_topics_non_private_projects_count.rb
db/migrate/20220211125954_create_related_epic_links.rb
db/migrate/20220211214605_update_integrations_trigger_type_new_on_insert_null_safe.rb
db/migrate/20220213100000_remove_integration_type_triggers.rb
db/migrate/20220215164709_update_application_settings_container_registry_exp_pol_worker_capacity_default.rb
db/migrate/20220216110023_create_saved_replies.rb
db/migrate/20220217100008_add_container_registry_expiration_policies_caching_to_application_settings.rb
db/migrate/20220217113058_add_status_to_status_check_responses.rb
db/migrate/20220221102333_change_maintainer_note_limit_in_ci_runner.rb
db/migrate/20220222072536_add_target_access_levels_to_broadcast_messages.rb
db/migrate/20220301002101_add_security_orchestration_policy_configuration_namespace_reference.rb
db/migrate/20220301003502_add_security_orchestration_policy_configuration_namespace_index.rb
db/migrate/20220301091503_add_not_null_constraint_to_security_policy_configurations.rb
db/migrate/20220301175104_change_security_orchestration_policy_configuration_project_index.rb
db/migrate/20220301175426_create_project_build_artifacts_size_refresh.rb
db/migrate/20220302110724_add_group_features_table.rb
db/migrate/20220303190555_add_comment_to_deployment_approvals.rb
db/migrate/20220303191047_add_text_limit_to_deployment_approvals_comment.rb
db/migrate/20220304052335_remove_not_null_contraint_on_title_from_sprints.rb
db/migrate/20220304061631_remove_unique_index_for_sprints_on_iterations_cadence_id_and_title.rb
db/migrate/20220304062107_remove_unique_index_for_sprints_on_project_id_and_title.rb
db/migrate/20220304152729_add_default_to_required_python_on_packages_pypi_metadata.rb
db/migrate/20220307203458_rename_user_email_lookup_limit_setting_to_search_settings.rb
db/migrate/20220309100648_add_time_to_restore_service_dora_metric.rb
db/migrate/20220310011530_add_database_grafana_config_to_application_settings.rb
db/migrate/20220310011613_add_text_limit_to_database_grafana_application_settings.rb
db/migrate/20220310101118_update_holder_name_limit.rb
db/migrate/20220314094841_add_package_registry_access_level_into_project_features.rb
db/migrate/20220314184009_create_protected_environment_approval_rules.rb
db/post_migrate/20211202145237_add_todos_project_and_id_index.rb
db/post_migrate/20211203091642_add_index_to_projects_on_marked_for_deletion_at.rb
db/post_migrate/20211206073851_create_calendar_events_index_synchronously.rb
db/post_migrate/20211206074547_remove_old_calendar_events_index.rb
db/post_migrate/20211206161271_add_indexes_for_primary_email_cleanup_migration.rb
db/post_migrate/20211207081708_add_index_ci_job_artifacts_project_id_file_type.rb
db/post_migrate/20211207090503_cleanup_first_mentioned_in_commit_jobs.rb
db/post_migrate/20211207125331_remove_jobs_for_recalculate_vulnerabilities_occurrences_uuid.rb
db/post_migrate/20211207135331_schedule_recalculate_uuid_on_vulnerabilities_occurrences4.rb
db/post_migrate/20211207173510_remove_extra_finding_evidence_tables_foreign_keys.rb
db/post_migrate/20211207173511_remove_extra_finding_evidence_tables.rb
db/post_migrate/20211208122200_schedule_backfill_ci_namespace_mirrors.rb
db/post_migrate/20211208122201_schedule_backfill_ci_project_mirrors.rb
db/post_migrate/20211208171402_reschedule_recalculate_vulnerability_finding_signatures_for_findings.rb
db/post_migrate/20211209093636_track_ci_job_artifacts_deletes.rb
db/post_migrate/20211209093828_track_users_deletes.rb
db/post_migrate/20211209093923_track_external_pull_requests_deletes.rb
db/post_migrate/20211209094222_track_merge_requests_deletes.rb
db/post_migrate/20211209103048_backfill_project_namespaces_for_group.rb
db/post_migrate/20211209203820_add_tmp_index_on_report_type.rb
db/post_migrate/20211209203821_convert_stringified_raw_metadata_hash_to_json.rb
db/post_migrate/20211210140000_add_temporary_static_object_token_index.rb
db/post_migrate/20211210140629_encrypt_static_object_token.rb
db/post_migrate/20211210173137_remove_vulnerability_finding_links_again.rb
db/post_migrate/20211213064821_add_agent_id_location_index_to_vulnerability_occurrences.rb
db/post_migrate/20211213102111_drop_ci_pipelines_mr_metrics_fk.rb
db/post_migrate/20211214012507_backfill_incident_issue_escalation_statuses.rb
db/post_migrate/20211215090620_schedule_update_timelogs_null_spent_at.rb
db/post_migrate/20211217120000_modify_kubernetes_resource_location_index_to_vulnerability_occurrences.rb
db/post_migrate/20211217145923_add_index_to_events_on_author_id_and_action_and_id.rb
db/post_migrate/20211217174331_mark_recalculate_finding_signatures_as_completed.rb
db/post_migrate/20211220064757_drop_temporary_indexes_for_primary_email_migration.rb
db/post_migrate/20211220120402_add_index_on_ci_pipelines_user_id_id_failure_reason.rb
db/post_migrate/20211220123956_update_invalid_member_states.rb
db/post_migrate/20211229023654_add_async_index_ci_job_artifacts_project_id_file_type.rb
db/post_migrate/20211230112517_remove_index_events_on_author_id_and_action_and_id.rb
db/post_migrate/20211230113031_add_index_to_events_on_author_id_and_id.rb
db/post_migrate/20220104060049_remove_foreign_key_ci_group_variables_group_id.rb
db/post_migrate/20220105020514_remove_ci_minutes_additional_packs_namespace_id_foreign_key_constraint.rb
db/post_migrate/20220106185033_remove_finding_evidence_summary.rb
db/post_migrate/20220106231518_remove_foreign_key_ci_daily_build_group_report_results_group_id.rb
db/post_migrate/20220106233459_remove_foreign_key_ci_pending_builds_namespace_id.rb
db/post_migrate/20220106235626_remove_foreign_key_ci_runner_namespaces_namespace_id.rb
db/post_migrate/20220107064845_populate_vulnerability_reads.rb
db/post_migrate/20220109134455_add_idx_vulnerability_occurrences_dedup_again.rb
db/post_migrate/20220110171049_schedule_populate_test_reports_issue_id.rb
db/post_migrate/20220110224913_remove_dast_scanner_profiles_builds_ci_build_id_fk.rb
db/post_migrate/20220110231420_remove_requirements_management_test_reports_build_id_fk.rb
db/post_migrate/20220110233155_remove_dast_site_profiles_builds_ci_build_id_fk.rb
db/post_migrate/20220111002756_remove_security_scans_build_id_fk.rb
db/post_migrate/20220111023852_index_cluster_agent_tokens_on_status.rb
db/post_migrate/20220111093534_remove_index_on_auto_stop_in.rb
db/post_migrate/20220111101421_remove_index_on_merge_request_id.rb
db/post_migrate/20220111102314_truncate_ci_mirror_tables.rb
db/post_migrate/20220111221516_remove_projects_ci_pending_builds_fk.rb
db/post_migrate/20220112015940_remove_projects_ci_running_builds_fk.rb
db/post_migrate/20220112090556_remove_cascade_delete_from_project_namespace_foreign_key.rb
db/post_migrate/20220112230642_remove_projects_ci_unit_tests_project_id_fk.rb
db/post_migrate/20220112232723_remove_projects_ci_daily_build_group_report_results_project_id_fk.rb
db/post_migrate/20220113013319_remove_projects_ci_freeze_periods_project_id_fk.rb
db/post_migrate/20220113014438_remove_projects_ci_resource_groups_project_id_fk.rb
db/post_migrate/20220113015830_remove_projects_ci_build_report_results_project_id_fk.rb
db/post_migrate/20220113035519_remove_users_ci_job_token_project_scope_links_added_by_id_fk.rb
db/post_migrate/20220113040447_remove_users_ci_pipeline_schedules_owner_id_fk.rb
db/post_migrate/20220113111440_schedule_fix_incorrect_max_seats_used.rb
db/post_migrate/20220114105525_add_index_on_projects_path.rb
db/post_migrate/20220116175851_add_author_index_to_design_management_versions.rb
db/post_migrate/20220117034056_remove_index_cluster_agent_tokens_on_agent_id_and_last_used_at.rb
db/post_migrate/20220118204039_self_managed_reschedule_recalculate_vulnerability_finding_signatures_for_findings.rb
db/post_migrate/20220119094503_populate_audit_event_streaming_verification_token.rb
db/post_migrate/20220119141736_remove_projects_ci_pipeline_artifacts_project_id_fk.rb
db/post_migrate/20220119143130_remove_projects_ci_sources_pipelines_source_project_id_fk.rb
db/post_migrate/20220119144458_remove_users_ci_triggers_owner_id_fk.rb
db/post_migrate/20220119151221_remove_merge_requests_ci_pipelines_merge_request_id_fk.rb
db/post_migrate/20220119153706_remove_ci_pipelines_merge_trains_pipeline_id_fk.rb
db/post_migrate/20220119154442_remove_ci_pipelines_merge_requests_head_pipeline_id_fk.rb
db/post_migrate/20220119193130_remove_ci_pipelines_dast_profiles_pipelines_ci_pipeline_id_fk.rb
db/post_migrate/20220119201340_remove_ci_pipelines_vulnerability_statistics_latest_pipeline_id_fk.rb
db/post_migrate/20220119203119_remove_ci_pipelines_vulnerability_occurrence_pipelines_pipeline_id_fk.rb
db/post_migrate/20220120094340_drop_position_from_security_findings.rb
db/post_migrate/20220120123700_add_tmp_index_routes_id_for_namespaces.rb
db/post_migrate/20220120123800_backfill_namespace_id_for_namespace_routes.rb
db/post_migrate/20220120211832_backfill_member_namespace_id_for_group_members.rb
db/post_migrate/20220121214752_remove_projects_ci_stages_project_id_fk.rb
db/post_migrate/20220121214753_re_remove_projects_ci_stages_project_id_fk.rb
db/post_migrate/20220121221651_remove_projects_ci_variables_project_id_fk.rb
db/post_migrate/20220124130028_dedup_runner_projects.rb
db/post_migrate/20220124145019_remove_projects_external_pull_requests_project_id_fk.rb
db/post_migrate/20220124151456_remove_projects_ci_triggers_project_id_fk.rb
db/post_migrate/20220124151949_remove_projects_ci_runner_projects_project_id_fk.rb
db/post_migrate/20220124152824_remove_projects_ci_subscriptions_projects_downstream_project_id_fk.rb
db/post_migrate/20220124153233_remove_projects_ci_job_artifacts_project_id_fk.rb
db/post_migrate/20220124153234_re_remove_projects_ci_job_artifacts_project_id_fk.rb
db/post_migrate/20220124180704_remove_projects_ci_builds_metadata_project_id_fk.rb
db/post_migrate/20220124180705_re_remove_projects_ci_builds_metadata_project_id_fk.rb
db/post_migrate/20220124184338_remove_projects_ci_subscriptions_projects_upstream_project_id_fk.rb
db/post_migrate/20220124204046_remove_projects_ci_sources_pipelines_project_id_fk.rb
db/post_migrate/20220124214131_remove_projects_ci_refs_project_id_fk.rb
db/post_migrate/20220124215857_remove_projects_ci_job_token_project_scope_links_source_project_id_fk.rb
db/post_migrate/20220124221521_remove_projects_ci_project_monthly_usages_project_id_fk.rb
db/post_migrate/20220125083520_remove_ci_pipelines_dast_site_profiles_pipelines_ci_pipeline_id_fk.rb
db/post_migrate/20220125084348_remove_ci_pipelines_vulnerability_feedback_pipeline_id_fk.rb
db/post_migrate/20220125122640_schedule_populate_topics_non_private_projects_count.rb
db/post_migrate/20220126201752_remove_projects_ci_job_token_project_scope_links_target_project_id_fk.rb
db/post_migrate/20220126202654_remove_projects_ci_sources_projects_source_project_id_fk.rb
db/post_migrate/20220126203421_remove_projects_ci_pipeline_schedules_project_id_fk.rb
db/post_migrate/20220126210021_remove_projects_ci_builds_project_id_fk.rb
db/post_migrate/20220126210022_re_remove_projects_ci_builds_project_id_fk.rb
db/post_migrate/20220126210657_remove_projects_ci_pipelines_project_id_fk.rb
db/post_migrate/20220127112243_add_index_to_merge_request_assignees_state.rb
db/post_migrate/20220127112412_add_index_to_merge_request_reviewers_state.rb
db/post_migrate/20220127132200_cleanup_backfill_ci_namespace_mirrors.rb
db/post_migrate/20220127132201_cleanup_backfill_ci_project_mirrors.rb
db/post_migrate/20220128103042_schedule_delete_invalid_epic_issues_revised.rb
db/post_migrate/20220128155251_remove_dangling_running_builds.rb
db/post_migrate/20220128155814_fix_approval_rules_code_owners_rule_type_index.rb
db/post_migrate/20220131000000_index_job_artifacts_on_trace_type_and_expire_at.rb
db/post_migrate/20220131000001_schedule_trace_expiry_removal.rb
db/post_migrate/20220201034731_remove_index_clusters_kubernetes_namespaces_on_cluster_id.rb
db/post_migrate/20220201141705_cleanup_background_migration_populate_test_reports_issue_id.rb
db/post_migrate/20220201173212_add_user_details_provisioning_index.rb
db/post_migrate/20220201193033_add_unique_index_to_vulnerability_finding_links_with_truncate.rb
db/post_migrate/20220202105733_delete_service_template_records.rb
db/post_migrate/20220204053655_remove_index_epic_issues_on_epic_id.rb
db/post_migrate/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size.rb
db/post_migrate/20220204110725_backfill_cycle_analytics_aggregations.rb
db/post_migrate/20220204194347_encrypt_integration_properties.rb
db/post_migrate/20220207080758_update_api_indexes_for_projects.rb
db/post_migrate/20220208080921_schedule_migrate_personal_namespace_project_maintainer_to_owner.rb
db/post_migrate/20220208115439_start_backfill_ci_queuing_tables.rb
db/post_migrate/20220209111007_add_partial_index_for_batching_active_cluster_image_scanning_vulnerabilities.rb
db/post_migrate/20220212120735_schedule_fix_incorrect_max_seats_used2.rb
db/post_migrate/20220213103859_remove_integrations_type.rb
db/post_migrate/20220213104531_create_indexes_on_integration_type_new.rb
db/post_migrate/20220215190020_rerun_convert_stringified_raw_metadata_hash_to_json.rb
db/post_migrate/20220216201949_remove_package_files_limit_from_application_settings.rb
db/post_migrate/20220217135229_validate_not_null_constraint_on_security_findings_uuid.rb
db/post_migrate/20220221214928_remove_show_diff_preview_in_email_column.rb
db/post_migrate/20220222191845_remove_not_null_constraint_for_security_scan_succeeded.rb
db/post_migrate/20220222192524_create_not_null_constraint_releases_tag.rb
db/post_migrate/20220222192525_remove_null_releases.rb
db/post_migrate/20220223112304_schedule_nullify_orphan_runner_id_on_ci_builds.rb
db/post_migrate/20220223124428_schedule_merge_topics_with_same_name.rb
db/post_migrate/20220224000000_async_build_trace_expire_at_index.rb
db/post_migrate/20220224204415_recreate_index_security_ci_builds_on_name_and_id_parser_with_new_features.rb
db/post_migrate/20220225133705_cleanup_backfill_ci_queuing_tables.rb
db/post_migrate/20220301093434_backfill_all_project_namespaces.rb
db/post_migrate/20220302114046_backfill_group_features.rb
db/post_migrate/20220302203410_create_index_security_ci_builds_on_name_and_id_parser_with_new_features.rb
db/post_migrate/20220304165107_drop_partitioned_foreign_keys.rb
db/post_migrate/20220304201847_add_unique_index_on_security_training_providers.rb
db/post_migrate/20220305223212_add_security_training_providers.rb
db/post_migrate/20220307192534_create_index_for_remove_duplicate_project_tag_releases.rb
db/post_migrate/20220307192610_remove_duplicate_project_tag_releases.rb
db/post_migrate/20220307192645_remove_index_for_remove_duplicate_project_tag_releases.rb
db/post_migrate/20220307192725_create_unique_index_release_tag_project.rb
db/post_migrate/20220307203459_rename_user_email_lookup_limit_setting_to_search_settings_cleanup.rb
db/post_migrate/20220308000205_drop_old_index_security_ci_builds_on_name_and_id_parser_features.rb
db/post_migrate/20220308115219_schedule_reset_duplicate_ci_runners_token_encrypted_values_on_projects.rb
db/post_migrate/20220308115502_schedule_reset_duplicate_ci_runners_token_values_on_projects.rb
db/post_migrate/20220309084838_remove_external_pull_request_tracking.rb
db/post_migrate/20220309084954_remove_leftover_external_pull_request_deletions.rb
db/post_migrate/20220309154855_add_index_on_issues_closed_incidents.rb
db/post_migrate/20220310095341_add_async_index_ci_job_artifacts_project_id_created_at.rb
db/post_migrate/20220310134207_add_index_project_id_and_released_at_and_id_on_releases.rb
db/post_migrate/20220310141349_remove_dependency_list_usage_data_from_redis.rb
db/post_migrate/20220311010352_create_scan_id_and_id_index_on_security_findings.rb
db/post_migrate/20220314154235_migrate_vulnerability_approval_rules.rb
db/post_migrate/20220314162342_add_index_ci_job_artifacts_project_id_created_at.rb
ee/lib/ee/gitlab/background_migration/fix_incorrect_max_seats_used.rb
ee/lib/ee/gitlab/background_migration/populate_namespace_statistics.rb
ee/lib/ee/gitlab/background_migration/populate_test_reports_issue_id.rb
ee/lib/ee/gitlab/background_migration/recalculate_vulnerability_finding_signatures_for_findings.rb
ee/spec/lib/ee/gitlab/background_migration/fix_incorrect_max_seats_used_spec.rb
ee/spec/lib/ee/gitlab/background_migration/populate_namespace_statistics_spec.rb
ee/spec/lib/ee/gitlab/background_migration/recalculate_vulnerability_finding_signatures_for_findings_spec.rb
ee/spec/lib/gitlab/background_migration/populate_test_reports_issue_id_spec.rb
ee/spec/lib/gitlab/background_migration/remove_all_trace_expiration_dates_spec.rb
ee/spec/migrations/async_build_trace_expire_at_index_spec.rb
ee/spec/migrations/schedule_delete_invalid_epic_issues_revised_spec.rb
ee/spec/migrations/schedule_populate_test_reports_issue_id_spec.rb
ee/spec/migrations/schedule_trace_expiry_removal_spec.rb
lib/gitlab/background_migration/backfill_ci_queuing_tables.rb
lib/gitlab/background_migration/backfill_integrations_type_new.rb
lib/gitlab/background_migration/encrypt_static_object_token.rb
lib/gitlab/background_migration/fix_incorrect_max_seats_used.rb
lib/gitlab/background_migration/merge_topics_with_same_name.rb
lib/gitlab/background_migration/populate_namespace_statistics.rb
lib/gitlab/background_migration/populate_test_reports_issue_id.rb
lib/gitlab/background_migration/populate_topics_non_private_projects_count.rb
lib/gitlab/background_migration/populate_vulnerability_reads.rb
lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid.rb
lib/gitlab/background_migration/recalculate_vulnerability_finding_signatures_for_findings.rb
lib/gitlab/background_migration/remove_all_trace_expiration_dates.rb
lib/gitlab/background_migration/update_timelogs_null_spent_at.rb
spec/lib/gitlab/background_migration/backfill_ci_queuing_tables_spec.rb
spec/lib/gitlab/background_migration/backfill_group_features_spec.rb
spec/lib/gitlab/background_migration/backfill_integrations_type_new_spec.rb
spec/lib/gitlab/background_migration/backfill_member_namespace_for_group_members_spec.rb
spec/lib/gitlab/background_migration/backfill_namespace_id_for_namespace_route_spec.rb
spec/lib/gitlab/background_migration/backfill_snippet_repositories_spec.rb
spec/lib/gitlab/background_migration/encrypt_integration_properties_spec.rb
spec/lib/gitlab/background_migration/encrypt_static_object_token_spec.rb
spec/lib/gitlab/background_migration/fix_vulnerability_occurrences_with_hashes_as_raw_metadata_spec.rb
spec/lib/gitlab/background_migration/merge_topics_with_same_name_spec.rb
spec/lib/gitlab/background_migration/migrate_personal_namespace_project_maintainer_to_owner_spec.rb
spec/lib/gitlab/background_migration/nullify_orphan_runner_id_on_ci_builds_spec.rb
spec/lib/gitlab/background_migration/populate_namespace_statistics_spec.rb
spec/lib/gitlab/background_migration/populate_topics_non_private_projects_count_spec.rb
spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb
spec/lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid_spec.rb
spec/lib/gitlab/background_migration/remove_all_trace_expiration_dates_spec.rb
spec/lib/gitlab/background_migration/remove_vulnerability_finding_links_spec.rb
spec/lib/gitlab/background_migration/update_timelogs_null_spent_at_spec.rb
spec/migrations/20211203091642_add_index_to_projects_on_marked_for_deletion_at_spec.rb
spec/migrations/20211207125331_remove_jobs_for_recalculate_vulnerabilities_occurrences_uuid_spec.rb
spec/migrations/20211207135331_schedule_recalculate_uuid_on_vulnerabilities_occurrences4_spec.rb
spec/migrations/20211210140629_encrypt_static_object_token_spec.rb
spec/migrations/20211214012507_backfill_incident_issue_escalation_statuses_spec.rb
spec/migrations/20211217174331_mark_recalculate_finding_signatures_as_completed_spec.rb
spec/migrations/20220106111958_add_insert_or_update_vulnerability_reads_trigger_spec.rb
spec/migrations/20220106112043_add_update_vulnerability_reads_trigger_spec.rb
spec/migrations/20220106112085_add_update_vulnerability_reads_location_trigger_spec.rb
spec/migrations/20220106163326_add_has_issues_on_vulnerability_reads_trigger_spec.rb
spec/migrations/20220107064845_populate_vulnerability_reads_spec.rb
spec/migrations/20220120094340_drop_position_from_security_findings_spec.rb
spec/migrations/20220124130028_dedup_runner_projects_spec.rb
spec/migrations/20220128155251_remove_dangling_running_builds_spec.rb
spec/migrations/20220128155814_fix_approval_rules_code_owners_rule_type_index_spec.rb
spec/migrations/20220202105733_delete_service_template_records_spec.rb
spec/migrations/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size_spec.rb
spec/migrations/20220204194347_encrypt_integration_properties_spec.rb
spec/migrations/20220208080921_schedule_migrate_personal_namespace_project_maintainer_to_owner_spec.rb
spec/migrations/20220211214605_update_integrations_trigger_type_new_on_insert_null_safe_spec.rb
spec/migrations/20220213103859_remove_integrations_type_spec.rb
spec/migrations/20220222192524_create_not_null_constraint_releases_tag_spec.rb
spec/migrations/20220222192525_remove_null_releases_spec.rb
spec/migrations/20220223124428_schedule_merge_topics_with_same_name_spec.rb
spec/migrations/20220305223212_add_security_training_providers_spec.rb
spec/migrations/20220307192610_remove_duplicate_project_tag_releases_spec.rb
spec/migrations/20220309084954_remove_leftover_external_pull_request_deletions_spec.rb
spec/migrations/20220310141349_remove_dependency_list_usage_data_from_redis_spec.rb
spec/migrations/backfill_all_project_namespaces_spec.rb
spec/migrations/backfill_cycle_analytics_aggregations_spec.rb
spec/migrations/backfill_group_features_spec.rb
spec/migrations/backfill_member_namespace_id_for_group_members_spec.rb
spec/migrations/backfill_namespace_id_for_namespace_routes_spec.rb
spec/migrations/backfill_project_namespaces_for_group_spec.rb
spec/migrations/populate_audit_event_streaming_verification_token_spec.rb
spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_with_new_features_spec.rb
spec/migrations/remove_not_null_contraint_on_title_from_sprints_spec.rb
spec/migrations/schedule_fix_incorrect_max_seats_used2_spec.rb
spec/migrations/schedule_fix_incorrect_max_seats_used_spec.rb
spec/migrations/schedule_update_timelogs_null_spent_at_spec.rb
spec/migrations/start_backfill_ci_queuing_tables_spec.rb
spec/migrations/update_application_settings_container_registry_exp_pol_worker_capacity_default_spec.rb
spec/migrations/update_application_settings_protected_paths_spec.rb
spec/migrations/update_default_scan_method_of_dast_site_profile_spec.rb
spec/migrations/update_invalid_member_states_spec.rb

View file

@ -17,6 +17,7 @@ Capybara/VisibilityMatcher:
- 'ee/spec/support/helpers/billing_plans_helpers.rb' - 'ee/spec/support/helpers/billing_plans_helpers.rb'
- 'ee/spec/support/shared_examples/features/password_complexity_shared_examples.rb' - 'ee/spec/support/shared_examples/features/password_complexity_shared_examples.rb'
- 'ee/spec/support/shared_examples/views/issuable_bulk_dropdown_shared_examples.rb' - 'ee/spec/support/shared_examples/views/issuable_bulk_dropdown_shared_examples.rb'
- 'ee/spec/views/layouts/_search.html.haml_spec.rb'
- 'ee/spec/views/registrations/welcome/show.html.haml_spec.rb' - 'ee/spec/views/registrations/welcome/show.html.haml_spec.rb'
- 'spec/features/admin/admin_mode_spec.rb' - 'spec/features/admin/admin_mode_spec.rb'
- 'spec/features/dashboard/merge_requests_spec.rb' - 'spec/features/dashboard/merge_requests_spec.rb'
@ -54,6 +55,7 @@ Capybara/VisibilityMatcher:
- 'spec/features/search/user_searches_for_commits_spec.rb' - 'spec/features/search/user_searches_for_commits_spec.rb'
- 'spec/features/snippets/notes_on_personal_snippets_spec.rb' - 'spec/features/snippets/notes_on_personal_snippets_spec.rb'
- 'spec/features/task_lists_spec.rb' - 'spec/features/task_lists_spec.rb'
- 'spec/features/u2f_spec.rb'
- 'spec/features/uploads/user_uploads_file_to_note_spec.rb' - 'spec/features/uploads/user_uploads_file_to_note_spec.rb'
- 'spec/features/users/email_verification_on_login_spec.rb' - 'spec/features/users/email_verification_on_login_spec.rb'
- 'spec/features/users/overview_spec.rb' - 'spec/features/users/overview_spec.rb'
@ -67,6 +69,7 @@ Capybara/VisibilityMatcher:
- 'spec/support/shared_examples/features/wiki/file_attachments_shared_examples.rb' - 'spec/support/shared_examples/features/wiki/file_attachments_shared_examples.rb'
- 'spec/views/import/gitlab_projects/new.html.haml_spec.rb' - 'spec/views/import/gitlab_projects/new.html.haml_spec.rb'
- 'spec/views/layouts/_header_search.html.haml_spec.rb' - 'spec/views/layouts/_header_search.html.haml_spec.rb'
- 'spec/views/layouts/_search.html.haml_spec.rb'
- 'spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb' - 'spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb'
- 'spec/views/profiles/preferences/show.html.haml_spec.rb' - 'spec/views/profiles/preferences/show.html.haml_spec.rb'
- 'spec/views/projects/merge_requests/edit.html.haml_spec.rb' - 'spec/views/projects/merge_requests/edit.html.haml_spec.rb'

View file

@ -0,0 +1,6 @@
---
Cop/RedirectWithStatus:
Details: grace period
Exclude:
- 'app/controllers/concerns/issuable_actions.rb'
- 'app/controllers/concerns/membership_actions.rb'

View file

@ -16,6 +16,7 @@ Cop/UserAdmin:
- 'app/services/projects/fork_service.rb' - 'app/services/projects/fork_service.rb'
- 'app/services/users/build_service.rb' - 'app/services/users/build_service.rb'
- 'ee/app/controllers/ee/projects_controller.rb' - 'ee/app/controllers/ee/projects_controller.rb'
- 'ee/app/models/concerns/ee/protected_ref_access.rb'
- 'ee/app/models/ee/user.rb' - 'ee/app/models/ee/user.rb'
- 'ee/app/policies/ee/group_policy.rb' - 'ee/app/policies/ee/group_policy.rb'
- 'ee/app/services/ee/groups/create_service.rb' - 'ee/app/services/ee/groups/create_service.rb'

View file

@ -0,0 +1,4 @@
---
Database/DisableReferentialIntegrity:
Exclude:
- 'spec/lib/gitlab/background_migration/cleanup_orphaned_lfs_objects_projects_spec.rb'

View file

@ -2,6 +2,7 @@
Database/RescueQueryCanceled: Database/RescueQueryCanceled:
Exclude: Exclude:
- 'app/services/issues/relative_position_rebalancing_service.rb' - 'app/services/issues/relative_position_rebalancing_service.rb'
- 'ee/app/workers/update_max_seats_used_for_gitlab_com_subscriptions_worker.rb'
- 'lib/gitlab/background_migration/backfill_work_item_type_id_for_issues.rb' - 'lib/gitlab/background_migration/backfill_work_item_type_id_for_issues.rb'
- 'lib/gitlab/database/batch_counter.rb' - 'lib/gitlab/database/batch_counter.rb'
- 'lib/gitlab/issuables_count_for_state.rb' - 'lib/gitlab/issuables_count_for_state.rb'

View file

@ -18,13 +18,19 @@ Fips/SHA1:
- 'ee/app/services/vulnerabilities/create_service_base.rb' - 'ee/app/services/vulnerabilities/create_service_base.rb'
- 'ee/app/services/vulnerabilities/manually_create_service.rb' - 'ee/app/services/vulnerabilities/manually_create_service.rb'
- 'ee/app/services/vulnerabilities/starboard_vulnerability_create_service.rb' - 'ee/app/services/vulnerabilities/starboard_vulnerability_create_service.rb'
- 'ee/lib/ee/gitlab/background_migration/recalculate_vulnerability_finding_signatures_for_findings.rb'
- 'ee/spec/factories/vulnerabilities/feedback.rb' - 'ee/spec/factories/vulnerabilities/feedback.rb'
- 'ee/spec/factories/vulnerabilities/finding_signatures.rb' - 'ee/spec/factories/vulnerabilities/finding_signatures.rb'
- 'ee/spec/lib/ee/gitlab/alert_management/payload/generic_spec.rb' - 'ee/spec/lib/ee/gitlab/alert_management/payload/generic_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/populate_uuids_for_security_findings_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/recalculate_vulnerability_finding_signatures_for_findings_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/update_vulnerability_occurrences_location_spec.rb'
- 'ee/spec/lib/gitlab/ci/reports/security/locations/cluster_image_scanning_spec.rb' - 'ee/spec/lib/gitlab/ci/reports/security/locations/cluster_image_scanning_spec.rb'
- 'ee/spec/lib/gitlab/ci/reports/security/locations/container_scanning_spec.rb' - 'ee/spec/lib/gitlab/ci/reports/security/locations/container_scanning_spec.rb'
- 'ee/spec/lib/gitlab/ci/reports/security/locations/dast_spec.rb' - 'ee/spec/lib/gitlab/ci/reports/security/locations/dast_spec.rb'
- 'ee/spec/lib/gitlab/ci/reports/security/locations/dependency_scanning_spec.rb' - 'ee/spec/lib/gitlab/ci/reports/security/locations/dependency_scanning_spec.rb'
- 'ee/spec/migrations/update_vulnerability_occurrences_location_spec.rb'
- 'ee/spec/models/merge_train_spec.rb'
- 'ee/spec/models/resource_weight_event_spec.rb' - 'ee/spec/models/resource_weight_event_spec.rb'
- 'ee/spec/models/vulnerabilities/finding_signature_spec.rb' - 'ee/spec/models/vulnerabilities/finding_signature_spec.rb'
- 'ee/spec/models/vulnerabilities/finding_spec.rb' - 'ee/spec/models/vulnerabilities/finding_spec.rb'
@ -71,6 +77,7 @@ Fips/SHA1:
- 'spec/lib/gitlab/alert_management/payload/generic_spec.rb' - 'spec/lib/gitlab/alert_management/payload/generic_spec.rb'
- 'spec/lib/gitlab/alert_management/payload/prometheus_spec.rb' - 'spec/lib/gitlab/alert_management/payload/prometheus_spec.rb'
- 'spec/lib/gitlab/background_migration/backfill_note_discussion_id_spec.rb' - 'spec/lib/gitlab/background_migration/backfill_note_discussion_id_spec.rb'
- 'spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/finding_signature_spec.rb' - 'spec/lib/gitlab/ci/reports/security/finding_signature_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/locations/sast_spec.rb' - 'spec/lib/gitlab/ci/reports/security/locations/sast_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb' - 'spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb'
@ -78,7 +85,9 @@ Fips/SHA1:
- 'spec/lib/gitlab/diff/position_spec.rb' - 'spec/lib/gitlab/diff/position_spec.rb'
- 'spec/lib/gitlab/git/branch_spec.rb' - 'spec/lib/gitlab/git/branch_spec.rb'
- 'spec/lib/gitlab/git/tag_spec.rb' - 'spec/lib/gitlab/git/tag_spec.rb'
- 'spec/migrations/20220107064845_populate_vulnerability_reads_spec.rb'
- 'spec/migrations/20220524074947_finalize_backfill_null_note_discussion_ids_spec.rb' - 'spec/migrations/20220524074947_finalize_backfill_null_note_discussion_ids_spec.rb'
- 'spec/migrations/schedule_recalculate_vulnerability_finding_signatures_for_findings_spec.rb'
- 'spec/models/ci/artifact_blob_spec.rb' - 'spec/models/ci/artifact_blob_spec.rb'
- 'spec/models/ci/job_artifact_spec.rb' - 'spec/models/ci/job_artifact_spec.rb'
- 'spec/models/ci/pipeline_spec.rb' - 'spec/models/ci/pipeline_spec.rb'

View file

@ -1,28 +0,0 @@
---
Gettext/StaticIdentifier:
Details: grace period
Exclude:
- 'app/graphql/types/project_type.rb'
- 'app/models/integrations/apple_app_store.rb'
- 'app/models/integrations/confluence.rb'
- 'app/models/integrations/google_play.rb'
- 'app/services/import/fogbugz_service.rb'
- 'app/services/issuable_links/create_service.rb'
- 'app/services/issues/set_crm_contacts_service.rb'
- 'app/services/projects/create_from_template_service.rb'
- 'app/services/security/ci_configuration/base_create_service.rb'
- 'app/services/users/banned_user_base_service.rb'
- 'app/services/work_items/widgets/hierarchy_service/base_service.rb'
- 'ee/app/controllers/admin/licenses_controller.rb'
- 'ee/app/controllers/subscriptions/groups_controller.rb'
- 'ee/app/mailers/ee/emails/admin_notification.rb'
- 'ee/app/mailers/emails/namespace_storage_usage_mailer.rb'
- 'ee/app/models/ee/member.rb'
- 'ee/app/models/integrations/github.rb'
- 'ee/app/services/ee/projects/create_from_template_service.rb'
- 'ee/app/services/security/security_orchestration_policies/policy_configuration_validation_service.rb'
- 'ee/app/services/timebox/rollup_report_service.rb'
- 'ee/app/services/timebox_report_service.rb'
- 'ee/spec/controllers/groups/security/policies_controller_spec.rb'
- 'ee/spec/features/registrations/identity_verification_spec.rb'
- 'lib/gitlab/github_import/settings.rb'

View file

@ -0,0 +1,13 @@
---
Gitlab/DeprecateTrackRedisHLLEvent:
Exclude:
- 'app/controllers/concerns/snippets_actions.rb'
- 'app/controllers/concerns/wiki_actions.rb'
- 'app/controllers/projects/blob_controller.rb'
- 'app/controllers/projects/pipelines_controller.rb'
- 'ee/app/controllers/admin/audit_logs_controller.rb'
- 'ee/app/controllers/admin/credentials_controller.rb'
- 'ee/app/controllers/groups/analytics/ci_cd_analytics_controller.rb'
- 'ee/app/controllers/groups/audit_events_controller.rb'
- 'ee/app/controllers/groups/epic_boards_controller.rb'
- 'spec/controllers/concerns/redis_tracking_spec.rb'

View file

@ -24,6 +24,7 @@ Gitlab/DocUrl:
- 'ee/app/mailers/emails/user_cap.rb' - 'ee/app/mailers/emails/user_cap.rb'
- 'ee/app/workers/concerns/elastic/migration_obsolete.rb' - 'ee/app/workers/concerns/elastic/migration_obsolete.rb'
- 'ee/lib/ee/gitlab/ci/pipeline/quota/size.rb' - 'ee/lib/ee/gitlab/ci/pipeline/quota/size.rb'
- 'ee/lib/slack/block_kit/app_home_opened.rb'
- 'ee/lib/system_check/app/advanced_search_migrations_check.rb' - 'ee/lib/system_check/app/advanced_search_migrations_check.rb'
- 'ee/lib/tasks/gitlab/geo.rake' - 'ee/lib/tasks/gitlab/geo.rake'
- 'lib/backup/database.rb' - 'lib/backup/database.rb'

View file

@ -79,6 +79,7 @@ Gitlab/NamespacedClass:
- 'app/finders/resource_milestone_event_finder.rb' - 'app/finders/resource_milestone_event_finder.rb'
- 'app/finders/resource_state_event_finder.rb' - 'app/finders/resource_state_event_finder.rb'
- 'app/finders/sentry_issue_finder.rb' - 'app/finders/sentry_issue_finder.rb'
- 'app/finders/serverless_domain_finder.rb'
- 'app/finders/snippets_finder.rb' - 'app/finders/snippets_finder.rb'
- 'app/finders/starred_projects_finder.rb' - 'app/finders/starred_projects_finder.rb'
- 'app/finders/tags_finder.rb' - 'app/finders/tags_finder.rb'
@ -132,6 +133,7 @@ Gitlab/NamespacedClass:
- 'app/models/commit_status.rb' - 'app/models/commit_status.rb'
- 'app/models/commit_user_mention.rb' - 'app/models/commit_user_mention.rb'
- 'app/models/compare.rb' - 'app/models/compare.rb'
- 'app/models/concerns/uniquify.rb'
- 'app/models/container_expiration_policy.rb' - 'app/models/container_expiration_policy.rb'
- 'app/models/container_repository.rb' - 'app/models/container_repository.rb'
- 'app/models/context_commits_diff.rb' - 'app/models/context_commits_diff.rb'
@ -198,6 +200,7 @@ Gitlab/NamespacedClass:
- 'app/models/issue_email_participant.rb' - 'app/models/issue_email_participant.rb'
- 'app/models/issue_link.rb' - 'app/models/issue_link.rb'
- 'app/models/issue_user_mention.rb' - 'app/models/issue_user_mention.rb'
- 'app/models/iteration.rb'
- 'app/models/jira_connect_installation.rb' - 'app/models/jira_connect_installation.rb'
- 'app/models/jira_connect_subscription.rb' - 'app/models/jira_connect_subscription.rb'
- 'app/models/jira_import_state.rb' - 'app/models/jira_import_state.rb'
@ -244,7 +247,6 @@ Gitlab/NamespacedClass:
- 'app/models/notification_setting.rb' - 'app/models/notification_setting.rb'
- 'app/models/oauth_access_grant.rb' - 'app/models/oauth_access_grant.rb'
- 'app/models/oauth_access_token.rb' - 'app/models/oauth_access_token.rb'
- 'app/models/organization.rb'
- 'app/models/out_of_context_discussion.rb' - 'app/models/out_of_context_discussion.rb'
- 'app/models/pages_deployment.rb' - 'app/models/pages_deployment.rb'
- 'app/models/pages_domain.rb' - 'app/models/pages_domain.rb'
@ -307,7 +309,6 @@ Gitlab/NamespacedClass:
- 'app/models/service_desk_setting.rb' - 'app/models/service_desk_setting.rb'
- 'app/models/service_list.rb' - 'app/models/service_list.rb'
- 'app/models/shard.rb' - 'app/models/shard.rb'
- 'app/models/slack_integration.rb'
- 'app/models/snippet.rb' - 'app/models/snippet.rb'
- 'app/models/snippet_blob.rb' - 'app/models/snippet_blob.rb'
- 'app/models/snippet_input_action.rb' - 'app/models/snippet_input_action.rb'
@ -354,7 +355,6 @@ Gitlab/NamespacedClass:
- 'app/models/x509_certificate.rb' - 'app/models/x509_certificate.rb'
- 'app/models/x509_issuer.rb' - 'app/models/x509_issuer.rb'
- 'app/models/zoom_meeting.rb' - 'app/models/zoom_meeting.rb'
- 'app/policies/abuse_report_policy.rb'
- 'app/policies/application_setting/term_policy.rb' - 'app/policies/application_setting/term_policy.rb'
- 'app/policies/award_emoji_policy.rb' - 'app/policies/award_emoji_policy.rb'
- 'app/policies/base_policy.rb' - 'app/policies/base_policy.rb'
@ -479,6 +479,7 @@ Gitlab/NamespacedClass:
- 'app/serializers/build_metadata_entity.rb' - 'app/serializers/build_metadata_entity.rb'
- 'app/serializers/build_trace_entity.rb' - 'app/serializers/build_trace_entity.rb'
- 'app/serializers/build_trace_serializer.rb' - 'app/serializers/build_trace_serializer.rb'
- 'app/serializers/cluster_application_entity.rb'
- 'app/serializers/cluster_entity.rb' - 'app/serializers/cluster_entity.rb'
- 'app/serializers/cluster_serializer.rb' - 'app/serializers/cluster_serializer.rb'
- 'app/serializers/codequality_degradation_entity.rb' - 'app/serializers/codequality_degradation_entity.rb'
@ -822,6 +823,8 @@ Gitlab/NamespacedClass:
- 'app/workers/run_pipeline_schedule_worker.rb' - 'app/workers/run_pipeline_schedule_worker.rb'
- 'app/workers/schedule_merge_request_cleanup_refs_worker.rb' - 'app/workers/schedule_merge_request_cleanup_refs_worker.rb'
- 'app/workers/schedule_migrate_external_diffs_worker.rb' - 'app/workers/schedule_migrate_external_diffs_worker.rb'
- 'app/workers/self_monitoring_project_create_worker.rb'
- 'app/workers/self_monitoring_project_delete_worker.rb'
- 'app/workers/service_desk_email_receiver_worker.rb' - 'app/workers/service_desk_email_receiver_worker.rb'
- 'app/workers/stage_update_worker.rb' - 'app/workers/stage_update_worker.rb'
- 'app/workers/stuck_ci_jobs_worker.rb' - 'app/workers/stuck_ci_jobs_worker.rb'
@ -862,6 +865,7 @@ Gitlab/NamespacedClass:
- 'ee/app/finders/groups_with_templates_finder.rb' - 'ee/app/finders/groups_with_templates_finder.rb'
- 'ee/app/finders/iterations_finder.rb' - 'ee/app/finders/iterations_finder.rb'
- 'ee/app/finders/licenses_finder.rb' - 'ee/app/finders/licenses_finder.rb'
- 'ee/app/finders/merge_trains_finder.rb'
- 'ee/app/finders/productivity_analytics_finder.rb' - 'ee/app/finders/productivity_analytics_finder.rb'
- 'ee/app/finders/scim_finder.rb' - 'ee/app/finders/scim_finder.rb'
- 'ee/app/finders/software_license_policies_finder.rb' - 'ee/app/finders/software_license_policies_finder.rb'
@ -874,7 +878,6 @@ Gitlab/NamespacedClass:
- 'ee/app/models/approval_merge_request_rule.rb' - 'ee/app/models/approval_merge_request_rule.rb'
- 'ee/app/models/approval_merge_request_rule_source.rb' - 'ee/app/models/approval_merge_request_rule_source.rb'
- 'ee/app/models/approval_project_rule.rb' - 'ee/app/models/approval_project_rule.rb'
- 'ee/app/models/approval_project_rules_user.rb'
- 'ee/app/models/approval_project_rules_protected_branch.rb' - 'ee/app/models/approval_project_rules_protected_branch.rb'
- 'ee/app/models/approval_state.rb' - 'ee/app/models/approval_state.rb'
- 'ee/app/models/approval_wrapped_any_approver_rule.rb' - 'ee/app/models/approval_wrapped_any_approver_rule.rb'
@ -915,13 +918,13 @@ Gitlab/NamespacedClass:
- 'ee/app/models/issuable_metric_image.rb' - 'ee/app/models/issuable_metric_image.rb'
- 'ee/app/models/issuable_sla.rb' - 'ee/app/models/issuable_sla.rb'
- 'ee/app/models/issuables_analytics.rb' - 'ee/app/models/issuables_analytics.rb'
- 'ee/app/models/iteration.rb'
- 'ee/app/models/iteration_note.rb' - 'ee/app/models/iteration_note.rb'
- 'ee/app/models/ldap_group_link.rb' - 'ee/app/models/ldap_group_link.rb'
- 'ee/app/models/ldap_key.rb' - 'ee/app/models/ldap_key.rb'
- 'ee/app/models/license.rb' - 'ee/app/models/license.rb'
- 'ee/app/models/merge_request_block.rb' - 'ee/app/models/merge_request_block.rb'
- 'ee/app/models/merge_request_diff_detail.rb' - 'ee/app/models/merge_request_diff_detail.rb'
- 'ee/app/models/merge_train.rb'
- 'ee/app/models/namespace_limit.rb' - 'ee/app/models/namespace_limit.rb'
- 'ee/app/models/path_lock.rb' - 'ee/app/models/path_lock.rb'
- 'ee/app/models/productivity_analytics.rb' - 'ee/app/models/productivity_analytics.rb'
@ -937,6 +940,7 @@ Gitlab/NamespacedClass:
- 'ee/app/models/scim_identity.rb' - 'ee/app/models/scim_identity.rb'
- 'ee/app/models/scim_oauth_access_token.rb' - 'ee/app/models/scim_oauth_access_token.rb'
- 'ee/app/models/scoped_label_set.rb' - 'ee/app/models/scoped_label_set.rb'
- 'ee/app/models/slack_integration.rb'
- 'ee/app/models/smartcard_identity.rb' - 'ee/app/models/smartcard_identity.rb'
- 'ee/app/models/software_license.rb' - 'ee/app/models/software_license.rb'
- 'ee/app/models/software_license_policy.rb' - 'ee/app/models/software_license_policy.rb'
@ -969,7 +973,6 @@ Gitlab/NamespacedClass:
- 'ee/app/presenters/epic_presenter.rb' - 'ee/app/presenters/epic_presenter.rb'
- 'ee/app/presenters/iteration_presenter.rb' - 'ee/app/presenters/iteration_presenter.rb'
- 'ee/app/presenters/merge_request_approver_presenter.rb' - 'ee/app/presenters/merge_request_approver_presenter.rb'
- 'ee/app/presenters/repository_presenter.rb'
- 'ee/app/presenters/subscription_presenter.rb' - 'ee/app/presenters/subscription_presenter.rb'
- 'ee/app/presenters/vulnerability_presenter.rb' - 'ee/app/presenters/vulnerability_presenter.rb'
- 'ee/app/serializers/audit_event_entity.rb' - 'ee/app/serializers/audit_event_entity.rb'
@ -1047,7 +1050,6 @@ Gitlab/NamespacedClass:
- 'ee/app/workers/elastic_namespace_indexer_worker.rb' - 'ee/app/workers/elastic_namespace_indexer_worker.rb'
- 'ee/app/workers/elastic_namespace_rollout_worker.rb' - 'ee/app/workers/elastic_namespace_rollout_worker.rb'
- 'ee/app/workers/elastic_remove_expired_namespace_subscriptions_from_index_cron_worker.rb' - 'ee/app/workers/elastic_remove_expired_namespace_subscriptions_from_index_cron_worker.rb'
- 'ee/app/workers/elastic_wiki_indexer_worker.rb'
- 'ee/app/workers/geo_repository_destroy_worker.rb' - 'ee/app/workers/geo_repository_destroy_worker.rb'
- 'ee/app/workers/group_saml_group_sync_worker.rb' - 'ee/app/workers/group_saml_group_sync_worker.rb'
- 'ee/app/workers/historical_data_worker.rb' - 'ee/app/workers/historical_data_worker.rb'
@ -1068,6 +1070,7 @@ Gitlab/NamespacedClass:
- 'ee/app/workers/sync_seat_link_request_worker.rb' - 'ee/app/workers/sync_seat_link_request_worker.rb'
- 'ee/app/workers/sync_seat_link_worker.rb' - 'ee/app/workers/sync_seat_link_worker.rb'
- 'ee/app/workers/update_all_mirrors_worker.rb' - 'ee/app/workers/update_all_mirrors_worker.rb'
- 'ee/app/workers/update_max_seats_used_for_gitlab_com_subscriptions_worker.rb'
- 'ee/lib/gitlab/authority_analyzer.rb' - 'ee/lib/gitlab/authority_analyzer.rb'
- 'ee/lib/gitlab/cidr.rb' - 'ee/lib/gitlab/cidr.rb'
- 'ee/lib/gitlab/custom_file_templates.rb' - 'ee/lib/gitlab/custom_file_templates.rb'
@ -1268,6 +1271,7 @@ Gitlab/NamespacedClass:
- 'spec/models/concerns/batch_destroy_dependent_associations_spec.rb' - 'spec/models/concerns/batch_destroy_dependent_associations_spec.rb'
- 'spec/support/helpers/ci_artifact_metadata_generator.rb' - 'spec/support/helpers/ci_artifact_metadata_generator.rb'
- 'spec/support/helpers/fake_migration_classes.rb' - 'spec/support/helpers/fake_migration_classes.rb'
- 'spec/support/helpers/fake_u2f_device.rb'
- 'spec/support/helpers/fake_webauthn_device.rb' - 'spec/support/helpers/fake_webauthn_device.rb'
- 'spec/support/helpers/markdown_feature.rb' - 'spec/support/helpers/markdown_feature.rb'
- 'spec/support/helpers/redis_without_keys.rb' - 'spec/support/helpers/redis_without_keys.rb'

View file

@ -4,6 +4,7 @@ Gitlab/NoCodeCoverageComment:
- 'app/models/integration.rb' - 'app/models/integration.rb'
- 'app/services/ci/job_artifacts/destroy_batch_service.rb' - 'app/services/ci/job_artifacts/destroy_batch_service.rb'
- 'app/workers/database/batched_background_migration/single_database_worker.rb' - 'app/workers/database/batched_background_migration/single_database_worker.rb'
- 'config/initializers/net_http_response_patch.rb'
- 'ee/app/models/concerns/geo/replicable_model.rb' - 'ee/app/models/concerns/geo/replicable_model.rb'
- 'ee/lib/gitlab/geo/replicator.rb' - 'ee/lib/gitlab/geo/replicator.rb'
- 'lib/gitlab/auth/o_auth/session.rb' - 'lib/gitlab/auth/o_auth/session.rb'

View file

@ -60,6 +60,7 @@ Gitlab/ServiceResponse:
- 'ee/app/services/iterations/roll_over_issues_service.rb' - 'ee/app/services/iterations/roll_over_issues_service.rb'
- 'ee/app/services/iterations/update_service.rb' - 'ee/app/services/iterations/update_service.rb'
- 'ee/app/services/security/findings/dismiss_service.rb' - 'ee/app/services/security/findings/dismiss_service.rb'
- 'ee/app/services/vulnerabilities/finding_dismiss_service.rb'
- 'ee/app/services/vulnerability_issue_links/create_service.rb' - 'ee/app/services/vulnerability_issue_links/create_service.rb'
- 'ee/app/services/vulnerability_issue_links/delete_service.rb' - 'ee/app/services/vulnerability_issue_links/delete_service.rb'
- 'ee/spec/graphql/mutations/security/finding/dismiss_spec.rb' - 'ee/spec/graphql/mutations/security/finding/dismiss_spec.rb'

View file

@ -127,6 +127,7 @@ Gitlab/StrongMemoizeAttr:
- 'app/models/namespaces/traversal/linear.rb' - 'app/models/namespaces/traversal/linear.rb'
- 'app/models/namespaces/traversal/recursive.rb' - 'app/models/namespaces/traversal/recursive.rb'
- 'app/models/note.rb' - 'app/models/note.rb'
- 'app/models/onboarding/completion.rb'
- 'app/models/packages/go/module.rb' - 'app/models/packages/go/module.rb'
- 'app/models/packages/go/module_version.rb' - 'app/models/packages/go/module_version.rb'
- 'app/models/packages/package.rb' - 'app/models/packages/package.rb'
@ -180,7 +181,7 @@ Gitlab/StrongMemoizeAttr:
- 'app/services/ci/pipelines/hook_service.rb' - 'app/services/ci/pipelines/hook_service.rb'
- 'app/services/ci/queue/build_queue_service.rb' - 'app/services/ci/queue/build_queue_service.rb'
- 'app/services/ci/update_build_state_service.rb' - 'app/services/ci/update_build_state_service.rb'
- 'app/services/clusters/agents/authorizations/ci_access/refresh_service.rb' - 'app/services/clusters/agents/refresh_authorization_service.rb'
- 'app/services/clusters/integrations/prometheus_health_check_service.rb' - 'app/services/clusters/integrations/prometheus_health_check_service.rb'
- 'app/services/concerns/alert_management/alert_processing.rb' - 'app/services/concerns/alert_management/alert_processing.rb'
- 'app/services/concerns/incident_management/settings.rb' - 'app/services/concerns/incident_management/settings.rb'
@ -229,6 +230,8 @@ Gitlab/StrongMemoizeAttr:
- 'app/services/packages/cleanup/update_policy_service.rb' - 'app/services/packages/cleanup/update_policy_service.rb'
- 'app/services/packages/composer/create_package_service.rb' - 'app/services/packages/composer/create_package_service.rb'
- 'app/services/packages/debian/extract_changes_metadata_service.rb' - 'app/services/packages/debian/extract_changes_metadata_service.rb'
- 'app/services/packages/debian/extract_metadata_service.rb'
- 'app/services/packages/debian/find_or_create_package_service.rb'
- 'app/services/packages/debian/generate_distribution_key_service.rb' - 'app/services/packages/debian/generate_distribution_key_service.rb'
- 'app/services/packages/debian/generate_distribution_service.rb' - 'app/services/packages/debian/generate_distribution_service.rb'
- 'app/services/packages/debian/process_changes_service.rb' - 'app/services/packages/debian/process_changes_service.rb'
@ -317,7 +320,7 @@ Gitlab/StrongMemoizeAttr:
- 'ee/app/helpers/ee/preferences_helper.rb' - 'ee/app/helpers/ee/preferences_helper.rb'
- 'ee/app/helpers/ee/registrations_helper.rb' - 'ee/app/helpers/ee/registrations_helper.rb'
- 'ee/app/helpers/ee/timeboxes_helper.rb' - 'ee/app/helpers/ee/timeboxes_helper.rb'
- 'ee/app/helpers/trials_helper.rb' - 'ee/app/helpers/ee/trial_helper.rb'
- 'ee/app/helpers/ee/welcome_helper.rb' - 'ee/app/helpers/ee/welcome_helper.rb'
- 'ee/app/helpers/license_monitoring_helper.rb' - 'ee/app/helpers/license_monitoring_helper.rb'
- 'ee/app/helpers/subscriptions_helper.rb' - 'ee/app/helpers/subscriptions_helper.rb'
@ -356,12 +359,14 @@ Gitlab/StrongMemoizeAttr:
- 'ee/app/models/gitlab_subscription.rb' - 'ee/app/models/gitlab_subscription.rb'
- 'ee/app/models/issuables_analytics.rb' - 'ee/app/models/issuables_analytics.rb'
- 'ee/app/models/license.rb' - 'ee/app/models/license.rb'
- 'ee/app/models/namespaces/storage/root_excess_size.rb'
- 'ee/app/models/sca/license_compliance.rb' - 'ee/app/models/sca/license_compliance.rb'
- 'ee/app/models/security/orchestration_policy_configuration.rb' - 'ee/app/models/security/orchestration_policy_configuration.rb'
- 'ee/app/models/security/orchestration_policy_rule_schedule.rb' - 'ee/app/models/security/orchestration_policy_rule_schedule.rb'
- 'ee/app/models/vulnerabilities/finding.rb' - 'ee/app/models/vulnerabilities/finding.rb'
- 'ee/app/presenters/approval_rule_presenter.rb' - 'ee/app/presenters/approval_rule_presenter.rb'
- 'ee/app/presenters/ci/minutes/usage_presenter.rb' - 'ee/app/presenters/ci/minutes/usage_presenter.rb'
- 'ee/app/presenters/merge_request_approver_presenter.rb'
- 'ee/app/serializers/dashboard_operations_project_entity.rb' - 'ee/app/serializers/dashboard_operations_project_entity.rb'
- 'ee/app/serializers/ee/member_user_entity.rb' - 'ee/app/serializers/ee/member_user_entity.rb'
- 'ee/app/services/app_sec/dast/pipelines/find_latest_service.rb' - 'ee/app/services/app_sec/dast/pipelines/find_latest_service.rb'
@ -408,6 +413,7 @@ Gitlab/StrongMemoizeAttr:
- 'ee/app/services/incident_management/escalation_policies/update_service.rb' - 'ee/app/services/incident_management/escalation_policies/update_service.rb'
- 'ee/app/services/incident_management/pending_escalations/process_service.rb' - 'ee/app/services/incident_management/pending_escalations/process_service.rb'
- 'ee/app/services/iterations/create_service.rb' - 'ee/app/services/iterations/create_service.rb'
- 'ee/app/services/merge_commits/export_csv_service.rb'
- 'ee/app/services/merge_requests/update_blocks_service.rb' - 'ee/app/services/merge_requests/update_blocks_service.rb'
- 'ee/app/services/projects/restore_service.rb' - 'ee/app/services/projects/restore_service.rb'
- 'ee/app/services/protected_environments/base_service.rb' - 'ee/app/services/protected_environments/base_service.rb'
@ -467,6 +473,7 @@ Gitlab/StrongMemoizeAttr:
- 'ee/lib/gitlab/auth/group_saml/user.rb' - 'ee/lib/gitlab/auth/group_saml/user.rb'
- 'ee/lib/gitlab/auth/saml/membership_updater.rb' - 'ee/lib/gitlab/auth/saml/membership_updater.rb'
- 'ee/lib/gitlab/auth/smartcard/certificate.rb' - 'ee/lib/gitlab/auth/smartcard/certificate.rb'
- 'ee/lib/gitlab/ci/minutes/build_consumption.rb'
- 'ee/lib/gitlab/ci/minutes/cached_quota.rb' - 'ee/lib/gitlab/ci/minutes/cached_quota.rb'
- 'ee/lib/gitlab/ci/minutes/gitlab_contribution_cost_factor.rb' - 'ee/lib/gitlab/ci/minutes/gitlab_contribution_cost_factor.rb'
- 'ee/lib/gitlab/ci/minutes/runners_availability.rb' - 'ee/lib/gitlab/ci/minutes/runners_availability.rb'
@ -544,6 +551,7 @@ Gitlab/StrongMemoizeAttr:
- 'lib/gitlab/auth/otp/strategies/forti_token_cloud.rb' - 'lib/gitlab/auth/otp/strategies/forti_token_cloud.rb'
- 'lib/gitlab/auth/request_authenticator.rb' - 'lib/gitlab/auth/request_authenticator.rb'
- 'lib/gitlab/background_migration/legacy_upload_mover.rb' - 'lib/gitlab/background_migration/legacy_upload_mover.rb'
- 'lib/gitlab/bare_repository_import/repository.rb'
- 'lib/gitlab/blob_helper.rb' - 'lib/gitlab/blob_helper.rb'
- 'lib/gitlab/cache/ci/project_pipeline_status.rb' - 'lib/gitlab/cache/ci/project_pipeline_status.rb'
- 'lib/gitlab/chat/command.rb' - 'lib/gitlab/chat/command.rb'
@ -588,6 +596,7 @@ Gitlab/StrongMemoizeAttr:
- 'lib/gitlab/ci/reports/accessibility_reports_comparer.rb' - 'lib/gitlab/ci/reports/accessibility_reports_comparer.rb'
- 'lib/gitlab/ci/reports/codequality_reports_comparer.rb' - 'lib/gitlab/ci/reports/codequality_reports_comparer.rb'
- 'lib/gitlab/ci/reports/security/locations/base.rb' - 'lib/gitlab/ci/reports/security/locations/base.rb'
- 'lib/gitlab/ci/reports/security/vulnerability_reports_comparer.rb'
- 'lib/gitlab/ci/reports/test_reports_comparer.rb' - 'lib/gitlab/ci/reports/test_reports_comparer.rb'
- 'lib/gitlab/ci/reports/test_suite_comparer.rb' - 'lib/gitlab/ci/reports/test_suite_comparer.rb'
- 'lib/gitlab/ci/reports/test_suite_summary.rb' - 'lib/gitlab/ci/reports/test_suite_summary.rb'
@ -638,6 +647,7 @@ Gitlab/StrongMemoizeAttr:
- 'lib/gitlab/git_access_project.rb' - 'lib/gitlab/git_access_project.rb'
- 'lib/gitlab/gitaly_client/with_feature_flag_actors.rb' - 'lib/gitlab/gitaly_client/with_feature_flag_actors.rb'
- 'lib/gitlab/github_import/client.rb' - 'lib/gitlab/github_import/client.rb'
- 'lib/gitlab/github_import/importer/repository_importer.rb'
- 'lib/gitlab/github_import/representation/diff_notes/suggestion_formatter.rb' - 'lib/gitlab/github_import/representation/diff_notes/suggestion_formatter.rb'
- 'lib/gitlab/gl_repository/identifier.rb' - 'lib/gitlab/gl_repository/identifier.rb'
- 'lib/gitlab/gpg/commit.rb' - 'lib/gitlab/gpg/commit.rb'
@ -649,6 +659,7 @@ Gitlab/StrongMemoizeAttr:
- 'lib/gitlab/import_export/fast_hash_serializer.rb' - 'lib/gitlab/import_export/fast_hash_serializer.rb'
- 'lib/gitlab/import_export/group/tree_restorer.rb' - 'lib/gitlab/import_export/group/tree_restorer.rb'
- 'lib/gitlab/import_export/importer.rb' - 'lib/gitlab/import_export/importer.rb'
- 'lib/gitlab/import_export/json/legacy_reader.rb'
- 'lib/gitlab/import_export/lfs_restorer.rb' - 'lib/gitlab/import_export/lfs_restorer.rb'
- 'lib/gitlab/import_export/project/sample/date_calculator.rb' - 'lib/gitlab/import_export/project/sample/date_calculator.rb'
- 'lib/gitlab/import_export/project/tree_restorer.rb' - 'lib/gitlab/import_export/project/tree_restorer.rb'
@ -674,6 +685,7 @@ Gitlab/StrongMemoizeAttr:
- 'lib/gitlab/relative_positioning/starting_from.rb' - 'lib/gitlab/relative_positioning/starting_from.rb'
- 'lib/gitlab/request_context.rb' - 'lib/gitlab/request_context.rb'
- 'lib/gitlab/search/found_blob.rb' - 'lib/gitlab/search/found_blob.rb'
- 'lib/gitlab/serverless/service.rb'
- 'lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb' - 'lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb'
- 'lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/deduplicates_when_scheduling.rb' - 'lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/deduplicates_when_scheduling.rb'
- 'lib/gitlab/sidekiq_queue.rb' - 'lib/gitlab/sidekiq_queue.rb'

View file

@ -1,7 +0,0 @@
---
Graphql/AuthorizeTypes:
Exclude:
- 'app/graphql/types/data_transfer/base_type.rb'
- 'app/graphql/types/data_transfer/egress_node_type.rb'
- 'app/graphql/types/data_transfer/group_data_transfer_type.rb'
- 'app/graphql/types/data_transfer/project_data_transfer_type.rb'

File diff suppressed because it is too large Load diff

View file

@ -4,6 +4,7 @@ Layout/ArrayAlignment:
Details: grace period Details: grace period
Exclude: Exclude:
- 'app/controllers/admin/application_settings_controller.rb' - 'app/controllers/admin/application_settings_controller.rb'
- 'app/controllers/admin/broadcast_messages_controller.rb'
- 'app/controllers/admin/plan_limits_controller.rb' - 'app/controllers/admin/plan_limits_controller.rb'
- 'app/controllers/concerns/observability/content_security_policy.rb' - 'app/controllers/concerns/observability/content_security_policy.rb'
- 'app/controllers/profiles_controller.rb' - 'app/controllers/profiles_controller.rb'
@ -100,6 +101,7 @@ Layout/ArrayAlignment:
- 'ee/spec/lib/audit/group_merge_request_approval_setting_changes_auditor_spec.rb' - 'ee/spec/lib/audit/group_merge_request_approval_setting_changes_auditor_spec.rb'
- 'ee/spec/lib/audit/project_changes_auditor_spec.rb' - 'ee/spec/lib/audit/project_changes_auditor_spec.rb'
- 'ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb' - 'ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/update_vulnerability_occurrences_location_spec.rb'
- 'ee/spec/lib/ee/gitlab/usage_data_spec.rb' - 'ee/spec/lib/ee/gitlab/usage_data_spec.rb'
- 'ee/spec/lib/gitlab/auth/ldap/person_spec.rb' - 'ee/spec/lib/gitlab/auth/ldap/person_spec.rb'
- 'ee/spec/lib/gitlab/ci/config/security_orchestration_policies/processor_spec.rb' - 'ee/spec/lib/gitlab/ci/config/security_orchestration_policies/processor_spec.rb'
@ -182,6 +184,7 @@ Layout/ArrayAlignment:
- 'lib/gitlab/metrics/samplers/threads_sampler.rb' - 'lib/gitlab/metrics/samplers/threads_sampler.rb'
- 'lib/gitlab/object_hierarchy.rb' - 'lib/gitlab/object_hierarchy.rb'
- 'lib/gitlab/project_authorizations.rb' - 'lib/gitlab/project_authorizations.rb'
- 'lib/gitlab/rack_attack/instrumented_cache_store.rb'
- 'lib/gitlab/reference_extractor.rb' - 'lib/gitlab/reference_extractor.rb'
- 'lib/gitlab/sidekiq_middleware/size_limiter/validator.rb' - 'lib/gitlab/sidekiq_middleware/size_limiter/validator.rb'
- 'lib/gitlab/usage/metrics/instrumentations/count_imported_projects_total_metric.rb' - 'lib/gitlab/usage/metrics/instrumentations/count_imported_projects_total_metric.rb'
@ -348,6 +351,7 @@ Layout/ArrayAlignment:
- 'spec/services/spam/spam_verdict_service_spec.rb' - 'spec/services/spam/spam_verdict_service_spec.rb'
- 'spec/support/helpers/kubernetes_helpers.rb' - 'spec/support/helpers/kubernetes_helpers.rb'
- 'spec/support/helpers/login_helpers.rb' - 'spec/support/helpers/login_helpers.rb'
- 'spec/support/shared_contexts/features/integrations/integrations_shared_context.rb'
- 'spec/support/shared_examples/lib/email/email_shared_examples.rb' - 'spec/support/shared_examples/lib/email/email_shared_examples.rb'
- 'spec/support/shared_examples/lib/wikis_api_examples.rb' - 'spec/support/shared_examples/lib/wikis_api_examples.rb'
- 'spec/support/shared_examples/models/label_note_shared_examples.rb' - 'spec/support/shared_examples/models/label_note_shared_examples.rb'

View file

@ -40,6 +40,7 @@ Layout/EmptyLineAfterMagicComment:
- 'app/helpers/ci/secure_files_helper.rb' - 'app/helpers/ci/secure_files_helper.rb'
- 'app/helpers/projects/google_cloud/cloudsql_helper.rb' - 'app/helpers/projects/google_cloud/cloudsql_helper.rb'
- 'app/helpers/projects/ml/experiments_helper.rb' - 'app/helpers/projects/ml/experiments_helper.rb'
- 'app/models/airflow.rb'
- 'app/models/ci/job_token/allowlist.rb' - 'app/models/ci/job_token/allowlist.rb'
- 'app/models/commit_signatures/gpg_signature.rb' - 'app/models/commit_signatures/gpg_signature.rb'
- 'app/models/commit_signatures/x509_commit_signature.rb' - 'app/models/commit_signatures/x509_commit_signature.rb'
@ -132,6 +133,7 @@ Layout/EmptyLineAfterMagicComment:
- 'app/workers/concerns/limited_capacity/job_tracker.rb' - 'app/workers/concerns/limited_capacity/job_tracker.rb'
- 'app/workers/database/batched_background_migration/ci_database_worker.rb' - 'app/workers/database/batched_background_migration/ci_database_worker.rb'
- 'app/workers/gitlab/import/stuck_project_import_jobs_worker.rb' - 'app/workers/gitlab/import/stuck_project_import_jobs_worker.rb'
- 'app/workers/gitlab/phabricator_import/import_tasks_worker.rb'
- 'config/application.rb' - 'config/application.rb'
- 'config/initializers/fog_core_patch.rb' - 'config/initializers/fog_core_patch.rb'
- 'config/initializers/rubyzip.rb' - 'config/initializers/rubyzip.rb'
@ -142,6 +144,11 @@ Layout/EmptyLineAfterMagicComment:
- 'danger/ce_ee_vue_templates/Dangerfile' - 'danger/ce_ee_vue_templates/Dangerfile'
- 'danger/feature_flag/Dangerfile' - 'danger/feature_flag/Dangerfile'
- 'danger/pajamas/Dangerfile' - 'danger/pajamas/Dangerfile'
- 'db/migrate/20210929121516_add_releases_author_id_id_created_at_index.rb'
- 'db/migrate/20211019153615_add_state_to_merge_request_assignees.rb'
- 'db/migrate/20211126113029_add_text_limit_for_static_objects_external_storage_auth_token.rb'
- 'db/migrate/20220204093120_create_analytics_cycle_analytics_aggregations.rb'
- 'db/migrate/20220215164709_update_application_settings_container_registry_exp_pol_worker_capacity_default.rb'
- 'db/migrate/20220506154054_create_sync_namespace_details_trigger.rb' - 'db/migrate/20220506154054_create_sync_namespace_details_trigger.rb'
- 'db/migrate/20220524184149_create_sync_project_namespace_details_trigger.rb' - 'db/migrate/20220524184149_create_sync_project_namespace_details_trigger.rb'
- 'db/migrate/20220617141347_create_ci_secure_file_states.rb' - 'db/migrate/20220617141347_create_ci_secure_file_states.rb'
@ -155,6 +162,8 @@ Layout/EmptyLineAfterMagicComment:
- 'db/migrate/20221219103007_add_name_to_ml_candidates.rb' - 'db/migrate/20221219103007_add_name_to_ml_candidates.rb'
- 'db/migrate/20221219122320_copy_clickhouse_connection_string_to_encrypted_var.rb' - 'db/migrate/20221219122320_copy_clickhouse_connection_string_to_encrypted_var.rb'
- 'db/migrate/20230111124512_remove_tmp_index_vulns_on_report_type.rb' - 'db/migrate/20230111124512_remove_tmp_index_vulns_on_report_type.rb'
- 'db/post_migrate/20211209203820_add_tmp_index_on_report_type.rb'
- 'db/post_migrate/20211209203821_convert_stringified_raw_metadata_hash_to_json.rb'
- 'db/post_migrate/20220412143551_add_partial_index_on_unencrypted_integrations.rb' - 'db/post_migrate/20220412143551_add_partial_index_on_unencrypted_integrations.rb'
- 'db/post_migrate/20220413011328_remove_partial_index_on_unencrypted_integrations.rb' - 'db/post_migrate/20220413011328_remove_partial_index_on_unencrypted_integrations.rb'
- 'db/post_migrate/20220901071355_cleanup_attention_request_user_callouts.rb' - 'db/post_migrate/20220901071355_cleanup_attention_request_user_callouts.rb'
@ -206,6 +215,7 @@ Layout/EmptyLineAfterMagicComment:
- 'ee/app/models/dependencies/dependency_list_export.rb' - 'ee/app/models/dependencies/dependency_list_export.rb'
- 'ee/app/models/ee/issue_assignee.rb' - 'ee/app/models/ee/issue_assignee.rb'
- 'ee/app/models/geo/ci_secure_file_state.rb' - 'ee/app/models/geo/ci_secure_file_state.rb'
- 'ee/app/models/namespaces/storage/cli_notification.rb'
- 'ee/app/models/namespaces/storage/limit_exclusion.rb' - 'ee/app/models/namespaces/storage/limit_exclusion.rb'
- 'ee/app/models/project_security_setting.rb' - 'ee/app/models/project_security_setting.rb'
- 'ee/app/models/protected_environment.rb' - 'ee/app/models/protected_environment.rb'
@ -272,6 +282,13 @@ Layout/EmptyLineAfterMagicComment:
- 'ee/lib/gitlab/cidr.rb' - 'ee/lib/gitlab/cidr.rb'
- 'ee/lib/quality/seeders/vulnerabilities.rb' - 'ee/lib/quality/seeders/vulnerabilities.rb'
- 'ee/spec/components/billing/plan_component_spec.rb' - 'ee/spec/components/billing/plan_component_spec.rb'
- 'ee/spec/components/namespaces/free_user_cap/enforcement_alert_component_spec.rb'
- 'ee/spec/components/namespaces/free_user_cap/enforcement_at_limit_alert_component_spec.rb'
- 'ee/spec/components/namespaces/free_user_cap/non_owner_alert_component_spec.rb'
- 'ee/spec/components/namespaces/free_user_cap/non_owner_notification_alert_component_spec.rb'
- 'ee/spec/components/namespaces/free_user_cap/notification_alert_component_spec.rb'
- 'ee/spec/components/namespaces/free_user_cap/usage_quota_alert_component_spec.rb'
- 'ee/spec/components/namespaces/free_user_cap/usage_quota_trial_alert_component_spec.rb'
- 'ee/spec/components/namespaces/storage/limit_alert_component_spec.rb' - 'ee/spec/components/namespaces/storage/limit_alert_component_spec.rb'
- 'ee/spec/components/namespaces/storage/pre_enforcement_alert_component_spec.rb' - 'ee/spec/components/namespaces/storage/pre_enforcement_alert_component_spec.rb'
- 'ee/spec/components/namespaces/storage/project_pre_enforcement_alert_component_spec.rb' - 'ee/spec/components/namespaces/storage/project_pre_enforcement_alert_component_spec.rb'
@ -327,6 +344,7 @@ Layout/EmptyLineAfterMagicComment:
- 'ee/spec/graphql/mutations/vulnerabilities/revert_to_detected_spec.rb' - 'ee/spec/graphql/mutations/vulnerabilities/revert_to_detected_spec.rb'
- 'ee/spec/helpers/ee/auth_helper_spec.rb' - 'ee/spec/helpers/ee/auth_helper_spec.rb'
- 'ee/spec/helpers/ee/geo_helper_spec.rb' - 'ee/spec/helpers/ee/geo_helper_spec.rb'
- 'ee/spec/helpers/ee/groups/analytics/cycle_analytics_helper_spec.rb'
- 'ee/spec/helpers/ee/invite_members_helper_spec.rb' - 'ee/spec/helpers/ee/invite_members_helper_spec.rb'
- 'ee/spec/helpers/ee/namespaces_helper_spec.rb' - 'ee/spec/helpers/ee/namespaces_helper_spec.rb'
- 'ee/spec/helpers/ee/saml_providers_helper_spec.rb' - 'ee/spec/helpers/ee/saml_providers_helper_spec.rb'
@ -424,6 +442,7 @@ Layout/EmptyLineAfterMagicComment:
- 'ee/spec/services/wikis/create_attachment_service_spec.rb' - 'ee/spec/services/wikis/create_attachment_service_spec.rb'
- 'ee/spec/support/helpers/board_helpers.rb' - 'ee/spec/support/helpers/board_helpers.rb'
- 'ee/spec/workers/app_sec/dast/profile_schedule_worker_spec.rb' - 'ee/spec/workers/app_sec/dast/profile_schedule_worker_spec.rb'
- 'ee/spec/workers/integrations/slack_event_worker_spec.rb'
- 'ee/spec/workers/namespaces/free_user_cap/backfill_notification_jobs_worker_spec.rb' - 'ee/spec/workers/namespaces/free_user_cap/backfill_notification_jobs_worker_spec.rb'
- 'lib/api/commits.rb' - 'lib/api/commits.rb'
- 'lib/api/concerns/packages/nuget_endpoints.rb' - 'lib/api/concerns/packages/nuget_endpoints.rb'
@ -440,7 +459,11 @@ Layout/EmptyLineAfterMagicComment:
- 'lib/gitlab/background_migration/backfill_issue_search_data.rb' - 'lib/gitlab/background_migration/backfill_issue_search_data.rb'
- 'lib/gitlab/background_migration/backfill_project_import_level.rb' - 'lib/gitlab/background_migration/backfill_project_import_level.rb'
- 'lib/gitlab/background_migration/backfill_project_namespace_details.rb' - 'lib/gitlab/background_migration/backfill_project_namespace_details.rb'
- 'lib/gitlab/background_migration/drop_invalid_security_findings.rb'
- 'lib/gitlab/background_migration/mailers/unconfirm_mailer.rb' - 'lib/gitlab/background_migration/mailers/unconfirm_mailer.rb'
- 'lib/gitlab/background_migration/migrate_u2f_webauthn.rb'
- 'lib/gitlab/background_migration/populate_test_reports_issue_id.rb'
- 'lib/gitlab/background_migration/update_users_where_two_factor_auth_required_from_group.rb'
- 'lib/gitlab/ci/secure_files/mobile_provision.rb' - 'lib/gitlab/ci/secure_files/mobile_provision.rb'
- 'lib/gitlab/cleanup/remote_uploads.rb' - 'lib/gitlab/cleanup/remote_uploads.rb'
- 'lib/gitlab/database/migrations/background_migration_helpers.rb' - 'lib/gitlab/database/migrations/background_migration_helpers.rb'
@ -459,12 +482,25 @@ Layout/EmptyLineAfterMagicComment:
- 'lib/gitlab/import_export/recursive_merge_folders.rb' - 'lib/gitlab/import_export/recursive_merge_folders.rb'
- 'lib/gitlab/import_export/shared.rb' - 'lib/gitlab/import_export/shared.rb'
- 'lib/gitlab/json_logger.rb' - 'lib/gitlab/json_logger.rb'
- 'lib/gitlab/kubernetes/helm/v2/certificate.rb'
- 'lib/gitlab/lfs/client.rb' - 'lib/gitlab/lfs/client.rb'
- 'lib/gitlab/merge_requests/mergeability/check_result.rb' - 'lib/gitlab/merge_requests/mergeability/check_result.rb'
- 'lib/gitlab/merge_requests/mergeability/redis_interface.rb' - 'lib/gitlab/merge_requests/mergeability/redis_interface.rb'
- 'lib/gitlab/merge_requests/mergeability/results_store.rb' - 'lib/gitlab/merge_requests/mergeability/results_store.rb'
- 'lib/gitlab/merge_requests/message_generator.rb' - 'lib/gitlab/merge_requests/message_generator.rb'
- 'lib/gitlab/pagination/keyset/sql_type_missing_error.rb' - 'lib/gitlab/pagination/keyset/sql_type_missing_error.rb'
- 'lib/gitlab/phabricator_import/cache/map.rb'
- 'lib/gitlab/phabricator_import/conduit.rb'
- 'lib/gitlab/phabricator_import/conduit/client.rb'
- 'lib/gitlab/phabricator_import/conduit/maniphest.rb'
- 'lib/gitlab/phabricator_import/conduit/pagination.rb'
- 'lib/gitlab/phabricator_import/conduit/response.rb'
- 'lib/gitlab/phabricator_import/conduit/tasks_response.rb'
- 'lib/gitlab/phabricator_import/conduit/user.rb'
- 'lib/gitlab/phabricator_import/issues/importer.rb'
- 'lib/gitlab/phabricator_import/issues/task_importer.rb'
- 'lib/gitlab/phabricator_import/representation/task.rb'
- 'lib/gitlab/phabricator_import/worker_state.rb'
- 'lib/gitlab/relative_positioning/gap.rb' - 'lib/gitlab/relative_positioning/gap.rb'
- 'lib/gitlab/safe_device_detector.rb' - 'lib/gitlab/safe_device_detector.rb'
- 'lib/gitlab/spamcheck/client.rb' - 'lib/gitlab/spamcheck/client.rb'
@ -519,8 +555,10 @@ Layout/EmptyLineAfterMagicComment:
- 'spec/components/previews/pajamas/card_component_preview.rb' - 'spec/components/previews/pajamas/card_component_preview.rb'
- 'spec/components/previews/pajamas/spinner_component_preview.rb' - 'spec/components/previews/pajamas/spinner_component_preview.rb'
- 'spec/controllers/application_controller_spec.rb' - 'spec/controllers/application_controller_spec.rb'
- 'spec/controllers/concerns/analytics/cycle_analytics/value_stream_actions_spec.rb'
- 'spec/controllers/projects/jobs_controller_spec.rb' - 'spec/controllers/projects/jobs_controller_spec.rb'
- 'spec/controllers/projects/merge_requests/drafts_controller_spec.rb' - 'spec/controllers/projects/merge_requests/drafts_controller_spec.rb'
- 'spec/factories/airflow/dags.rb'
- 'spec/factories/alert_management/alerts.rb' - 'spec/factories/alert_management/alerts.rb'
- 'spec/factories/draft_note.rb' - 'spec/factories/draft_note.rb'
- 'spec/factories/ml/candidates.rb' - 'spec/factories/ml/candidates.rb'
@ -556,13 +594,18 @@ Layout/EmptyLineAfterMagicComment:
- 'spec/graphql/types/label_type_spec.rb' - 'spec/graphql/types/label_type_spec.rb'
- 'spec/graphql/types/users/email_type_spec.rb' - 'spec/graphql/types/users/email_type_spec.rb'
- 'spec/graphql/types/users/namespace_commit_email_type_spec.rb' - 'spec/graphql/types/users/namespace_commit_email_type_spec.rb'
- 'spec/helpers/analytics/cycle_analytics_helper_spec.rb'
- 'spec/helpers/keyset_helper_spec.rb' - 'spec/helpers/keyset_helper_spec.rb'
- 'spec/helpers/sorting_helper_spec.rb' - 'spec/helpers/sorting_helper_spec.rb'
- 'spec/initializers/mail_encoding_patch_spec.rb' - 'spec/initializers/mail_encoding_patch_spec.rb'
- 'spec/lib/constraints/admin_constrainer_spec.rb' - 'spec/lib/constraints/admin_constrainer_spec.rb'
- 'spec/lib/gitlab/analytics/date_filler_spec.rb' - 'spec/lib/gitlab/analytics/date_filler_spec.rb'
- 'spec/lib/gitlab/background_migration/drop_invalid_security_findings_spec.rb'
- 'spec/lib/gitlab/background_migration/encrypt_integration_properties_spec.rb'
- 'spec/lib/gitlab/background_migration/encrypt_static_object_token_spec.rb'
- 'spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb' - 'spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb'
- 'spec/lib/gitlab/background_migration/legacy_uploads_migrator_spec.rb' - 'spec/lib/gitlab/background_migration/legacy_uploads_migrator_spec.rb'
- 'spec/lib/gitlab/background_migration/remove_duplicate_vulnerabilities_findings_spec.rb'
- 'spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb' - 'spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb'
- 'spec/lib/gitlab/class_attributes_spec.rb' - 'spec/lib/gitlab/class_attributes_spec.rb'
- 'spec/lib/gitlab/cleanup/remote_uploads_spec.rb' - 'spec/lib/gitlab/cleanup/remote_uploads_spec.rb'
@ -576,6 +619,7 @@ Layout/EmptyLineAfterMagicComment:
- 'spec/lib/gitlab/database/migrations/observers/total_database_size_change_spec.rb' - 'spec/lib/gitlab/database/migrations/observers/total_database_size_change_spec.rb'
- 'spec/lib/gitlab/database/migrations/observers/transaction_duration_spec.rb' - 'spec/lib/gitlab/database/migrations/observers/transaction_duration_spec.rb'
- 'spec/lib/gitlab/database/migrations/runner_spec.rb' - 'spec/lib/gitlab/database/migrations/runner_spec.rb'
- 'spec/lib/gitlab/database/schema_validation/index_spec.rb'
- 'spec/lib/gitlab/file_markdown_link_builder_spec.rb' - 'spec/lib/gitlab/file_markdown_link_builder_spec.rb'
- 'spec/lib/gitlab/file_type_detection_spec.rb' - 'spec/lib/gitlab/file_type_detection_spec.rb'
- 'spec/lib/gitlab/git/patches/collection_spec.rb' - 'spec/lib/gitlab/git/patches/collection_spec.rb'
@ -595,6 +639,7 @@ Layout/EmptyLineAfterMagicComment:
- 'spec/lib/gitlab/json_cache_spec.rb' - 'spec/lib/gitlab/json_cache_spec.rb'
- 'spec/lib/gitlab/jwt_token_spec.rb' - 'spec/lib/gitlab/jwt_token_spec.rb'
- 'spec/lib/gitlab/kroki_spec.rb' - 'spec/lib/gitlab/kroki_spec.rb'
- 'spec/lib/gitlab/kubernetes/helm/v2/certificate_spec.rb'
- 'spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb' - 'spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb'
- 'spec/lib/gitlab/markdown_cache/redis/extension_spec.rb' - 'spec/lib/gitlab/markdown_cache/redis/extension_spec.rb'
- 'spec/lib/gitlab/markdown_cache/redis/store_spec.rb' - 'spec/lib/gitlab/markdown_cache/redis/store_spec.rb'
@ -603,6 +648,15 @@ Layout/EmptyLineAfterMagicComment:
- 'spec/lib/gitlab/metrics/rails_slis_spec.rb' - 'spec/lib/gitlab/metrics/rails_slis_spec.rb'
- 'spec/lib/gitlab/middleware/handle_malformed_strings_spec.rb' - 'spec/lib/gitlab/middleware/handle_malformed_strings_spec.rb'
- 'spec/lib/gitlab/middleware/request_context_spec.rb' - 'spec/lib/gitlab/middleware/request_context_spec.rb'
- 'spec/lib/gitlab/phabricator_import/conduit/client_spec.rb'
- 'spec/lib/gitlab/phabricator_import/conduit/maniphest_spec.rb'
- 'spec/lib/gitlab/phabricator_import/conduit/response_spec.rb'
- 'spec/lib/gitlab/phabricator_import/conduit/tasks_response_spec.rb'
- 'spec/lib/gitlab/phabricator_import/conduit/user_spec.rb'
- 'spec/lib/gitlab/phabricator_import/conduit/users_response_spec.rb'
- 'spec/lib/gitlab/phabricator_import/issues/importer_spec.rb'
- 'spec/lib/gitlab/phabricator_import/issues/task_importer_spec.rb'
- 'spec/lib/gitlab/phabricator_import/project_creator_spec.rb'
- 'spec/lib/gitlab/request_endpoints_spec.rb' - 'spec/lib/gitlab/request_endpoints_spec.rb'
- 'spec/lib/gitlab/slash_commands/presenters/issue_new_spec.rb' - 'spec/lib/gitlab/slash_commands/presenters/issue_new_spec.rb'
- 'spec/lib/gitlab/ssh/commit_spec.rb' - 'spec/lib/gitlab/ssh/commit_spec.rb'
@ -612,6 +666,17 @@ Layout/EmptyLineAfterMagicComment:
- 'spec/lib/gitlab/x509/commit_spec.rb' - 'spec/lib/gitlab/x509/commit_spec.rb'
- 'spec/lib/gitlab/x509/tag_spec.rb' - 'spec/lib/gitlab/x509/tag_spec.rb'
- 'spec/lib/security/report_schema_version_matcher_spec.rb' - 'spec/lib/security/report_schema_version_matcher_spec.rb'
- 'spec/migrations/20211018152654_schedule_remove_duplicate_vulnerabilities_findings3_spec.rb'
- 'spec/migrations/20211110143306_add_not_null_constraint_to_security_findings_uuid_spec.rb'
- 'spec/migrations/20211116111644_schedule_remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb'
- 'spec/migrations/20211207125331_remove_jobs_for_recalculate_vulnerabilities_occurrences_uuid_spec.rb'
- 'spec/migrations/20211210140629_encrypt_static_object_token_spec.rb'
- 'spec/migrations/20211217174331_mark_recalculate_finding_signatures_as_completed_spec.rb'
- 'spec/migrations/20220107064845_populate_vulnerability_reads_spec.rb'
- 'spec/migrations/20220202105733_delete_service_template_records_spec.rb'
- 'spec/migrations/20220222192524_create_not_null_constraint_releases_tag_spec.rb'
- 'spec/migrations/20220222192525_remove_null_releases_spec.rb'
- 'spec/migrations/20220309084954_remove_leftover_external_pull_request_deletions_spec.rb'
- 'spec/migrations/20220322132242_update_pages_onboarding_state_spec.rb' - 'spec/migrations/20220322132242_update_pages_onboarding_state_spec.rb'
- 'spec/migrations/20220329175119_remove_leftover_ci_job_artifact_deletions_spec.rb' - 'spec/migrations/20220329175119_remove_leftover_ci_job_artifact_deletions_spec.rb'
- 'spec/models/analytics/cycle_analytics/aggregation_spec.rb' - 'spec/models/analytics/cycle_analytics/aggregation_spec.rb'
@ -748,7 +813,10 @@ Layout/EmptyLineAfterMagicComment:
- 'spec/services/packages/create_package_file_service_spec.rb' - 'spec/services/packages/create_package_file_service_spec.rb'
- 'spec/services/packages/debian/extract_changes_metadata_service_spec.rb' - 'spec/services/packages/debian/extract_changes_metadata_service_spec.rb'
- 'spec/services/packages/debian/extract_deb_metadata_service_spec.rb' - 'spec/services/packages/debian/extract_deb_metadata_service_spec.rb'
- 'spec/services/packages/debian/extract_metadata_service_spec.rb'
- 'spec/services/packages/debian/parse_debian822_service_spec.rb' - 'spec/services/packages/debian/parse_debian822_service_spec.rb'
- 'spec/services/packages/debian/process_changes_service_spec.rb'
- 'spec/services/packages/debian/process_package_file_service_spec.rb'
- 'spec/services/packages/helm/extract_file_metadata_service_spec.rb' - 'spec/services/packages/helm/extract_file_metadata_service_spec.rb'
- 'spec/services/packages/helm/process_file_service_spec.rb' - 'spec/services/packages/helm/process_file_service_spec.rb'
- 'spec/services/packages/maven/create_package_service_spec.rb' - 'spec/services/packages/maven/create_package_service_spec.rb'
@ -784,10 +852,11 @@ Layout/EmptyLineAfterMagicComment:
- 'spec/services/wikis/create_attachment_service_spec.rb' - 'spec/services/wikis/create_attachment_service_spec.rb'
- 'spec/support/fips.rb' - 'spec/support/fips.rb'
- 'spec/support/generate-seed-repo-rb' - 'spec/support/generate-seed-repo-rb'
- 'spec/support/helpers/graphql/fake_query_type.rb' - 'spec/support/graphql/fake_query_type.rb'
- 'spec/support/helpers/fake_webauthn_device.rb' - 'spec/support/helpers/fake_webauthn_device.rb'
- 'spec/support/helpers/features/access_token_helpers.rb' - 'spec/support/helpers/features/access_token_helpers.rb'
- 'spec/support/helpers/features/iteration_helpers.rb' - 'spec/support/helpers/features/iteration_helpers.rb'
- 'spec/support/helpers/features/list_rows_helpers.rb'
- 'spec/support/helpers/features/responsive_table_helpers.rb' - 'spec/support/helpers/features/responsive_table_helpers.rb'
- 'spec/support/helpers/features/two_factor_helpers.rb' - 'spec/support/helpers/features/two_factor_helpers.rb'
- 'spec/support/helpers/lfs_http_helpers.rb' - 'spec/support/helpers/lfs_http_helpers.rb'
@ -819,10 +888,12 @@ Layout/EmptyLineAfterMagicComment:
- 'spec/views/shared/ssh_keys/_key_delete.html.haml_spec.rb' - 'spec/views/shared/ssh_keys/_key_delete.html.haml_spec.rb'
- 'spec/views/shared/wikis/_sidebar.html.haml_spec.rb' - 'spec/views/shared/wikis/_sidebar.html.haml_spec.rb'
- 'spec/workers/auto_devops/disable_worker_spec.rb' - 'spec/workers/auto_devops/disable_worker_spec.rb'
- 'spec/workers/gitlab/phabricator_import/base_worker_spec.rb'
- 'spec/workers/gitlab/phabricator_import/import_tasks_worker_spec.rb'
- 'spec/workers/integrations/execute_worker_spec.rb' - 'spec/workers/integrations/execute_worker_spec.rb'
- 'spec/workers/partition_creation_worker_spec.rb' - 'spec/workers/partition_creation_worker_spec.rb'
- 'spec/workers/projects/delete_branch_worker_spec.rb' - 'spec/workers/projects/delete_branch_worker_spec.rb'
- 'spec/workers/web_hook_worker_spec.rb' - 'spec/workers/web_hook_worker_spec.rb'
- 'tooling/danger/analytics_instrumentation.rb' - 'tooling/danger/product_intelligence.rb'
- 'tooling/danger/suggestor.rb' - 'tooling/danger/suggestor.rb'
- 'tooling/docs/deprecation_handling.rb' - 'tooling/docs/deprecation_handling.rb'

View file

@ -3,6 +3,7 @@
Layout/FirstArrayElementIndentation: Layout/FirstArrayElementIndentation:
Details: grace period Details: grace period
Exclude: Exclude:
- 'app/controllers/admin/broadcast_messages_controller.rb'
- 'app/controllers/admin/plan_limits_controller.rb' - 'app/controllers/admin/plan_limits_controller.rb'
- 'app/finders/user_groups_counter.rb' - 'app/finders/user_groups_counter.rb'
- 'app/helpers/search_helper.rb' - 'app/helpers/search_helper.rb'

View file

@ -23,6 +23,7 @@ Layout/FirstHashElementIndentation:
- 'app/helpers/tags_helper.rb' - 'app/helpers/tags_helper.rb'
- 'app/models/application_setting.rb' - 'app/models/application_setting.rb'
- 'app/models/ci/build_metadata.rb' - 'app/models/ci/build_metadata.rb'
- 'app/models/clusters/applications/crossplane.rb'
- 'app/models/concerns/has_wiki_page_slug_attributes.rb' - 'app/models/concerns/has_wiki_page_slug_attributes.rb'
- 'app/models/concerns/subscribable.rb' - 'app/models/concerns/subscribable.rb'
- 'app/models/concerns/taskable.rb' - 'app/models/concerns/taskable.rb'
@ -45,6 +46,7 @@ Layout/FirstHashElementIndentation:
- 'ee/app/graphql/mutations/iterations/update.rb' - 'ee/app/graphql/mutations/iterations/update.rb'
- 'ee/app/helpers/ee/geo_helper.rb' - 'ee/app/helpers/ee/geo_helper.rb'
- 'ee/app/helpers/ee/groups/group_members_helper.rb' - 'ee/app/helpers/ee/groups/group_members_helper.rb'
- 'ee/app/helpers/ee/trial_helper.rb'
- 'ee/app/models/ee/list.rb' - 'ee/app/models/ee/list.rb'
- 'ee/app/services/app_sec/dast/profiles/update_service.rb' - 'ee/app/services/app_sec/dast/profiles/update_service.rb'
- 'ee/app/services/elastic/cluster_reindexing_service.rb' - 'ee/app/services/elastic/cluster_reindexing_service.rb'
@ -149,7 +151,7 @@ Layout/FirstHashElementIndentation:
- 'qa/qa/specs/features/api/1_manage/migration/gitlab_migration_release_spec.rb' - 'qa/qa/specs/features/api/1_manage/migration/gitlab_migration_release_spec.rb'
- 'qa/qa/specs/features/api/3_create/repository/commit_to_templated_project_spec.rb' - 'qa/qa/specs/features/api/3_create/repository/commit_to_templated_project_spec.rb'
- 'qa/qa/specs/features/api/5_package/container_registry_spec.rb' - 'qa/qa/specs/features/api/5_package/container_registry_spec.rb'
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/open_web_ide_from_diff_tab_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/web_ide/open_web_ide_from_diff_tab_spec.rb'
- 'qa/qa/specs/features/browser_ui/5_package/container_registry/container_registry_spec.rb' - 'qa/qa/specs/features/browser_ui/5_package/container_registry/container_registry_spec.rb'
- 'qa/qa/specs/features/browser_ui/5_package/container_registry/online_garbage_collection_spec.rb' - 'qa/qa/specs/features/browser_ui/5_package/container_registry/online_garbage_collection_spec.rb'
- 'qa/qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb' - 'qa/qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb'
@ -184,6 +186,7 @@ Layout/FirstHashElementIndentation:
- 'spec/controllers/projects/web_ide_terminals_controller_spec.rb' - 'spec/controllers/projects/web_ide_terminals_controller_spec.rb'
- 'spec/controllers/projects_controller_spec.rb' - 'spec/controllers/projects_controller_spec.rb'
- 'spec/factories/ci/builds.rb' - 'spec/factories/ci/builds.rb'
- 'spec/factories/packages/debian/file_metadatum.rb'
- 'spec/frontend/fixtures/autocomplete_sources.rb' - 'spec/frontend/fixtures/autocomplete_sources.rb'
- 'spec/graphql/types/ci/detailed_status_type_spec.rb' - 'spec/graphql/types/ci/detailed_status_type_spec.rb'
- 'spec/helpers/groups/observability_helper_spec.rb' - 'spec/helpers/groups/observability_helper_spec.rb'
@ -198,6 +201,8 @@ Layout/FirstHashElementIndentation:
- 'spec/lib/container_registry/client_spec.rb' - 'spec/lib/container_registry/client_spec.rb'
- 'spec/lib/gitlab/application_rate_limiter_spec.rb' - 'spec/lib/gitlab/application_rate_limiter_spec.rb'
- 'spec/lib/gitlab/asciidoc_spec.rb' - 'spec/lib/gitlab/asciidoc_spec.rb'
- 'spec/lib/gitlab/background_migration/migrate_u2f_webauthn_spec.rb'
- 'spec/lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid_spec.rb'
- 'spec/lib/gitlab/bitbucket_import/importer_spec.rb' - 'spec/lib/gitlab/bitbucket_import/importer_spec.rb'
- 'spec/lib/gitlab/ci/config_spec.rb' - 'spec/lib/gitlab/ci/config_spec.rb'
- 'spec/lib/gitlab/ci/parsers/codequality/code_climate_spec.rb' - 'spec/lib/gitlab/ci/parsers/codequality/code_climate_spec.rb'
@ -217,6 +222,7 @@ Layout/FirstHashElementIndentation:
- 'spec/lib/gitlab/import_export/members_mapper_spec.rb' - 'spec/lib/gitlab/import_export/members_mapper_spec.rb'
- 'spec/lib/gitlab/instrumentation_helper_spec.rb' - 'spec/lib/gitlab/instrumentation_helper_spec.rb'
- 'spec/lib/gitlab/metrics/subscribers/action_cable_spec.rb' - 'spec/lib/gitlab/metrics/subscribers/action_cable_spec.rb'
- 'spec/lib/gitlab/phabricator_import/conduit/user_spec.rb'
- 'spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb' - 'spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb'
- 'spec/lib/gitlab/workhorse_spec.rb' - 'spec/lib/gitlab/workhorse_spec.rb'
- 'spec/lib/mattermost/team_spec.rb' - 'spec/lib/mattermost/team_spec.rb'

View file

@ -20,6 +20,7 @@ Layout/LineContinuationLeadingSpace:
- 'ee/app/services/system_notes/epics_service.rb' - 'ee/app/services/system_notes/epics_service.rb'
- 'ee/lib/ee/gitlab/ci/pipeline/quota/size.rb' - 'ee/lib/ee/gitlab/ci/pipeline/quota/size.rb'
- 'ee/lib/ee/gitlab/git_access.rb' - 'ee/lib/ee/gitlab/git_access.rb'
- 'ee/lib/slack/block_kit/app_home_opened.rb'
- 'ee/lib/tasks/gitlab/geo.rake' - 'ee/lib/tasks/gitlab/geo.rake'
- 'ee/spec/features/epic_boards/epic_boards_sidebar_spec.rb' - 'ee/spec/features/epic_boards/epic_boards_sidebar_spec.rb'
- 'ee/spec/features/gitlab_subscriptions/seat_count_alert_spec.rb' - 'ee/spec/features/gitlab_subscriptions/seat_count_alert_spec.rb'

View file

@ -16,6 +16,7 @@ Layout/LineContinuationSpacing:
- 'app/models/environment.rb' - 'app/models/environment.rb'
- 'app/models/integrations/base_third_party_wiki.rb' - 'app/models/integrations/base_third_party_wiki.rb'
- 'app/models/integrations/teamcity.rb' - 'app/models/integrations/teamcity.rb'
- 'app/models/members/member_role.rb'
- 'app/models/work_items/parent_link.rb' - 'app/models/work_items/parent_link.rb'
- 'app/services/feature_flags/update_service.rb' - 'app/services/feature_flags/update_service.rb'
- 'app/services/issues/build_service.rb' - 'app/services/issues/build_service.rb'
@ -55,6 +56,7 @@ Layout/LineContinuationSpacing:
- 'ee/lib/ee/gitlab/ci/pipeline/quota/size.rb' - 'ee/lib/ee/gitlab/ci/pipeline/quota/size.rb'
- 'ee/lib/ee/gitlab/git_access.rb' - 'ee/lib/ee/gitlab/git_access.rb'
- 'ee/lib/tasks/gitlab/geo.rake' - 'ee/lib/tasks/gitlab/geo.rake'
- 'ee/spec/components/namespaces/free_user_cap/usage_quota_trial_alert_component_spec.rb'
- 'ee/spec/controllers/groups/group_members_controller_spec.rb' - 'ee/spec/controllers/groups/group_members_controller_spec.rb'
- 'ee/spec/controllers/projects/security/configuration_controller_spec.rb' - 'ee/spec/controllers/projects/security/configuration_controller_spec.rb'
- 'ee/spec/features/admin/admin_emails_spec.rb' - 'ee/spec/features/admin/admin_emails_spec.rb'
@ -140,6 +142,8 @@ Layout/LineContinuationSpacing:
- 'rubocop/cop/migration/background_migrations.rb' - 'rubocop/cop/migration/background_migrations.rb'
- 'rubocop/cop/performance/ar_exists_and_present_blank.rb' - 'rubocop/cop/performance/ar_exists_and_present_blank.rb'
- 'rubocop/cop/redis_queue_usage.rb' - 'rubocop/cop/redis_queue_usage.rb'
- 'scripts/create-pipeline-failure-incident.rb'
- 'scripts/generate-failed-pipeline-slack-message.rb'
- 'scripts/qa/testcases-check' - 'scripts/qa/testcases-check'
- 'spec/controllers/concerns/controller_with_cross_project_access_check_spec.rb' - 'spec/controllers/concerns/controller_with_cross_project_access_check_spec.rb'
- 'spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb' - 'spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb'
@ -150,6 +154,7 @@ Layout/LineContinuationSpacing:
- 'spec/features/projects/files/user_edits_files_spec.rb' - 'spec/features/projects/files/user_edits_files_spec.rb'
- 'spec/features/projects/files/user_replaces_files_spec.rb' - 'spec/features/projects/files/user_replaces_files_spec.rb'
- 'spec/features/projects/issues/viewing_issues_with_external_authorization_enabled_spec.rb' - 'spec/features/projects/issues/viewing_issues_with_external_authorization_enabled_spec.rb'
- 'spec/features/u2f_spec.rb'
- 'spec/features/users/email_verification_on_login_spec.rb' - 'spec/features/users/email_verification_on_login_spec.rb'
- 'spec/features/users/login_spec.rb' - 'spec/features/users/login_spec.rb'
- 'spec/finders/groups/projects_requiring_authorizations_refresh/on_direct_membership_finder_spec.rb' - 'spec/finders/groups/projects_requiring_authorizations_refresh/on_direct_membership_finder_spec.rb'
@ -179,6 +184,7 @@ Layout/LineContinuationSpacing:
- 'spec/models/integrations/chat_message/push_message_spec.rb' - 'spec/models/integrations/chat_message/push_message_spec.rb'
- 'spec/models/integrations/chat_message/wiki_page_message_spec.rb' - 'spec/models/integrations/chat_message/wiki_page_message_spec.rb'
- 'spec/models/member_spec.rb' - 'spec/models/member_spec.rb'
- 'spec/models/members/member_role_spec.rb'
- 'spec/models/operations/feature_flags_client_spec.rb' - 'spec/models/operations/feature_flags_client_spec.rb'
- 'spec/models/project_spec.rb' - 'spec/models/project_spec.rb'
- 'spec/requests/api/graphql/mutations/clusters/agent_tokens/agent_tokens/create_spec.rb' - 'spec/requests/api/graphql/mutations/clusters/agent_tokens/agent_tokens/create_spec.rb'

View file

@ -26,6 +26,7 @@ Layout/LineEndStringConcatenationIndentation:
- 'app/models/concerns/spammable.rb' - 'app/models/concerns/spammable.rb'
- 'app/models/environment.rb' - 'app/models/environment.rb'
- 'app/models/integrations/pivotaltracker.rb' - 'app/models/integrations/pivotaltracker.rb'
- 'app/models/members/member_role.rb'
- 'app/models/merge_request_diff_commit.rb' - 'app/models/merge_request_diff_commit.rb'
- 'app/models/postgresql/replication_slot.rb' - 'app/models/postgresql/replication_slot.rb'
- 'app/presenters/packages/npm/package_presenter.rb' - 'app/presenters/packages/npm/package_presenter.rb'
@ -81,7 +82,14 @@ Layout/LineEndStringConcatenationIndentation:
- 'ee/lib/ee/gitlab/git_access.rb' - 'ee/lib/ee/gitlab/git_access.rb'
- 'ee/lib/ee/gitlab/namespace_storage_size_error_message.rb' - 'ee/lib/ee/gitlab/namespace_storage_size_error_message.rb'
- 'ee/lib/gitlab/manual_quarterly_co_term_banner.rb' - 'ee/lib/gitlab/manual_quarterly_co_term_banner.rb'
- 'ee/lib/slack/block_kit/app_home_opened.rb'
- 'ee/lib/tasks/gitlab/geo.rake' - 'ee/lib/tasks/gitlab/geo.rake'
- 'ee/spec/components/namespaces/free_user_cap/enforcement_alert_component_spec.rb'
- 'ee/spec/components/namespaces/free_user_cap/enforcement_at_limit_alert_component_spec.rb'
- 'ee/spec/components/namespaces/free_user_cap/non_owner_alert_component_spec.rb'
- 'ee/spec/components/namespaces/free_user_cap/notification_alert_component_spec.rb'
- 'ee/spec/components/namespaces/free_user_cap/usage_quota_alert_component_spec.rb'
- 'ee/spec/components/namespaces/free_user_cap/usage_quota_trial_alert_component_spec.rb'
- 'ee/spec/controllers/admin/licenses_controller_spec.rb' - 'ee/spec/controllers/admin/licenses_controller_spec.rb'
- 'ee/spec/controllers/groups/group_members_controller_spec.rb' - 'ee/spec/controllers/groups/group_members_controller_spec.rb'
- 'ee/spec/controllers/projects/security/configuration_controller_spec.rb' - 'ee/spec/controllers/projects/security/configuration_controller_spec.rb'
@ -236,6 +244,8 @@ Layout/LineEndStringConcatenationIndentation:
- 'rubocop/cop/rspec/have_gitlab_http_status.rb' - 'rubocop/cop/rspec/have_gitlab_http_status.rb'
- 'rubocop/cop/sidekiq_api_usage.rb' - 'rubocop/cop/sidekiq_api_usage.rb'
- 'rubocop/cop/user_admin.rb' - 'rubocop/cop/user_admin.rb'
- 'scripts/create-pipeline-failure-incident.rb'
- 'scripts/generate-failed-pipeline-slack-message.rb'
- 'scripts/lib/glfm/parse_examples.rb' - 'scripts/lib/glfm/parse_examples.rb'
- 'scripts/lib/glfm/update_example_snapshots.rb' - 'scripts/lib/glfm/update_example_snapshots.rb'
- 'scripts/lib/glfm/update_specification.rb' - 'scripts/lib/glfm/update_specification.rb'
@ -293,6 +303,7 @@ Layout/LineEndStringConcatenationIndentation:
- 'spec/models/integrations/chat_message/push_message_spec.rb' - 'spec/models/integrations/chat_message/push_message_spec.rb'
- 'spec/models/integrations/chat_message/wiki_page_message_spec.rb' - 'spec/models/integrations/chat_message/wiki_page_message_spec.rb'
- 'spec/models/member_spec.rb' - 'spec/models/member_spec.rb'
- 'spec/models/members/member_role_spec.rb'
- 'spec/models/operations/feature_flags_client_spec.rb' - 'spec/models/operations/feature_flags_client_spec.rb'
- 'spec/models/ssh_host_key_spec.rb' - 'spec/models/ssh_host_key_spec.rb'
- 'spec/presenters/ci/pipeline_presenter_spec.rb' - 'spec/presenters/ci/pipeline_presenter_spec.rb'
@ -304,6 +315,7 @@ Layout/LineEndStringConcatenationIndentation:
- 'spec/requests/api/graphql/mutations/clusters/agents/delete_spec.rb' - 'spec/requests/api/graphql/mutations/clusters/agents/delete_spec.rb'
- 'spec/requests/api/releases_spec.rb' - 'spec/requests/api/releases_spec.rb'
- 'spec/requests/api/users_spec.rb' - 'spec/requests/api/users_spec.rb'
- 'spec/requests/self_monitoring_project_spec.rb'
- 'spec/rubocop/cop/api/grape_array_missing_coerce_spec.rb' - 'spec/rubocop/cop/api/grape_array_missing_coerce_spec.rb'
- 'spec/rubocop/cop/group_public_or_visible_to_user_spec.rb' - 'spec/rubocop/cop/group_public_or_visible_to_user_spec.rb'
- 'spec/rubocop/cop/migration/create_table_with_foreign_keys_spec.rb' - 'spec/rubocop/cop/migration/create_table_with_foreign_keys_spec.rb'
@ -327,6 +339,7 @@ Layout/LineEndStringConcatenationIndentation:
- 'spec/support/shared_examples/features/project_upload_files_shared_examples.rb' - 'spec/support/shared_examples/features/project_upload_files_shared_examples.rb'
- 'spec/support/shared_examples/lib/email/email_shared_examples.rb' - 'spec/support/shared_examples/lib/email/email_shared_examples.rb'
- 'spec/support/shared_examples/requests/api/notes_shared_examples.rb' - 'spec/support/shared_examples/requests/api/notes_shared_examples.rb'
- 'spec/support/shared_examples/requests/self_monitoring_shared_examples.rb'
- 'spec/uploaders/file_mover_spec.rb' - 'spec/uploaders/file_mover_spec.rb'
- 'spec/views/devise/shared/_signup_box.html.haml_spec.rb' - 'spec/views/devise/shared/_signup_box.html.haml_spec.rb'
- 'spec/views/projects/pages/show.html.haml_spec.rb' - 'spec/views/projects/pages/show.html.haml_spec.rb'

View file

@ -105,7 +105,7 @@ Layout/LineLength:
- 'app/controllers/users_controller.rb' - 'app/controllers/users_controller.rb'
- 'app/finders/analytics/cycle_analytics/stage_finder.rb' - 'app/finders/analytics/cycle_analytics/stage_finder.rb'
- 'app/finders/ci/runners_finder.rb' - 'app/finders/ci/runners_finder.rb'
- 'app/finders/clusters/agents/authorizations/ci_access/finder.rb' - 'app/finders/clusters/agent_authorizations_finder.rb'
- 'app/finders/group_descendants_finder.rb' - 'app/finders/group_descendants_finder.rb'
- 'app/finders/group_members_finder.rb' - 'app/finders/group_members_finder.rb'
- 'app/finders/group_projects_finder.rb' - 'app/finders/group_projects_finder.rb'
@ -214,6 +214,7 @@ Layout/LineLength:
- 'app/graphql/types/root_storage_statistics_type.rb' - 'app/graphql/types/root_storage_statistics_type.rb'
- 'app/graphql/types/snippets/visibility_scopes_enum.rb' - 'app/graphql/types/snippets/visibility_scopes_enum.rb'
- 'app/graphql/types/todo_action_enum.rb' - 'app/graphql/types/todo_action_enum.rb'
- 'app/helpers/analytics/cycle_analytics_helper.rb'
- 'app/helpers/application_helper.rb' - 'app/helpers/application_helper.rb'
- 'app/helpers/application_settings_helper.rb' - 'app/helpers/application_settings_helper.rb'
- 'app/helpers/award_emoji_helper.rb' - 'app/helpers/award_emoji_helper.rb'
@ -300,6 +301,8 @@ Layout/LineLength:
- 'app/models/ci/runner.rb' - 'app/models/ci/runner.rb'
- 'app/models/ci/unit_test.rb' - 'app/models/ci/unit_test.rb'
- 'app/models/clusters/agent.rb' - 'app/models/clusters/agent.rb'
- 'app/models/clusters/applications/knative.rb'
- 'app/models/clusters/applications/prometheus.rb'
- 'app/models/clusters/cluster.rb' - 'app/models/clusters/cluster.rb'
- 'app/models/commit_range.rb' - 'app/models/commit_range.rb'
- 'app/models/commit_status.rb' - 'app/models/commit_status.rb'
@ -441,6 +444,7 @@ Layout/LineLength:
- 'app/models/releases/link.rb' - 'app/models/releases/link.rb'
- 'app/models/remote_mirror.rb' - 'app/models/remote_mirror.rb'
- 'app/models/repository.rb' - 'app/models/repository.rb'
- 'app/models/serverless/domain.rb'
- 'app/models/service_desk_setting.rb' - 'app/models/service_desk_setting.rb'
- 'app/models/suggestion.rb' - 'app/models/suggestion.rb'
- 'app/models/todo.rb' - 'app/models/todo.rb'
@ -503,7 +507,6 @@ Layout/LineLength:
- 'app/services/ci/runners/register_runner_service.rb' - 'app/services/ci/runners/register_runner_service.rb'
- 'app/services/ci/runners/unregister_runner_service.rb' - 'app/services/ci/runners/unregister_runner_service.rb'
- 'app/services/clusters/agent_tokens/create_service.rb' - 'app/services/clusters/agent_tokens/create_service.rb'
- 'app/services/clusters/agents/authorizations/ci_access/refresh_service.rb'
- 'app/services/clusters/agents/delete_service.rb' - 'app/services/clusters/agents/delete_service.rb'
- 'app/services/clusters/build_kubernetes_namespace_service.rb' - 'app/services/clusters/build_kubernetes_namespace_service.rb'
- 'app/services/clusters/integrations/create_service.rb' - 'app/services/clusters/integrations/create_service.rb'
@ -743,8 +746,149 @@ Layout/LineLength:
- 'danger/roulette/Dangerfile' - 'danger/roulette/Dangerfile'
- 'danger/vue_shared_documentation/Dangerfile' - 'danger/vue_shared_documentation/Dangerfile'
- 'danger/z_metadata/Dangerfile' - 'danger/z_metadata/Dangerfile'
- 'db/migrate/20210830085837_add_throttle_authenticated_git_lfs_columns.rb'
- 'db/migrate/20210831203408_upsert_base_work_item_types.rb'
- 'db/migrate/20210908140437_add_sidekiq_limits_to_application_settings.rb'
- 'db/migrate/20210909184349_add_index_package_id_id_on_package_files.rb'
- 'db/migrate/20210910015047_add_app_settings_dep_proxy_ttl_worker_capacity_check_constraint.rb'
- 'db/migrate/20210913224558_update_dependency_proxy_manifests_uniqueness_constraint.rb'
- 'db/migrate/20210914145810_add_throttle_deprecated_api_columns.rb'
- 'db/migrate/20210917153905_remove_pipeline_fk_from_packages_package_file_build_infos.rb'
- 'db/migrate/20210921063924_index_labels_using_varchar_pattern_ops.rb'
- 'db/migrate/20210928155022_improve_index_for_error_tracking.rb'
- 'db/migrate/20210929031049_add_unique_index_phone_on_user_details.rb'
- 'db/migrate/20210929115340_add_security_policy_configurations_management_project_id_foreign_key.rb'
- 'db/migrate/20210930081208_fix_deprecated_api_throttle_defaults.rb'
- 'db/migrate/20211005093558_add_range_partitioned_loose_fk_table.rb'
- 'db/migrate/20211006103122_change_helm_channel_length.rb'
- 'db/migrate/20211011004242_create_content_blocked_states.rb'
- 'db/migrate/20211013014228_add_content_validation_endpoint_to_application_settings.rb'
- 'db/migrate/20211013192749_add_states_into_approval_project_rules.rb'
- 'db/migrate/20211028132247_create_packages_npm_metadata.rb'
- 'db/migrate/20211101165656_create_upload_states.rb'
- 'db/migrate/20211110015252_add_agent_activity_events_foreign_keys.rb'
- 'db/migrate/20211111112425_create_merge_requests_compliance_violations.rb'
- 'db/migrate/20211116093739_add_foreign_key_to_incident_management_timeline_events_on_updated_by_user.rb'
- 'db/migrate/20211117174209_create_vulnerability_reads.rb'
- 'db/migrate/20211119111006_create_job_artifact_states.rb'
- 'db/migrate/20211119154221_create_pages_deployment_states.rb'
- 'db/migrate/20211126042235_add_sequence_column_to_sprints_table.rb'
- 'db/migrate/20211126115449_encrypt_static_objects_external_storage_auth_token.rb'
- 'db/migrate/20211130151724_add_foreign_key_to_incident_management_timeline_events_on_note.rb'
- 'db/migrate/20211130205719_add_uniqueness_for_evidence_occurrence_id.rb'
- 'db/migrate/20211201143042_create_lfs_object_states.rb'
- 'db/migrate/20211202094944_move_loose_fk_deleted_records_to_dynamic_schema.rb'
- 'db/migrate/20211207154413_add_ci_runners_index_on_created_at_where_active_is_false.rb'
- 'db/migrate/20211207154414_add_ci_runners_index_on_contacted_at_where_active_is_false.rb'
- 'db/migrate/20211216135651_add_index_to_cluster_agent_id.rb'
- 'db/migrate/20211217050753_remove_artifacts_archive_id_foreign_key_from_project_pages_metadata.rb'
- 'db/migrate/20220106230629_add_registry_migration_application_settings.rb'
- 'db/migrate/20220107091629_add_route_namespace_index.rb'
- 'db/migrate/20220111154951_add_index_to_ci_runners_token_expires_at.rb'
- 'db/migrate/20220112232605_add_member_namespace_index.rb'
- 'db/migrate/20220113125401_create_security_trainings.rb'
- 'db/migrate/20220118155846_add_runner_token_expiration_interval_settings_to_application_settings.rb'
- 'db/migrate/20220118155847_add_runner_token_expiration_interval_settings_to_namespace_settings.rb'
- 'db/migrate/20220119094023_add_unique_index_to_aed_verification_token.rb'
- 'db/migrate/20220120033115_create_alert_management_alert_metric_images.rb'
- 'db/migrate/20220120211831_temp_index_for_group_namespace_member_backfill.rb'
- 'db/migrate/20220125122725_add_topics_non_private_projects_count_index.rb'
- 'db/migrate/20220202115350_add_migration_indexes_to_container_repositories.rb'
- 'db/migrate/20220203091304_fix_unique_packages_index_excluding_pending_destruction_status.rb'
- 'db/migrate/20220204093120_create_analytics_cycle_analytics_aggregations.rb'
- 'db/migrate/20220207083129_add_users_get_by_id_limit_to_application_setting.rb'
- 'db/migrate/20220208171826_update_default_scan_method_of_dast_site_profile.rb'
- 'db/migrate/20220215164709_update_application_settings_container_registry_exp_pol_worker_capacity_default.rb'
- 'db/migrate/20220216110023_create_saved_replies.rb'
- 'db/migrate/20220217100008_add_container_registry_expiration_policies_caching_to_application_settings.rb'
- 'db/migrate/20220222072536_add_target_access_levels_to_broadcast_messages.rb'
- 'db/migrate/20220301003502_add_security_orchestration_policy_configuration_namespace_index.rb'
- 'db/migrate/20220301175104_change_security_orchestration_policy_configuration_project_index.rb'
- 'db/migrate/20220304062107_remove_unique_index_for_sprints_on_project_id_and_title.rb'
- 'db/migrate/20220310101118_update_holder_name_limit.rb'
- 'db/migrate/20220314184209_add_group_fk_to_protected_environment_approval_rules.rb' - 'db/migrate/20220314184209_add_group_fk_to_protected_environment_approval_rules.rb'
- 'db/migrate/20220314204009_add_approval_rule_fk_to_deployment_approvals.rb' - 'db/migrate/20220314204009_add_approval_rule_fk_to_deployment_approvals.rb'
- 'db/post_migrate/20210901184511_prepare_async_indexes_for_ci_builds.rb'
- 'db/post_migrate/20210907211557_finalize_ci_builds_bigint_conversion.rb'
- 'db/post_migrate/20210923135909_remove_delayed_project_removal_from_namespaces.rb'
- 'db/post_migrate/20210927153807_update_issues_relative_position_indexes.rb'
- 'db/post_migrate/20211007093340_remove_analytics_snapshots_segment_id_column.rb'
- 'db/post_migrate/20211012155931_remove_schedule_and_status_from_pending_alert_escalations.rb'
- 'db/post_migrate/20211021140426_remove_geo_upload_deprecated_fields.rb'
- 'db/post_migrate/20211031152417_add_indexes_to_issue_stage_events.rb'
- 'db/post_migrate/20211031154919_add_indexes_to_merge_request_stage_events.rb'
- 'db/post_migrate/20211104165220_remove_vulnerability_finding_links.rb'
- 'db/post_migrate/20211105135157_drop_ci_build_trace_sections.rb'
- 'db/post_migrate/20211112113300_remove_ci_pipeline_chat_data_fk_on_chat_names.rb'
- 'db/post_migrate/20211118194239_drop_invalid_remediations.rb'
- 'db/post_migrate/20211201101541_drop_clusters_applications_runners_ci_runners_fk.rb'
- 'db/post_migrate/20211207173510_remove_extra_finding_evidence_tables_foreign_keys.rb'
- 'db/post_migrate/20211207173511_remove_extra_finding_evidence_tables.rb'
- 'db/post_migrate/20211209103048_backfill_project_namespaces_for_group.rb'
- 'db/post_migrate/20211210140000_add_temporary_static_object_token_index.rb'
- 'db/post_migrate/20211210173137_remove_vulnerability_finding_links_again.rb'
- 'db/post_migrate/20211213102111_drop_ci_pipelines_mr_metrics_fk.rb'
- 'db/post_migrate/20211220120402_add_index_on_ci_pipelines_user_id_id_failure_reason.rb'
- 'db/post_migrate/20220104060049_remove_foreign_key_ci_group_variables_group_id.rb'
- 'db/post_migrate/20220105020514_remove_ci_minutes_additional_packs_namespace_id_foreign_key_constraint.rb'
- 'db/post_migrate/20220106231518_remove_foreign_key_ci_daily_build_group_report_results_group_id.rb'
- 'db/post_migrate/20220106233459_remove_foreign_key_ci_pending_builds_namespace_id.rb'
- 'db/post_migrate/20220106235626_remove_foreign_key_ci_runner_namespaces_namespace_id.rb'
- 'db/post_migrate/20220110224913_remove_dast_scanner_profiles_builds_ci_build_id_fk.rb'
- 'db/post_migrate/20220110231420_remove_requirements_management_test_reports_build_id_fk.rb'
- 'db/post_migrate/20220110233155_remove_dast_site_profiles_builds_ci_build_id_fk.rb'
- 'db/post_migrate/20220111002756_remove_security_scans_build_id_fk.rb'
- 'db/post_migrate/20220111221516_remove_projects_ci_pending_builds_fk.rb'
- 'db/post_migrate/20220112015940_remove_projects_ci_running_builds_fk.rb'
- 'db/post_migrate/20220112230642_remove_projects_ci_unit_tests_project_id_fk.rb'
- 'db/post_migrate/20220112232723_remove_projects_ci_daily_build_group_report_results_project_id_fk.rb'
- 'db/post_migrate/20220113013319_remove_projects_ci_freeze_periods_project_id_fk.rb'
- 'db/post_migrate/20220113014438_remove_projects_ci_resource_groups_project_id_fk.rb'
- 'db/post_migrate/20220113015830_remove_projects_ci_build_report_results_project_id_fk.rb'
- 'db/post_migrate/20220113035519_remove_users_ci_job_token_project_scope_links_added_by_id_fk.rb'
- 'db/post_migrate/20220113040447_remove_users_ci_pipeline_schedules_owner_id_fk.rb'
- 'db/post_migrate/20220113111440_schedule_fix_incorrect_max_seats_used.rb'
- 'db/post_migrate/20220119141736_remove_projects_ci_pipeline_artifacts_project_id_fk.rb'
- 'db/post_migrate/20220119143130_remove_projects_ci_sources_pipelines_source_project_id_fk.rb'
- 'db/post_migrate/20220119144458_remove_users_ci_triggers_owner_id_fk.rb'
- 'db/post_migrate/20220119151221_remove_merge_requests_ci_pipelines_merge_request_id_fk.rb'
- 'db/post_migrate/20220119153706_remove_ci_pipelines_merge_trains_pipeline_id_fk.rb'
- 'db/post_migrate/20220119154442_remove_ci_pipelines_merge_requests_head_pipeline_id_fk.rb'
- 'db/post_migrate/20220119193130_remove_ci_pipelines_dast_profiles_pipelines_ci_pipeline_id_fk.rb'
- 'db/post_migrate/20220119201340_remove_ci_pipelines_vulnerability_statistics_latest_pipeline_id_fk.rb'
- 'db/post_migrate/20220119203119_remove_ci_pipelines_vulnerability_occurrence_pipelines_pipeline_id_fk.rb'
- 'db/post_migrate/20220120123700_add_tmp_index_routes_id_for_namespaces.rb'
- 'db/post_migrate/20220121214752_remove_projects_ci_stages_project_id_fk.rb'
- 'db/post_migrate/20220121221651_remove_projects_ci_variables_project_id_fk.rb'
- 'db/post_migrate/20220124130028_dedup_runner_projects.rb'
- 'db/post_migrate/20220124145019_remove_projects_external_pull_requests_project_id_fk.rb'
- 'db/post_migrate/20220124151456_remove_projects_ci_triggers_project_id_fk.rb'
- 'db/post_migrate/20220124151949_remove_projects_ci_runner_projects_project_id_fk.rb'
- 'db/post_migrate/20220124152824_remove_projects_ci_subscriptions_projects_downstream_project_id_fk.rb'
- 'db/post_migrate/20220124153233_remove_projects_ci_job_artifacts_project_id_fk.rb'
- 'db/post_migrate/20220124180704_remove_projects_ci_builds_metadata_project_id_fk.rb'
- 'db/post_migrate/20220124184338_remove_projects_ci_subscriptions_projects_upstream_project_id_fk.rb'
- 'db/post_migrate/20220124204046_remove_projects_ci_sources_pipelines_project_id_fk.rb'
- 'db/post_migrate/20220124214131_remove_projects_ci_refs_project_id_fk.rb'
- 'db/post_migrate/20220124215857_remove_projects_ci_job_token_project_scope_links_source_project_id_fk.rb'
- 'db/post_migrate/20220124221521_remove_projects_ci_project_monthly_usages_project_id_fk.rb'
- 'db/post_migrate/20220125083520_remove_ci_pipelines_dast_site_profiles_pipelines_ci_pipeline_id_fk.rb'
- 'db/post_migrate/20220125084348_remove_ci_pipelines_vulnerability_feedback_pipeline_id_fk.rb'
- 'db/post_migrate/20220126201752_remove_projects_ci_job_token_project_scope_links_target_project_id_fk.rb'
- 'db/post_migrate/20220126202654_remove_projects_ci_sources_projects_source_project_id_fk.rb'
- 'db/post_migrate/20220126203421_remove_projects_ci_pipeline_schedules_project_id_fk.rb'
- 'db/post_migrate/20220126210021_remove_projects_ci_builds_project_id_fk.rb'
- 'db/post_migrate/20220126210657_remove_projects_ci_pipelines_project_id_fk.rb'
- 'db/post_migrate/20220128155814_fix_approval_rules_code_owners_rule_type_index.rb'
- 'db/post_migrate/20220131000000_index_job_artifacts_on_trace_type_and_expire_at.rb'
- 'db/post_migrate/20220201193033_add_unique_index_to_vulnerability_finding_links_with_truncate.rb'
- 'db/post_migrate/20220207080758_update_api_indexes_for_projects.rb'
- 'db/post_migrate/20220212120735_schedule_fix_incorrect_max_seats_used2.rb'
- 'db/post_migrate/20220224000000_async_build_trace_expire_at_index.rb'
- 'db/post_migrate/20220305223212_add_security_training_providers.rb'
- 'db/post_migrate/20220307192610_remove_duplicate_project_tag_releases.rb'
- 'db/post_migrate/20220308115219_schedule_reset_duplicate_ci_runners_token_encrypted_values_on_projects.rb'
- 'db/post_migrate/20220308115502_schedule_reset_duplicate_ci_runners_token_values_on_projects.rb'
- 'db/post_migrate/20220315171027_add_tmp_index_to_support_leaky_regex_cleanup.rb' - 'db/post_migrate/20220315171027_add_tmp_index_to_support_leaky_regex_cleanup.rb'
- 'db/post_migrate/20220316102902_add_user_foreign_key_to_deploy_tokens.rb' - 'db/post_migrate/20220316102902_add_user_foreign_key_to_deploy_tokens.rb'
- 'db/post_migrate/20220317161914_remove_ci_runners_ci_builds_runner_id_fk.rb' - 'db/post_migrate/20220317161914_remove_ci_runners_ci_builds_runner_id_fk.rb'
@ -788,6 +932,7 @@ Layout/LineLength:
- 'ee/app/controllers/projects/security/policies_controller.rb' - 'ee/app/controllers/projects/security/policies_controller.rb'
- 'ee/app/controllers/projects/security/vulnerabilities/notes_controller.rb' - 'ee/app/controllers/projects/security/vulnerabilities/notes_controller.rb'
- 'ee/app/controllers/subscriptions_controller.rb' - 'ee/app/controllers/subscriptions_controller.rb'
- 'ee/app/controllers/trials_controller.rb'
- 'ee/app/enums/vulnerabilities/dismissal_reason_enum.rb' - 'ee/app/enums/vulnerabilities/dismissal_reason_enum.rb'
- 'ee/app/finders/compliance_management/merge_requests/compliance_violations_finder.rb' - 'ee/app/finders/compliance_management/merge_requests/compliance_violations_finder.rb'
- 'ee/app/finders/incident_management/escalation_rules_finder.rb' - 'ee/app/finders/incident_management/escalation_rules_finder.rb'
@ -881,6 +1026,7 @@ Layout/LineLength:
- 'ee/app/helpers/ee/button_helper.rb' - 'ee/app/helpers/ee/button_helper.rb'
- 'ee/app/helpers/ee/feature_flags_helper.rb' - 'ee/app/helpers/ee/feature_flags_helper.rb'
- 'ee/app/helpers/ee/geo_helper.rb' - 'ee/app/helpers/ee/geo_helper.rb'
- 'ee/app/helpers/ee/groups/analytics/cycle_analytics_helper.rb'
- 'ee/app/helpers/ee/groups/settings_helper.rb' - 'ee/app/helpers/ee/groups/settings_helper.rb'
- 'ee/app/helpers/ee/groups_helper.rb' - 'ee/app/helpers/ee/groups_helper.rb'
- 'ee/app/helpers/ee/import_helper.rb' - 'ee/app/helpers/ee/import_helper.rb'
@ -896,8 +1042,10 @@ Layout/LineLength:
- 'ee/app/helpers/ee/projects_helper.rb' - 'ee/app/helpers/ee/projects_helper.rb'
- 'ee/app/helpers/ee/search_helper.rb' - 'ee/app/helpers/ee/search_helper.rb'
- 'ee/app/helpers/ee/subscribable_banner_helper.rb' - 'ee/app/helpers/ee/subscribable_banner_helper.rb'
- 'ee/app/helpers/ee/trial_helper.rb'
- 'ee/app/helpers/epics_helper.rb' - 'ee/app/helpers/epics_helper.rb'
- 'ee/app/helpers/gitlab_subscriptions/upcoming_reconciliation_helper.rb' - 'ee/app/helpers/gitlab_subscriptions/upcoming_reconciliation_helper.rb'
- 'ee/app/helpers/groups/feature_discovery_moments_helper.rb'
- 'ee/app/helpers/groups/security_features_helper.rb' - 'ee/app/helpers/groups/security_features_helper.rb'
- 'ee/app/helpers/groups/sso_helper.rb' - 'ee/app/helpers/groups/sso_helper.rb'
- 'ee/app/helpers/license_helper.rb' - 'ee/app/helpers/license_helper.rb'
@ -944,6 +1092,7 @@ Layout/LineLength:
- 'ee/app/models/ee/group.rb' - 'ee/app/models/ee/group.rb'
- 'ee/app/models/ee/integrations/jira.rb' - 'ee/app/models/ee/integrations/jira.rb'
- 'ee/app/models/ee/issue.rb' - 'ee/app/models/ee/issue.rb'
- 'ee/app/models/ee/iteration.rb'
- 'ee/app/models/ee/key.rb' - 'ee/app/models/ee/key.rb'
- 'ee/app/models/ee/lfs_object.rb' - 'ee/app/models/ee/lfs_object.rb'
- 'ee/app/models/ee/list.rb' - 'ee/app/models/ee/list.rb'
@ -974,7 +1123,6 @@ Layout/LineLength:
- 'ee/app/models/incident_management/oncall_rotation.rb' - 'ee/app/models/incident_management/oncall_rotation.rb'
- 'ee/app/models/integrations/github.rb' - 'ee/app/models/integrations/github.rb'
- 'ee/app/models/issuable_sla.rb' - 'ee/app/models/issuable_sla.rb'
- 'ee/app/models/iteration.rb'
- 'ee/app/models/iterations/cadence.rb' - 'ee/app/models/iterations/cadence.rb'
- 'ee/app/models/license.rb' - 'ee/app/models/license.rb'
- 'ee/app/models/merge_requests/compliance_violation.rb' - 'ee/app/models/merge_requests/compliance_violation.rb'
@ -1181,6 +1329,7 @@ Layout/LineLength:
- 'ee/app/workers/repository_update_mirror_worker.rb' - 'ee/app/workers/repository_update_mirror_worker.rb'
- 'ee/app/workers/security/orchestration_policy_rule_schedule_namespace_worker.rb' - 'ee/app/workers/security/orchestration_policy_rule_schedule_namespace_worker.rb'
- 'ee/app/workers/security/orchestration_policy_rule_schedule_worker.rb' - 'ee/app/workers/security/orchestration_policy_rule_schedule_worker.rb'
- 'ee/app/workers/update_max_seats_used_for_gitlab_com_subscriptions_worker.rb'
- 'ee/config/routes/group.rb' - 'ee/config/routes/group.rb'
- 'ee/config/routes/project.rb' - 'ee/config/routes/project.rb'
- 'ee/db/fixtures/development/20_burndown.rb' - 'ee/db/fixtures/development/20_burndown.rb'
@ -1229,7 +1378,6 @@ Layout/LineLength:
- 'ee/lib/api/resource_iteration_events.rb' - 'ee/lib/api/resource_iteration_events.rb'
- 'ee/lib/api/status_checks.rb' - 'ee/lib/api/status_checks.rb'
- 'ee/lib/api/vulnerability_issue_links.rb' - 'ee/lib/api/vulnerability_issue_links.rb'
- 'ee/lib/banzai/filter/references/iteration_reference_filter.rb'
- 'ee/lib/ee/api/deployments.rb' - 'ee/lib/ee/api/deployments.rb'
- 'ee/lib/ee/api/entities/application_setting.rb' - 'ee/lib/ee/api/entities/application_setting.rb'
- 'ee/lib/ee/api/entities/dependency.rb' - 'ee/lib/ee/api/entities/dependency.rb'
@ -1256,6 +1404,7 @@ Layout/LineLength:
- 'ee/lib/ee/api/merge_request_approvals.rb' - 'ee/lib/ee/api/merge_request_approvals.rb'
- 'ee/lib/ee/api/merge_requests.rb' - 'ee/lib/ee/api/merge_requests.rb'
- 'ee/lib/ee/api/namespaces.rb' - 'ee/lib/ee/api/namespaces.rb'
- 'ee/lib/ee/banzai/filter/references/iteration_reference_filter.rb'
- 'ee/lib/ee/gitlab/analytics/cycle_analytics/aggregated/base_query_builder.rb' - 'ee/lib/ee/gitlab/analytics/cycle_analytics/aggregated/base_query_builder.rb'
- 'ee/lib/ee/gitlab/analytics/cycle_analytics/data_collector.rb' - 'ee/lib/ee/gitlab/analytics/cycle_analytics/data_collector.rb'
- 'ee/lib/ee/gitlab/analytics/cycle_analytics/stage_events.rb' - 'ee/lib/ee/gitlab/analytics/cycle_analytics/stage_events.rb'
@ -1265,9 +1414,14 @@ Layout/LineLength:
- 'ee/lib/ee/gitlab/auth/ldap/sync/users.rb' - 'ee/lib/ee/gitlab/auth/ldap/sync/users.rb'
- 'ee/lib/ee/gitlab/background_migration/backfill_iteration_cadence_id_for_boards.rb' - 'ee/lib/ee/gitlab/background_migration/backfill_iteration_cadence_id_for_boards.rb'
- 'ee/lib/ee/gitlab/background_migration/create_security_setting.rb' - 'ee/lib/ee/gitlab/background_migration/create_security_setting.rb'
- 'ee/lib/ee/gitlab/background_migration/drop_invalid_remediations.rb'
- 'ee/lib/ee/gitlab/background_migration/fix_incorrect_max_seats_used.rb'
- 'ee/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules.rb' - 'ee/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules.rb'
- 'ee/lib/ee/gitlab/background_migration/populate_latest_pipeline_ids.rb' - 'ee/lib/ee/gitlab/background_migration/populate_latest_pipeline_ids.rb'
- 'ee/lib/ee/gitlab/background_migration/populate_resolved_on_default_branch_column.rb' - 'ee/lib/ee/gitlab/background_migration/populate_resolved_on_default_branch_column.rb'
- 'ee/lib/ee/gitlab/background_migration/populate_uuids_for_security_findings.rb'
- 'ee/lib/ee/gitlab/background_migration/recalculate_vulnerability_finding_signatures_for_findings.rb'
- 'ee/lib/ee/gitlab/background_migration/update_vulnerability_occurrences_location.rb'
- 'ee/lib/ee/gitlab/checks/push_rules/commit_check.rb' - 'ee/lib/ee/gitlab/checks/push_rules/commit_check.rb'
- 'ee/lib/ee/gitlab/checks/push_rules/file_size_check.rb' - 'ee/lib/ee/gitlab/checks/push_rules/file_size_check.rb'
- 'ee/lib/ee/gitlab/ci/config_ee.rb' - 'ee/lib/ee/gitlab/ci/config_ee.rb'
@ -1389,6 +1543,7 @@ Layout/LineLength:
- 'ee/spec/controllers/operations_controller_spec.rb' - 'ee/spec/controllers/operations_controller_spec.rb'
- 'ee/spec/controllers/projects/analytics/cycle_analytics/summary_controller_spec.rb' - 'ee/spec/controllers/projects/analytics/cycle_analytics/summary_controller_spec.rb'
- 'ee/spec/controllers/projects/audit_events_controller_spec.rb' - 'ee/spec/controllers/projects/audit_events_controller_spec.rb'
- 'ee/spec/controllers/projects/dependencies_controller_spec.rb'
- 'ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb' - 'ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb'
- 'ee/spec/controllers/projects/integrations/zentao/issues_controller_spec.rb' - 'ee/spec/controllers/projects/integrations/zentao/issues_controller_spec.rb'
- 'ee/spec/controllers/projects/issues_controller_spec.rb' - 'ee/spec/controllers/projects/issues_controller_spec.rb'
@ -1427,6 +1582,7 @@ Layout/LineLength:
- 'ee/spec/features/admin/groups/admin_subscription_alerts_spec.rb' - 'ee/spec/features/admin/groups/admin_subscription_alerts_spec.rb'
- 'ee/spec/features/admin/subscriptions/admin_views_subscription_spec.rb' - 'ee/spec/features/admin/subscriptions/admin_views_subscription_spec.rb'
- 'ee/spec/features/billings/billing_plans_spec.rb' - 'ee/spec/features/billings/billing_plans_spec.rb'
- 'ee/spec/features/billings/extend_reactivate_trial_spec.rb'
- 'ee/spec/features/boards/scoped_issue_board_spec.rb' - 'ee/spec/features/boards/scoped_issue_board_spec.rb'
- 'ee/spec/features/boards/sidebar_spec.rb' - 'ee/spec/features/boards/sidebar_spec.rb'
- 'ee/spec/features/boards/swimlanes/epics_swimlanes_drag_drop_spec.rb' - 'ee/spec/features/boards/swimlanes/epics_swimlanes_drag_drop_spec.rb'
@ -1446,6 +1602,7 @@ Layout/LineLength:
- 'ee/spec/features/groups/analytics/cycle_analytics/multiple_value_streams_spec.rb' - 'ee/spec/features/groups/analytics/cycle_analytics/multiple_value_streams_spec.rb'
- 'ee/spec/features/groups/audit_events_spec.rb' - 'ee/spec/features/groups/audit_events_spec.rb'
- 'ee/spec/features/groups/billing_spec.rb' - 'ee/spec/features/groups/billing_spec.rb'
- 'ee/spec/features/groups/feature_discovery_moments_spec.rb'
- 'ee/spec/features/groups/group_roadmap_spec.rb' - 'ee/spec/features/groups/group_roadmap_spec.rb'
- 'ee/spec/features/groups/group_settings_spec.rb' - 'ee/spec/features/groups/group_settings_spec.rb'
- 'ee/spec/features/groups/groups_security_credentials_spec.rb' - 'ee/spec/features/groups/groups_security_credentials_spec.rb'
@ -1462,6 +1619,7 @@ Layout/LineLength:
- 'ee/spec/features/groups/security/compliance_dashboards_spec.rb' - 'ee/spec/features/groups/security/compliance_dashboards_spec.rb'
- 'ee/spec/features/groups/sso_spec.rb' - 'ee/spec/features/groups/sso_spec.rb'
- 'ee/spec/features/integrations/jira/jira_issues_list_spec.rb' - 'ee/spec/features/integrations/jira/jira_issues_list_spec.rb'
- 'ee/spec/features/invites_spec.rb'
- 'ee/spec/features/issues/filtered_search/filter_issues_weight_spec.rb' - 'ee/spec/features/issues/filtered_search/filter_issues_weight_spec.rb'
- 'ee/spec/features/issues/form_spec.rb' - 'ee/spec/features/issues/form_spec.rb'
- 'ee/spec/features/labels_hierarchy_spec.rb' - 'ee/spec/features/labels_hierarchy_spec.rb'
@ -1687,10 +1845,16 @@ Layout/LineLength:
- 'ee/spec/lib/ee/gitlab/alert_management/payload/generic_spec.rb' - 'ee/spec/lib/ee/gitlab/alert_management/payload/generic_spec.rb'
- 'ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb' - 'ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/backfill_iteration_cadence_id_for_boards_spec.rb' - 'ee/spec/lib/ee/gitlab/background_migration/backfill_iteration_cadence_id_for_boards_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/drop_invalid_remediations_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/fix_incorrect_max_seats_used_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_check_progress_spec.rb' - 'ee/spec/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_check_progress_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_spec.rb' - 'ee/spec/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/populate_latest_pipeline_ids_spec.rb' - 'ee/spec/lib/ee/gitlab/background_migration/populate_latest_pipeline_ids_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/populate_namespace_statistics_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/populate_resolved_on_default_branch_column_spec.rb' - 'ee/spec/lib/ee/gitlab/background_migration/populate_resolved_on_default_branch_column_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/populate_uuids_for_security_findings_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/recalculate_vulnerability_finding_signatures_for_findings_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/update_vulnerability_occurrences_location_spec.rb'
- 'ee/spec/lib/ee/gitlab/checks/push_rule_check_spec.rb' - 'ee/spec/lib/ee/gitlab/checks/push_rule_check_spec.rb'
- 'ee/spec/lib/ee/gitlab/checks/push_rules/branch_check_spec.rb' - 'ee/spec/lib/ee/gitlab/checks/push_rules/branch_check_spec.rb'
- 'ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb' - 'ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb'
@ -1751,6 +1915,8 @@ Layout/LineLength:
- 'ee/spec/lib/gitlab/auth/ldap/user_spec.rb' - 'ee/spec/lib/gitlab/auth/ldap/user_spec.rb'
- 'ee/spec/lib/gitlab/auth/saml/user_spec.rb' - 'ee/spec/lib/gitlab/auth/saml/user_spec.rb'
- 'ee/spec/lib/gitlab/background_migration/migrate_requirements_to_work_items_spec.rb' - 'ee/spec/lib/gitlab/background_migration/migrate_requirements_to_work_items_spec.rb'
- 'ee/spec/lib/gitlab/background_migration/populate_test_reports_issue_id_spec.rb'
- 'ee/spec/lib/gitlab/background_migration/remove_all_trace_expiration_dates_spec.rb'
- 'ee/spec/lib/gitlab/checks/diff_check_spec.rb' - 'ee/spec/lib/gitlab/checks/diff_check_spec.rb'
- 'ee/spec/lib/gitlab/ci/config/entry/job_spec.rb' - 'ee/spec/lib/gitlab/ci/config/entry/job_spec.rb'
- 'ee/spec/lib/gitlab/ci/config/security_orchestration_policies/processor_spec.rb' - 'ee/spec/lib/gitlab/ci/config/security_orchestration_policies/processor_spec.rb'
@ -1849,9 +2015,14 @@ Layout/LineLength:
- 'ee/spec/mailers/emails/requirements_spec.rb' - 'ee/spec/mailers/emails/requirements_spec.rb'
- 'ee/spec/mailers/license_mailer_spec.rb' - 'ee/spec/mailers/license_mailer_spec.rb'
- 'ee/spec/mailers/notify_spec.rb' - 'ee/spec/mailers/notify_spec.rb'
- 'ee/spec/migrations/drop_invalid_remediations_spec.rb'
- 'ee/spec/migrations/geo/migrate_ci_job_artifacts_to_separate_registry_spec.rb' - 'ee/spec/migrations/geo/migrate_ci_job_artifacts_to_separate_registry_spec.rb'
- 'ee/spec/migrations/geo/migrate_lfs_objects_to_separate_registry_spec.rb' - 'ee/spec/migrations/geo/migrate_lfs_objects_to_separate_registry_spec.rb'
- 'ee/spec/migrations/geo/set_resync_flag_for_retried_projects_spec.rb' - 'ee/spec/migrations/geo/set_resync_flag_for_retried_projects_spec.rb'
- 'ee/spec/migrations/schedule_populate_test_reports_issue_id_spec.rb'
- 'ee/spec/migrations/schedule_requirements_migration_spec.rb'
- 'ee/spec/migrations/schedule_trace_expiry_removal_spec.rb'
- 'ee/spec/migrations/update_vulnerability_occurrences_location_spec.rb'
- 'ee/spec/models/allowed_email_domain_spec.rb' - 'ee/spec/models/allowed_email_domain_spec.rb'
- 'ee/spec/models/analytics/cycle_analytics/group_level_spec.rb' - 'ee/spec/models/analytics/cycle_analytics/group_level_spec.rb'
- 'ee/spec/models/analytics/devops_adoption/enabled_namespace_spec.rb' - 'ee/spec/models/analytics/devops_adoption/enabled_namespace_spec.rb'
@ -1872,7 +2043,7 @@ Layout/LineLength:
- 'ee/spec/models/ci/minutes/namespace_monthly_usage_spec.rb' - 'ee/spec/models/ci/minutes/namespace_monthly_usage_spec.rb'
- 'ee/spec/models/ci/minutes/project_monthly_usage_spec.rb' - 'ee/spec/models/ci/minutes/project_monthly_usage_spec.rb'
- 'ee/spec/models/ci/pipeline_spec.rb' - 'ee/spec/models/ci/pipeline_spec.rb'
- 'ee/spec/models/concerns/ee/clusters/agents/authorizations/ci_access/config_scopes_spec.rb' - 'ee/spec/models/concerns/ee/clusters/agents/authorization_config_scopes_spec.rb'
- 'ee/spec/models/concerns/ee/issuable_spec.rb' - 'ee/spec/models/concerns/ee/issuable_spec.rb'
- 'ee/spec/models/concerns/ee/noteable_spec.rb' - 'ee/spec/models/concerns/ee/noteable_spec.rb'
- 'ee/spec/models/concerns/ee/project_security_scanners_information_spec.rb' - 'ee/spec/models/concerns/ee/project_security_scanners_information_spec.rb'
@ -1906,6 +2077,7 @@ Layout/LineLength:
- 'ee/spec/models/ee/group_spec.rb' - 'ee/spec/models/ee/group_spec.rb'
- 'ee/spec/models/ee/incident_management/project_incident_management_setting_spec.rb' - 'ee/spec/models/ee/incident_management/project_incident_management_setting_spec.rb'
- 'ee/spec/models/ee/integrations/jira_spec.rb' - 'ee/spec/models/ee/integrations/jira_spec.rb'
- 'ee/spec/models/ee/iteration_spec.rb'
- 'ee/spec/models/ee/iterations/cadence_spec.rb' - 'ee/spec/models/ee/iterations/cadence_spec.rb'
- 'ee/spec/models/ee/lfs_object_spec.rb' - 'ee/spec/models/ee/lfs_object_spec.rb'
- 'ee/spec/models/ee/merge_request_diff_spec.rb' - 'ee/spec/models/ee/merge_request_diff_spec.rb'
@ -1944,12 +2116,12 @@ Layout/LineLength:
- 'ee/spec/models/integrations/chat_message/vulnerability_message_spec.rb' - 'ee/spec/models/integrations/chat_message/vulnerability_message_spec.rb'
- 'ee/spec/models/issuable_sla_spec.rb' - 'ee/spec/models/issuable_sla_spec.rb'
- 'ee/spec/models/issue_spec.rb' - 'ee/spec/models/issue_spec.rb'
- 'ee/spec/models/iteration_spec.rb'
- 'ee/spec/models/license_spec.rb' - 'ee/spec/models/license_spec.rb'
- 'ee/spec/models/member_spec.rb' - 'ee/spec/models/member_spec.rb'
- 'ee/spec/models/merge_request_spec.rb' - 'ee/spec/models/merge_request_spec.rb'
- 'ee/spec/models/merge_requests/compliance_violation_spec.rb' - 'ee/spec/models/merge_requests/compliance_violation_spec.rb'
- 'ee/spec/models/merge_requests/external_status_check_spec.rb' - 'ee/spec/models/merge_requests/external_status_check_spec.rb'
- 'ee/spec/models/merge_train_spec.rb'
- 'ee/spec/models/namespace_setting_spec.rb' - 'ee/spec/models/namespace_setting_spec.rb'
- 'ee/spec/models/note_spec.rb' - 'ee/spec/models/note_spec.rb'
- 'ee/spec/models/packages/package_file_spec.rb' - 'ee/spec/models/packages/package_file_spec.rb'
@ -2202,6 +2374,7 @@ Layout/LineLength:
- 'ee/spec/services/ci/compare_security_reports_service_spec.rb' - 'ee/spec/services/ci/compare_security_reports_service_spec.rb'
- 'ee/spec/services/ci/create_pipeline_service/compliance_spec.rb' - 'ee/spec/services/ci/create_pipeline_service/compliance_spec.rb'
- 'ee/spec/services/ci/create_pipeline_service/dast_configuration_spec.rb' - 'ee/spec/services/ci/create_pipeline_service/dast_configuration_spec.rb'
- 'ee/spec/services/ci/minutes/batch_reset_service_spec.rb'
- 'ee/spec/services/ci/minutes/refresh_cached_data_service_spec.rb' - 'ee/spec/services/ci/minutes/refresh_cached_data_service_spec.rb'
- 'ee/spec/services/ci/minutes/update_project_and_namespace_usage_service_spec.rb' - 'ee/spec/services/ci/minutes/update_project_and_namespace_usage_service_spec.rb'
- 'ee/spec/services/ci/process_build_service_spec.rb' - 'ee/spec/services/ci/process_build_service_spec.rb'
@ -2249,6 +2422,7 @@ Layout/LineLength:
- 'ee/spec/services/epic_issues/create_service_spec.rb' - 'ee/spec/services/epic_issues/create_service_spec.rb'
- 'ee/spec/services/epics/issue_promote_service_spec.rb' - 'ee/spec/services/epics/issue_promote_service_spec.rb'
- 'ee/spec/services/epics/related_epic_links/create_service_spec.rb' - 'ee/spec/services/epics/related_epic_links/create_service_spec.rb'
- 'ee/spec/services/epics/tree_reorder_service_spec.rb'
- 'ee/spec/services/epics/update_dates_service_spec.rb' - 'ee/spec/services/epics/update_dates_service_spec.rb'
- 'ee/spec/services/epics/update_service_spec.rb' - 'ee/spec/services/epics/update_service_spec.rb'
- 'ee/spec/services/external_status_checks/update_service_spec.rb' - 'ee/spec/services/external_status_checks/update_service_spec.rb'
@ -2296,6 +2470,7 @@ Layout/LineLength:
- 'ee/spec/services/jira/requests/issues/list_service_spec.rb' - 'ee/spec/services/jira/requests/issues/list_service_spec.rb'
- 'ee/spec/services/ldap_group_reset_service_spec.rb' - 'ee/spec/services/ldap_group_reset_service_spec.rb'
- 'ee/spec/services/members/activate_service_spec.rb' - 'ee/spec/services/members/activate_service_spec.rb'
- 'ee/spec/services/merge_commits/export_csv_service_spec.rb'
- 'ee/spec/services/merge_requests/merge_service_spec.rb' - 'ee/spec/services/merge_requests/merge_service_spec.rb'
- 'ee/spec/services/merge_requests/push_options_handler_service_spec.rb' - 'ee/spec/services/merge_requests/push_options_handler_service_spec.rb'
- 'ee/spec/services/merge_requests/reset_approvals_service_spec.rb' - 'ee/spec/services/merge_requests/reset_approvals_service_spec.rb'
@ -2434,8 +2609,10 @@ Layout/LineLength:
- 'ee/spec/views/admin/application_settings/general.html.haml_spec.rb' - 'ee/spec/views/admin/application_settings/general.html.haml_spec.rb'
- 'ee/spec/views/admin/dashboard/index.html.haml_spec.rb' - 'ee/spec/views/admin/dashboard/index.html.haml_spec.rb'
- 'ee/spec/views/compliance_management/compliance_framework/_project_settings.html.haml_spec.rb' - 'ee/spec/views/compliance_management/compliance_framework/_project_settings.html.haml_spec.rb'
- 'ee/spec/views/groups/feature_discovery_moments/advanced_features_dashboard.html.haml_spec.rb'
- 'ee/spec/views/groups/security/discover/show.html.haml_spec.rb' - 'ee/spec/views/groups/security/discover/show.html.haml_spec.rb'
- 'ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb' - 'ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb'
- 'ee/spec/views/layouts/header/help_dropdown/_cross_stage_fdm.html.haml_spec.rb'
- 'ee/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb' - 'ee/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb'
- 'ee/spec/views/operations/environments.html.haml_spec.rb' - 'ee/spec/views/operations/environments.html.haml_spec.rb'
- 'ee/spec/views/projects/security/discover/show.html.haml_spec.rb' - 'ee/spec/views/projects/security/discover/show.html.haml_spec.rb'
@ -2619,6 +2796,7 @@ Layout/LineLength:
- 'lib/banzai/filter/markdown_post_escape_filter.rb' - 'lib/banzai/filter/markdown_post_escape_filter.rb'
- 'lib/banzai/filter/references/external_issue_reference_filter.rb' - 'lib/banzai/filter/references/external_issue_reference_filter.rb'
- 'lib/banzai/filter/references/issue_reference_filter.rb' - 'lib/banzai/filter/references/issue_reference_filter.rb'
- 'lib/banzai/filter/references/iteration_reference_filter.rb'
- 'lib/banzai/filter/references/milestone_reference_filter.rb' - 'lib/banzai/filter/references/milestone_reference_filter.rb'
- 'lib/banzai/filter/references/reference_filter.rb' - 'lib/banzai/filter/references/reference_filter.rb'
- 'lib/banzai/filter/references/vulnerability_reference_filter.rb' - 'lib/banzai/filter/references/vulnerability_reference_filter.rb'
@ -2672,17 +2850,27 @@ Layout/LineLength:
- 'lib/gitlab/background_migration/backfill_iteration_cadence_id_for_boards.rb' - 'lib/gitlab/background_migration/backfill_iteration_cadence_id_for_boards.rb'
- 'lib/gitlab/background_migration/backfill_snippet_repositories.rb' - 'lib/gitlab/background_migration/backfill_snippet_repositories.rb'
- 'lib/gitlab/background_migration/batching_strategies/backfill_project_namespace_per_group_batching_strategy.rb' - 'lib/gitlab/background_migration/batching_strategies/backfill_project_namespace_per_group_batching_strategy.rb'
- 'lib/gitlab/background_migration/cleanup_orphaned_lfs_objects_projects.rb'
- 'lib/gitlab/background_migration/create_security_setting.rb' - 'lib/gitlab/background_migration/create_security_setting.rb'
- 'lib/gitlab/background_migration/drop_invalid_remediations.rb'
- 'lib/gitlab/background_migration/fix_incorrect_max_seats_used.rb'
- 'lib/gitlab/background_migration/fix_projects_without_project_feature.rb' - 'lib/gitlab/background_migration/fix_projects_without_project_feature.rb'
- 'lib/gitlab/background_migration/fix_projects_without_prometheus_service.rb' - 'lib/gitlab/background_migration/fix_projects_without_prometheus_service.rb'
- 'lib/gitlab/background_migration/migrate_approver_to_approval_rules.rb' - 'lib/gitlab/background_migration/migrate_approver_to_approval_rules.rb'
- 'lib/gitlab/background_migration/migrate_approver_to_approval_rules_check_progress.rb' - 'lib/gitlab/background_migration/migrate_approver_to_approval_rules_check_progress.rb'
- 'lib/gitlab/background_migration/migrate_approver_to_approval_rules_in_batch.rb' - 'lib/gitlab/background_migration/migrate_approver_to_approval_rules_in_batch.rb'
- 'lib/gitlab/background_migration/migrate_job_artifact_registry_to_ssf.rb' - 'lib/gitlab/background_migration/migrate_job_artifact_registry_to_ssf.rb'
- 'lib/gitlab/background_migration/migrate_project_taggings_context_from_tags_to_topics.rb'
- 'lib/gitlab/background_migration/migrate_requirements_to_work_items.rb' - 'lib/gitlab/background_migration/migrate_requirements_to_work_items.rb'
- 'lib/gitlab/background_migration/move_container_registry_enabled_to_project_feature.rb'
- 'lib/gitlab/background_migration/populate_namespace_statistics.rb'
- 'lib/gitlab/background_migration/populate_resolved_on_default_branch_column.rb' - 'lib/gitlab/background_migration/populate_resolved_on_default_branch_column.rb'
- 'lib/gitlab/background_migration/populate_uuids_for_security_findings.rb'
- 'lib/gitlab/background_migration/project_namespaces/backfill_project_namespaces.rb' - 'lib/gitlab/background_migration/project_namespaces/backfill_project_namespaces.rb'
- 'lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid.rb'
- 'lib/gitlab/background_migration/remove_duplicate_vulnerabilities_findings.rb'
- 'lib/gitlab/background_migration/reset_duplicate_ci_runners_token_encrypted_values_on_projects.rb' - 'lib/gitlab/background_migration/reset_duplicate_ci_runners_token_encrypted_values_on_projects.rb'
- 'lib/gitlab/background_migration/update_vulnerability_occurrences_location.rb'
- 'lib/gitlab/bitbucket_import/importer.rb' - 'lib/gitlab/bitbucket_import/importer.rb'
- 'lib/gitlab/bitbucket_server_import/importer.rb' - 'lib/gitlab/bitbucket_server_import/importer.rb'
- 'lib/gitlab/buffered_io.rb' - 'lib/gitlab/buffered_io.rb'
@ -2776,6 +2964,7 @@ Layout/LineLength:
- 'lib/gitlab/database/with_lock_retries.rb' - 'lib/gitlab/database/with_lock_retries.rb'
- 'lib/gitlab/database/with_lock_retries_outside_transaction.rb' - 'lib/gitlab/database/with_lock_retries_outside_transaction.rb'
- 'lib/gitlab/database_importers/instance_administrators/create_group.rb' - 'lib/gitlab/database_importers/instance_administrators/create_group.rb'
- 'lib/gitlab/database_importers/self_monitoring/project/create_service.rb'
- 'lib/gitlab/dependency_linker/base_linker.rb' - 'lib/gitlab/dependency_linker/base_linker.rb'
- 'lib/gitlab/dependency_linker/go_mod_linker.rb' - 'lib/gitlab/dependency_linker/go_mod_linker.rb'
- 'lib/gitlab/dependency_linker/go_sum_linker.rb' - 'lib/gitlab/dependency_linker/go_sum_linker.rb'
@ -2831,6 +3020,8 @@ Layout/LineLength:
- 'lib/gitlab/github_import.rb' - 'lib/gitlab/github_import.rb'
- 'lib/gitlab/github_import/importer/pull_request_importer.rb' - 'lib/gitlab/github_import/importer/pull_request_importer.rb'
- 'lib/gitlab/github_import/parallel_scheduling.rb' - 'lib/gitlab/github_import/parallel_scheduling.rb'
- 'lib/gitlab/gitlab_import/client.rb'
- 'lib/gitlab/gitlab_import/importer.rb'
- 'lib/gitlab/gl_repository.rb' - 'lib/gitlab/gl_repository.rb'
- 'lib/gitlab/global_id/deprecations.rb' - 'lib/gitlab/global_id/deprecations.rb'
- 'lib/gitlab/golang.rb' - 'lib/gitlab/golang.rb'
@ -2852,6 +3043,7 @@ Layout/LineLength:
- 'lib/gitlab/import_export/file_importer.rb' - 'lib/gitlab/import_export/file_importer.rb'
- 'lib/gitlab/import_export/group/relation_tree_restorer.rb' - 'lib/gitlab/import_export/group/relation_tree_restorer.rb'
- 'lib/gitlab/import_export/importer.rb' - 'lib/gitlab/import_export/importer.rb'
- 'lib/gitlab/import_export/json/legacy_reader.rb'
- 'lib/gitlab/import_export/json/streaming_serializer.rb' - 'lib/gitlab/import_export/json/streaming_serializer.rb'
- 'lib/gitlab/import_export/lfs_saver.rb' - 'lib/gitlab/import_export/lfs_saver.rb'
- 'lib/gitlab/import_export/members_mapper.rb' - 'lib/gitlab/import_export/members_mapper.rb'
@ -2867,8 +3059,10 @@ Layout/LineLength:
- 'lib/gitlab/jira_import.rb' - 'lib/gitlab/jira_import.rb'
- 'lib/gitlab/jira_import/base_importer.rb' - 'lib/gitlab/jira_import/base_importer.rb'
- 'lib/gitlab/jira_import/issues_importer.rb' - 'lib/gitlab/jira_import/issues_importer.rb'
- 'lib/gitlab/kubernetes/helm/pod.rb'
- 'lib/gitlab/kubernetes/kubectl_cmd.rb' - 'lib/gitlab/kubernetes/kubectl_cmd.rb'
- 'lib/gitlab/kubernetes/pod_cmd.rb' - 'lib/gitlab/kubernetes/pod_cmd.rb'
- 'lib/gitlab/legacy_github_import/importer.rb'
- 'lib/gitlab/legacy_github_import/project_creator.rb' - 'lib/gitlab/legacy_github_import/project_creator.rb'
- 'lib/gitlab/local_and_remote_storage_migration/base_migrater.rb' - 'lib/gitlab/local_and_remote_storage_migration/base_migrater.rb'
- 'lib/gitlab/lograge/custom_options.rb' - 'lib/gitlab/lograge/custom_options.rb'
@ -2927,6 +3121,7 @@ Layout/LineLength:
- 'lib/gitlab/setup_helper.rb' - 'lib/gitlab/setup_helper.rb'
- 'lib/gitlab/sidekiq_config.rb' - 'lib/gitlab/sidekiq_config.rb'
- 'lib/gitlab/sidekiq_config/worker_router.rb' - 'lib/gitlab/sidekiq_config/worker_router.rb'
- 'lib/gitlab/sidekiq_daemon/memory_killer.rb'
- 'lib/gitlab/sidekiq_daemon/monitor.rb' - 'lib/gitlab/sidekiq_daemon/monitor.rb'
- 'lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/deduplicates_when_scheduling.rb' - 'lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/deduplicates_when_scheduling.rb'
- 'lib/gitlab/sidekiq_middleware/server_metrics.rb' - 'lib/gitlab/sidekiq_middleware/server_metrics.rb'
@ -2955,6 +3150,7 @@ Layout/LineLength:
- 'lib/gitlab/usage_data_counters/hll_redis_counter.rb' - 'lib/gitlab/usage_data_counters/hll_redis_counter.rb'
- 'lib/gitlab/usage_data_counters/issue_activity_unique_counter.rb' - 'lib/gitlab/usage_data_counters/issue_activity_unique_counter.rb'
- 'lib/gitlab/usage_data_counters/jetbrains_plugin_activity_unique_counter.rb' - 'lib/gitlab/usage_data_counters/jetbrains_plugin_activity_unique_counter.rb'
- 'lib/gitlab/usage_data_counters/track_unique_events.rb'
- 'lib/gitlab/utils/delegator_override/error.rb' - 'lib/gitlab/utils/delegator_override/error.rb'
- 'lib/gitlab/utils/markdown.rb' - 'lib/gitlab/utils/markdown.rb'
- 'lib/gitlab/utils/override.rb' - 'lib/gitlab/utils/override.rb'
@ -3042,6 +3238,7 @@ Layout/LineLength:
- 'qa/qa/specs/features/api/1_manage/project_access_token_spec.rb' - 'qa/qa/specs/features/api/1_manage/project_access_token_spec.rb'
- 'qa/qa/specs/features/api/1_manage/rate_limits_spec.rb' - 'qa/qa/specs/features/api/1_manage/rate_limits_spec.rb'
- 'qa/qa/specs/features/api/1_manage/user_access_termination_spec.rb' - 'qa/qa/specs/features/api/1_manage/user_access_termination_spec.rb'
- 'qa/qa/specs/features/api/1_manage/users_spec.rb'
- 'qa/qa/specs/features/api/3_create/merge_request/push_options_labels_spec.rb' - 'qa/qa/specs/features/api/3_create/merge_request/push_options_labels_spec.rb'
- 'qa/qa/specs/features/api/3_create/merge_request/push_options_mwps_spec.rb' - 'qa/qa/specs/features/api/3_create/merge_request/push_options_mwps_spec.rb'
- 'qa/qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb' - 'qa/qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb'
@ -3059,6 +3256,9 @@ Layout/LineLength:
- 'qa/qa/specs/features/browser_ui/1_manage/login/log_into_mattermost_via_gitlab_spec.rb' - 'qa/qa/specs/features/browser_ui/1_manage/login/log_into_mattermost_via_gitlab_spec.rb'
- 'qa/qa/specs/features/browser_ui/1_manage/login/maintain_log_in_mixed_env_spec.rb' - 'qa/qa/specs/features/browser_ui/1_manage/login/maintain_log_in_mixed_env_spec.rb'
- 'qa/qa/specs/features/browser_ui/1_manage/login/register_spec.rb' - 'qa/qa/specs/features/browser_ui/1_manage/login/register_spec.rb'
- 'qa/qa/specs/features/browser_ui/1_manage/project/create_project_badge_spec.rb'
- 'qa/qa/specs/features/browser_ui/1_manage/project/invite_group_to_project_spec.rb'
- 'qa/qa/specs/features/browser_ui/1_manage/user/follow_user_activity_spec.rb'
- 'qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb' - 'qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb'
- 'qa/qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb' - 'qa/qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb'
- 'qa/qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb' - 'qa/qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb'
@ -3099,11 +3299,14 @@ Layout/LineLength:
- 'qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_spec.rb'
- 'qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb'
- 'qa/qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb'
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/create_first_file_in_web_ide_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb'
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/link_to_line_in_web_ide_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/web_ide/create_first_file_in_web_ide_spec.rb'
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/open_web_ide_from_diff_tab_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/web_ide/link_to_line_in_web_ide_spec.rb'
- 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/review_merge_request_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/web_ide/open_fork_in_web_ide_spec.rb'
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/open_web_ide_from_diff_tab_spec.rb'
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb'
- 'qa/qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb' - 'qa/qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb'
- 'qa/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb'
- 'qa/qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb' - 'qa/qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb'
- 'qa/qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb' - 'qa/qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb'
- 'qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb' - 'qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb'
@ -3137,6 +3340,8 @@ Layout/LineLength:
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_git_access_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_git_access_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_new_account_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_new_account_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_non_enforced_sso_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_non_enforced_sso_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/prevent_forking_outside_group_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/share_group_with_group_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/ldap/admin_ldap_sync_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/1_manage/ldap/admin_ldap_sync_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/user/minimal_access_user_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/1_manage/user/minimal_access_user_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb'
@ -3321,8 +3526,6 @@ Layout/LineLength:
- 'spec/factories/ci/job_artifacts.rb' - 'spec/factories/ci/job_artifacts.rb'
- 'spec/factories/ci/pipelines.rb' - 'spec/factories/ci/pipelines.rb'
- 'spec/factories/ci/reports/codequality_degradations.rb' - 'spec/factories/ci/reports/codequality_degradations.rb'
- 'spec/factories/clusters/agents/authorizations/ci_access/group_authorizations.rb'
- 'spec/factories/clusters/agents/authorizations/ci_access/project_authorizations.rb'
- 'spec/factories/container_repositories.rb' - 'spec/factories/container_repositories.rb'
- 'spec/factories/dependency_proxy.rb' - 'spec/factories/dependency_proxy.rb'
- 'spec/factories/deployments.rb' - 'spec/factories/deployments.rb'
@ -3333,6 +3536,7 @@ Layout/LineLength:
- 'spec/factories/keys.rb' - 'spec/factories/keys.rb'
- 'spec/factories/namespaces.rb' - 'spec/factories/namespaces.rb'
- 'spec/factories/notes.rb' - 'spec/factories/notes.rb'
- 'spec/factories/packages/debian/file_metadatum.rb'
- 'spec/factories/packages/package_files.rb' - 'spec/factories/packages/package_files.rb'
- 'spec/factories/project_members.rb' - 'spec/factories/project_members.rb'
- 'spec/factories/projects.rb' - 'spec/factories/projects.rb'
@ -3386,6 +3590,7 @@ Layout/LineLength:
- 'spec/features/groups/settings/repository_spec.rb' - 'spec/features/groups/settings/repository_spec.rb'
- 'spec/features/groups_spec.rb' - 'spec/features/groups_spec.rb'
- 'spec/features/ide/static_object_external_storage_csp_spec.rb' - 'spec/features/ide/static_object_external_storage_csp_spec.rb'
- 'spec/features/invites_spec.rb'
- 'spec/features/issuables/issuable_list_spec.rb' - 'spec/features/issuables/issuable_list_spec.rb'
- 'spec/features/issuables/markdown_references/internal_references_spec.rb' - 'spec/features/issuables/markdown_references/internal_references_spec.rb'
- 'spec/features/issuables/markdown_references/jira_spec.rb' - 'spec/features/issuables/markdown_references/jira_spec.rb'
@ -3550,7 +3755,7 @@ Layout/LineLength:
- 'spec/finders/ci/pipelines_finder_spec.rb' - 'spec/finders/ci/pipelines_finder_spec.rb'
- 'spec/finders/ci/pipelines_for_merge_request_finder_spec.rb' - 'spec/finders/ci/pipelines_for_merge_request_finder_spec.rb'
- 'spec/finders/ci/runners_finder_spec.rb' - 'spec/finders/ci/runners_finder_spec.rb'
- 'spec/finders/clusters/agents/authorizations/ci_access/finder_spec.rb' - 'spec/finders/clusters/agent_authorizations_finder_spec.rb'
- 'spec/finders/clusters_finder_spec.rb' - 'spec/finders/clusters_finder_spec.rb'
- 'spec/finders/deploy_tokens/tokens_finder_spec.rb' - 'spec/finders/deploy_tokens/tokens_finder_spec.rb'
- 'spec/finders/deployments_finder_spec.rb' - 'spec/finders/deployments_finder_spec.rb'
@ -3585,6 +3790,7 @@ Layout/LineLength:
- 'spec/finders/projects_finder_spec.rb' - 'spec/finders/projects_finder_spec.rb'
- 'spec/finders/repositories/tree_finder_spec.rb' - 'spec/finders/repositories/tree_finder_spec.rb'
- 'spec/finders/security/security_jobs_finder_spec.rb' - 'spec/finders/security/security_jobs_finder_spec.rb'
- 'spec/finders/serverless_domain_finder_spec.rb'
- 'spec/finders/snippets_finder_spec.rb' - 'spec/finders/snippets_finder_spec.rb'
- 'spec/finders/tags_finder_spec.rb' - 'spec/finders/tags_finder_spec.rb'
- 'spec/finders/todos_finder_spec.rb' - 'spec/finders/todos_finder_spec.rb'
@ -3688,6 +3894,7 @@ Layout/LineLength:
- 'spec/helpers/blob_helper_spec.rb' - 'spec/helpers/blob_helper_spec.rb'
- 'spec/helpers/boards_helper_spec.rb' - 'spec/helpers/boards_helper_spec.rb'
- 'spec/helpers/branches_helper_spec.rb' - 'spec/helpers/branches_helper_spec.rb'
- 'spec/helpers/broadcast_messages_helper_spec.rb'
- 'spec/helpers/button_helper_spec.rb' - 'spec/helpers/button_helper_spec.rb'
- 'spec/helpers/ci/pipeline_editor_helper_spec.rb' - 'spec/helpers/ci/pipeline_editor_helper_spec.rb'
- 'spec/helpers/clusters_helper_spec.rb' - 'spec/helpers/clusters_helper_spec.rb'
@ -3829,6 +4036,7 @@ Layout/LineLength:
- 'spec/lib/error_tracking/sentry_client/projects_spec.rb' - 'spec/lib/error_tracking/sentry_client/projects_spec.rb'
- 'spec/lib/event_filter_spec.rb' - 'spec/lib/event_filter_spec.rb'
- 'spec/lib/feature_spec.rb' - 'spec/lib/feature_spec.rb'
- 'spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb'
- 'spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb' - 'spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb'
- 'spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb' - 'spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb'
- 'spec/lib/generators/gitlab/usage_metric_generator_spec.rb' - 'spec/lib/generators/gitlab/usage_metric_generator_spec.rb'
@ -3865,17 +4073,33 @@ Layout/LineLength:
- 'spec/lib/gitlab/background_migration/backfill_snippet_repositories_spec.rb' - 'spec/lib/gitlab/background_migration/backfill_snippet_repositories_spec.rb'
- 'spec/lib/gitlab/background_migration/batching_strategies/backfill_project_namespace_per_group_batching_strategy_spec.rb' - 'spec/lib/gitlab/background_migration/batching_strategies/backfill_project_namespace_per_group_batching_strategy_spec.rb'
- 'spec/lib/gitlab/background_migration/batching_strategies/primary_key_batching_strategy_spec.rb' - 'spec/lib/gitlab/background_migration/batching_strategies/primary_key_batching_strategy_spec.rb'
- 'spec/lib/gitlab/background_migration/cleanup_orphaned_lfs_objects_projects_spec.rb'
- 'spec/lib/gitlab/background_migration/copy_column_using_background_migration_job_spec.rb' - 'spec/lib/gitlab/background_migration/copy_column_using_background_migration_job_spec.rb'
- 'spec/lib/gitlab/background_migration/delete_orphaned_deployments_spec.rb'
- 'spec/lib/gitlab/background_migration/drop_invalid_security_findings_spec.rb'
- 'spec/lib/gitlab/background_migration/drop_invalid_vulnerabilities_spec.rb'
- 'spec/lib/gitlab/background_migration/extract_project_topics_into_separate_table_spec.rb'
- 'spec/lib/gitlab/background_migration/fix_duplicate_project_name_and_path_spec.rb' - 'spec/lib/gitlab/background_migration/fix_duplicate_project_name_and_path_spec.rb'
- 'spec/lib/gitlab/background_migration/fix_first_mentioned_in_commit_at_spec.rb'
- 'spec/lib/gitlab/background_migration/fix_vulnerability_occurrences_with_hashes_as_raw_metadata_spec.rb' - 'spec/lib/gitlab/background_migration/fix_vulnerability_occurrences_with_hashes_as_raw_metadata_spec.rb'
- 'spec/lib/gitlab/background_migration/job_coordinator_spec.rb' - 'spec/lib/gitlab/background_migration/job_coordinator_spec.rb'
- 'spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb' - 'spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb'
- 'spec/lib/gitlab/background_migration/migrate_merge_request_diff_commit_users_spec.rb'
- 'spec/lib/gitlab/background_migration/migrate_personal_namespace_project_maintainer_to_owner_spec.rb' - 'spec/lib/gitlab/background_migration/migrate_personal_namespace_project_maintainer_to_owner_spec.rb'
- 'spec/lib/gitlab/background_migration/move_container_registry_enabled_to_project_feature_spec.rb'
- 'spec/lib/gitlab/background_migration/populate_container_repository_migration_plan_spec.rb' - 'spec/lib/gitlab/background_migration/populate_container_repository_migration_plan_spec.rb'
- 'spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb'
- 'spec/lib/gitlab/background_migration/project_namespaces/backfill_project_namespaces_spec.rb' - 'spec/lib/gitlab/background_migration/project_namespaces/backfill_project_namespaces_spec.rb'
- 'spec/lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid_spec.rb'
- 'spec/lib/gitlab/background_migration/remove_all_trace_expiration_dates_spec.rb'
- 'spec/lib/gitlab/background_migration/remove_duplicate_vulnerabilities_findings_spec.rb'
- 'spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb' - 'spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb'
- 'spec/lib/gitlab/background_migration/remove_vulnerability_finding_links_spec.rb' - 'spec/lib/gitlab/background_migration/remove_vulnerability_finding_links_spec.rb'
- 'spec/lib/gitlab/background_migration/update_jira_tracker_data_deployment_type_based_on_url_spec.rb' - 'spec/lib/gitlab/background_migration/update_jira_tracker_data_deployment_type_based_on_url_spec.rb'
- 'spec/lib/gitlab/background_migration/update_timelogs_null_spent_at_spec.rb'
- 'spec/lib/gitlab/background_migration/update_timelogs_project_id_spec.rb'
- 'spec/lib/gitlab/background_migration/update_users_where_two_factor_auth_required_from_group_spec.rb'
- 'spec/lib/gitlab/bare_repository_import/importer_spec.rb'
- 'spec/lib/gitlab/bitbucket_import/importer_spec.rb' - 'spec/lib/gitlab/bitbucket_import/importer_spec.rb'
- 'spec/lib/gitlab/bitbucket_server_import/importer_spec.rb' - 'spec/lib/gitlab/bitbucket_server_import/importer_spec.rb'
- 'spec/lib/gitlab/buffered_io_spec.rb' - 'spec/lib/gitlab/buffered_io_spec.rb'
@ -3926,6 +4150,7 @@ Layout/LineLength:
- 'spec/lib/gitlab/ci/reports/codequality_mr_diff_spec.rb' - 'spec/lib/gitlab/ci/reports/codequality_mr_diff_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/flag_spec.rb' - 'spec/lib/gitlab/ci/reports/security/flag_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/scanner_spec.rb' - 'spec/lib/gitlab/ci/reports/security/scanner_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/vulnerability_reports_comparer_spec.rb'
- 'spec/lib/gitlab/ci/runner_upgrade_check_spec.rb' - 'spec/lib/gitlab/ci/runner_upgrade_check_spec.rb'
- 'spec/lib/gitlab/ci/status/bridge/factory_spec.rb' - 'spec/lib/gitlab/ci/status/bridge/factory_spec.rb'
- 'spec/lib/gitlab/ci/status/build/manual_spec.rb' - 'spec/lib/gitlab/ci/status/build/manual_spec.rb'
@ -3998,6 +4223,7 @@ Layout/LineLength:
- 'spec/lib/gitlab/database/transaction/observer_spec.rb' - 'spec/lib/gitlab/database/transaction/observer_spec.rb'
- 'spec/lib/gitlab/database/with_lock_retries_outside_transaction_spec.rb' - 'spec/lib/gitlab/database/with_lock_retries_outside_transaction_spec.rb'
- 'spec/lib/gitlab/database/with_lock_retries_spec.rb' - 'spec/lib/gitlab/database/with_lock_retries_spec.rb'
- 'spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb'
- 'spec/lib/gitlab/database_spec.rb' - 'spec/lib/gitlab/database_spec.rb'
- 'spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb' - 'spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb'
- 'spec/lib/gitlab/dependency_linker/requirements_txt_linker_spec.rb' - 'spec/lib/gitlab/dependency_linker/requirements_txt_linker_spec.rb'
@ -4118,6 +4344,8 @@ Layout/LineLength:
- 'spec/lib/gitlab/kas/client_spec.rb' - 'spec/lib/gitlab/kas/client_spec.rb'
- 'spec/lib/gitlab/kas_spec.rb' - 'spec/lib/gitlab/kas_spec.rb'
- 'spec/lib/gitlab/kubernetes/deployment_spec.rb' - 'spec/lib/gitlab/kubernetes/deployment_spec.rb'
- 'spec/lib/gitlab/kubernetes/helm/api_spec.rb'
- 'spec/lib/gitlab/kubernetes/helm/pod_spec.rb'
- 'spec/lib/gitlab/kubernetes/kubeconfig/template_spec.rb' - 'spec/lib/gitlab/kubernetes/kubeconfig/template_spec.rb'
- 'spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb' - 'spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb'
- 'spec/lib/gitlab/kubernetes/namespace_spec.rb' - 'spec/lib/gitlab/kubernetes/namespace_spec.rb'
@ -4167,8 +4395,12 @@ Layout/LineLength:
- 'spec/lib/gitlab/pagination/offset_pagination_spec.rb' - 'spec/lib/gitlab/pagination/offset_pagination_spec.rb'
- 'spec/lib/gitlab/path_regex_spec.rb' - 'spec/lib/gitlab/path_regex_spec.rb'
- 'spec/lib/gitlab/performance_bar/redis_adapter_when_peek_enabled_spec.rb' - 'spec/lib/gitlab/performance_bar/redis_adapter_when_peek_enabled_spec.rb'
- 'spec/lib/gitlab/phabricator_import/conduit/response_spec.rb'
- 'spec/lib/gitlab/phabricator_import/conduit/user_spec.rb'
- 'spec/lib/gitlab/phabricator_import/user_finder_spec.rb'
- 'spec/lib/gitlab/project_search_results_spec.rb' - 'spec/lib/gitlab/project_search_results_spec.rb'
- 'spec/lib/gitlab/prometheus/queries/deployment_query_spec.rb' - 'spec/lib/gitlab/prometheus/queries/deployment_query_spec.rb'
- 'spec/lib/gitlab/prometheus/queries/knative_invocation_query_spec.rb'
- 'spec/lib/gitlab/prometheus/queries/matched_metric_query_spec.rb' - 'spec/lib/gitlab/prometheus/queries/matched_metric_query_spec.rb'
- 'spec/lib/gitlab/prometheus/query_variables_spec.rb' - 'spec/lib/gitlab/prometheus/query_variables_spec.rb'
- 'spec/lib/gitlab/prometheus_client_spec.rb' - 'spec/lib/gitlab/prometheus_client_spec.rb'
@ -4187,7 +4419,9 @@ Layout/LineLength:
- 'spec/lib/gitlab/search/found_blob_spec.rb' - 'spec/lib/gitlab/search/found_blob_spec.rb'
- 'spec/lib/gitlab/search_results_spec.rb' - 'spec/lib/gitlab/search_results_spec.rb'
- 'spec/lib/gitlab/serializer/pagination_spec.rb' - 'spec/lib/gitlab/serializer/pagination_spec.rb'
- 'spec/lib/gitlab/serverless/service_spec.rb'
- 'spec/lib/gitlab/sidekiq_config/worker_router_spec.rb' - 'spec/lib/gitlab/sidekiq_config/worker_router_spec.rb'
- 'spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb'
- 'spec/lib/gitlab/sidekiq_logging/structured_logger_spec.rb' - 'spec/lib/gitlab/sidekiq_logging/structured_logger_spec.rb'
- 'spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb' - 'spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb'
- 'spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb' - 'spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb'
@ -4229,6 +4463,7 @@ Layout/LineLength:
- 'spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb' - 'spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb'
- 'spec/lib/gitlab/usage_data_counters/jetbrains_plugin_activity_unique_counter_spec.rb' - 'spec/lib/gitlab/usage_data_counters/jetbrains_plugin_activity_unique_counter_spec.rb'
- 'spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb' - 'spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb'
- 'spec/lib/gitlab/usage_data_counters/track_unique_events_spec.rb'
- 'spec/lib/gitlab/usage_data_metrics_spec.rb' - 'spec/lib/gitlab/usage_data_metrics_spec.rb'
- 'spec/lib/gitlab/usage_data_non_sql_metrics_spec.rb' - 'spec/lib/gitlab/usage_data_non_sql_metrics_spec.rb'
- 'spec/lib/gitlab/usage_data_queries_spec.rb' - 'spec/lib/gitlab/usage_data_queries_spec.rb'
@ -4276,10 +4511,38 @@ Layout/LineLength:
- 'spec/mailers/emails/releases_spec.rb' - 'spec/mailers/emails/releases_spec.rb'
- 'spec/mailers/emails/service_desk_spec.rb' - 'spec/mailers/emails/service_desk_spec.rb'
- 'spec/mailers/notify_spec.rb' - 'spec/mailers/notify_spec.rb'
- 'spec/migrations/20210831203408_upsert_base_work_item_types_spec.rb'
- 'spec/migrations/20210907211557_finalize_ci_builds_bigint_conversion_spec.rb'
- 'spec/migrations/20210910194952_update_report_type_for_existing_approval_project_rules_spec.rb'
- 'spec/migrations/20211018152654_schedule_remove_duplicate_vulnerabilities_findings3_spec.rb'
- 'spec/migrations/20211110143306_add_not_null_constraint_to_security_findings_uuid_spec.rb'
- 'spec/migrations/20211110151350_schedule_drop_invalid_security_findings_spec.rb'
- 'spec/migrations/20211116111644_schedule_remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb'
- 'spec/migrations/20211117084814_migrate_remaining_u2f_registrations_spec.rb'
- 'spec/migrations/20211126204445_add_task_to_work_item_types_spec.rb'
- 'spec/migrations/20211130165043_backfill_sequence_column_for_sprints_table_spec.rb'
- 'spec/migrations/20211203091642_add_index_to_projects_on_marked_for_deletion_at_spec.rb'
- 'spec/migrations/20211207135331_schedule_recalculate_uuid_on_vulnerabilities_occurrences4_spec.rb'
- 'spec/migrations/20211210140629_encrypt_static_object_token_spec.rb'
- 'spec/migrations/20220106111958_add_insert_or_update_vulnerability_reads_trigger_spec.rb'
- 'spec/migrations/20220106112043_add_update_vulnerability_reads_trigger_spec.rb'
- 'spec/migrations/20220106112085_add_update_vulnerability_reads_location_trigger_spec.rb'
- 'spec/migrations/20220106163326_add_has_issues_on_vulnerability_reads_trigger_spec.rb'
- 'spec/migrations/20220107064845_populate_vulnerability_reads_spec.rb'
- 'spec/migrations/20220222192524_create_not_null_constraint_releases_tag_spec.rb'
- 'spec/migrations/20220309084954_remove_leftover_external_pull_request_deletions_spec.rb'
- 'spec/migrations/active_record/schema_spec.rb' - 'spec/migrations/active_record/schema_spec.rb'
- 'spec/migrations/backfill_all_project_namespaces_spec.rb'
- 'spec/migrations/backfill_project_namespaces_for_group_spec.rb'
- 'spec/migrations/cleanup_after_fixing_issue_when_admin_changed_primary_email_spec.rb' - 'spec/migrations/cleanup_after_fixing_issue_when_admin_changed_primary_email_spec.rb'
- 'spec/migrations/finalize_project_namespaces_backfill_spec.rb' - 'spec/migrations/finalize_project_namespaces_backfill_spec.rb'
- 'spec/migrations/fix_and_backfill_project_namespaces_for_projects_with_duplicate_name_spec.rb' - 'spec/migrations/fix_and_backfill_project_namespaces_for_projects_with_duplicate_name_spec.rb'
- 'spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_features_spec.rb'
- 'spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_with_new_features_spec.rb'
- 'spec/migrations/remove_not_null_contraint_on_title_from_sprints_spec.rb'
- 'spec/migrations/schedule_recalculate_vulnerability_finding_signatures_for_findings_spec.rb'
- 'spec/migrations/schedule_update_timelogs_null_spent_at_spec.rb'
- 'spec/migrations/update_invalid_member_states_spec.rb'
- 'spec/models/active_session_spec.rb' - 'spec/models/active_session_spec.rb'
- 'spec/models/acts_as_taggable_on/tag_spec.rb' - 'spec/models/acts_as_taggable_on/tag_spec.rb'
- 'spec/models/acts_as_taggable_on/tagging_spec.rb' - 'spec/models/acts_as_taggable_on/tagging_spec.rb'
@ -4292,6 +4555,7 @@ Layout/LineLength:
- 'spec/models/award_emoji_spec.rb' - 'spec/models/award_emoji_spec.rb'
- 'spec/models/blob_viewer/go_mod_spec.rb' - 'spec/models/blob_viewer/go_mod_spec.rb'
- 'spec/models/blob_viewer/metrics_dashboard_yml_spec.rb' - 'spec/models/blob_viewer/metrics_dashboard_yml_spec.rb'
- 'spec/models/broadcast_message_spec.rb'
- 'spec/models/bulk_import_spec.rb' - 'spec/models/bulk_import_spec.rb'
- 'spec/models/bulk_imports/entity_spec.rb' - 'spec/models/bulk_imports/entity_spec.rb'
- 'spec/models/bulk_imports/file_transfer/project_config_spec.rb' - 'spec/models/bulk_imports/file_transfer/project_config_spec.rb'
@ -4309,6 +4573,9 @@ Layout/LineLength:
- 'spec/models/ci/runner_spec.rb' - 'spec/models/ci/runner_spec.rb'
- 'spec/models/ci/variable_spec.rb' - 'spec/models/ci/variable_spec.rb'
- 'spec/models/clusters/agent_spec.rb' - 'spec/models/clusters/agent_spec.rb'
- 'spec/models/clusters/applications/ingress_spec.rb'
- 'spec/models/clusters/applications/knative_spec.rb'
- 'spec/models/clusters/applications/prometheus_spec.rb'
- 'spec/models/clusters/cluster_spec.rb' - 'spec/models/clusters/cluster_spec.rb'
- 'spec/models/clusters/platforms/kubernetes_spec.rb' - 'spec/models/clusters/platforms/kubernetes_spec.rb'
- 'spec/models/commit_spec.rb' - 'spec/models/commit_spec.rb'
@ -4316,7 +4583,7 @@ Layout/LineLength:
- 'spec/models/concerns/cache_markdown_field_spec.rb' - 'spec/models/concerns/cache_markdown_field_spec.rb'
- 'spec/models/concerns/cacheable_attributes_spec.rb' - 'spec/models/concerns/cacheable_attributes_spec.rb'
- 'spec/models/concerns/ci/artifactable_spec.rb' - 'spec/models/concerns/ci/artifactable_spec.rb'
- 'spec/models/concerns/clusters/agents/authorizations/ci_access/config_scopes_spec.rb' - 'spec/models/concerns/clusters/agents/authorization_config_scopes_spec.rb'
- 'spec/models/concerns/deployment_platform_spec.rb' - 'spec/models/concerns/deployment_platform_spec.rb'
- 'spec/models/concerns/group_descendant_spec.rb' - 'spec/models/concerns/group_descendant_spec.rb'
- 'spec/models/concerns/id_in_ordered_spec.rb' - 'spec/models/concerns/id_in_ordered_spec.rb'
@ -4404,6 +4671,7 @@ Layout/LineLength:
- 'spec/models/packages/composer/metadatum_spec.rb' - 'spec/models/packages/composer/metadatum_spec.rb'
- 'spec/models/packages/conan/metadatum_spec.rb' - 'spec/models/packages/conan/metadatum_spec.rb'
- 'spec/models/packages/debian/file_entry_spec.rb' - 'spec/models/packages/debian/file_entry_spec.rb'
- 'spec/models/packages/debian/file_metadatum_spec.rb'
- 'spec/models/packages/debian/publication_spec.rb' - 'spec/models/packages/debian/publication_spec.rb'
- 'spec/models/packages/dependency_link_spec.rb' - 'spec/models/packages/dependency_link_spec.rb'
- 'spec/models/packages/dependency_spec.rb' - 'spec/models/packages/dependency_spec.rb'
@ -4445,6 +4713,7 @@ Layout/LineLength:
- 'spec/models/resource_state_event_spec.rb' - 'spec/models/resource_state_event_spec.rb'
- 'spec/models/sent_notification_spec.rb' - 'spec/models/sent_notification_spec.rb'
- 'spec/models/sentry_issue_spec.rb' - 'spec/models/sentry_issue_spec.rb'
- 'spec/models/serverless/domain_spec.rb'
- 'spec/models/service_desk_setting_spec.rb' - 'spec/models/service_desk_setting_spec.rb'
- 'spec/models/snippet_input_action_spec.rb' - 'spec/models/snippet_input_action_spec.rb'
- 'spec/models/snippet_repository_spec.rb' - 'spec/models/snippet_repository_spec.rb'
@ -4661,6 +4930,7 @@ Layout/LineLength:
- 'spec/requests/groups/milestones_controller_spec.rb' - 'spec/requests/groups/milestones_controller_spec.rb'
- 'spec/requests/groups/settings/access_tokens_controller_spec.rb' - 'spec/requests/groups/settings/access_tokens_controller_spec.rb'
- 'spec/requests/groups_controller_spec.rb' - 'spec/requests/groups_controller_spec.rb'
- 'spec/requests/ide_controller_spec.rb'
- 'spec/requests/jwt_controller_spec.rb' - 'spec/requests/jwt_controller_spec.rb'
- 'spec/requests/lfs_http_spec.rb' - 'spec/requests/lfs_http_spec.rb'
- 'spec/requests/oauth/tokens_controller_spec.rb' - 'spec/requests/oauth/tokens_controller_spec.rb'
@ -4765,7 +5035,6 @@ Layout/LineLength:
- 'spec/services/ci/test_failure_history_service_spec.rb' - 'spec/services/ci/test_failure_history_service_spec.rb'
- 'spec/services/ci/unlock_artifacts_service_spec.rb' - 'spec/services/ci/unlock_artifacts_service_spec.rb'
- 'spec/services/ci/update_pending_build_service_spec.rb' - 'spec/services/ci/update_pending_build_service_spec.rb'
- 'spec/services/clusters/agents/authorizations/ci_access/filter_service_spec.rb'
- 'spec/services/clusters/create_service_spec.rb' - 'spec/services/clusters/create_service_spec.rb'
- 'spec/services/clusters/integrations/prometheus_health_check_service_spec.rb' - 'spec/services/clusters/integrations/prometheus_health_check_service_spec.rb'
- 'spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb' - 'spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb'
@ -4847,6 +5116,7 @@ Layout/LineLength:
- 'spec/services/lfs/push_service_spec.rb' - 'spec/services/lfs/push_service_spec.rb'
- 'spec/services/loose_foreign_keys/batch_cleaner_service_spec.rb' - 'spec/services/loose_foreign_keys/batch_cleaner_service_spec.rb'
- 'spec/services/loose_foreign_keys/cleaner_service_spec.rb' - 'spec/services/loose_foreign_keys/cleaner_service_spec.rb'
- 'spec/services/members/approve_access_request_service_spec.rb'
- 'spec/services/members/create_service_spec.rb' - 'spec/services/members/create_service_spec.rb'
- 'spec/services/members/destroy_service_spec.rb' - 'spec/services/members/destroy_service_spec.rb'
- 'spec/services/members/invitation_reminder_email_service_spec.rb' - 'spec/services/members/invitation_reminder_email_service_spec.rb'
@ -4996,10 +5266,11 @@ Layout/LineLength:
- 'spec/spec_helper.rb' - 'spec/spec_helper.rb'
- 'spec/support/atlassian/jira_connect/schemata.rb' - 'spec/support/atlassian/jira_connect/schemata.rb'
- 'spec/support/capybara.rb' - 'spec/support/capybara.rb'
- 'spec/support/cycle_analytics_helpers/test_generation.rb'
- 'spec/support/database/prevent_cross_database_modification.rb' - 'spec/support/database/prevent_cross_database_modification.rb'
- 'spec/support/database/prevent_cross_joins.rb' - 'spec/support/database/prevent_cross_joins.rb'
- 'spec/support/db_cleaner.rb' - 'spec/support/db_cleaner.rb'
- 'spec/support/fast_quarantine.rb' - 'spec/support/flaky_tests.rb'
- 'spec/support/helpers/api_helpers.rb' - 'spec/support/helpers/api_helpers.rb'
- 'spec/support/helpers/board_helpers.rb' - 'spec/support/helpers/board_helpers.rb'
- 'spec/support/helpers/cycle_analytics_helpers.rb' - 'spec/support/helpers/cycle_analytics_helpers.rb'
@ -5214,9 +5485,10 @@ Layout/LineLength:
- 'spec/tasks/migrate/schema_check_rake_spec.rb' - 'spec/tasks/migrate/schema_check_rake_spec.rb'
- 'spec/tooling/danger/datateam_spec.rb' - 'spec/tooling/danger/datateam_spec.rb'
- 'spec/tooling/danger/feature_flag_spec.rb' - 'spec/tooling/danger/feature_flag_spec.rb'
- 'spec/tooling/danger/analytics_instrumentation_spec.rb' - 'spec/tooling/danger/product_intelligence_spec.rb'
- 'spec/tooling/danger/project_helper_spec.rb' - 'spec/tooling/danger/project_helper_spec.rb'
- 'spec/tooling/danger/sidekiq_queues_spec.rb' - 'spec/tooling/danger/sidekiq_queues_spec.rb'
- 'spec/tooling/danger/specs_spec.rb'
- 'spec/tooling/lib/tooling/kubernetes_client_spec.rb' - 'spec/tooling/lib/tooling/kubernetes_client_spec.rb'
- 'spec/tooling/lib/tooling/test_map_generator_spec.rb' - 'spec/tooling/lib/tooling/test_map_generator_spec.rb'
- 'spec/tooling/quality/test_level_spec.rb' - 'spec/tooling/quality/test_level_spec.rb'
@ -5265,6 +5537,7 @@ Layout/LineLength:
- 'spec/workers/authorized_project_update/project_recalculate_per_user_worker_spec.rb' - 'spec/workers/authorized_project_update/project_recalculate_per_user_worker_spec.rb'
- 'spec/workers/authorized_project_update/user_refresh_from_replica_worker_spec.rb' - 'spec/workers/authorized_project_update/user_refresh_from_replica_worker_spec.rb'
- 'spec/workers/auto_devops/disable_worker_spec.rb' - 'spec/workers/auto_devops/disable_worker_spec.rb'
- 'spec/workers/background_migration/ci_database_worker_spec.rb'
- 'spec/workers/build_success_worker_spec.rb' - 'spec/workers/build_success_worker_spec.rb'
- 'spec/workers/bulk_import_worker_spec.rb' - 'spec/workers/bulk_import_worker_spec.rb'
- 'spec/workers/bulk_imports/export_request_worker_spec.rb' - 'spec/workers/bulk_imports/export_request_worker_spec.rb'
@ -5329,7 +5602,8 @@ Layout/LineLength:
- 'spec/workers/todos_destroyer/confidential_issue_worker_spec.rb' - 'spec/workers/todos_destroyer/confidential_issue_worker_spec.rb'
- 'spec/workers/update_head_pipeline_for_merge_request_worker_spec.rb' - 'spec/workers/update_head_pipeline_for_merge_request_worker_spec.rb'
- 'spec/workers/users/deactivate_dormant_users_worker_spec.rb' - 'spec/workers/users/deactivate_dormant_users_worker_spec.rb'
- 'tooling/danger/analytics_instrumentation.rb' - 'tooling/bin/find_changes'
- 'tooling/danger/product_intelligence.rb'
- 'tooling/danger/project_helper.rb' - 'tooling/danger/project_helper.rb'
- 'tooling/danger/specs.rb' - 'tooling/danger/specs.rb'
- 'tooling/graphql/docs/helper.rb' - 'tooling/graphql/docs/helper.rb'

View file

@ -3,9 +3,15 @@
Layout/ParameterAlignment: Layout/ParameterAlignment:
Details: grace period Details: grace period
Exclude: Exclude:
- 'ee/spec/lib/ee/gitlab/background_migration/drop_invalid_remediations_spec.rb'
- 'lib/gitlab/cross_project_access.rb' - 'lib/gitlab/cross_project_access.rb'
- 'lib/gitlab/data_builder/push.rb' - 'lib/gitlab/data_builder/push.rb'
- 'spec/lib/gitlab/background_migration/drop_invalid_vulnerabilities_spec.rb'
- 'spec/lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid_spec.rb'
- 'spec/lib/gitlab/background_migration/remove_duplicate_vulnerabilities_findings_spec.rb'
- 'spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb' - 'spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb'
- 'spec/migrations/20211018152654_schedule_remove_duplicate_vulnerabilities_findings3_spec.rb'
- 'spec/migrations/20211116111644_schedule_remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb'
- 'spec/support/helpers/content_security_policy_helpers.rb' - 'spec/support/helpers/content_security_policy_helpers.rb'
- 'spec/support/helpers/migrations_helpers/vulnerabilities_helper.rb' - 'spec/support/helpers/migrations_helpers/vulnerabilities_helper.rb'
- 'spec/support/helpers/repo_helpers.rb' - 'spec/support/helpers/repo_helpers.rb'

View file

@ -20,6 +20,7 @@ Layout/SpaceInLambdaLiteral:
- 'app/models/clusters/agent.rb' - 'app/models/clusters/agent.rb'
- 'app/models/clusters/agent_token.rb' - 'app/models/clusters/agent_token.rb'
- 'app/models/clusters/agents/activity_event.rb' - 'app/models/clusters/agents/activity_event.rb'
- 'app/models/clusters/applications/knative.rb'
- 'app/models/clusters/cluster.rb' - 'app/models/clusters/cluster.rb'
- 'app/models/clusters/kubernetes_namespace.rb' - 'app/models/clusters/kubernetes_namespace.rb'
- 'app/models/commit_status.rb' - 'app/models/commit_status.rb'
@ -35,6 +36,7 @@ Layout/SpaceInLambdaLiteral:
- 'app/models/concerns/issuable.rb' - 'app/models/concerns/issuable.rb'
- 'app/models/concerns/mentionable.rb' - 'app/models/concerns/mentionable.rb'
- 'app/models/concerns/milestoneable.rb' - 'app/models/concerns/milestoneable.rb'
- 'app/models/concerns/protected_ref_access.rb'
- 'app/models/concerns/reactive_caching.rb' - 'app/models/concerns/reactive_caching.rb'
- 'app/models/concerns/shardable.rb' - 'app/models/concerns/shardable.rb'
- 'app/models/concerns/timebox.rb' - 'app/models/concerns/timebox.rb'
@ -117,6 +119,7 @@ Layout/SpaceInLambdaLiteral:
- 'app/serializers/ci/job_entity.rb' - 'app/serializers/ci/job_entity.rb'
- 'app/serializers/ci/pipeline_entity.rb' - 'app/serializers/ci/pipeline_entity.rb'
- 'app/serializers/ci/trigger_entity.rb' - 'app/serializers/ci/trigger_entity.rb'
- 'app/serializers/cluster_application_entity.rb'
- 'app/serializers/concerns/user_status_tooltip.rb' - 'app/serializers/concerns/user_status_tooltip.rb'
- 'app/serializers/container_repository_entity.rb' - 'app/serializers/container_repository_entity.rb'
- 'app/serializers/container_tag_entity.rb' - 'app/serializers/container_tag_entity.rb'
@ -199,6 +202,7 @@ Layout/SpaceInLambdaLiteral:
- 'ee/app/models/ee/group.rb' - 'ee/app/models/ee/group.rb'
- 'ee/app/models/ee/group_group_link.rb' - 'ee/app/models/ee/group_group_link.rb'
- 'ee/app/models/ee/issue.rb' - 'ee/app/models/ee/issue.rb'
- 'ee/app/models/ee/iteration.rb'
- 'ee/app/models/ee/list.rb' - 'ee/app/models/ee/list.rb'
- 'ee/app/models/ee/member.rb' - 'ee/app/models/ee/member.rb'
- 'ee/app/models/ee/namespace.rb' - 'ee/app/models/ee/namespace.rb'
@ -216,10 +220,10 @@ Layout/SpaceInLambdaLiteral:
- 'ee/app/models/incident_management/oncall_rotation.rb' - 'ee/app/models/incident_management/oncall_rotation.rb'
- 'ee/app/models/incident_management/oncall_schedule.rb' - 'ee/app/models/incident_management/oncall_schedule.rb'
- 'ee/app/models/incident_management/oncall_shift.rb' - 'ee/app/models/incident_management/oncall_shift.rb'
- 'ee/app/models/iteration.rb'
- 'ee/app/models/iterations/cadence.rb' - 'ee/app/models/iterations/cadence.rb'
- 'ee/app/models/merge_request_block.rb' - 'ee/app/models/merge_request_block.rb'
- 'ee/app/models/merge_requests/compliance_violation.rb' - 'ee/app/models/merge_requests/compliance_violation.rb'
- 'ee/app/models/merge_train.rb'
- 'ee/app/models/namespaces/namespace_ban.rb' - 'ee/app/models/namespaces/namespace_ban.rb'
- 'ee/app/models/requirements_management/requirement.rb' - 'ee/app/models/requirements_management/requirement.rb'
- 'ee/app/models/resource_iteration_event.rb' - 'ee/app/models/resource_iteration_event.rb'
@ -230,6 +234,7 @@ Layout/SpaceInLambdaLiteral:
- 'ee/app/models/security/scan.rb' - 'ee/app/models/security/scan.rb'
- 'ee/app/models/security/training.rb' - 'ee/app/models/security/training.rb'
- 'ee/app/models/security/training_provider.rb' - 'ee/app/models/security/training_provider.rb'
- 'ee/app/models/slack_integration.rb'
- 'ee/app/models/software_license.rb' - 'ee/app/models/software_license.rb'
- 'ee/app/models/software_license_policy.rb' - 'ee/app/models/software_license_policy.rb'
- 'ee/app/models/vulnerabilities/external_issue_link.rb' - 'ee/app/models/vulnerabilities/external_issue_link.rb'
@ -274,6 +279,7 @@ Layout/SpaceInLambdaLiteral:
- 'ee/app/services/groups/memberships/export_service.rb' - 'ee/app/services/groups/memberships/export_service.rb'
- 'ee/app/services/groups/seat_usage_export_service.rb' - 'ee/app/services/groups/seat_usage_export_service.rb'
- 'ee/app/services/historical_user_data/csv_service.rb' - 'ee/app/services/historical_user_data/csv_service.rb'
- 'ee/app/services/merge_commits/export_csv_service.rb'
- 'ee/app/services/user_permissions/export_service.rb' - 'ee/app/services/user_permissions/export_service.rb'
- 'ee/app/services/vulnerability_exports/exporters/csv_service.rb' - 'ee/app/services/vulnerability_exports/exporters/csv_service.rb'
- 'ee/app/workers/update_all_mirrors_worker.rb' - 'ee/app/workers/update_all_mirrors_worker.rb'
@ -347,6 +353,7 @@ Layout/SpaceInLambdaLiteral:
- 'lib/gitlab/background_migration/backfill_work_item_type_id_for_issues.rb' - 'lib/gitlab/background_migration/backfill_work_item_type_id_for_issues.rb'
- 'lib/gitlab/background_migration/populate_latest_pipeline_ids.rb' - 'lib/gitlab/background_migration/populate_latest_pipeline_ids.rb'
- 'lib/gitlab/background_migration/purge_stale_security_scans.rb' - 'lib/gitlab/background_migration/purge_stale_security_scans.rb'
- 'lib/gitlab/background_migration/remove_all_trace_expiration_dates.rb'
- 'lib/gitlab/cache/helpers.rb' - 'lib/gitlab/cache/helpers.rb'
- 'lib/gitlab/ci/config/entry/inherit/default.rb' - 'lib/gitlab/ci/config/entry/inherit/default.rb'
- 'lib/gitlab/ci/config/entry/inherit/variables.rb' - 'lib/gitlab/ci/config/entry/inherit/variables.rb'
@ -391,7 +398,9 @@ Layout/SpaceInLambdaLiteral:
- 'spec/lib/gitlab/sidekiq_signals_spec.rb' - 'spec/lib/gitlab/sidekiq_signals_spec.rb'
- 'spec/lib/gitlab/utils/sanitize_node_link_spec.rb' - 'spec/lib/gitlab/utils/sanitize_node_link_spec.rb'
- 'spec/models/ability_spec.rb' - 'spec/models/ability_spec.rb'
- 'spec/models/broadcast_message_spec.rb'
- 'spec/models/concerns/participable_spec.rb' - 'spec/models/concerns/participable_spec.rb'
- 'spec/models/concerns/uniquify_spec.rb'
- 'spec/models/merge_request_spec.rb' - 'spec/models/merge_request_spec.rb'
- 'spec/support/shared_examples/lib/cache_helpers_shared_examples.rb' - 'spec/support/shared_examples/lib/cache_helpers_shared_examples.rb'
- 'spec/support/shared_examples/workers/batched_background_migration_worker_shared_examples.rb' - 'spec/support/shared_examples/workers/batched_background_migration_worker_shared_examples.rb'

View file

@ -21,10 +21,12 @@ Layout/SpaceInsideParens:
- 'ee/spec/lib/gitlab/search/index_curator_spec.rb' - 'ee/spec/lib/gitlab/search/index_curator_spec.rb'
- 'ee/spec/lib/world_spec.rb' - 'ee/spec/lib/world_spec.rb'
- 'ee/spec/mailers/notify_spec.rb' - 'ee/spec/mailers/notify_spec.rb'
- 'ee/spec/migrations/drop_invalid_remediations_spec.rb'
- 'ee/spec/models/allowed_email_domain_spec.rb' - 'ee/spec/models/allowed_email_domain_spec.rb'
- 'ee/spec/models/boards/epic_board_position_spec.rb' - 'ee/spec/models/boards/epic_board_position_spec.rb'
- 'ee/spec/models/dora/change_failure_rate_metric_spec.rb' - 'ee/spec/models/dora/change_failure_rate_metric_spec.rb'
- 'ee/spec/models/ee/integrations/jira_spec.rb' - 'ee/spec/models/ee/integrations/jira_spec.rb'
- 'ee/spec/models/ee/iteration_spec.rb'
- 'ee/spec/models/ee/iterations/cadence_spec.rb' - 'ee/spec/models/ee/iterations/cadence_spec.rb'
- 'ee/spec/models/ee/key_spec.rb' - 'ee/spec/models/ee/key_spec.rb'
- 'ee/spec/models/ee/project_setting_spec.rb' - 'ee/spec/models/ee/project_setting_spec.rb'
@ -33,7 +35,6 @@ Layout/SpaceInsideParens:
- 'ee/spec/models/geo/every_geo_event_spec.rb' - 'ee/spec/models/geo/every_geo_event_spec.rb'
- 'ee/spec/models/incident_management/escalation_rule_spec.rb' - 'ee/spec/models/incident_management/escalation_rule_spec.rb'
- 'ee/spec/models/ip_restriction_spec.rb' - 'ee/spec/models/ip_restriction_spec.rb'
- 'ee/spec/models/iteration_spec.rb'
- 'ee/spec/models/ldap_group_link_spec.rb' - 'ee/spec/models/ldap_group_link_spec.rb'
- 'ee/spec/models/license_spec.rb' - 'ee/spec/models/license_spec.rb'
- 'ee/spec/models/member_spec.rb' - 'ee/spec/models/member_spec.rb'
@ -67,6 +68,7 @@ Layout/SpaceInsideParens:
- 'ee/spec/services/ee/users/update_service_spec.rb' - 'ee/spec/services/ee/users/update_service_spec.rb'
- 'ee/spec/services/epic_issues/update_service_spec.rb' - 'ee/spec/services/epic_issues/update_service_spec.rb'
- 'ee/spec/services/epics/related_epic_links/destroy_service_spec.rb' - 'ee/spec/services/epics/related_epic_links/destroy_service_spec.rb'
- 'ee/spec/services/epics/tree_reorder_service_spec.rb'
- 'ee/spec/services/geo/container_repository_sync_spec.rb' - 'ee/spec/services/geo/container_repository_sync_spec.rb'
- 'ee/spec/services/geo/replication_toggle_request_service_spec.rb' - 'ee/spec/services/geo/replication_toggle_request_service_spec.rb'
- 'ee/spec/services/gitlab_subscriptions/create_service_spec.rb' - 'ee/spec/services/gitlab_subscriptions/create_service_spec.rb'
@ -96,6 +98,7 @@ Layout/SpaceInsideParens:
- 'spec/helpers/application_helper_spec.rb' - 'spec/helpers/application_helper_spec.rb'
- 'spec/helpers/badges_helper_spec.rb' - 'spec/helpers/badges_helper_spec.rb'
- 'spec/helpers/ci/builds_helper_spec.rb' - 'spec/helpers/ci/builds_helper_spec.rb'
- 'spec/helpers/ci/runners_helper_spec.rb'
- 'spec/helpers/dev_ops_report_helper_spec.rb' - 'spec/helpers/dev_ops_report_helper_spec.rb'
- 'spec/helpers/git_helper_spec.rb' - 'spec/helpers/git_helper_spec.rb'
- 'spec/helpers/gitlab_routing_helper_spec.rb' - 'spec/helpers/gitlab_routing_helper_spec.rb'
@ -125,6 +128,7 @@ Layout/SpaceInsideParens:
- 'spec/lib/gitlab/ci/parsers/security/common_spec.rb' - 'spec/lib/gitlab/ci/parsers/security/common_spec.rb'
- 'spec/lib/gitlab/ci/parsers_spec.rb' - 'spec/lib/gitlab/ci/parsers_spec.rb'
- 'spec/lib/gitlab/ci/pipeline/seed/build_spec.rb' - 'spec/lib/gitlab/ci/pipeline/seed/build_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/vulnerability_reports_comparer_spec.rb'
- 'spec/lib/gitlab/ci/reports/test_suite_spec.rb' - 'spec/lib/gitlab/ci/reports/test_suite_spec.rb'
- 'spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb' - 'spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb'
- 'spec/lib/gitlab/ci/templates/MATLAB_spec.rb' - 'spec/lib/gitlab/ci/templates/MATLAB_spec.rb'
@ -163,6 +167,7 @@ Layout/SpaceInsideParens:
- 'spec/lib/gitlab/kubernetes/rollout_status_spec.rb' - 'spec/lib/gitlab/kubernetes/rollout_status_spec.rb'
- 'spec/lib/gitlab/metrics/dashboard/processor_spec.rb' - 'spec/lib/gitlab/metrics/dashboard/processor_spec.rb'
- 'spec/lib/gitlab/middleware/same_site_cookies_spec.rb' - 'spec/lib/gitlab/middleware/same_site_cookies_spec.rb'
- 'spec/lib/gitlab/rack_attack/instrumented_cache_store_spec.rb'
- 'spec/lib/gitlab/redis/cache_spec.rb' - 'spec/lib/gitlab/redis/cache_spec.rb'
- 'spec/lib/gitlab/redis/queues_spec.rb' - 'spec/lib/gitlab/redis/queues_spec.rb'
- 'spec/lib/gitlab/redis/shared_state_spec.rb' - 'spec/lib/gitlab/redis/shared_state_spec.rb'
@ -180,6 +185,7 @@ Layout/SpaceInsideParens:
- 'spec/lib/security/ci_configuration/sast_iac_build_action_spec.rb' - 'spec/lib/security/ci_configuration/sast_iac_build_action_spec.rb'
- 'spec/lib/security/ci_configuration/secret_detection_build_action_spec.rb' - 'spec/lib/security/ci_configuration/secret_detection_build_action_spec.rb'
- 'spec/mailers/emails/profile_spec.rb' - 'spec/mailers/emails/profile_spec.rb'
- 'spec/migrations/20211130165043_backfill_sequence_column_for_sprints_table_spec.rb'
- 'spec/models/ci/pending_build_spec.rb' - 'spec/models/ci/pending_build_spec.rb'
- 'spec/models/ci/running_build_spec.rb' - 'spec/models/ci/running_build_spec.rb'
- 'spec/models/ml/candidate_metric_spec.rb' - 'spec/models/ml/candidate_metric_spec.rb'
@ -221,6 +227,7 @@ Layout/SpaceInsideParens:
- 'spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb' - 'spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb'
- 'spec/views/profiles/keys/_form.html.haml_spec.rb' - 'spec/views/profiles/keys/_form.html.haml_spec.rb'
- 'spec/views/search/_results.html.haml_spec.rb' - 'spec/views/search/_results.html.haml_spec.rb'
- 'spec/views/shared/runners/_runner_details.html.haml_spec.rb'
- 'spec/workers/concerns/gitlab/github_import/object_importer_spec.rb' - 'spec/workers/concerns/gitlab/github_import/object_importer_spec.rb'
- 'spec/workers/gitlab/jira_import/stage/import_labels_worker_spec.rb' - 'spec/workers/gitlab/jira_import/stage/import_labels_worker_spec.rb'
- 'spec/workers/pipeline_schedule_worker_spec.rb' - 'spec/workers/pipeline_schedule_worker_spec.rb'

View file

@ -6,6 +6,7 @@ Layout/TrailingWhitespace:
- 'db/migrate/20220913082728_drop_index_cadence_create_iterations_automation.rb' - 'db/migrate/20220913082728_drop_index_cadence_create_iterations_automation.rb'
- 'db/post_migrate/20220816163444_update_start_date_for_iterations_cadences.rb' - 'db/post_migrate/20220816163444_update_start_date_for_iterations_cadences.rb'
- 'lib/gitlab/background_migration/fix_duplicate_project_name_and_path.rb' - 'lib/gitlab/background_migration/fix_duplicate_project_name_and_path.rb'
- 'lib/gitlab/background_migration/populate_topics_non_private_projects_count.rb'
- 'lib/gitlab/pagination/keyset/sql_type_missing_error.rb' - 'lib/gitlab/pagination/keyset/sql_type_missing_error.rb'
- 'spec/services/suggestions/apply_service_spec.rb' - 'spec/services/suggestions/apply_service_spec.rb'
- 'spec/support/helpers/x509_helpers.rb' - 'spec/support/helpers/x509_helpers.rb'

View file

@ -30,6 +30,7 @@ Lint/AmbiguousOperatorPrecedence:
- 'app/services/issuable_links/create_service.rb' - 'app/services/issuable_links/create_service.rb'
- 'app/services/issues/relative_position_rebalancing_service.rb' - 'app/services/issues/relative_position_rebalancing_service.rb'
- 'app/services/jira/requests/base.rb' - 'app/services/jira/requests/base.rb'
- 'app/services/projects/blame_service.rb'
- 'config/initializers/1_settings.rb' - 'config/initializers/1_settings.rb'
- 'config/initializers/carrierwave_patch.rb' - 'config/initializers/carrierwave_patch.rb'
- 'config/initializers/kaminari_active_record_relation_methods_with_limit.rb' - 'config/initializers/kaminari_active_record_relation_methods_with_limit.rb'
@ -38,6 +39,7 @@ Lint/AmbiguousOperatorPrecedence:
- 'ee/app/models/geo/upload_registry.rb' - 'ee/app/models/geo/upload_registry.rb'
- 'ee/app/models/iterations/cadence.rb' - 'ee/app/models/iterations/cadence.rb'
- 'ee/app/models/license.rb' - 'ee/app/models/license.rb'
- 'ee/app/models/namespaces/storage/root_size.rb'
- 'ee/app/policies/ee/issuable_policy.rb' - 'ee/app/policies/ee/issuable_policy.rb'
- 'ee/app/services/boards/epics/position_create_service.rb' - 'ee/app/services/boards/epics/position_create_service.rb'
- 'ee/app/services/geo/registry_consistency_service.rb' - 'ee/app/services/geo/registry_consistency_service.rb'
@ -80,6 +82,7 @@ Lint/AmbiguousOperatorPrecedence:
- 'lib/gitlab/template_parser/parser.rb' - 'lib/gitlab/template_parser/parser.rb'
- 'lib/gitlab/tree_summary.rb' - 'lib/gitlab/tree_summary.rb'
- 'lib/gitlab/usage/metrics/name_suggestion.rb' - 'lib/gitlab/usage/metrics/name_suggestion.rb'
- 'lib/gitlab/utils/email.rb'
- 'lib/omni_auth/strategies/bitbucket.rb' - 'lib/omni_auth/strategies/bitbucket.rb'
- 'qa/qa/ee/page/project/secure/pipeline_security.rb' - 'qa/qa/ee/page/project/secure/pipeline_security.rb'
- 'qa/qa/resource/api_fabricator.rb' - 'qa/qa/resource/api_fabricator.rb'
@ -120,6 +123,7 @@ Lint/AmbiguousOperatorPrecedence:
- 'spec/lib/gitlab/regex_spec.rb' - 'spec/lib/gitlab/regex_spec.rb'
- 'spec/lib/gitlab/search/abuse_validators/no_abusive_term_length_validator_spec.rb' - 'spec/lib/gitlab/search/abuse_validators/no_abusive_term_length_validator_spec.rb'
- 'spec/lib/gitlab/slash_commands/deploy_spec.rb' - 'spec/lib/gitlab/slash_commands/deploy_spec.rb'
- 'spec/lib/gitlab/url_blocker_spec.rb'
- 'spec/mailers/notify_spec.rb' - 'spec/mailers/notify_spec.rb'
- 'spec/models/appearance_spec.rb' - 'spec/models/appearance_spec.rb'
- 'spec/models/ci/build_spec.rb' - 'spec/models/ci/build_spec.rb'
@ -139,6 +143,7 @@ Lint/AmbiguousOperatorPrecedence:
- 'spec/services/ci/pipeline_schedules/calculate_next_run_service_spec.rb' - 'spec/services/ci/pipeline_schedules/calculate_next_run_service_spec.rb'
- 'spec/services/issues/relative_position_rebalancing_service_spec.rb' - 'spec/services/issues/relative_position_rebalancing_service_spec.rb'
- 'spec/services/web_hook_service_spec.rb' - 'spec/services/web_hook_service_spec.rb'
- 'spec/support/cycle_analytics_helpers/test_generation.rb'
- 'spec/support/helpers/dependency_proxy_helpers.rb' - 'spec/support/helpers/dependency_proxy_helpers.rb'
- 'spec/support/models/ci/partitioning_testing/cascade_check.rb' - 'spec/support/models/ci/partitioning_testing/cascade_check.rb'
- 'spec/support/shared_examples/features/sidebar_shared_examples.rb' - 'spec/support/shared_examples/features/sidebar_shared_examples.rb'

View file

@ -4,7 +4,7 @@ Lint/AmbiguousRange:
Details: grace period Details: grace period
Exclude: Exclude:
- 'app/models/ci/runner.rb' - 'app/models/ci/runner.rb'
- 'app/models/ci/runner_manager.rb' - 'app/models/ci/runner_machine.rb'
- 'app/services/clusters/agent_tokens/track_usage_service.rb' - 'app/services/clusters/agent_tokens/track_usage_service.rb'
- 'lib/gitlab/seeders/ci/runner/runner_fleet_pipeline_seeder.rb' - 'lib/gitlab/seeders/ci/runner/runner_fleet_pipeline_seeder.rb'
- 'spec/lib/gitlab/database/reindexing/reindex_concurrently_spec.rb' - 'spec/lib/gitlab/database/reindexing/reindex_concurrently_spec.rb'

Some files were not shown because too many files have changed in this diff Show more