[0KRunning with gitlab-runner 14.4.0-rc1 (bc99a056)[0;m [0K on docker-auto-scale-com d5ae8d25[0;m [0K feature flags: FF_USE_FASTZIP:true[0;m section_start:1634149107:resolve_secrets [0K[0K[36;1mResolving secrets[0;m[0;m section_end:1634149107:resolve_secrets [0Ksection_start:1634149107:prepare_executor [0K[0K[36;1mPreparing the "docker+machine" executor[0;m[0;m [0KUsing Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 ...[0;m [0KStarting service postgres:12 ...[0;m [0KPulling docker image postgres:12 ...[0;m [0KUsing docker image sha256:fd694ed1533c17b41ce216f564c485b00c54a22d4381ffffb0a8e0c1b63f1747 for postgres:12 with digest postgres@sha256:5dee94aed72d1549f945e63195ebe720a1472df170f8d2a8807ea02c8ecf6aa2 ...[0;m [0KStarting service redis:5.0-alpine ...[0;m [0KPulling docker image redis:5.0-alpine ...[0;m [0KUsing docker image sha256:a7a6051077c6c9cfc9ad478778271b49900cb5c4667e64a4128306d8f41a5396 for redis:5.0-alpine with digest redis@sha256:cb5840073dc475b45bf856eb666f5e4d19e3b1ae882e0f3a1396d399cfa23702 ...[0;m [0KStarting service elasticsearch:7.11.1 ...[0;m [0KPulling docker image elasticsearch:7.11.1 ...[0;m [0KUsing docker image sha256:bc3d45eba361de2bde57b25ada32b4de5dd5f5cb12cd3bd049212e90bdfd62a9 for elasticsearch:7.11.1 with digest elasticsearch@sha256:3a219f148b596e25c1b16bda46e1ca07db46826c0e1cde003c2d2f93f33d18e4 ...[0;m [0KWaiting for services to be up and running...[0;m [0KAuthenticating with credentials from job payload (GitLab Registry)[0;m [0KPulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 ...[0;m [0KUsing docker image sha256:3a2e6a9cad65fa0415ab85039d82beb91c1c065f731261c1b2b150f34d219920 for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:37c1a65d34690f6db5d9a6308136b2ef8361634b2bc1bed4057561128323c6e3 ...[0;m section_end:1634149135:prepare_executor [0Ksection_start:1634149135:prepare_script [0K[0K[36;1mPreparing environment[0;m[0;m Running on runner-d5ae8d25-project-278964-concurrent-0 via runner-d5ae8d25-gsrm-1634141510-d07530f6... section_end:1634149137:prepare_script [0Ksection_start:1634149137:get_sources [0K[0K[36;1mGetting source from Git repository[0;m[0;m [32;1m$ eval "$CI_PRE_CLONE_SCRIPT"[0;m Downloading archived master... Connecting to storage.googleapis.com (172.217.193.128:443) saving to '/tmp/gitlab.tar.gz' gitlab.tar.gz 49% |*************** | 171M 0:00:01 ETA gitlab.tar.gz 100% |********************************| 346M 0:00:00 ETA '/tmp/gitlab.tar.gz' saved Extracting tarball into /builds/gitlab-org/gitlab... [32;1mFetching changes with git depth set to 20...[0;m Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/ [32;1mCreated fresh repository.[0;m remote: Enumerating objects: 110247, done. remote: Counting objects: 0% (1/110247) remote: Counting objects: 1% (1103/110247) remote: Counting objects: 2% (2205/110247) remote: Counting objects: 3% (3308/110247) remote: Counting objects: 4% (4410/110247) remote: Counting objects: 5% (5513/110247) remote: Counting objects: 6% (6615/110247) remote: Counting objects: 7% (7718/110247) remote: Counting objects: 8% (8820/110247) remote: Counting objects: 9% (9923/110247) remote: Counting objects: 10% (11025/110247) remote: Counting objects: 11% (12128/110247) remote: Counting objects: 12% (13230/110247) remote: Counting objects: 13% (14333/110247) remote: Counting objects: 14% (15435/110247) remote: Counting objects: 15% (16538/110247) remote: Counting objects: 16% (17640/110247) remote: Counting objects: 17% (18742/110247) remote: Counting objects: 18% (19845/110247) remote: Counting objects: 19% (20947/110247) remote: Counting objects: 20% (22050/110247) remote: Counting objects: 21% (23152/110247) remote: Counting objects: 22% (24255/110247) remote: Counting objects: 23% (25357/110247) remote: Counting objects: 24% (26460/110247) remote: Counting objects: 25% (27562/110247) remote: Counting objects: 26% (28665/110247) remote: Counting objects: 27% (29767/110247) remote: Counting objects: 28% (30870/110247) remote: Counting objects: 29% (31972/110247) remote: Counting objects: 30% (33075/110247) remote: Counting objects: 31% (34177/110247) remote: Counting objects: 32% (35280/110247) remote: Counting objects: 33% (36382/110247) remote: Counting objects: 34% (37484/110247) remote: Counting objects: 35% (38587/110247) remote: Counting objects: 36% (39689/110247) remote: Counting objects: 37% (40792/110247) remote: Counting objects: 38% (41894/110247) remote: Counting objects: 39% (42997/110247) remote: Counting objects: 40% (44099/110247) remote: Counting objects: 41% (45202/110247) remote: Counting objects: 42% (46304/110247) remote: Counting objects: 43% (47407/110247) remote: Counting objects: 44% (48509/110247) remote: Counting objects: 45% (49612/110247) remote: Counting objects: 46% (50714/110247) remote: Counting objects: 47% (51817/110247) remote: Counting objects: 48% (52919/110247) remote: Counting objects: 49% (54022/110247) remote: Counting objects: 50% (55124/110247) remote: Counting objects: 51% (56226/110247) remote: Counting objects: 52% (57329/110247) remote: Counting objects: 53% (58431/110247) remote: Counting objects: 54% (59534/110247) remote: Counting objects: 55% (60636/110247) remote: Counting objects: 56% (61739/110247) remote: Counting objects: 57% (62841/110247) remote: Counting objects: 58% (63944/110247) remote: Counting objects: 59% (65046/110247) remote: Counting objects: 60% (66149/110247) remote: Counting objects: 61% (67251/110247) remote: Counting objects: 62% (68354/110247) remote: Counting objects: 63% (69456/110247) remote: Counting objects: 64% (70559/110247) remote: Counting objects: 65% (71661/110247) remote: Counting objects: 66% (72764/110247) remote: Counting objects: 67% (73866/110247) remote: Counting objects: 68% (74968/110247) remote: Counting objects: 69% (76071/110247) remote: Counting objects: 70% (77173/110247) remote: Counting objects: 71% (78276/110247) remote: Counting objects: 72% (79378/110247) remote: Counting objects: 73% (80481/110247) remote: Counting objects: 74% (81583/110247) remote: Counting objects: 75% (82686/110247) remote: Counting objects: 76% (83788/110247) remote: Counting objects: 77% (84891/110247) remote: Counting objects: 78% (85993/110247) remote: Counting objects: 79% (87096/110247) remote: Counting objects: 80% (88198/110247) remote: Counting objects: 81% (89301/110247) remote: Counting objects: 82% (90403/110247) remote: Counting objects: 83% (91506/110247) remote: Counting objects: 84% (92608/110247) remote: Counting objects: 85% (93710/110247) remote: Counting objects: 86% (94813/110247) remote: Counting objects: 87% (95915/110247) remote: Counting objects: 88% (97018/110247) remote: Counting objects: 89% (98120/110247) remote: Counting objects: 90% (99223/110247) remote: Counting objects: 91% (100325/110247) remote: Counting objects: 92% (101428/110247) remote: Counting objects: 93% (102530/110247) remote: Counting objects: 94% (103633/110247) remote: Counting objects: 95% (104735/110247) remote: Counting objects: 96% (105838/110247) remote: Counting objects: 97% (106940/110247) remote: Counting objects: 98% (108043/110247) remote: Counting objects: 99% (109145/110247) remote: Counting objects: 100% (110247/110247) remote: Counting objects: 100% (110247/110247), done. remote: Compressing objects: 0% (1/75671) remote: Compressing objects: 1% (757/75671) remote: Compressing objects: 2% (1514/75671) remote: Compressing objects: 3% (2271/75671) remote: Compressing objects: 4% (3027/75671) remote: Compressing objects: 5% (3784/75671) remote: Compressing objects: 6% (4541/75671) remote: Compressing objects: 6% (4701/75671) remote: Compressing objects: 7% (5297/75671) remote: Compressing objects: 8% (6054/75671) remote: Compressing objects: 9% (6811/75671) remote: Compressing objects: 10% (7568/75671) remote: Compressing objects: 11% (8324/75671) remote: Compressing objects: 12% (9081/75671) remote: Compressing objects: 13% (9838/75671) remote: Compressing objects: 13% (9839/75671) remote: Compressing objects: 14% (10594/75671) remote: Compressing objects: 15% (11351/75671) remote: Compressing objects: 16% (12108/75671) remote: Compressing objects: 17% (12865/75671) remote: Compressing objects: 18% (13621/75671) remote: Compressing objects: 19% (14378/75671) remote: Compressing objects: 20% (15135/75671) remote: Compressing objects: 21% (15891/75671) remote: Compressing objects: 22% (16648/75671) remote: Compressing objects: 23% (17405/75671) remote: Compressing objects: 24% (18162/75671) remote: Compressing objects: 25% (18918/75671) remote: Compressing objects: 26% (19675/75671) remote: Compressing objects: 27% (20432/75671) remote: Compressing objects: 27% (20592/75671) remote: Compressing objects: 28% (21188/75671) remote: Compressing objects: 29% (21945/75671) remote: Compressing objects: 30% (22702/75671) remote: Compressing objects: 31% (23459/75671) remote: Compressing objects: 32% (24215/75671) remote: Compressing objects: 33% (24972/75671) remote: Compressing objects: 34% (25729/75671) remote: Compressing objects: 35% (26485/75671) remote: Compressing objects: 36% (27242/75671) remote: Compressing objects: 37% (27999/75671) remote: Compressing objects: 38% (28755/75671) remote: Compressing objects: 39% (29512/75671) remote: Compressing objects: 40% (30269/75671) remote: Compressing objects: 41% (31026/75671) remote: Compressing objects: 42% (31782/75671) remote: Compressing objects: 43% (32539/75671) remote: Compressing objects: 43% (32967/75671) remote: Compressing objects: 44% (33296/75671) remote: Compressing objects: 45% (34052/75671) remote: Compressing objects: 46% (34809/75671) remote: Compressing objects: 47% (35566/75671) remote: Compressing objects: 48% (36323/75671) remote: Compressing objects: 49% (37079/75671) remote: Compressing objects: 50% (37836/75671) remote: Compressing objects: 51% (38593/75671) remote: Compressing objects: 52% (39349/75671) remote: Compressing objects: 53% (40106/75671) remote: Compressing objects: 54% (40863/75671) remote: Compressing objects: 55% (41620/75671) remote: Compressing objects: 56% (42376/75671) remote: Compressing objects: 57% (43133/75671) remote: Compressing objects: 58% (43890/75671) remote: Compressing objects: 58% (44595/75671) remote: Compressing objects: 59% (44646/75671) remote: Compressing objects: 60% (45403/75671) remote: Compressing objects: 61% (46160/75671) remote: Compressing objects: 62% (46917/75671) remote: Compressing objects: 63% (47673/75671) remote: Compressing objects: 64% (48430/75671) remote: Compressing objects: 65% (49187/75671) remote: Compressing objects: 66% (49943/75671) remote: Compressing objects: 67% (50700/75671) remote: Compressing objects: 68% (51457/75671) remote: Compressing objects: 69% (52213/75671) remote: Compressing objects: 70% (52970/75671) remote: Compressing objects: 71% (53727/75671) remote: Compressing objects: 72% (54484/75671) remote: Compressing objects: 73% (55240/75671) remote: Compressing objects: 74% (55997/75671) remote: Compressing objects: 75% (56754/75671) remote: Compressing objects: 76% (57510/75671) remote: Compressing objects: 77% (58267/75671) remote: Compressing objects: 78% (59024/75671) remote: Compressing objects: 79% (59781/75671) remote: Compressing objects: 80% (60537/75671) remote: Compressing objects: 81% (61294/75671) remote: Compressing objects: 82% (62051/75671) remote: Compressing objects: 83% (62807/75671) remote: Compressing objects: 84% (63564/75671) remote: Compressing objects: 85% (64321/75671) remote: Compressing objects: 86% (65078/75671) remote: Compressing objects: 87% (65834/75671) remote: Compressing objects: 88% (66591/75671) remote: Compressing objects: 89% (67348/75671) remote: Compressing objects: 90% (68104/75671) remote: Compressing objects: 91% (68861/75671) remote: Compressing objects: 92% (69618/75671) remote: Compressing objects: 93% (70375/75671) remote: Compressing objects: 94% (71131/75671) remote: Compressing objects: 95% (71888/75671) remote: Compressing objects: 96% (72645/75671) remote: Compressing objects: 96% (73273/75671) remote: Compressing objects: 97% (73401/75671) remote: Compressing objects: 98% (74158/75671) remote: Compressing objects: 99% (74915/75671) remote: Compressing objects: 100% (75671/75671) remote: Compressing objects: 100% (75671/75671), done. Receiving objects: 0% (1/110247) Receiving objects: 1% (1103/110247) Receiving objects: 2% (2205/110247) Receiving objects: 3% (3308/110247) Receiving objects: 4% (4410/110247) Receiving objects: 5% (5513/110247) Receiving objects: 6% (6615/110247) Receiving objects: 7% (7718/110247) Receiving objects: 8% (8820/110247) Receiving objects: 9% (9923/110247) Receiving objects: 10% (11025/110247) Receiving objects: 11% (12128/110247) Receiving objects: 12% (13230/110247) Receiving objects: 13% (14333/110247) Receiving objects: 14% (15435/110247), 13.06 MiB | 26.11 MiB/s Receiving objects: 15% (16538/110247), 13.06 MiB | 26.11 MiB/s Receiving objects: 16% (17640/110247), 13.06 MiB | 26.11 MiB/s Receiving objects: 17% (18742/110247), 13.06 MiB | 26.11 MiB/s Receiving objects: 18% (19845/110247), 13.06 MiB | 26.11 MiB/s Receiving objects: 19% (20947/110247), 13.06 MiB | 26.11 MiB/s Receiving objects: 20% (22050/110247), 13.06 MiB | 26.11 MiB/s Receiving objects: 21% (23152/110247), 13.06 MiB | 26.11 MiB/s Receiving objects: 22% (24255/110247), 13.06 MiB | 26.11 MiB/s Receiving objects: 23% (25357/110247), 13.06 MiB | 26.11 MiB/s Receiving objects: 24% (26460/110247), 13.06 MiB | 26.11 MiB/s Receiving objects: 24% (26952/110247), 13.06 MiB | 26.11 MiB/s Receiving objects: 25% (27562/110247), 26.34 MiB | 26.33 MiB/s Receiving objects: 26% (28665/110247), 43.81 MiB | 29.20 MiB/s Receiving objects: 27% (29767/110247), 43.81 MiB | 29.20 MiB/s Receiving objects: 28% (30870/110247), 43.81 MiB | 29.20 MiB/s Receiving objects: 29% (31972/110247), 43.81 MiB | 29.20 MiB/s Receiving objects: 30% (33075/110247), 43.81 MiB | 29.20 MiB/s Receiving objects: 31% (34177/110247), 43.81 MiB | 29.20 MiB/s Receiving objects: 32% (35280/110247), 43.81 MiB | 29.20 MiB/s Receiving objects: 33% (36382/110247), 43.81 MiB | 29.20 MiB/s Receiving objects: 34% (37484/110247), 43.81 MiB | 29.20 MiB/s Receiving objects: 35% (38587/110247), 43.81 MiB | 29.20 MiB/s Receiving objects: 35% (39451/110247), 43.81 MiB | 29.20 MiB/s Receiving objects: 36% (39689/110247), 56.52 MiB | 28.26 MiB/s Receiving objects: 37% (40792/110247), 56.52 MiB | 28.26 MiB/s Receiving objects: 38% (41894/110247), 56.52 MiB | 28.26 MiB/s Receiving objects: 39% (42997/110247), 56.52 MiB | 28.26 MiB/s Receiving objects: 40% (44099/110247), 56.52 MiB | 28.26 MiB/s Receiving objects: 41% (45202/110247), 56.52 MiB | 28.26 MiB/s Receiving objects: 42% (46304/110247), 56.52 MiB | 28.26 MiB/s Receiving objects: 43% (47407/110247), 56.52 MiB | 28.26 MiB/s Receiving objects: 44% (48509/110247), 56.52 MiB | 28.26 MiB/s Receiving objects: 45% (49612/110247), 56.52 MiB | 28.26 MiB/s Receiving objects: 46% (50714/110247), 65.76 MiB | 26.30 MiB/s Receiving objects: 47% (51817/110247), 65.76 MiB | 26.30 MiB/s Receiving objects: 48% (52919/110247), 65.76 MiB | 26.30 MiB/s Receiving objects: 49% (54022/110247), 65.76 MiB | 26.30 MiB/s Receiving objects: 50% (55124/110247), 65.76 MiB | 26.30 MiB/s Receiving objects: 51% (56226/110247), 65.76 MiB | 26.30 MiB/s Receiving objects: 52% (57329/110247), 65.76 MiB | 26.30 MiB/s Receiving objects: 53% (58431/110247), 65.76 MiB | 26.30 MiB/s Receiving objects: 54% (59534/110247), 65.76 MiB | 26.30 MiB/s Receiving objects: 55% (60636/110247), 65.76 MiB | 26.30 MiB/s Receiving objects: 56% (61739/110247), 65.76 MiB | 26.30 MiB/s Receiving objects: 56% (61867/110247), 65.76 MiB | 26.30 MiB/s Receiving objects: 57% (62841/110247), 74.72 MiB | 24.90 MiB/s Receiving objects: 58% (63944/110247), 74.72 MiB | 24.90 MiB/s Receiving objects: 59% (65046/110247), 74.72 MiB | 24.90 MiB/s Receiving objects: 60% (66149/110247), 74.72 MiB | 24.90 MiB/s Receiving objects: 61% (67251/110247), 74.72 MiB | 24.90 MiB/s Receiving objects: 62% (68354/110247), 74.72 MiB | 24.90 MiB/s Receiving objects: 63% (69456/110247), 74.72 MiB | 24.90 MiB/s Receiving objects: 64% (70559/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 65% (71661/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 66% (72764/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 67% (73866/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 68% (74968/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 69% (76071/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 70% (77173/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 71% (78276/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 72% (79378/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 73% (80481/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 74% (81583/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 75% (82686/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 76% (83788/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 77% (84891/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 78% (85993/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 79% (87096/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 80% (88198/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 81% (89301/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 82% (90403/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 83% (91506/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 84% (92608/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 85% (93710/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 86% (94813/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 87% (95915/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 88% (97018/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 89% (98120/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 90% (99223/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 91% (100325/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 92% (101428/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 93% (102530/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 94% (103633/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 95% (104735/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 96% (105838/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 97% (106940/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 98% (108043/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 99% (109145/110247), 89.69 MiB | 25.62 MiB/s remote: Total 110247 (delta 47970), reused 75452 (delta 30626), pack-reused 0 Receiving objects: 99% (109582/110247), 89.69 MiB | 25.62 MiB/s Receiving objects: 100% (110247/110247), 101.77 MiB | 25.44 MiB/s Receiving objects: 100% (110247/110247), 101.87 MiB | 25.43 MiB/s, done. Resolving deltas: 0% (0/47970) Resolving deltas: 1% (579/47970) Resolving deltas: 2% (1358/47970) Resolving deltas: 3% (1440/47970) Resolving deltas: 4% (1920/47970) Resolving deltas: 5% (2399/47970) Resolving deltas: 6% (2881/47970) Resolving deltas: 7% (3362/47970) Resolving deltas: 8% (3838/47970) Resolving deltas: 9% (4321/47970) Resolving deltas: 10% (4802/47970) Resolving deltas: 11% (5303/47970) Resolving deltas: 12% (5757/47970) Resolving deltas: 13% (6238/47970) Resolving deltas: 14% (6718/47970) Resolving deltas: 15% (7196/47970) Resolving deltas: 16% (7678/47970) Resolving deltas: 17% (8159/47970) Resolving deltas: 18% (8660/47970) Resolving deltas: 19% (9137/47970) Resolving deltas: 20% (9594/47970) Resolving deltas: 21% (10108/47970) Resolving deltas: 22% (10559/47970) Resolving deltas: 23% (11053/47970) Resolving deltas: 24% (11568/47970) Resolving deltas: 25% (12007/47970) Resolving deltas: 26% (12488/47970) Resolving deltas: 27% (12952/47970) Resolving deltas: 28% (13438/47970) Resolving deltas: 29% (13934/47970) Resolving deltas: 30% (14393/47970) Resolving deltas: 31% (14949/47970) Resolving deltas: 32% (15353/47970) Resolving deltas: 33% (15842/47970) Resolving deltas: 34% (16310/47970) Resolving deltas: 35% (16855/47970) Resolving deltas: 36% (17281/47970) Resolving deltas: 36% (17459/47970) Resolving deltas: 37% (17754/47970) Resolving deltas: 38% (18229/47970) Resolving deltas: 39% (18709/47970) Resolving deltas: 40% (19188/47970) Resolving deltas: 41% (19688/47970) Resolving deltas: 42% (20149/47970) Resolving deltas: 43% (20632/47970) Resolving deltas: 44% (21109/47970) Resolving deltas: 45% (21590/47970) Resolving deltas: 46% (22068/47970) Resolving deltas: 47% (22547/47970) Resolving deltas: 48% (23075/47970) Resolving deltas: 49% (23506/47970) Resolving deltas: 50% (23995/47970) Resolving deltas: 51% (24468/47970) Resolving deltas: 52% (24948/47970) Resolving deltas: 53% (25488/47970) Resolving deltas: 54% (25926/47970) Resolving deltas: 55% (26394/47970) Resolving deltas: 56% (26864/47970) Resolving deltas: 57% (27345/47970) Resolving deltas: 58% (27827/47970) Resolving deltas: 59% (28303/47970) Resolving deltas: 60% (28783/47970) Resolving deltas: 61% (29263/47970) Resolving deltas: 62% (29914/47970) Resolving deltas: 63% (30222/47970) Resolving deltas: 64% (30701/47970) Resolving deltas: 65% (31181/47970) Resolving deltas: 66% (31976/47970) Resolving deltas: 67% (32143/47970) Resolving deltas: 68% (32620/47970) Resolving deltas: 69% (33104/47970) Resolving deltas: 70% (33584/47970) Resolving deltas: 71% (34060/47970) Resolving deltas: 72% (34541/47970) Resolving deltas: 73% (35165/47970) Resolving deltas: 74% (35503/47970) Resolving deltas: 75% (35982/47970) Resolving deltas: 76% (36556/47970) Resolving deltas: 77% (36937/47970) Resolving deltas: 78% (37419/47970) Resolving deltas: 79% (37923/47970) Resolving deltas: 80% (38376/47970) Resolving deltas: 81% (38881/47970) Resolving deltas: 82% (39399/47970) Resolving deltas: 83% (39832/47970) Resolving deltas: 84% (40472/47970) Resolving deltas: 85% (40777/47970) Resolving deltas: 86% (41256/47970) Resolving deltas: 87% (41773/47970) Resolving deltas: 88% (42217/47970) Resolving deltas: 89% (42729/47970) Resolving deltas: 90% (43174/47970) Resolving deltas: 91% (43719/47970) Resolving deltas: 92% (44133/47970) Resolving deltas: 93% (44621/47970) Resolving deltas: 94% (45095/47970) Resolving deltas: 95% (45572/47970) Resolving deltas: 96% (46158/47970) Resolving deltas: 97% (46711/47970) Resolving deltas: 98% (47139/47970) Resolving deltas: 99% (47668/47970) Resolving deltas: 100% (47970/47970) Resolving deltas: 100% (47970/47970), done. From https://gitlab.com/gitlab-org/gitlab * [new ref] 535e4adb5142269adb0ab6e75a281530634a8ca8 -> refs/pipelines/387872470 * [new branch] master -> origin/master [32;1mChecking out 535e4adb as master...[0;m [32;1mSkipping Git submodules setup[0;m section_end:1634149171:get_sources [0Ksection_start:1634149171:restore_cache [0K[0K[36;1mRestoring cache[0;m[0;m [32;1mChecking cache for ruby-gems-v1-4...[0;m cache.zip is up to date [0;m [32;1mSuccessfully extracted cache[0;m [32;1mChecking cache for gitaly-ruby-gems-v1-4...[0;m cache.zip is up to date [0;m [32;1mSuccessfully extracted cache[0;m section_end:1634149198:restore_cache [0Ksection_start:1634149198:download_artifacts [0K[0K[36;1mDownloading artifacts[0;m[0;m [32;1mDownloading artifacts for compile-test-assets (1677157166)...[0;m Downloading artifacts from coordinator... ok [0;m id[0;m=1677157166 responseStatus[0;m=200 OK token[0;m=ycJW5xLW [32;1mDownloading artifacts for retrieve-tests-metadata (1677157175)...[0;m Downloading artifacts from coordinator... ok [0;m id[0;m=1677157175 responseStatus[0;m=200 OK token[0;m=TfUgejm2 [32;1mDownloading artifacts for setup-test-env (1677157171)...[0;m Downloading artifacts from coordinator... ok [0;m id[0;m=1677157171 responseStatus[0;m=200 OK token[0;m=mKsuziZw section_end:1634149213:download_artifacts [0Ksection_start:1634149213:step_script [0K[0K[36;1mExecuting "step_script" stage of the job script[0;m[0;m [0KUsing docker image sha256:3a2e6a9cad65fa0415ab85039d82beb91c1c065f731261c1b2b150f34d219920 for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:37c1a65d34690f6db5d9a6308136b2ef8361634b2bc1bed4057561128323c6e3 ...[0;m [32;1m$ echo $FOSS_ONLY[0;m [32;1m$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb[0;m [32;1m$ export GOPATH=$CI_PROJECT_DIR/.go[0;m [32;1m$ mkdir -p $GOPATH[0;m [32;1m$ source scripts/utils.sh[0;m [32;1m$ source scripts/prepare_build.sh[0;m Bundler version 2.1.4 production:development Settings are listed in order of priority. The top value will be used. path Set for the current user (/root/.bundle/config): "/builds/gitlab-org/gitlab/vendor" clean Set for the current user (/root/.bundle/config): "true" without Set via BUNDLE_WITHOUT: [:production, :development] install_flags Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet" [0;32m$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check [0mThe Gemfile's dependencies are satisfied [0;32m==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 2 seconds. [0m[0;32m$ bundle pristine pg [0mInstalling pg 1.2.3 with native extensions [0;32m==> 'bundle pristine pg' succeeded in 11 seconds. [0m[0;32m$ setup_db_user_only [0mCREATE ROLE GRANT [0;32m==> 'setup_db_user_only' succeeded in 1 seconds. [0m[0;32m$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee [0mDropped database 'gitlabhq_test' Created database 'gitlabhq_test' DEPRECATION WARNING: Using `bin/rails db:structure:load` is deprecated and will be removed in Rails 6.2. Configure the format using `config.active_record.schema_format = :sql` to use `structure.sql` and run `bin/rails db:schema:load` instead. (called from load at /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/bin/rake:23) Dropped database 'gitlabhq_geo_test' Created database 'gitlabhq_geo_test' [0;32m==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 32 seconds. [0m[32;1m$ run_timed_command "gem install knapsack --no-document"[0;m [0;32m$ gem install knapsack --no-document [0mSuccessfully installed knapsack-4.0.0 1 gem installed [0;32m==> 'gem install knapsack --no-document' succeeded in 0 seconds. [0m[32;1m$ run_timed_command "scripts/gitaly-test-spawn"[0;m [0;32m$ scripts/gitaly-test-spawn [0mSettings are listed in order of priority. The top value will be used. jobs Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config): 4 retry Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config): 3 path Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config): "/builds/gitlab-org/gitlab/vendor/gitaly-ruby" deployment Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config): true without Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config): [:production, :development] Set via BUNDLE_WITHOUT: [:production, :development] app_config Set via BUNDLE_APP_CONFIG: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle" gemfile Set via BUNDLE_GEMFILE: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/Gemfile" Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all non-root users on this machine. Using abstract_type 0.0.7 Using concurrent-ruby 1.1.9 Using i18n 1.8.10 Using minitest 5.14.4 Using tzinfo 2.0.4 Using zeitwerk 2.4.2 Using activesupport 6.1.4.1 Using builder 3.2.4 Using erubi 1.10.0 Using mini_portile2 2.5.1 Using racc 1.5.2 Using nokogiri 1.11.7 (x86_64-linux) Using rails-dom-testing 2.0.3 Using crass 1.0.6 Using loofah 2.12.0 Using rails-html-sanitizer 1.4.2 Using actionview 6.1.4.1 Using rack 2.2.3 Using rack-test 1.1.0 Using actionpack 6.1.4.1 Using ice_nine 0.11.2 Using thread_safe 0.3.6 Using memoizable 0.4.2 Using adamantium 0.2.0 Using public_suffix 4.0.6 Using addressable 2.7.0 Using ast 2.4.1 Using binding_ninja 0.2.3 Using bundler 2.1.4 Using charlock_holmes 0.7.7 Using coderay 1.1.2 Using equalizer 0.0.11 Using concord 0.1.5 Using diff-lcs 1.3 Using dotenv 2.7.6 Using escape_utils 1.2.1 Using factory_bot 5.0.2 Using multipart-post 2.1.1 Using faraday 1.0.1 Using ffi 1.15.3 Using json 2.5.1 Using gemojione 3.3.0 Using mini_mime 1.0.2 Using rugged 1.1.0 Using github-linguist 7.12.1 Using github-markup 1.7.0 Using mime-types-data 3.2020.1104 Using mime-types 3.3.1 Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1 Using rouge 3.26.0 Using nokogumbo 1.5.0 Using sanitize 4.6.6 Using stringex 2.8.5 Using gitlab-gollum-lib 4.2.7.10.gitlab.1 Using google-protobuf 3.17.3 (x86_64-linux) Using googleapis-common-protos-types 1.1.0 Using grpc 1.30.2 (x86_64-linux) Using opentracing 0.5.0 Using thrift 0.15.0 Using jaeger-client 1.1.0 Using pg_query 2.1.0 Using redis 4.4.0 Using gitlab-labkit 0.21.2 Using gitlab-markup 1.7.1 Using grpc-tools 1.30.2 Using sawyer 0.8.2 Using octokit 4.20.0 Using reverse_markdown 1.4.0 Using thor 1.1.0 Using licensee 9.14.1 Using method_source 0.9.2 Using msgpack 1.3.3 Using optimist 3.0.1 Using parallel 1.19.2 Using parser 2.7.2.0 Using procto 0.0.3 Using unparser 0.4.7 Using proc_to_ast 0.1.0 Using pry 0.12.2 Using rainbow 3.0.0 Using rbtrace 0.4.14 Using rdoc 6.3.2 Using regexp_parser 1.8.1 Using rexml 3.2.4 Using rspec-support 3.8.0 Using rspec-core 3.8.0 Using rspec-expectations 3.8.3 Using rspec-mocks 3.8.0 Using rspec 3.8.0 Using rspec-parameterized 0.4.2 Using rubocop-ast 0.2.0 Using ruby-progressbar 1.10.1 Using unicode-display_width 1.7.0 Using rubocop 0.86.0 Using sentry-raven 3.0.4 Using timecop 0.9.1 Bundle complete! 21 Gemfile dependencies, 96 gems now installed. Gems in the groups production and development were not installed. Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby` Checking gitaly-ruby Gemfile... Checking gitaly-ruby bundle... The Gemfile's dependencies are satisfied Trying to connect to gitaly: .............................................. OK Trying to connect to gitaly2: .................................................................. OK Trying to connect to praefect: .......... OK [0;32m==> 'scripts/gitaly-test-spawn' succeeded in 14 seconds. [0m[32;1m$ source ./scripts/rspec_helpers.sh[0;m [32;1m$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"[0;m KNAPSACK_TEST_FILE_PATTERN: {ee/}spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,lib,models,policies,presenters,rack_servers,replicators,routing,rubocop,serializers,services,sidekiq,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb Knapsack node specs: ee/spec/models/project_spec.rb ee/spec/lib/gitlab/elastic/project_search_results_spec.rb ee/spec/models/merge_request_spec.rb ee/spec/services/elastic/process_bookkeeping_service_spec.rb ee/spec/services/ee/issues/update_service_spec.rb ee/spec/services/epic_links/create_service_spec.rb ee/spec/models/geo/terraform_state_version_registry_spec.rb ee/spec/lib/ee/gitlab/background_migration/update_vulnerability_confidence_spec.rb ee/spec/models/ci/pipeline_spec.rb ee/spec/models/upload_spec.rb ee/spec/services/ci/compare_security_reports_service_spec.rb ee/spec/services/vulnerabilities/dismiss_service_spec.rb ee/spec/models/concerns/elastic/issue_spec.rb ee/spec/services/dashboard/projects/list_service_spec.rb ee/spec/models/concerns/elastic/merge_request_spec.rb ee/spec/models/ee/protected_ref_access_spec.rb ee/spec/services/search_service_spec.rb ee/spec/lib/gitlab/geo/replication/file_retriever_spec.rb ee/spec/graphql/resolvers/epics_resolver_spec.rb ee/spec/models/ee/ci/pipeline_artifact_spec.rb ee/spec/services/projects/alerting/notify_service_spec.rb ee/spec/helpers/ee/groups_helper_spec.rb ee/spec/services/approval_rules/params_filtering_service_spec.rb ee/spec/lib/gitlab/auth/ldap/access_spec.rb ee/spec/services/application_settings/update_service_spec.rb ee/spec/workers/geo/registry_sync_worker_spec.rb ee/spec/services/vulnerabilities/resolve_service_spec.rb ee/spec/lib/gitlab/geo/log_cursor/events/design_repository_updated_event_spec.rb ee/spec/workers/geo/design_repository_shard_sync_worker_spec.rb ee/spec/services/alert_management/network_alert_service_spec.rb ee/spec/models/concerns/elastic/project_wiki_spec.rb ee/spec/services/vulnerabilities/update_service_spec.rb ee/spec/workers/store_security_reports_worker_spec.rb ee/spec/models/geo/container_repository_registry_spec.rb ee/spec/serializers/epic_note_entity_spec.rb ee/spec/finders/requirements_management/requirements_finder_spec.rb ee/spec/models/group_wiki_repository_spec.rb ee/spec/lib/gitlab/ci/reports/license_scanning/report_spec.rb ee/spec/services/iterations/create_service_spec.rb ee/spec/services/compliance_management/frameworks/create_service_spec.rb ee/spec/presenters/audit_event_presenter_spec.rb ee/spec/models/dast_site_validation_spec.rb ee/spec/presenters/vulnerability_presenter_spec.rb ee/spec/lib/gitlab/geo/log_cursor/events/repository_created_event_spec.rb ee/spec/services/ci/retry_build_service_spec.rb ee/spec/lib/gitlab/import_export/group/relation_factory_spec.rb ee/spec/lib/gitlab/geo/log_cursor/events/job_artifact_deleted_event_spec.rb ee/spec/services/system_notes/merge_train_service_spec.rb ee/spec/services/ee/issuable/common_system_notes_service_spec.rb ee/spec/helpers/ee/lock_helper_spec.rb ee/spec/services/projects/gitlab_projects_import_service_spec.rb ee/spec/graphql/types/admin/cloud_licenses/current_license_type_spec.rb ee/spec/lib/gitlab/ci/templates/api_fuzzing_latest_gitlab_ci_yaml_spec.rb ee/spec/presenters/ee/clusters/cluster_presenter_spec.rb ee/spec/services/network_policies/resources_service_spec.rb ee/spec/models/geo/group_wiki_repository_registry_spec.rb ee/spec/lib/gitlab/geo/jwt_request_decoder_spec.rb ee/spec/finders/geo/project_registry_finder_spec.rb ee/spec/lib/gitlab/geo/oauth/logout_state_spec.rb ee/spec/models/saml_group_link_spec.rb ee/spec/lib/analytics/merge_request_metrics_refresh_spec.rb ee/spec/workers/iterations/roll_over_issues_worker_spec.rb ee/spec/graphql/types/issue_type_spec.rb ee/spec/finders/geo/package_file_registry_finder_spec.rb ee/spec/lib/ee/gitlab/ci/parsers/security/validators/schema_validator_spec.rb ee/spec/models/analytics/cycle_analytics/project_stage_spec.rb ee/spec/workers/new_epic_worker_spec.rb ee/spec/workers/sync_seat_link_request_worker_spec.rb ee/spec/models/analytics/devops_adoption/snapshot_spec.rb ee/spec/models/geo/secondary_usage_data_spec.rb ee/spec/lib/ee/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb ee/spec/services/geo/node_status_request_service_spec.rb ee/spec/helpers/ee/auth_helper_spec.rb ee/spec/finders/clusters/agent_authorizations_finder_spec.rb ee/spec/models/approval_wrapped_code_owner_rule_spec.rb ee/spec/models/gitlab/seat_link_data_spec.rb ee/spec/models/issuables_analytics_spec.rb ee/spec/services/audit_events/repository_push_audit_event_service_spec.rb ee/spec/graphql/mutations/merge_requests/set_assignees_spec.rb ee/spec/services/audit_events/export_csv_service_spec.rb ee/spec/graphql/resolvers/vulnerabilities/issue_links_resolver_spec.rb ee/spec/lib/gitlab/geo/geo_tasks_spec.rb ee/spec/serializers/status_page/incident_comment_entity_spec.rb ee/spec/lib/gitlab/contribution_analytics/data_collector_spec.rb ee/spec/services/award_emojis/destroy_service_spec.rb ee/spec/workers/geo/repository_verification/primary/batch_worker_spec.rb ee/spec/models/compliance_management/framework_spec.rb ee/spec/graphql/resolvers/scan_execution_policy_resolver_spec.rb ee/spec/models/groups/repository_storage_move_spec.rb ee/spec/models/vulnerabilities/finding_signature_spec.rb ee/spec/services/analytics/cycle_analytics/stages/delete_service_spec.rb ee/spec/policies/geo/registry_policy_spec.rb ee/spec/models/iteration_note_spec.rb ee/spec/views/projects/security/dast_profiles/show.html.haml_spec.rb ee/spec/lib/gitlab/ci/templates/cluster_image_scanning_gitlab_ci_yaml_spec.rb ee/spec/services/ee/service_ping/permit_data_categories_service_spec.rb ee/spec/models/incident_management/issuable_escalation_status_spec.rb ee/spec/models/commit_spec.rb ee/spec/views/layouts/application.html.haml_spec.rb ee/spec/lib/ee/gitlab/background_migration/create_security_setting_spec.rb ee/spec/lib/gitlab/ci/yaml_processor_spec.rb ee/spec/workers/analytics/code_review_metrics_worker_spec.rb ee/spec/services/groups/recent_merge_requests_count_service_spec.rb ee/spec/models/project_alias_spec.rb ee/spec/lib/gitlab/auth/smartcard/san_extension_spec.rb ee/spec/services/vulnerabilities/destroy_dismissal_feedback_service_spec.rb ee/spec/services/vulnerability_exports/create_service_spec.rb ee/spec/tasks/geo/git_rake_spec.rb ee/spec/lib/gitlab/ci/config/entry/secret_spec.rb ee/spec/services/security/store_scans_service_spec.rb ee/spec/graphql/resolvers/ci/code_coverage_summary_resolver_spec.rb ee/spec/graphql/types/dast_scanner_profile_type_spec.rb ee/spec/workers/geo/verification_timeout_worker_spec.rb ee/spec/services/system_notes/vulnerabilities_service_spec.rb ee/spec/services/gitlab_subscriptions/plan_upgrade_service_spec.rb ee/spec/graphql/mutations/gitlab_subscriptions/activate_spec.rb ee/spec/lib/ee/gitlab/git_access_snippet_spec.rb ee/spec/models/vulnerability_user_mention_spec.rb ee/spec/services/security/store_findings_metadata_service_spec.rb ee/spec/services/boards/epic_boards/destroy_service_spec.rb ee/spec/finders/ee/projects_finder_spec.rb ee/spec/lib/gitlab/ci/config/entry/job_spec.rb ee/spec/helpers/security_helper_spec.rb ee/spec/lib/ee/gitlab/verify/uploads_spec.rb ee/spec/finders/boards/epic_boards_finder_spec.rb ee/spec/lib/gitlab/geo/base_request_spec.rb ee/spec/services/audit_events/protected_branch_audit_event_service_spec.rb ee/spec/graphql/resolvers/epic_issues_resolver_spec.rb ee/spec/workers/status_page/publish_worker_spec.rb ee/spec/services/issues/duplicate_service_spec.rb ee/spec/views/projects/_merge_request_status_checks_settings.html.haml_spec.rb ee/spec/services/group_saml/sign_up_service_spec.rb ee/spec/models/project_repository_state_spec.rb ee/spec/graphql/mutations/vulnerabilities/dismiss_spec.rb ee/spec/services/ee/issues/close_service_spec.rb ee/spec/models/integrations/github/remote_project_spec.rb ee/spec/services/security/security_orchestration_policies/scan_pipeline_service_spec.rb ee/spec/lib/ee/gitlab/auth/ldap/config_spec.rb ee/spec/graphql/resolvers/geo/lfs_object_registries_resolver_spec.rb ee/spec/lib/ee/gitlab/search_results_spec.rb ee/spec/serializers/ee/board_simple_entity_spec.rb ee/spec/serializers/ee/blob_entity_spec.rb ee/spec/services/feature_flag_issues/destroy_service_spec.rb ee/spec/lib/ee/gitlab/database/connection_spec.rb ee/spec/workers/iterations_update_status_worker_spec.rb ee/spec/finders/geo/lfs_object_registry_finder_spec.rb ee/spec/services/ee/groups/import_export/export_service_spec.rb ee/spec/views/projects/merge_requests/show.html.haml_spec.rb ee/spec/services/ee/alert_management/alerts/update_service_spec.rb ee/spec/services/vulnerability_external_issue_links/destroy_service_spec.rb ee/spec/models/ee/namespace/root_storage_statistics_spec.rb ee/spec/helpers/ee/ci/pipeline_editor_helper_spec.rb ee/spec/workers/repository_import_worker_spec.rb ee/spec/services/applications/create_service_spec.rb ee/spec/finders/incident_management/oncall_schedules_finder_spec.rb ee/spec/policies/security/scan_policy_spec.rb ee/spec/models/vulnerabilities/finding/evidence/supporting_message_spec.rb ee/spec/services/licenses/destroy_service_spec.rb ee/spec/services/app_sec/dast/site_profiles/audit/update_service_spec.rb ee/spec/models/ee/project_authorization_spec.rb ee/spec/graphql/ee/types/namespace_type_spec.rb ee/spec/services/ee/design_management/delete_designs_service_spec.rb ee/spec/models/concerns/elastic/application_versioned_search_spec.rb ee/spec/lib/gitlab/ci/reports/license_scanning/reports_comparer_spec.rb ee/spec/helpers/ee/application_settings_helper_spec.rb ee/spec/models/geo/reset_checksum_event_spec.rb ee/spec/workers/elastic_index_initial_bulk_cron_worker_spec.rb ee/spec/lib/gitlab/incident_management_spec.rb ee/spec/services/ee/merge_requests/post_merge_service_spec.rb ee/spec/workers/create_github_webhook_worker_spec.rb ee/spec/models/geo/job_artifact_deleted_event_spec.rb ee/spec/graphql/types/group_stats_type_spec.rb ee/spec/graphql/types/vulnerability/issue_link_type_spec.rb ee/spec/graphql/types/query_type_spec.rb ee/spec/services/audit_events/impersonation_audit_event_service_spec.rb ee/spec/lib/gitlab/tracking/snowplow_schema_validation_spec.rb ee/spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb ee/spec/graphql/types/alert_management/payload_alert_field_type_enum_spec.rb ee/spec/workers/ldap_sync_worker_spec.rb ee/spec/views/groups/compliance_frameworks/edit.html.haml_spec.rb ee/spec/graphql/types/requirements_management/test_report_type_spec.rb ee/spec/services/boards/epic_boards/visits/create_service_spec.rb ee/spec/graphql/types/permission_types/project_spec.rb ee/spec/graphql/types/merge_requests/approval_state_type_spec.rb ee/spec/helpers/incident_management/oncall_schedule_helper_spec.rb ee/spec/graphql/types/path_lock_type_spec.rb ee/spec/graphql/types/group_release_stats_type_spec.rb ee/spec/models/boards/epic_board_label_spec.rb ee/spec/services/base_count_service_spec.rb ee/spec/models/integrations/gitlab_slack_application_spec.rb ee/spec/graphql/types/vulnerability_location/container_scanning_type_spec.rb ee/spec/graphql/resolvers/instance_security_dashboard_resolver_spec.rb ee/spec/models/ci/processable_spec.rb ee/spec/graphql/types/vulnerability_details/base_type_spec.rb Filter specs: Running specs: Running all node tests without filter ee/spec/models/project_spec.rb ee/spec/lib/gitlab/elastic/project_search_results_spec.rb ee/spec/models/merge_request_spec.rb ee/spec/services/elastic/process_bookkeeping_service_spec.rb ee/spec/services/ee/issues/update_service_spec.rb ee/spec/services/epic_links/create_service_spec.rb ee/spec/models/geo/terraform_state_version_registry_spec.rb ee/spec/lib/ee/gitlab/background_migration/update_vulnerability_confidence_spec.rb ee/spec/models/ci/pipeline_spec.rb ee/spec/models/upload_spec.rb ee/spec/services/ci/compare_security_reports_service_spec.rb ee/spec/services/vulnerabilities/dismiss_service_spec.rb ee/spec/models/concerns/elastic/issue_spec.rb ee/spec/services/dashboard/projects/list_service_spec.rb ee/spec/models/concerns/elastic/merge_request_spec.rb ee/spec/models/ee/protected_ref_access_spec.rb ee/spec/services/search_service_spec.rb ee/spec/lib/gitlab/geo/replication/file_retriever_spec.rb ee/spec/graphql/resolvers/epics_resolver_spec.rb ee/spec/models/ee/ci/pipeline_artifact_spec.rb ee/spec/services/projects/alerting/notify_service_spec.rb ee/spec/helpers/ee/groups_helper_spec.rb ee/spec/services/approval_rules/params_filtering_service_spec.rb ee/spec/lib/gitlab/auth/ldap/access_spec.rb ee/spec/services/application_settings/update_service_spec.rb ee/spec/workers/geo/registry_sync_worker_spec.rb ee/spec/services/vulnerabilities/resolve_service_spec.rb ee/spec/lib/gitlab/geo/log_cursor/events/design_repository_updated_event_spec.rb ee/spec/workers/geo/design_repository_shard_sync_worker_spec.rb ee/spec/services/alert_management/network_alert_service_spec.rb ee/spec/models/concerns/elastic/project_wiki_spec.rb ee/spec/services/vulnerabilities/update_service_spec.rb ee/spec/workers/store_security_reports_worker_spec.rb ee/spec/models/geo/container_repository_registry_spec.rb ee/spec/serializers/epic_note_entity_spec.rb ee/spec/finders/requirements_management/requirements_finder_spec.rb ee/spec/models/group_wiki_repository_spec.rb ee/spec/lib/gitlab/ci/reports/license_scanning/report_spec.rb ee/spec/services/iterations/create_service_spec.rb ee/spec/services/compliance_management/frameworks/create_service_spec.rb ee/spec/presenters/audit_event_presenter_spec.rb ee/spec/models/dast_site_validation_spec.rb ee/spec/presenters/vulnerability_presenter_spec.rb ee/spec/lib/gitlab/geo/log_cursor/events/repository_created_event_spec.rb ee/spec/services/ci/retry_build_service_spec.rb ee/spec/lib/gitlab/import_export/group/relation_factory_spec.rb ee/spec/lib/gitlab/geo/log_cursor/events/job_artifact_deleted_event_spec.rb ee/spec/services/system_notes/merge_train_service_spec.rb ee/spec/services/ee/issuable/common_system_notes_service_spec.rb ee/spec/helpers/ee/lock_helper_spec.rb ee/spec/services/projects/gitlab_projects_import_service_spec.rb ee/spec/graphql/types/admin/cloud_licenses/current_license_type_spec.rb ee/spec/lib/gitlab/ci/templates/api_fuzzing_latest_gitlab_ci_yaml_spec.rb ee/spec/presenters/ee/clusters/cluster_presenter_spec.rb ee/spec/services/network_policies/resources_service_spec.rb ee/spec/models/geo/group_wiki_repository_registry_spec.rb ee/spec/lib/gitlab/geo/jwt_request_decoder_spec.rb ee/spec/finders/geo/project_registry_finder_spec.rb ee/spec/lib/gitlab/geo/oauth/logout_state_spec.rb ee/spec/models/saml_group_link_spec.rb ee/spec/lib/analytics/merge_request_metrics_refresh_spec.rb ee/spec/workers/iterations/roll_over_issues_worker_spec.rb ee/spec/graphql/types/issue_type_spec.rb ee/spec/finders/geo/package_file_registry_finder_spec.rb ee/spec/lib/ee/gitlab/ci/parsers/security/validators/schema_validator_spec.rb ee/spec/models/analytics/cycle_analytics/project_stage_spec.rb ee/spec/workers/new_epic_worker_spec.rb ee/spec/workers/sync_seat_link_request_worker_spec.rb ee/spec/models/analytics/devops_adoption/snapshot_spec.rb ee/spec/models/geo/secondary_usage_data_spec.rb ee/spec/lib/ee/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb ee/spec/services/geo/node_status_request_service_spec.rb ee/spec/helpers/ee/auth_helper_spec.rb ee/spec/finders/clusters/agent_authorizations_finder_spec.rb ee/spec/models/approval_wrapped_code_owner_rule_spec.rb ee/spec/models/gitlab/seat_link_data_spec.rb ee/spec/models/issuables_analytics_spec.rb ee/spec/services/audit_events/repository_push_audit_event_service_spec.rb ee/spec/graphql/mutations/merge_requests/set_assignees_spec.rb ee/spec/services/audit_events/export_csv_service_spec.rb ee/spec/graphql/resolvers/vulnerabilities/issue_links_resolver_spec.rb ee/spec/lib/gitlab/geo/geo_tasks_spec.rb ee/spec/serializers/status_page/incident_comment_entity_spec.rb ee/spec/lib/gitlab/contribution_analytics/data_collector_spec.rb ee/spec/services/award_emojis/destroy_service_spec.rb ee/spec/workers/geo/repository_verification/primary/batch_worker_spec.rb ee/spec/models/compliance_management/framework_spec.rb ee/spec/graphql/resolvers/scan_execution_policy_resolver_spec.rb ee/spec/models/groups/repository_storage_move_spec.rb ee/spec/models/vulnerabilities/finding_signature_spec.rb ee/spec/services/analytics/cycle_analytics/stages/delete_service_spec.rb ee/spec/policies/geo/registry_policy_spec.rb ee/spec/models/iteration_note_spec.rb ee/spec/views/projects/security/dast_profiles/show.html.haml_spec.rb ee/spec/lib/gitlab/ci/templates/cluster_image_scanning_gitlab_ci_yaml_spec.rbKnapsack report generator started! Run options: exclude {:quarantine=>true, :geo=>true, :level=>"migration"} ==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.155567053 seconds... Test environment set up in 0.810956118 seconds Project associations is expected to delegate #shared_runners_seconds to the #statistics object is expected to delegate #shared_runners_seconds_last_reset to the #statistics object is expected to delegate #ci_minutes_quota to the #shared_runners_limit_namespace object is expected to delegate #shared_runners_minutes_limit_enabled? to the #shared_runners_limit_namespace object is expected to delegate #closest_gitlab_subscription to the #namespace object is expected to delegate #pipeline_configuration_full_path to the #compliance_management_framework object is expected to delegate #prevent_merge_without_jira_issue to the #project_setting object is expected to belong to deleting_user required: is expected to have one import_state class_name => ProjectImportState is expected to have one repository_state class_name => ProjectRepositoryState inverse_of => project is expected to have one push_rule inverse_of => project is expected to have one status_page_setting class_name => StatusPage::ProjectSetting is expected to have one compliance_framework_setting class_name => ComplianceManagement::ComplianceFramework::ProjectSettings is expected to have one compliance_management_framework class_name => ComplianceManagement::Framework is expected to have one security_setting class_name => ProjectSecuritySetting is expected to have one vulnerability_statistic class_name => Vulnerabilities::Statistic is expected to have one security_orchestration_policy_configuration class_name => Security::OrchestrationPolicyConfiguration inverse_of => project is expected to have many path_locks is expected to have many vulnerability_feedback is expected to have many vulnerability_exports is expected to have many vulnerability_scanners is expected to have many dast_site_profiles is expected to have many dast_site_tokens is expected to have many dast_sites is expected to have many audit_events dependent => false is expected to have many protected_environments is expected to have many approvers dependent => destroy is expected to have many approver_users through approvers is expected to have many approver_groups dependent => destroy is expected to have many upstream_project_subscriptions is expected to have many upstream_projects is expected to have many downstream_project_subscriptions is expected to have many downstream_projects is expected to have many vulnerability_historical_statistics class_name => Vulnerabilities::HistoricalStatistic is expected to have many vulnerability_remediations class_name => Vulnerabilities::Remediation is expected to have one github_integration is expected to have many project_aliases is expected to have many approval_rules is expected to have many incident_management_oncall_schedules class_name => IncidentManagement::OncallSchedule is expected to have many incident_management_oncall_rotations through incident_management_oncall_schedules source => rotations is expected to have many incident_management_escalation_policies class_name => IncidentManagement::EscalationPolicy is expected to have many security_scans when ci_cd_settings is destroyed but project is not allows methods delegated to ci_cd_settings to be nil #merge_pipelines_enabled? behaves like a ci_cd_settings predicate method when ci_cd_settings is nil returns false when ci_cd_settings is not nil delegated_method_return: true, subject_return: true returns the expected boolean value delegated_method_return: false, subject_return: false returns the expected boolean value #merge_pipelines_were_disabled? behaves like a ci_cd_settings predicate method when ci_cd_settings is nil returns false when ci_cd_settings is not nil delegated_method_return: true, subject_return: true returns the expected boolean value delegated_method_return: false, subject_return: false returns the expected boolean value #merge_trains_enabled? behaves like a ci_cd_settings predicate method when ci_cd_settings is nil returns false when ci_cd_settings is not nil delegated_method_return: true, subject_return: true returns the expected boolean value delegated_method_return: false, subject_return: false returns the expected boolean value #auto_rollback_enabled? behaves like a ci_cd_settings predicate method when ci_cd_settings is nil returns false when ci_cd_settings is not nil delegated_method_return: true, subject_return: true returns the expected boolean value delegated_method_return: false, subject_return: false returns the expected boolean value #jira_vulnerabilities_integration_enabled? when project lacks a jira_integration relation returns false when project has a jira_integration relation accesses the value from the jira_integration #configured_to_create_issues_from_vulnerabilities? when project lacks a jira_integration relation returns false when project has a jira_integration relation accesses the value from the jira_integration #jira_issue_association_required_to_merge_enabled? jira_integration_licensed: true, jira_integration_active: true, jira_enforcement_licensed: true is enabled if all values are true jira_integration_licensed: true, jira_integration_active: true, jira_enforcement_licensed: false is enabled if all values are true jira_integration_licensed: true, jira_integration_active: false, jira_enforcement_licensed: true is enabled if all values are true jira_integration_licensed: true, jira_integration_active: false, jira_enforcement_licensed: false is enabled if all values are true jira_integration_licensed: false, jira_integration_active: true, jira_enforcement_licensed: true is enabled if all values are true jira_integration_licensed: false, jira_integration_active: true, jira_enforcement_licensed: false is enabled if all values are true jira_integration_licensed: false, jira_integration_active: false, jira_enforcement_licensed: true is enabled if all values are true jira_integration_licensed: false, jira_integration_active: false, jira_enforcement_licensed: false is enabled if all values are true import_state dependant predicate method #mirror_last_update_succeeded? behaves like returns expected values when project lacks a import_state relation returns false when project has a import_state relation accesses the value from the import_state #mirror_last_update_failed? behaves like returns expected values when project lacks a import_state relation returns false when project has a import_state relation accesses the value from the import_state #mirror_ever_updated_successfully? behaves like returns expected values when project lacks a import_state relation returns false when project has a import_state relation accesses the value from the import_state approval_rules association #applicable_to_branch when there are no associated protected branches is expected to eq [#<ApprovalProjectRule id: 1, created_at: "2021-10-13 18:22:32.616290000 +0000", updated_at: "2021-10..."], vulnerabilities_allowed: 0, severity_levels: ["unknown", "high", "critical"], report_type: nil>] when there are associated protected branches and branch matches is expected to eq [#<ApprovalProjectRule id: 1, created_at: "2021-10-13 18:22:32.616290000 +0000", updated_at: "2021-10..."], vulnerabilities_allowed: 0, severity_levels: ["unknown", "high", "critical"], report_type: nil>] but branch does not match anything is expected to be empty #inapplicable_to_branch when there are no associated protected branches is expected to be empty when there are associated protected branches and branch does not match anything is expected to eq [#<ApprovalProjectRule id: 1, created_at: "2021-10-13 18:22:32.616290000 +0000", updated_at: "2021-10..."], vulnerabilities_allowed: 0, severity_levels: ["unknown", "high", "critical"], report_type: nil>] but branch matches is expected to be empty when deleting security policy project also deletes the associated security_orchestration_policy_configuration scopes .requiring_code_owner_approval only includes the right projects .with_wiki_enabled returns a project .github_imported returns the correct project .with_protected_branches returns the correct project .with_repositories_enabled returns the correct project .with_security_scans returns the correct project .with_github_integration_pipeline_events returns the correct project .with_active_prometheus_integration returns the correct project .with_enabled_incident_sla returns the correct project .has_vulnerabilities is expected to contain exactly #<Project id:53 namespace53/project53>> .has_vulnerability_statistics is expected to contain exactly #<Project id:56 namespace56/project56>> .not_aimed_for_deletion is expected to contain exactly #<Project id:58 namespace58/project58>> .order_by_total_repository_size_excess_desc is expected to eq [#<Project id:61 namespace61/project61>>, #<Project id:63 namespace63/project63>>, #<Project id:60 namespace60/project60>>] .with_code_coverage is expected to contain exactly #<Project id:64 namespace64/project64>> and #<Project id:65 namespace65/project65>> .with_coverage_feature_usage when default_branch is not specified is expected to contain exactly #<Project id:69 namespace69/project69>> and #<Project id:70 namespace70/project70>> when default_branch is set to true is expected to contain exactly #<Project id:69 namespace69/project69>> when default_branch is set to false is expected to contain exactly #<Project id:69 namespace69/project69>> and #<Project id:70 namespace70/project70>> validations creates import state when mirror gets enabled variables ensures max_pages_size is an integer greater than 0 (or equal to 0 to indicate unlimited/maximum) with duplicate variables with same environment scope is expected not to be valid with same variable keys and different environment scope is expected to be valid mirror is expected to validate that :import_url cannot be empty/falsy is expected to validate that :mirror_user cannot be empty/falsy setting up a mirror when new project creates import_state and sets next_execution_timestamp to now when project already exists when project is not import creates import_state and sets next_execution_timestamp to now when project is import sets current import_state next_execution_timestamp to now .mirrors_to_sync when mirror is scheduled returns empty when mirror is started returns empty when mirror is finished returns project if next_execution_timestamp is not in the future returns empty if next_execution_timestamp is in the future when a limit is applied returns project if next_execution_timestamp is not in the future when project is failed returns project if next_execution_timestamp is not in the future returns empty if next_execution_timestamp is in the future with retry limit exceeded returns empty #can_store_security_reports? when the feature is enabled for the namespace returns true when the project is public returns true when the feature is disabled for the namespace and the project is not public returns false #deployment_variables when environment name is review/name returns variables from this service when environment name is other returns variables from this service #ensure_external_webhook_token sets external_webhook_token when it's missing #push_rule is expected not to be nil push rules unlicensed is expected to be nil merge requests related settings #disable_overriding_approvers_per_merge_request when group_merge_request_approval_settings_feature_flag flag is disabled behaves like setting modified by application setting feature_enabled: true, app_setting: true, project_setting: true, final_setting: true shows proper setting feature_enabled: true, app_setting: false, project_setting: true, final_setting: true shows proper setting feature_enabled: true, app_setting: true, project_setting: false, final_setting: true shows proper setting feature_enabled: true, app_setting: false, project_setting: false, final_setting: false shows proper setting feature_enabled: false, app_setting: true, project_setting: true, final_setting: true shows proper setting feature_enabled: false, app_setting: false, project_setting: true, final_setting: true shows proper setting feature_enabled: false, app_setting: true, project_setting: false, final_setting: false shows proper setting feature_enabled: false, app_setting: false, project_setting: false, final_setting: false shows proper setting when group_merge_request_approval_settings_feature_flag flag is true returns false when the resolver returns true returns true when the resolver returns false #disable_overriding_approvers_per_merge_request? behaves like a predicate wrapper method wrapped_method_return: true, subject_return: true returns the expected boolean value wrapped_method_return: false, subject_return: false returns the expected boolean value wrapped_method_return: nil, subject_return: false returns the expected boolean value #merge_requests_disable_committers_approval when group_merge_request_approval_settings_feature_flag flag is disabled behaves like setting modified by application setting feature_enabled: true, app_setting: true, project_setting: true, final_setting: true shows proper setting feature_enabled: true, app_setting: false, project_setting: true, final_setting: true shows proper setting feature_enabled: true, app_setting: true, project_setting: false, final_setting: true shows proper setting feature_enabled: true, app_setting: false, project_setting: false, final_setting: false shows proper setting feature_enabled: false, app_setting: true, project_setting: true, final_setting: true shows proper setting feature_enabled: false, app_setting: false, project_setting: true, final_setting: true shows proper setting feature_enabled: false, app_setting: true, project_setting: false, final_setting: false shows proper setting feature_enabled: false, app_setting: false, project_setting: false, final_setting: false shows proper setting when group_merge_request_approval_settings_feature_flag flag is true returns false when the resolver returns true returns true when the resolver returns false #merge_requests_disable_committers_approval? behaves like a predicate wrapper method wrapped_method_return: true, subject_return: true returns the expected boolean value wrapped_method_return: false, subject_return: false returns the expected boolean value wrapped_method_return: nil, subject_return: false returns the expected boolean value #require_password_to_approve? when group_merge_request_approval_settings_feature_flag flag is disabled behaves like a predicate wrapper method wrapped_method_return: true, subject_return: true returns the expected boolean value wrapped_method_return: false, subject_return: false returns the expected boolean value wrapped_method_return: nil, subject_return: false returns the expected boolean value when group_merge_request_approval_settings_feature_flag flag is enabled returns true when the resolver returns true returns false when the resolver returns false #merge_requests_author_approval when group_merge_request_approval_settings_feature_flag flag is enabled returns true when the resolver returns true returns false when the resolver returns false when flag is disabled feature_enabled: true, app_setting: true, project_setting: true, final_setting: false shows proper setting feature_enabled: true, app_setting: false, project_setting: true, final_setting: true shows proper setting feature_enabled: true, app_setting: true, project_setting: false, final_setting: false shows proper setting feature_enabled: true, app_setting: false, project_setting: false, final_setting: false shows proper setting feature_enabled: false, app_setting: true, project_setting: true, final_setting: true shows proper setting feature_enabled: false, app_setting: false, project_setting: true, final_setting: true shows proper setting feature_enabled: false, app_setting: true, project_setting: false, final_setting: false shows proper setting feature_enabled: false, app_setting: false, project_setting: false, final_setting: false shows proper setting #merge_requests_author_approval? behaves like a predicate wrapper method wrapped_method_return: true, subject_return: true returns the expected boolean value wrapped_method_return: false, subject_return: false returns the expected boolean value wrapped_method_return: nil, subject_return: false returns the expected boolean value #has_active_hooks? with group hooks returns true with no group hooks returns false #has_group_hooks? is expected to eq nil project is in a group is expected to eq false behaves like returns nil when the feature is not available is expected to eq nil the group has hooks is expected to eq true behaves like returns nil when the feature is not available is expected to eq nil but the hook is not in scope is expected to eq false behaves like returns nil when the feature is not available is expected to eq nil the group inherits a hook is expected to eq true behaves like returns nil when the feature is not available is expected to eq nil #execute_external_compliance_hooks enqueues the correct number of workers #execute_hooks group hooks does not execute the hook when the feature is disabled when group_webhooks feature is enabled behaves like triggering group webhook executes the hook in sub group behaves like triggering group webhook executes the hook #allowed_to_share_with_group? returns true returns false #membership_locked? when project has no group is false with group_membership_lock enabled is true with group_membership_lock disabled is false #feature_available? only loads licensed availability once when feature symbol is included on Namespace features code audit_events checking audit_events availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking audit_events only for Global license allowed by Global License returns true not allowed by Global License returns false blocked_issues checking blocked_issues availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking blocked_issues only for Global license allowed by Global License returns true not allowed by Global License returns false board_iteration_lists checking board_iteration_lists availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking board_iteration_lists only for Global license allowed by Global License returns true not allowed by Global License returns false code_owners checking code_owners availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking code_owners only for Global license allowed by Global License returns true not allowed by Global License returns false code_review_analytics checking code_review_analytics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking code_review_analytics only for Global license allowed by Global License returns true not allowed by Global License returns false contribution_analytics checking contribution_analytics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking contribution_analytics only for Global license allowed by Global License returns true not allowed by Global License returns false description_diffs checking description_diffs availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking description_diffs only for Global license allowed by Global License returns true not allowed by Global License returns false elastic_search when checking elastic_search only for Global license allowed by Global License returns true not allowed by Global License returns false full_codequality_report checking full_codequality_report availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking full_codequality_report only for Global license allowed by Global License returns true not allowed by Global License returns false group_activity_analytics checking group_activity_analytics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking group_activity_analytics only for Global license allowed by Global License returns true not allowed by Global License returns false group_bulk_edit checking group_bulk_edit availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking group_bulk_edit only for Global license allowed by Global License returns true not allowed by Global License returns false group_webhooks checking group_webhooks availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking group_webhooks only for Global license allowed by Global License returns true not allowed by Global License returns false issuable_default_templates checking issuable_default_templates availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking issuable_default_templates only for Global license allowed by Global License returns true not allowed by Global License returns false issue_weights checking issue_weights availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking issue_weights only for Global license allowed by Global License returns true not allowed by Global License returns false iterations checking iterations availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking iterations only for Global license allowed by Global License returns true not allowed by Global License returns false ldap_group_sync when checking ldap_group_sync only for Global license allowed by Global License returns true not allowed by Global License returns false member_lock checking member_lock availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking member_lock only for Global license allowed by Global License returns true not allowed by Global License returns false merge_request_approvers checking merge_request_approvers availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking merge_request_approvers only for Global license allowed by Global License returns true not allowed by Global License returns false milestone_charts checking milestone_charts availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking milestone_charts only for Global license allowed by Global License returns true not allowed by Global License returns false multiple_issue_assignees checking multiple_issue_assignees availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking multiple_issue_assignees only for Global license allowed by Global License returns true not allowed by Global License returns false multiple_ldap_servers when checking multiple_ldap_servers only for Global license allowed by Global License returns true not allowed by Global License returns false multiple_merge_request_assignees checking multiple_merge_request_assignees availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking multiple_merge_request_assignees only for Global license allowed by Global License returns true not allowed by Global License returns false multiple_merge_request_reviewers checking multiple_merge_request_reviewers availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking multiple_merge_request_reviewers only for Global license allowed by Global License returns true not allowed by Global License returns false project_merge_request_analytics checking project_merge_request_analytics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking project_merge_request_analytics only for Global license allowed by Global License returns true not allowed by Global License returns false protected_refs_for_users checking protected_refs_for_users availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking protected_refs_for_users only for Global license allowed by Global License returns true not allowed by Global License returns false push_rules checking push_rules availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking push_rules only for Global license allowed by Global License returns true not allowed by Global License returns false repository_mirrors checking repository_mirrors availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking repository_mirrors only for Global license allowed by Global License returns true not allowed by Global License returns false resource_access_token checking resource_access_token availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking resource_access_token only for Global license allowed by Global License returns true not allowed by Global License returns false seat_link when checking seat_link only for Global license allowed by Global License returns true not allowed by Global License returns false scoped_issue_board checking scoped_issue_board availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking scoped_issue_board only for Global license allowed by Global License returns true not allowed by Global License returns false usage_quotas when checking usage_quotas only for Global license allowed by Global License returns true not allowed by Global License returns false visual_review_app checking visual_review_app availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking visual_review_app only for Global license allowed by Global License returns true not allowed by Global License returns false wip_limits checking wip_limits availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking wip_limits only for Global license allowed by Global License returns true not allowed by Global License returns false send_emails_from_admin_area checking send_emails_from_admin_area availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Global License returns false when checking send_emails_from_admin_area only for Global license allowed by Global License returns true not allowed by Global License returns false repository_size_limit when checking repository_size_limit only for Global license allowed by Global License returns true not allowed by Global License returns false group_ip_restriction checking group_ip_restriction availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_ip_restriction only for Global license allowed by Global License returns true not allowed by Global License returns false adjourned_deletion_for_projects_and_groups checking adjourned_deletion_for_projects_and_groups availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking adjourned_deletion_for_projects_and_groups only for Global license allowed by Global License returns true not allowed by Global License returns false admin_audit_log when checking admin_audit_log only for Global license allowed by Global License returns true not allowed by Global License returns false auditor_user when checking auditor_user only for Global license allowed by Global License returns true not allowed by Global License returns false blocking_merge_requests checking blocking_merge_requests availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking blocking_merge_requests only for Global license allowed by Global License returns true not allowed by Global License returns false board_assignee_lists checking board_assignee_lists availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking board_assignee_lists only for Global license allowed by Global License returns true not allowed by Global License returns false board_milestone_lists checking board_milestone_lists availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking board_milestone_lists only for Global license allowed by Global License returns true not allowed by Global License returns false ci_cd_projects checking ci_cd_projects availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking ci_cd_projects only for Global license allowed by Global License returns true not allowed by Global License returns false ci_secrets_management checking ci_secrets_management availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking ci_secrets_management only for Global license allowed by Global License returns true not allowed by Global License returns false cluster_agents checking cluster_agents availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking cluster_agents only for Global license allowed by Global License returns true not allowed by Global License returns false cluster_agents_gitops checking cluster_agents_gitops availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking cluster_agents_gitops only for Global license allowed by Global License returns true not allowed by Global License returns false cluster_deployments checking cluster_deployments availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking cluster_deployments only for Global license allowed by Global License returns true not allowed by Global License returns false code_owner_approval_required checking code_owner_approval_required availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking code_owner_approval_required only for Global license allowed by Global License returns true not allowed by Global License returns false commit_committer_check checking commit_committer_check availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking commit_committer_check only for Global license allowed by Global License returns true not allowed by Global License returns false compliance_framework checking compliance_framework availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking compliance_framework only for Global license allowed by Global License returns true not allowed by Global License returns false custom_compliance_frameworks checking custom_compliance_frameworks availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking custom_compliance_frameworks only for Global license allowed by Global License returns true not allowed by Global License returns false cross_project_pipelines checking cross_project_pipelines availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking cross_project_pipelines only for Global license allowed by Global License returns true not allowed by Global License returns false custom_file_templates when checking custom_file_templates only for Global license allowed by Global License returns true not allowed by Global License returns false custom_file_templates_for_namespace checking custom_file_templates_for_namespace availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking custom_file_templates_for_namespace only for Global license allowed by Global License returns true not allowed by Global License returns false custom_project_templates when checking custom_project_templates only for Global license allowed by Global License returns true not allowed by Global License returns false cycle_analytics_for_groups checking cycle_analytics_for_groups availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking cycle_analytics_for_groups only for Global license allowed by Global License returns true not allowed by Global License returns false cycle_analytics_for_projects checking cycle_analytics_for_projects availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking cycle_analytics_for_projects only for Global license allowed by Global License returns true not allowed by Global License returns false db_load_balancing when checking db_load_balancing only for Global license allowed by Global License returns true not allowed by Global License returns false default_branch_protection_restriction_in_groups when checking default_branch_protection_restriction_in_groups only for Global license allowed by Global License returns true not allowed by Global License returns false default_project_deletion_protection checking default_project_deletion_protection availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking default_project_deletion_protection only for Global license allowed by Global License returns true not allowed by Global License returns false disable_name_update_for_users checking disable_name_update_for_users availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking disable_name_update_for_users only for Global license allowed by Global License returns true not allowed by Global License returns false email_additional_text checking email_additional_text availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking email_additional_text only for Global license allowed by Global License returns true not allowed by Global License returns false epics checking epics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking epics only for Global license allowed by Global License returns true not allowed by Global License returns false extended_audit_events when checking extended_audit_events only for Global license allowed by Global License returns true not allowed by Global License returns false external_authorization_service_api_management when checking external_authorization_service_api_management only for Global license allowed by Global License returns true not allowed by Global License returns false feature_flags_related_issues checking feature_flags_related_issues availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking feature_flags_related_issues only for Global license allowed by Global License returns true not allowed by Global License returns false feature_flags_code_references checking feature_flags_code_references availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking feature_flags_code_references only for Global license allowed by Global License returns true not allowed by Global License returns false file_locks checking file_locks availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking file_locks only for Global license allowed by Global License returns true not allowed by Global License returns false geo when checking geo only for Global license allowed by Global License returns true not allowed by Global License returns false generic_alert_fingerprinting checking generic_alert_fingerprinting availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking generic_alert_fingerprinting only for Global license allowed by Global License returns true not allowed by Global License returns false git_two_factor_enforcement checking git_two_factor_enforcement availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking git_two_factor_enforcement only for Global license allowed by Global License returns true not allowed by Global License returns false github_project_service_integration checking github_project_service_integration availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking github_project_service_integration only for Global license allowed by Global License returns true not allowed by Global License returns false group_allowed_email_domains checking group_allowed_email_domains availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_allowed_email_domains only for Global license allowed by Global License returns true not allowed by Global License returns false group_coverage_reports checking group_coverage_reports availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_coverage_reports only for Global license allowed by Global License returns true not allowed by Global License returns false group_forking_protection checking group_forking_protection availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_forking_protection only for Global license allowed by Global License returns true not allowed by Global License returns false group_merge_request_analytics checking group_merge_request_analytics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_merge_request_analytics only for Global license allowed by Global License returns true not allowed by Global License returns false group_milestone_project_releases checking group_milestone_project_releases availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_milestone_project_releases only for Global license allowed by Global License returns true not allowed by Global License returns false group_project_templates checking group_project_templates availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_project_templates only for Global license allowed by Global License returns true not allowed by Global License returns false group_repository_analytics checking group_repository_analytics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_repository_analytics only for Global license allowed by Global License returns true not allowed by Global License returns false group_saml checking group_saml availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_saml only for Global license allowed by Global License returns true not allowed by Global License returns false group_saml_group_sync checking group_saml_group_sync availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_saml_group_sync only for Global license allowed by Global License returns true not allowed by Global License returns false group_scoped_ci_variables checking group_scoped_ci_variables availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_scoped_ci_variables only for Global license allowed by Global License returns true not allowed by Global License returns false group_wikis checking group_wikis availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_wikis only for Global license allowed by Global License returns true not allowed by Global License returns false incident_sla checking incident_sla availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking incident_sla only for Global license allowed by Global License returns true not allowed by Global License returns false incident_metric_upload checking incident_metric_upload availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking incident_metric_upload only for Global license allowed by Global License returns true not allowed by Global License returns false ide_schema_config checking ide_schema_config availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking ide_schema_config only for Global license allowed by Global License returns true not allowed by Global License returns false issues_analytics checking issues_analytics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking issues_analytics only for Global license allowed by Global License returns true not allowed by Global License returns false jira_issues_integration checking jira_issues_integration availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking jira_issues_integration only for Global license allowed by Global License returns true not allowed by Global License returns false ldap_group_sync_filter when checking ldap_group_sync_filter only for Global license allowed by Global License returns true not allowed by Global License returns false merge_pipelines checking merge_pipelines availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking merge_pipelines only for Global license allowed by Global License returns true not allowed by Global License returns false merge_request_performance_metrics checking merge_request_performance_metrics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking merge_request_performance_metrics only for Global license allowed by Global License returns true not allowed by Global License returns false admin_merge_request_approvers_rules checking admin_merge_request_approvers_rules availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking admin_merge_request_approvers_rules only for Global license allowed by Global License returns true not allowed by Global License returns false merge_trains checking merge_trains availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking merge_trains only for Global license allowed by Global License returns true not allowed by Global License returns false metrics_reports checking metrics_reports availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking metrics_reports only for Global license allowed by Global License returns true not allowed by Global License returns false multiple_alert_http_integrations checking multiple_alert_http_integrations availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking multiple_alert_http_integrations only for Global license allowed by Global License returns true not allowed by Global License returns false multiple_approval_rules checking multiple_approval_rules availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking multiple_approval_rules only for Global license allowed by Global License returns true not allowed by Global License returns false multiple_group_issue_boards checking multiple_group_issue_boards availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking multiple_group_issue_boards only for Global license allowed by Global License returns true not allowed by Global License returns false multiple_iteration_cadences checking multiple_iteration_cadences availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking multiple_iteration_cadences only for Global license allowed by Global License returns true not allowed by Global License returns false object_storage when checking object_storage only for Global license allowed by Global License returns true not allowed by Global License returns false operations_dashboard checking operations_dashboard availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking operations_dashboard only for Global license allowed by Global License returns true not allowed by Global License returns false package_forwarding checking package_forwarding availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking package_forwarding only for Global license allowed by Global License returns true not allowed by Global License returns false pages_size_limit when checking pages_size_limit only for Global license allowed by Global License returns true not allowed by Global License returns false productivity_analytics checking productivity_analytics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking productivity_analytics only for Global license allowed by Global License returns true not allowed by Global License returns false project_aliases when checking project_aliases only for Global license allowed by Global License returns true not allowed by Global License returns false protected_environments checking protected_environments availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking protected_environments only for Global license allowed by Global License returns true not allowed by Global License returns false reject_unsigned_commits checking reject_unsigned_commits availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking reject_unsigned_commits only for Global license allowed by Global License returns true not allowed by Global License returns false required_ci_templates when checking required_ci_templates only for Global license allowed by Global License returns true not allowed by Global License returns false scoped_labels checking scoped_labels availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking scoped_labels only for Global license allowed by Global License returns true not allowed by Global License returns false smartcard_auth checking smartcard_auth availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking smartcard_auth only for Global license allowed by Global License returns true not allowed by Global License returns false swimlanes checking swimlanes availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking swimlanes only for Global license allowed by Global License returns true not allowed by Global License returns false type_of_work_analytics checking type_of_work_analytics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking type_of_work_analytics only for Global license allowed by Global License returns true not allowed by Global License returns false minimal_access_role checking minimal_access_role availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking minimal_access_role only for Global license allowed by Global License returns true not allowed by Global License returns false unprotection_restrictions checking unprotection_restrictions availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking unprotection_restrictions only for Global license allowed by Global License returns true not allowed by Global License returns false ci_project_subscriptions checking ci_project_subscriptions availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking ci_project_subscriptions only for Global license allowed by Global License returns true not allowed by Global License returns false incident_timeline_view checking incident_timeline_view availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking incident_timeline_view only for Global license allowed by Global License returns true not allowed by Global License returns false oncall_schedules checking oncall_schedules availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking oncall_schedules only for Global license allowed by Global License returns true not allowed by Global License returns false escalation_policies checking escalation_policies availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking escalation_policies only for Global license allowed by Global License returns true not allowed by Global License returns false export_user_permissions checking export_user_permissions availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking export_user_permissions only for Global license allowed by Global License returns true not allowed by Global License returns false zentao_issues_integration checking zentao_issues_integration availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking zentao_issues_integration only for Global license allowed by Global License returns true not allowed by Global License returns false api_fuzzing checking api_fuzzing availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking api_fuzzing only for Global license allowed by Global License returns true not allowed by Global License returns false auto_rollback checking auto_rollback availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking auto_rollback only for Global license allowed by Global License returns true not allowed by Global License returns false cilium_alerts checking cilium_alerts availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking cilium_alerts only for Global license allowed by Global License returns true not allowed by Global License returns false cluster_image_scanning checking cluster_image_scanning availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking cluster_image_scanning only for Global license allowed by Global License returns true not allowed by Global License returns false external_status_checks checking external_status_checks availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking external_status_checks only for Global license allowed by Global License returns true not allowed by Global License returns false container_scanning checking container_scanning availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking container_scanning only for Global license allowed by Global License returns true not allowed by Global License returns false coverage_fuzzing checking coverage_fuzzing availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking coverage_fuzzing only for Global license allowed by Global License returns true not allowed by Global License returns false credentials_inventory checking credentials_inventory availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking credentials_inventory only for Global license allowed by Global License returns true not allowed by Global License returns false dast checking dast availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking dast only for Global license allowed by Global License returns true not allowed by Global License returns false dependency_scanning checking dependency_scanning availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking dependency_scanning only for Global license allowed by Global License returns true not allowed by Global License returns false devops_adoption checking devops_adoption availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking devops_adoption only for Global license allowed by Global License returns true not allowed by Global License returns false dora4_analytics checking dora4_analytics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking dora4_analytics only for Global license allowed by Global License returns true not allowed by Global License returns false enforce_personal_access_token_expiration checking enforce_personal_access_token_expiration availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking enforce_personal_access_token_expiration only for Global license allowed by Global License returns true not allowed by Global License returns false enforce_ssh_key_expiration checking enforce_ssh_key_expiration availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking enforce_ssh_key_expiration only for Global license allowed by Global License returns true not allowed by Global License returns false enterprise_templates when checking enterprise_templates only for Global license allowed by Global License returns true not allowed by Global License returns false environment_alerts checking environment_alerts availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking environment_alerts only for Global license allowed by Global License returns true not allowed by Global License returns false evaluate_group_level_compliance_pipeline checking evaluate_group_level_compliance_pipeline availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking evaluate_group_level_compliance_pipeline only for Global license allowed by Global License returns true not allowed by Global License returns false external_audit_events checking external_audit_events availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking external_audit_events only for Global license allowed by Global License returns true not allowed by Global License returns false group_ci_cd_analytics checking group_ci_cd_analytics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_ci_cd_analytics only for Global license allowed by Global License returns true not allowed by Global License returns false group_level_compliance_dashboard checking group_level_compliance_dashboard availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_level_compliance_dashboard only for Global license allowed by Global License returns true not allowed by Global License returns false group_level_devops_adoption checking group_level_devops_adoption availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking group_level_devops_adoption only for Global license allowed by Global License returns true not allowed by Global License returns false incident_management checking incident_management availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking incident_management only for Global license allowed by Global License returns true not allowed by Global License returns false inline_codequality checking inline_codequality availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking inline_codequality only for Global license allowed by Global License returns true not allowed by Global License returns false insights checking insights availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking insights only for Global license allowed by Global License returns true not allowed by Global License returns false instance_level_devops_adoption checking instance_level_devops_adoption availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking instance_level_devops_adoption only for Global license allowed by Global License returns true not allowed by Global License returns false issuable_health_status checking issuable_health_status availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking issuable_health_status only for Global license allowed by Global License returns true not allowed by Global License returns false jira_vulnerabilities_integration checking jira_vulnerabilities_integration availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking jira_vulnerabilities_integration only for Global license allowed by Global License returns true not allowed by Global License returns false jira_issue_association_enforcement checking jira_issue_association_enforcement availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking jira_issue_association_enforcement only for Global license allowed by Global License returns true not allowed by Global License returns false license_scanning checking license_scanning availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking license_scanning only for Global license allowed by Global License returns true not allowed by Global License returns false personal_access_token_expiration_policy checking personal_access_token_expiration_policy availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking personal_access_token_expiration_policy only for Global license allowed by Global License returns true not allowed by Global License returns false prometheus_alerts checking prometheus_alerts availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking prometheus_alerts only for Global license allowed by Global License returns true not allowed by Global License returns false pseudonymizer checking pseudonymizer availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking pseudonymizer only for Global license allowed by Global License returns true not allowed by Global License returns false quality_management checking quality_management availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking quality_management only for Global license allowed by Global License returns true not allowed by Global License returns false release_evidence_test_artifacts checking release_evidence_test_artifacts availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking release_evidence_test_artifacts only for Global license allowed by Global License returns true not allowed by Global License returns false report_approver_rules checking report_approver_rules availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking report_approver_rules only for Global license allowed by Global License returns true not allowed by Global License returns false requirements checking requirements availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking requirements only for Global license allowed by Global License returns true not allowed by Global License returns false sast checking sast availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking sast only for Global license allowed by Global License returns true not allowed by Global License returns false sast_custom_rulesets checking sast_custom_rulesets availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking sast_custom_rulesets only for Global license allowed by Global License returns true not allowed by Global License returns false sast_fp_reduction checking sast_fp_reduction availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking sast_fp_reduction only for Global license allowed by Global License returns true not allowed by Global License returns false secret_detection checking secret_detection availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking secret_detection only for Global license allowed by Global License returns true not allowed by Global License returns false security_dashboard checking security_dashboard availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking security_dashboard only for Global license allowed by Global License returns true not allowed by Global License returns false security_on_demand_scans checking security_on_demand_scans availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking security_on_demand_scans only for Global license allowed by Global License returns true not allowed by Global License returns false security_orchestration_policies checking security_orchestration_policies availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking security_orchestration_policies only for Global license allowed by Global License returns true not allowed by Global License returns false status_page checking status_page availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking status_page only for Global license allowed by Global License returns true not allowed by Global License returns false subepics checking subepics availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking subepics only for Global license allowed by Global License returns true not allowed by Global License returns false threat_monitoring checking threat_monitoring availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking threat_monitoring only for Global license allowed by Global License returns true not allowed by Global License returns false vulnerability_auto_fix checking vulnerability_auto_fix availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking vulnerability_auto_fix only for Global license allowed by Global License returns true not allowed by Global License returns false vulnerability_finding_signatures checking vulnerability_finding_signatures availability both on Global and Namespace license allowed by Plan License AND Global License returns true not allowed by Plan License but project and namespace are public returns true not allowed by Plan License returns false not allowed by Global License returns false when checking vulnerability_finding_signatures only for Global license allowed by Global License returns true not allowed by Global License returns false when feature symbol is not included on Namespace features code checks availability of licensed feature #fetch_mirror import_url: "http://foo:bar@example.com", auth_method: "password", expected: "http://foo:bar@example.com" is expected to receive fetch_upstream("http://foo:bar@example.com", {:check_tags_changed=>false, :forced=>false}) 1 time import_url: "ssh://foo:bar@example.com", auth_method: "password", expected: "ssh://foo:bar@example.com" is expected to receive fetch_upstream("ssh://foo:bar@example.com", {:check_tags_changed=>false, :forced=>false}) 1 time import_url: "ssh://foo:bar@example.com", auth_method: "ssh_public_key", expected: "ssh://foo@example.com" is expected to receive fetch_upstream("ssh://foo@example.com", {:check_tags_changed=>false, :forced=>false}) 1 time updating import_url removes previous remote #any_online_runners? is expected to be truthy with used pipeline minutes does not have any online runners #shared_runners_available? with used pipeline minutes shared runners are not available without used pipeline minutes shared runners are not available #ci_minutes_used when CI minutes have not been used is expected to be zero when ci_use_new_monthly_minutes feature flag is disabled is expected to be zero when CI minutes have been used is expected to eq 70 when ci_use_new_monthly_minutes feature flag is disabled is expected to eq 60 #root_namespace when namespace has parent group returns root ancestor when namespace is root ancestor returns current namespace #shared_runners_limit_namespace returns root namespace #shared_runners_minutes_limit_enabled? with shared runners enabled for public project is expected to be truthy for internal project is expected to be truthy for private project is expected to be truthy without shared runners is expected to be falsey #approvals_before_merge license_value: true, db_value: 5, expected: 5 is expected to eq 5 license_value: true, db_value: 0, expected: 0 is expected to eq 0 license_value: false, db_value: 5, expected: 0 is expected to eq 0 license_value: false, db_value: 0, expected: 0 is expected to eq 0 #reset_approvals_on_push? when group_merge_request_approval_settings_feature_flag flag is disabled license_value: true, db_value: true, expected: true is expected to eq true license_value: true, db_value: false, expected: false is expected to eq false license_value: false, db_value: true, expected: false is expected to eq false license_value: false, db_value: false, expected: false is expected to eq false when group_merge_request_approval_settings_feature_flag flag is enabled returns false when the resolver returns true returns true when the resolver returns false #approvals_before_merge license_value: true, db_value: 5, expected: 5 is expected to eq 5 license_value: true, db_value: 0, expected: 0 is expected to eq 0 license_value: false, db_value: 5, expected: 0 is expected to eq 0 license_value: false, db_value: 0, expected: 0 is expected to eq 0 #visible_user_defined_rules returns all approval rules when multiple approval rules is not available returns the first approval rule when branch is provided caches the rules #visible_user_defined_inapplicable_rules when multiple approval rules is available when rules are scoped returns rules that are not applicable to target_branch when rules are not scoped returns empty array when multiple approval rules is not available returns empty array #min_fallback_approvals returns the maximum requirement returns the first rule requirement if there is a rule #merge_requests_require_code_owner_approval? feature_available: true, feature_enabled: true, approval_required: true requires code owner approval when needed feature_available: false, feature_enabled: true, approval_required: false requires code owner approval when needed feature_available: true, feature_enabled: false, approval_required: false requires code owner approval when needed #branch_requires_code_owner_approval? when feature is enabled returns true when code owner approval is required returns false when code owner approval is not required when feature is not enabled returns true when code owner approval is required returns false when code owner approval is not required #disabled_integrations license_feature: :github_project_service_integration, disabled_integrations: ["github"] when feature is available is expected not to include "github" when feature is unavailable is expected to include "github" #pull_mirror_available? when mirror global setting is enabled returns true when mirror global setting is disabled returns true when overridden returns false when not overridden #username_only_import_url import_url: "", username: "foo", expected_import_url: "" is expected to eq "" import_url: "", username: "", expected_import_url: "" is expected to eq "" import_url: "", username: nil, expected_import_url: "" is expected to eq "" import_url: nil, username: "foo", expected_import_url: nil is expected to eq nil import_url: nil, username: "", expected_import_url: nil is expected to eq nil import_url: nil, username: nil, expected_import_url: nil is expected to eq nil import_url: "http://example.com", username: "foo", expected_import_url: "http://foo@example.com" is expected to eq "http://foo@example.com" import_url: "http://example.com", username: "", expected_import_url: "http://example.com" is expected to eq "http://example.com" import_url: "http://example.com", username: nil, expected_import_url: "http://example.com" is expected to eq "http://example.com" #username_only_import_url= sets the import url and username does not unset the password clears the username if passed the empty string #with_slack_application_disabled returns projects where Slack application is disabled #licensed_features when the namespace should be checked when bronze filters for bronze features when premium filters for premium features when ultimate filters for ultimate features when free plan filters out paid features when public project and namespace includes all features in global license when namespace should not be checked includes all features in global license when there is no license is expected to be empty #find_path_lock returns path_lock returns nil #any_path_locks? returns false when there are no path locks returns a cached true when there are path locks #latest_pipeline_with_security_reports when all pipelines are used when there is no associated `vulnerability_statistic` record with the project behaves like on-the-fly latest_pipeline_with_security_reports calculation when legacy reports are used returns the latest pipeline with security reports when new reports are used returns the latest pipeline with security reports when legacy used prefers the new reports when there is an associated `vulnerability_statistic` record with the project when the pipeline of `vulnerability_statistic` has not been set behaves like on-the-fly latest_pipeline_with_security_reports calculation when legacy reports are used returns the latest pipeline with security reports when new reports are used returns the latest pipeline with security reports when legacy used prefers the new reports when the pipeline of `vulnerability_statistic` has been set is expected to eq #<Ci::Pipeline id: 5, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil..._sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 5, locked: "artifacts_locked"> when only successful pipelines are used behaves like on-the-fly latest_pipeline_with_security_reports calculation when legacy reports are used returns the latest pipeline with security reports when new reports are used returns the latest pipeline with security reports when legacy used prefers the new reports #latest_pipeline_with_reports when reports are found returns the latest pipeline with reports of right type and one of the pipelines has not yet completed returns the latest successful pipeline with reports when reports are not found returns nothing #security_reports_up_to_date_for_ref? when the target branch security reports are up to date is expected to equal true when the target branch security reports are out of date is expected to equal false #after_import Geo repository update events calls Geo::RepositoryUpdatedService when running on a Geo primary node does not call Geo::RepositoryUpdatedService when not running on a Geo primary node elasticsearch indexing elasticsearch indexing disabled for this project does not index the wiki repository elasticsearch indexing enabled for this project schedules a full index of the wiki repository when project is forked does not index the wiki repository #lfs_http_url_to_repo with a Geo setup that is a primary for an upload operation returns the project HTTP URL for the primary with a Geo setup that is a secondary and has a primary for an upload operation returns the project HTTP URL for the primary for a download operation returns the project HTTP URL for the secondary without a primary returns the project HTTP URL for the secondary without a Geo setup returns the project HTTP URL for the main node #add_import_job when import_type is gitlab_custom_project_template does not create import job when mirror true on a jira imported project when jira import is in progress does trigger mirror update #gitlab_custom_project_template_import? when licensed returns true when unlicensed returns false #feature_flags_client_token when there is no access token creates a new one when there is access token provides an existing one #has_pool_repository? returns false when there is no pool repository returns true when there is a pool repository #link_pool_repository logs geo event #object_pool_missing? returns true when object pool is missing returns false when pool repository doesnt't exist returns false when object pool exists #insights_config when project has no Insights config file returns the project default config when the project is inside a group when the group has no Insights config returns the group default config when the group has an Insights config from another project with a valid config file returns the group config data from the other project when the project is inside a nested group returns the project default config with an invalid config file returns nil when project has an Insights config file with a valid config file returns the insights config data when the project is inside a group having another config returns the project insights config data with an invalid config file returns nil when the project is inside a group having another config returns nil #kerberos_url_to_repo returns valid kerberos url for this repo #actual_size_limit when repository_size_limit is set on the project returns the repository_size_limit when repository_size_limit is not set on the project returns the actual_size_limit of the namespace #repository_size_checker #current_size returns the total repository and lfs size #limit returns the value set in the namespace when available returns the value set locally when available #enabled? returns true when not equal to zero returns false when equals to zero when repository_size_limit is configured when license feature enabled size limit is enabled when license feature disabled size limit is disabled when usage ping is enabled when usage_ping_features is activated size limit is enabled when usage_ping_features is disabled size limit is disabled when usage ping is disabled size limit is disabled #repository_size_excess total_repository_size: 50, size_limit: nil, result: 0 is expected to eq 0 total_repository_size: 50, size_limit: 0, result: 0 is expected to eq 0 total_repository_size: 50, size_limit: 60, result: 0 is expected to eq 0 total_repository_size: 50, size_limit: 50, result: 0 is expected to eq 0 total_repository_size: 50, size_limit: 10, result: 40 is expected to eq 40 #repository_size_limit column support values up to 8 exabytes handling import URL when project is a mirror returns the full URL project is inside a fork network feature flag is disabled is expected to be valid the project is the root of the fork network is expected to be valid the URL is inside the fork network is expected to be valid the URL is external but the project exists raises an error the URL is not inside the fork network raises an error #add_import_job forked without mirror returns nil with mirror schedules RepositoryUpdateMirrorWorker .where_full_path_in without any paths returns an empty relation without any valid paths returns an empty relation with valid paths returns the projects matching the paths returns projects regardless of the casing of paths #approver_group_ids= create approver_groups #create_import_state is called after save #allowed_to_share_with_group? for group related project with lock_memberships_to_ldap application setting enabled is expected not to be allowed to share with group personal project with lock_memberships_to_ldap application setting enabled is expected to be allowed to share with group #ancestor_marked_for_deletion delayed deletion feature is not available the parent namespace has been marked for deletion returns nil delayed deletion feature is available the parent namespace has been marked for deletion returns the parent namespace project or its parent group has not been marked for deletion returns nil ordering returns the first group that is marked for deletion, up its ancestry chain #adjourned_deletion? licensed?: true, feature_enabled_on_group?: true, adjourned_period: 0, result: false is expected to equal false licensed?: true, feature_enabled_on_group?: true, adjourned_period: 1, result: true is expected to equal true licensed?: true, feature_enabled_on_group?: false, adjourned_period: 0, result: false is expected to equal false licensed?: true, feature_enabled_on_group?: false, adjourned_period: 1, result: false is expected to equal false licensed?: false, feature_enabled_on_group?: true, adjourned_period: 0, result: false is expected to equal false licensed?: false, feature_enabled_on_group?: true, adjourned_period: 1, result: false is expected to equal false licensed?: false, feature_enabled_on_group?: false, adjourned_period: 0, result: false is expected to equal false licensed?: false, feature_enabled_on_group?: false, adjourned_period: 1, result: false is expected to equal false when project belongs to user namespace deletes immediately calculate template repositories counts instance level templates counts group level templates #license_compliance is expected to be an instance of SCA::LicenseCompliance #template_source? when project is not template source returns false instance-level custom project templates returns true group-level custom project templates returns true #remove_import_data when mirror does not remove import data #add_template_export_job starts project template export job #prevent_merge_without_jira_issue? feature_available: true, prevent_merge: true, result: true is expected to equal true feature_available: true, prevent_merge: false, result: false is expected to equal false feature_available: false, prevent_merge: true, result: false is expected to equal false feature_available: false, prevent_merge: false, result: false is expected to equal false indexing updates in Elasticsearch on update when updating the visibility_level triggers ElasticAssociationIndexerWorker to update issues, merge_requests and notes ensures all visibility_level updates are correctly applied in issue searches ensures all visibility_level updates are correctly applied in merge_request searches when changing the title does not trigger ElasticAssociationIndexerWorker to update issues #available_shared_runners when CI minutes are available for project returns a list of shared runners when out of CI minutes for project returns a empty list #all_available_runners when CI minutes are available for project returns a list with all runners when out of CI minutes for project returns a list with specific runners #force_cost_factor? on gitlab.com when public when ci_minutes_public_project_cost_factor is enabled when in a namespace created after 17 July, 2021 returns true when in a namespace created before 17 July, 2021 returns false when ci_minutes_public_project_cost_factor is disabled returns false when not public returns false when not on gitlab.com returns false #upstream_projects returns the upstream projects #upstream_projects_count returns the upstream projects count #downstream_projects returns the downstream projects #downstream_projects_count returns the downstream projects count #vulnerability_report_rule with vulnerability report rule is expected to eql #<ApprovalProjectRule id: 24, created_at: "2021-10-13 18:25:51.061502098 +0000", updated_at: "2021-10...bilities_allowed: 0, severity_levels: ["unknown", "high", "critical"], report_type: "vulnerability"> without vulnerability report rule is expected to be nil with multiple rules is expected to eql #<ApprovalProjectRule id: 27, created_at: "2021-10-13 18:25:51.689052838 +0000", updated_at: "2021-10...bilities_allowed: 0, severity_levels: ["unknown", "high", "critical"], report_type: "vulnerability"> #visible_approval_rules is expected not to include #<ApprovalProjectRule id: 28, created_at: "2021-10-13 18:25:51.893430635 +0000", updated_at: "2021-10...abilities_allowed: 0, severity_levels: ["unknown", "high", "critical"], report_type: "scan_finding"> Gitlab::Elastic::ProjectSearchResults initialize with empty ref is expected to eq #<Project id:326 namespace1254/project1278>> is expected to eq "master" is expected to eq "hello world" initialize with ref is expected to eq #<Project id:326 namespace1254/project1278>> is expected to eq "refs/heads/test" is expected to eq "hello world" search returns correct amounts visibility checks shows wiki for guests filtering issues state not provided returns opened and closed results all state returns opened and closed results closed state returns only closed results opened state returns only opened results unsupported state returns only opened results filter not provided (all behavior) returns confidential and not confidential results confidential filter returns only confidential results not confidential filter returns not confidential results merge_requests state not provided returns opened and closed results all state returns opened and closed results closed state returns only closed results opened state returns only opened results unsupported state returns only opened results confidential issues when the user is non-member does not list project confidential issues for non project members when the member is guest does not list project confidential issues for project members with guest role when the user is the author lists project confidential issues when the user is the assignee lists project confidential issues for assignee when the user is a developer lists project confidential issues when the user is admin when admin mode is enabled lists all project issues when admin mode is disabled does not list project confidential issues query performance for scope notes makes 1 Elasticsearch query for scope blobs makes 1 Elasticsearch query for scope wiki_blobs makes 1 Elasticsearch query for scope commits makes 1 Elasticsearch query for scope issues makes 1 Elasticsearch query for scope merge_requests makes 1 Elasticsearch query for scope milestones makes 1 Elasticsearch query for scope notes makes count query for scope blobs makes count query for scope wiki_blobs makes count query for scope commits makes count query for scope issues makes count query for scope merge_requests makes count query for scope milestones makes count query MergeRequest associations is expected to have many approvals dependent => delete_all is expected to have many approvers dependent => delete_all is expected to have many approver_users through approvers is expected to have many approver_groups dependent => delete_all is expected to have many approved_by_users is expected to have one merge_train is expected to have many approval_rules is expected to have many approval_merge_request_rule_sources through approval_rules is expected to have many approval_project_rules through approval_merge_request_rule_sources is expected to have many status_check_responses class_name => MergeRequests::StatusCheckResponse inverse_of => merge_request approval_rules association #applicable_to_branch when there are no associated source rules behaves like with applicable rules to specified branch is expected to eq [#<ApprovalMergeRequestRule id: 1, created_at: "2021-10-13 18:28:38.225003965 +0000", updated_at: "20...efault-1", rule_type: "regular", report_type: nil, section: nil, modified_from_project_rule: false>] when there are associated source rules and rule is not overridden and there are no associated protected branches to source rule behaves like with applicable rules to specified branch is expected to eq [#<ApprovalMergeRequestRule id: 2, created_at: "2021-10-13 18:28:38.815595999 +0000", updated_at: "20...fault-26", rule_type: "regular", report_type: nil, section: nil, modified_from_project_rule: false>] and there are associated protected branches to source rule and branch matches behaves like with applicable rules to specified branch is expected to eq [#<ApprovalMergeRequestRule id: 3, created_at: "2021-10-13 18:28:39.585090272 +0000", updated_at: "20...fault-27", rule_type: "regular", report_type: nil, section: nil, modified_from_project_rule: false>] and branch does not match anything is expected to be empty and rule is overridden behaves like with applicable rules to specified branch is expected to eq [#<ApprovalMergeRequestRule id: 5, created_at: "2021-10-13 18:28:41.272534163 +0000", updated_at: "20...dden Rule", rule_type: "regular", report_type: nil, section: nil, modified_from_project_rule: true>] #merge_requests_author_approval? when project lacks a target_project relation returns false when project has a target_project relation accesses the value from the target_project #merge_requests_disable_committers_approval? when project lacks a target_project relation returns false when project has a target_project relation accesses the value from the target_project behaves like an editable mentionable with EE-specific mentions creates new cross-reference notes when the mentionable text is edited behaves like a mentionable with EE-specific mentions extracts references from its reference property creates cross-reference notes #allows_multiple_assignees? does not allow multiple assignees without license allows multiple assignees when licensed #allows_multiple_reviewers? returns false without license returns true when licensed #participants with approval rule returns only the author as a participant #has_denied_policies? without existing pipeline is expected to be falsey with existing pipeline without license_scanning report is expected to be falsey with license_scanning report without denied policy is expected to be falsey with allowed policy is expected to be falsey with denied policy is expected to be truthy with disabled licensed feature is expected to be falsey with License-Check enabled when rule is not approved is expected to be truthy when rule is approved is expected to be falsey #enabled_reports report_type: :sast, with_reports: :with_sast_reports, feature: :sast when head pipeline has reports is expected to be truthy when head pipeline does not have reports is expected to be falsy report_type: :container_scanning, with_reports: :with_container_scanning_reports, feature: :container_scanning when head pipeline has reports is expected to be truthy when head pipeline does not have reports is expected to be falsy report_type: :dast, with_reports: :with_dast_reports, feature: :dast when head pipeline has reports is expected to be truthy when head pipeline does not have reports is expected to be falsy report_type: :dependency_scanning, with_reports: :with_dependency_scanning_reports, feature: :dependency_scanning when head pipeline has reports is expected to be truthy when head pipeline does not have reports is expected to be falsy report_type: :license_scanning, with_reports: :with_license_scanning_reports, feature: :license_scanning when head pipeline has reports is expected to be truthy when head pipeline does not have reports is expected to be falsy report_type: :coverage_fuzzing, with_reports: :with_coverage_fuzzing_reports, feature: :coverage_fuzzing when head pipeline has reports is expected to be truthy when head pipeline does not have reports is expected to be falsy report_type: :secret_detection, with_reports: :with_secret_detection_reports, feature: :secret_detection when head pipeline has reports is expected to be truthy when head pipeline does not have reports is expected to be falsy report_type: :api_fuzzing, with_reports: :with_api_fuzzing_reports, feature: :api_fuzzing when head pipeline has reports is expected to be truthy when head pipeline does not have reports is expected to be falsy #approvals_before_merge license_value: true, db_value: 5, expected: 5 is expected to eq 5 license_value: true, db_value: nil, expected: nil is expected to eq nil license_value: false, db_value: 5, expected: nil is expected to eq nil license_value: false, db_value: nil, expected: nil is expected to eq nil #has_security_reports? when head pipeline has security reports is expected to be truthy when head pipeline does not have security reports is expected to be falsey #has_license_scanning_reports? when head pipeline has license scanning reports is expected to be truthy when head pipeline does not have license scanning reports is expected to be falsey #has_dependency_scanning_reports? when head pipeline has dependency scannning reports is expected to be truthy when head pipeline does not have dependency scanning reports is expected to be falsey #has_container_scanning_reports? when head pipeline has container scanning reports is expected to be truthy when head pipeline does not have container scanning reports is expected to be falsey #has_dast_reports? when head pipeline has dast reports is expected to be truthy when pipeline ran for an older commit than the branch head is expected to be falsey when head pipeline does not have dast reports is expected to be falsey #has_metrics_reports? when head pipeline has metrics reports is expected to be truthy when head pipeline does not have license scanning reports is expected to be falsey #has_coverage_fuzzing_reports? when head pipeline has coverage fuzzing reports is expected to be truthy when head pipeline does not have coverage fuzzing reports is expected to be falsey #has_api_fuzzing_reports? when head pipeline has coverage fuzzing reports is expected to be truthy when head pipeline does not have coverage fuzzing reports is expected to be falsey #calculate_reactive_cache with current_user when given a known service class name does not raises a NameError exception #compare_container_scanning_reports when head pipeline has container scanning reports when reactive cache worker is parsing asynchronously returns status when reactive cache worker is inline returns status and data when cached results is not latest raises and InvalidateReactiveCache error #compare_secret_detection_reports when head pipeline has secret detection reports when reactive cache worker is parsing asynchronously returns status when reactive cache worker is inline returns status and data when cached results is not latest raises and InvalidateReactiveCache error #compare_sast_reports when head pipeline has sast reports when reactive cache worker is parsing asynchronously returns status when reactive cache worker is inline returns status and data when cached results is not latest raises and InvalidateReactiveCache error #compare_license_scanning_reports when head pipeline has license scanning reports when reactive cache worker is parsing asynchronously returns status when reactive cache worker is inline returns status and data cache key includes sofware license policies returns key with license information when cached results is not latest raises and InvalidateReactiveCache error when head pipeline does not have license scanning reports returns status and error message when a license scan report is produced from the head pipeline pipeline_status: :blocked, build_types: [:license_scan_v2_1], expected_status: :parsed is expected to eq :parsed pipeline_status: :blocked, build_types: [:container_scanning], expected_status: :error is expected to eq :error pipeline_status: :blocked, build_types: [:license_scan_v2_1, :container_scanning], expected_status: :parsed is expected to eq :parsed pipeline_status: :blocked, build_types: [], expected_status: :error is expected to eq :error pipeline_status: :failed, build_types: [:container_scanning], expected_status: :error is expected to eq :error pipeline_status: :failed, build_types: [:license_scan_v2_1], expected_status: :parsed is expected to eq :parsed pipeline_status: :failed, build_types: [:license_scan_v2_1, :container_scanning], expected_status: :parsed is expected to eq :parsed pipeline_status: :failed, build_types: [], expected_status: :error is expected to eq :error pipeline_status: :running, build_types: [:container_scanning], expected_status: :error is expected to eq :error pipeline_status: :running, build_types: [:license_scan_v2_1], expected_status: :parsed is expected to eq :parsed pipeline_status: :running, build_types: [:license_scan_v2_1, :container_scanning], expected_status: :parsed is expected to eq :parsed pipeline_status: :running, build_types: [], expected_status: :error is expected to eq :error pipeline_status: :success, build_types: [:container_scanning], expected_status: :error is expected to eq :error pipeline_status: :success, build_types: [:license_scan_v2_1], expected_status: :parsed is expected to eq :parsed pipeline_status: :success, build_types: [:license_scan_v2_1, :container_scanning], expected_status: :parsed is expected to eq :parsed pipeline_status: :success, build_types: [], expected_status: :error is expected to eq :error #compare_metrics_reports when head pipeline has metrics reports when reactive cache worker is parsing asynchronously returns status when reactive cache worker is inline returns status and data when cached results is not latest raises and InvalidateReactiveCache error when head pipeline does not have metrics reports returns status and error message #compare_coverage_fuzzing_reports when head pipeline has coverage fuzzing reports when reactive cache worker is parsing asynchronously returns status when reactive cache worker is inline returns status and data when cached results is not latest raises and InvalidateReactiveCache error #compare_api_fuzzing_reports when head pipeline has api fuzzing reports when reactive cache worker is parsing asynchronously returns status when reactive cache worker is inline returns status and data when cached results is not latest raises an InvalidateReactiveCache error #approver_group_ids= create approver_groups #predefined_variables when merge request has approver feature without any rules includes variable CI_MERGE_REQUEST_APPROVED=true with a rule that has been approved includes variable CI_MERGE_REQUEST_APPROVED=true that has not been approved does not include variable CI_MERGE_REQUEST_APPROVED when merge request does not have approver feature does not include variable CI_MERGE_REQUEST_APPROVED #mergeable? when using approvals return false if not approved return true if approved when running license_scanning ci job when merge request has denied policies when approval is required and granted is not mergeable when is not approved is not mergeable when merge request has no denied policies is mergeable #on_train? when the merge request is on a merge train is expected to be truthy when the merge request was on a merge train is expected to be falsy when the merge request is not on a merge train is expected to be falsy review time sorting orders by first_comment_at or first_approved_at whatever is earlier #missing_security_scan_types when there is no head pipeline when there is no base pipeline is expected to be empty when there is a base pipeline when there is no security scan for the base pipeline is expected to be empty when there are security scans for the base_pipeline is expected to be empty when there is a head pipeline when there is no base pipeline is expected to be empty when there is a base pipeline when the head pipeline does not have security scans when the base pipeline does not have security scans is expected to be empty when the base pipeline has security scans is expected to eq ["sast"] when the head pipeline has security scans when the base pipeline does not have security scans is expected to be empty when the base pipeline has security scans when there are no missing security scans for the head pipeline is expected to be empty when there are missing security scans for the head pipeline is expected to eq ["sast"] when there are multiple scans for the same type for base pipeline is expected to eq ["sast"] #security_reports_up_to_date? when the target branch security reports are up to date is expected to equal true when the target branch security reports are out of date is expected to equal false Elastic::ProcessBookkeepingService .shard_number returns correct shard number .track enqueues a record enqueues a set of unique records orders items based on when they were added and moves them to the back of the queue if they were added again enqueues 10 identical records as 1 entry deduplicates across multiple inserts .queue_size reports the queue size .queued_items reports queued items .clear_tracking! removes all entries from the queue .maintain_indexed_associations calls track! for each associated object correctly scopes associated note objects to not include system notes #execute submits a batch of documents returns the number of documents processed returns 0 without writing to the index when there are no documents retries failed documents discards malformed documents fails, preserving documents, when processing fails with an exception limit is less than refs count processes only up to limit N+1 queries does not have N+1 queries for projects does not have N+1 queries for notes does not have N+1 queries for issues does not have N+1 queries for merge_requests Issues::UpdateService execute refresh epic dates updating milestone calls UpdateDatesService updating iteration when issue does not already have an iteration calls NotificationService#changed_iteration_issue when issue already has an iteration setting to nil calls NotificationService#removed_iteration_issue setting to IssuableFinder::Params::NONE calls NotificationService#removed_iteration_issue removes the iteration properly setting to another iteration calls NotificationService#changed_iteration_issue updating weight when weight is integer updates to the exact value when weight is float rounds the value down when weight is zero sets the value to zero when weight is a string sets the value to 0 behaves like updating issuable health status updating health_status when feature is not available does not update issue health status when feature is available when user has reporter permissions updates issuable with given health_status when user does not have permissions does not update issuable status updating other fields does not call UpdateDatesService assigning iteration group iterations behaves like creates iteration resource event creates a system note does not create a iteration change event project iterations behaves like creates iteration resource event creates a system note does not create a iteration change event changing issue_type from issue to incident behaves like creates an SLA is expected to be present system note fails to be created behaves like creates an SLA is expected to be present from incident to issue does not remove the SLA or create a new one from issue to restricted issue types with permissions changes the type does not create or remove an SLA without sufficient permissions excludes the issue type param assigning epic when a user does not have permissions to assign an epic raises an exception when a user has permissions to assign an epic when EpicIssues::CreateService returns failure does not send usage data for added or changed epic action when issue does not belong to an epic yet assigns an issue to the provided epic calls EpicIssues::CreateService tracks usage data for added to epic action when issue belongs to another epic assigns the issue passed to the provided epic calls EpicIssues::CreateService tracks usage data for changed epic action when updating issue epic and milestone and assignee attributes assigns the issue passed to the provided epic when milestone and epic attributes are changed from description assigns the issue passed to the provided epic when assigning epic raises an exception assigns the issue passed to the provided epic removing epic when a user has permissions to assign an epic when issue does not belong to an epic yet does not do anything does not send usage data for removed epic action when issue belongs to an epic unassigns the epic calls EpicIssues::DestroyService tracks usage data for removed from epic action but EpicIssues::DestroyService returns failure does not send usage data for removed epic action behaves like existing issuable with scoped labels when scoped labels are available when using label_ids parameter adds only last selected exclusive scoped label when using label_ids parameter adds only last selected exclusive scoped label when only removing labels preserves multiple exclusive scoped labels when scoped labels are not available adds all scoped labels behaves like issue with epic_id parameter when epic_id does not exist raises an exception when epic_id is 0 does not assign any epic when user can not add issues to the epic raises an exception does not send usage data for added epic action when user can add issues to the epic when a project is a direct child of the epic group creates epic issue link calls EpicIssues::CreateService tracks usage data for added to epic action when epic param is also present when epic_id belongs to another valid epic creates epic issue link based on the epic param when epic_id is empty creates epic issue link based on the epic param when a project is from a subgroup of the epic group creates epic issue link tracks usage data for added to epic action when epic_id is nil removes epic issue link calls EpicIssues::DestroyService promoting to epic when promote_to_epic param is present promotes issue to epic when promote_to_epic param is not present does not promote issue to epic publish to status page when update succeeds triggers status page publish when closing triggers status page publish when reopening triggers status page publish when update fails does not trigger status page publish service sync Requirement work item with Requirement object if there is an associated requirement does not update the unrelated field updates the synced requirement with title and/or description when the issue title is very long behaves like does not persist any changes does not update the issue does not update the requirement behaves like keeps issue and its requirement in sync keeps title and description in sync if update of issue fails behaves like keeps issue and its requirement in sync keeps title and description in sync behaves like does not persist any changes does not update the issue does not update the requirement if update of issue succeeds but update of requirement fails when requirement is not valid adds an informative sync error to issue behaves like keeps issue and its requirement in sync keeps title and description in sync behaves like does not persist any changes does not update the issue does not update the requirement if requirement is valid but still does not save adds a helpful log if the issue is also marked as spam only shows the spam error behaves like keeps issue and its requirement in sync keeps title and description in sync behaves like does not persist any changes does not update the issue does not update the requirement if there is no associated requirement does not call the RequirementsManagement::UpdateRequirementService EpicLinks::CreateService #execute when subepics feature is disabled returns an error no relationship is created when subepics feature is enabled when an error occurs when a single epic is given when a user does not have permissions to add an epic returns an error no relationship is created when a user has permissions to add an epic when an epic from another group is given DEPRECATION WARNING: ActiveModel::Errors#values is deprecated and will be removed in Rails 6.2. To achieve the same use: errors.map { |error| error.message } (called from create_single_link at /builds/gitlab-org/gitlab/ee/app/services/epic_links/create_service.rb:30) returns an error DEPRECATION WARNING: ActiveModel::Errors#values is deprecated and will be removed in Rails 6.2. To achieve the same use: errors.map { |error| error.message } (called from create_single_link at /builds/gitlab-org/gitlab/ee/app/services/epic_links/create_service.rb:30) no relationship is created when hierarchy is cyclic when given child epic is the same as given parent DEPRECATION WARNING: ActiveModel::Errors#values is deprecated and will be removed in Rails 6.2. To achieve the same use: errors.map { |error| error.message } (called from create_single_link at /builds/gitlab-org/gitlab/ee/app/services/epic_links/create_service.rb:30) returns an error DEPRECATION WARNING: ActiveModel::Errors#values is deprecated and will be removed in Rails 6.2. To achieve the same use: errors.map { |error| error.message } (called from create_single_link at /builds/gitlab-org/gitlab/ee/app/services/epic_links/create_service.rb:30) no relationship is created when given child epic is parent of the given parent DEPRECATION WARNING: ActiveModel::Errors#values is deprecated and will be removed in Rails 6.2. To achieve the same use: errors.map { |error| error.message } (called from create_single_link at /builds/gitlab-org/gitlab/ee/app/services/epic_links/create_service.rb:30) returns an error DEPRECATION WARNING: ActiveModel::Errors#values is deprecated and will be removed in Rails 6.2. To achieve the same use: errors.map { |error| error.message } (called from create_single_link at /builds/gitlab-org/gitlab/ee/app/services/epic_links/create_service.rb:30) no relationship is created when new child epic is an ancestor of the given parent DEPRECATION WARNING: ActiveModel::Errors#values is deprecated and will be removed in Rails 6.2. To achieve the same use: errors.map { |error| error.message } (called from create_single_link at /builds/gitlab-org/gitlab/ee/app/services/epic_links/create_service.rb:30) returns an error DEPRECATION WARNING: ActiveModel::Errors#values is deprecated and will be removed in Rails 6.2. To achieve the same use: errors.map { |error| error.message } (called from create_single_link at /builds/gitlab-org/gitlab/ee/app/services/epic_links/create_service.rb:30) no relationship is created when adding an epic that is already a child of the parent epic DEPRECATION WARNING: ActiveModel::Errors#values is deprecated and will be removed in Rails 6.2. To achieve the same use: errors.map { |error| error.message } (called from create_single_link at /builds/gitlab-org/gitlab/ee/app/services/epic_links/create_service.rb:30) returns an error DEPRECATION WARNING: ActiveModel::Errors#values is deprecated and will be removed in Rails 6.2. To achieve the same use: errors.map { |error| error.message } (called from create_single_link at /builds/gitlab-org/gitlab/ee/app/services/epic_links/create_service.rb:30) no relationship is created when adding to an Epic that is already at maximum depth returns an error no relationship is created when total depth after adding would exceed depth limit DEPRECATION WARNING: ActiveModel::Errors#values is deprecated and will be removed in Rails 6.2. To achieve the same use: errors.map { |error| error.message } (called from create_single_link at /builds/gitlab-org/gitlab/ee/app/services/epic_links/create_service.rb:30) returns an error DEPRECATION WARNING: ActiveModel::Errors#values is deprecated and will be removed in Rails 6.2. To achieve the same use: errors.map { |error| error.message } (called from create_single_link at /builds/gitlab-org/gitlab/ee/app/services/epic_links/create_service.rb:30) no relationship is created when multiple epics are given when a user dos not have permissions to add an epic returns an error no relationship is created when a user has permissions to add an epic when adding epics that are already a child of the parent epic returns an error no relationship is created when total depth after adding would exceed limit returns an error no relationship is created when an epic from a another group is given returns an error no relationship is created when hierarchy is cyclic when given child epic is the same as given parent returns an error no relationship is created when given child epic is parent of the given parent returns an error no relationship is created when the reference list is empty returns an error no relationship is created when there are invalid references adds only valid references returns error status when everything is ok when a correct reference is given creates a new relationship and updates epic moves the new child epic to the top and moves the existing ones down returns success status creates system notes when an epic from a subgroup is given creates a new relationship and updates epic moves the new child epic to the top and moves the existing ones down returns success status creates system notes when multiple valid epics are given creates new relationships creates system notes returns success status avoids un-necessary database queries when at least one epic is still not assigned to the parent epic creates new relationships creates system notes returns success status when adding an Epic that has existing children when Epic to add has more than 5 children creates a new relationship and updates epic moves the new child epic to the top and moves the existing ones down returns success status creates system notes when an epic is already assigned to another epic creates a new relationship and updates epic moves the new child epic to the top and moves the existing ones down returns success status creates system notes Ci::Pipeline associations is expected to have many security_scans class_name => Security::Scan is expected to have many security_findings class_name => Security::Finding through security_scans source => findings is expected to have many downstream_bridges is expected to have many vulnerability_findings class_name => Vulnerabilities::Finding through vulnerabilities_finding_pipelines is expected to have many vulnerabilities_finding_pipelines class_name => Vulnerabilities::FindingPipeline is expected to have one dast_profiles_pipeline class_name => Dast::ProfilesPipeline is expected to have one dast_profile class_name => Dast::Profile through dast_profiles_pipeline .failure_reasons contains failure reasons about exceeded limits #batch_lookup_report_artifact_for_file_type with security report artifact when feature is available returns the dependency_scanning artifact when feature is not available doesn't return the dependency_scanning artifact with license scanning artifact when feature is available returns the license_scanning artifact when feature is not available doesn't return the license_scanning artifact with browser performance artifact when feature is available returns the browser_performance artifact when feature is not available doesn't return the browser_performance artifact with load performance artifact when feature is available returns the load_performance artifact when feature is not available doesn't return the load_performance artifact #expose_license_scanning_data? is expected to be truthy #security_reports when pipeline has multiple builds with security reports assigns pipeline to the reports returns security reports with collected data grouped as expected when builds are retried does not take retried builds into account when the `report_types` parameter is provided returns only the reports which are requested when pipeline does not have any builds with security reports returns empty security reports ::Security::StoreScansWorker when pipeline is succeeded behaves like storing the security scans when the security scans can be stored for the pipeline schedules store security scans job when the security scans can not be stored for the pipeline does not schedule store security scans job when pipeline is dropped behaves like storing the security scans when the security scans can be stored for the pipeline schedules store security scans job when the security scans can not be stored for the pipeline does not schedule store security scans job when pipeline is skipped behaves like storing the security scans when the security scans can be stored for the pipeline schedules store security scans job when the security scans can not be stored for the pipeline does not schedule store security scans job when pipeline is canceled behaves like storing the security scans when the security scans can be stored for the pipeline schedules store security scans job when the security scans can not be stored for the pipeline does not schedule store security scans job #license_scanning_reports when pipeline has multiple builds with license scanning reports returns a license scanning report with collected data when builds are retried does not take retried builds into account when pipeline does not have any builds with license scanning reports returns an empty license scanning report #dependency_list_reports when pipeline has a build with dependency list reports returns a dependency list report with collected data when builds are retried does not take retried builds into account when pipeline does not have any builds with dependency_list reports returns an empty dependency_list report #metrics_report when pipeline has multiple builds with metrics reports returns a metrics report with collected data when pipeline has multiple builds with metrics reports that are retried does not take retried builds into account when pipeline does not have any builds with metrics reports returns an empty metrics report state machine transitions on pipeline complete from waiting_for_resource schedules Ci::SyncReportsToReportApprovalRulesWorker from preparing schedules Ci::SyncReportsToReportApprovalRulesWorker from pending schedules Ci::SyncReportsToReportApprovalRulesWorker from running schedules Ci::SyncReportsToReportApprovalRulesWorker when pipeline has downstream bridges when transitioning to success schedules the pipeline bridge worker when transitioning to blocked schedules the pipeline bridge worker when pipeline project has downstream subscriptions when pipeline runs on a tag when feature is not available does not schedule the trigger downstream subscriptions worker when feature is available schedules the trigger downstream subscriptions worker #latest_merged_result_pipeline? is expected to be truthy when pipeline is not merge request pipeline is expected to be falsy when source sha is outdated is expected to be falsy when target sha is outdated is expected to be falsy #retryable? with pipeline for merged results is expected to equal true #merge_train_pipeline? is expected to be truthy when ref is merge ref is expected to be falsy #merge_request_event_type when pipeline is merge train pipeline is expected to eq :merge_train when pipeline is merge request pipeline is expected to eq :merged_result when pipeline is detached merge request pipeline is expected to eq :detached #latest_failed_security_builds is expected to contain exactly #<Ci::Build status: "failed", finished_at: "2021-10-13 08:53:29.000000000 +0000", trace: nil, created...resource_at: nil, processed: false, scheduling_type: "stage", id: 197, stage_id: 161, tag_list: nil> #license_scan_completed? pipeline_status: :blocked, build_types: [:container_scanning], expected_status: false is expected to eq false pipeline_status: :blocked, build_types: [:cluster_image_scanning], expected_status: false is expected to eq false pipeline_status: :blocked, build_types: [:license_scan_v2_1, :container_scanning], expected_status: true is expected to eq true pipeline_status: :blocked, build_types: [:license_scan_v2_1], expected_status: true is expected to eq true pipeline_status: :blocked, build_types: [], expected_status: false is expected to eq false pipeline_status: :failed, build_types: [:container_scanning], expected_status: false is expected to eq false pipeline_status: :failed, build_types: [:cluster_image_scanning], expected_status: false is expected to eq false pipeline_status: :failed, build_types: [:license_scan_v2_1, :container_scanning], expected_status: true is expected to eq true pipeline_status: :failed, build_types: [:license_scan_v2_1], expected_status: true is expected to eq true pipeline_status: :failed, build_types: [], expected_status: false is expected to eq false pipeline_status: :running, build_types: [:container_scanning], expected_status: false is expected to eq false pipeline_status: :running, build_types: [:cluster_image_scanning], expected_status: false is expected to eq false pipeline_status: :running, build_types: [:license_scan_v2_1, :container_scanning], expected_status: true is expected to eq true pipeline_status: :running, build_types: [:license_scan_v2_1], expected_status: true is expected to eq true pipeline_status: :running, build_types: [], expected_status: false is expected to eq false pipeline_status: :success, build_types: [:container_scanning], expected_status: false is expected to eq false pipeline_status: :success, build_types: [:cluster_image_scanning], expected_status: false is expected to eq false pipeline_status: :success, build_types: [:license_scan_v2_1, :container_scanning], expected_status: true is expected to eq true pipeline_status: :success, build_types: [:license_scan_v2_1], expected_status: true is expected to eq true pipeline_status: :success, build_types: [], expected_status: false is expected to eq false #can_store_security_reports? when the security reports can not be stored for the project when the pipeline does not have security reports is expected to be falsy when the pipeline has security reports is expected to be falsy when the security reports can be stored for the project when the pipeline does not have security reports is expected to be falsy when the pipeline has security reports is expected to be truthy #has_security_findings? when the pipeline has security_findings is expected to be truthy when the pipeline does not have security_findings is expected to be falsey #triggered_for_ondemand_dast_scan? when the feature flag is enabled is expected to be truthy when the pipeline only has the correct source is expected to be falsey when the pipeline only has the correct config_source is expected to be falsey #needs_touch? when pipeline was updated less than 5 minutes ago is expected to eq false when pipeline was updated more than 5 minutes ago is expected to eq true #authorized_cluster_agents retrieves agent records from the finder and caches the result group_authorized_agents feature flag is disabled retrieves agent records from the legacy finder and caches the result Upload .replicables_for_current_secondary selective_sync_namespaces: nil, selective_sync_shards: nil, factory: [:upload], model_factory: [:project], is_upload_included: true when sync object storage is enabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to eq true when sync object storage is disabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to be falsey selective_sync_namespaces: nil, selective_sync_shards: nil, factory: [:upload, :issuable_upload], model_factory: [:project], is_upload_included: true when sync object storage is enabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to eq true when sync object storage is disabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to be falsey selective_sync_namespaces: nil, selective_sync_shards: nil, factory: [:upload, :namespace_upload], model_factory: [:group], is_upload_included: true when sync object storage is enabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to eq true when sync object storage is disabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to be falsey selective_sync_namespaces: nil, selective_sync_shards: nil, factory: [:upload, :favicon_upload], model_factory: [:appearance], is_upload_included: true when sync object storage is enabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to eq true when sync object storage is disabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to be falsey selective_sync_namespaces: nil, selective_sync_shards: :model, factory: [:upload], model_factory: [:project], is_upload_included: true when sync object storage is enabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to eq true when sync object storage is disabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to be falsey selective_sync_namespaces: nil, selective_sync_shards: :other, factory: [:upload], model_factory: [:project], is_upload_included: false when sync object storage is enabled when the upload is locally stored is expected to eq false when the upload is object stored is expected to eq false when sync object storage is disabled when the upload is locally stored is expected to eq false when the upload is object stored is expected to be falsey selective_sync_namespaces: nil, selective_sync_shards: :model_project, factory: [:upload, :namespace_upload], model_factory: [:group], is_upload_included: true when sync object storage is enabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to eq true when sync object storage is disabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to be falsey selective_sync_namespaces: nil, selective_sync_shards: :other, factory: [:upload, :namespace_upload], model_factory: [:group], is_upload_included: false when sync object storage is enabled when the upload is locally stored is expected to eq false when the upload is object stored is expected to eq false when sync object storage is disabled when the upload is locally stored is expected to eq false when the upload is object stored is expected to be falsey selective_sync_namespaces: nil, selective_sync_shards: :other, factory: [:upload, :favicon_upload], model_factory: [:appearance], is_upload_included: true when sync object storage is enabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to eq true when sync object storage is disabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to be falsey selective_sync_namespaces: :model_parent, selective_sync_shards: nil, factory: [:upload], model_factory: [:project], is_upload_included: true when sync object storage is enabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to eq true when sync object storage is disabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to be falsey selective_sync_namespaces: :model_parent_parent, selective_sync_shards: nil, factory: [:upload], model_factory: [:project, :in_subgroup], is_upload_included: true when sync object storage is enabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to eq true when sync object storage is disabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to be falsey selective_sync_namespaces: :model, selective_sync_shards: nil, factory: [:upload, :namespace_upload], model_factory: [:group], is_upload_included: true when sync object storage is enabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to eq true when sync object storage is disabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to be falsey selective_sync_namespaces: :model_parent, selective_sync_shards: nil, factory: [:upload, :namespace_upload], model_factory: [:group, :nested], is_upload_included: true when sync object storage is enabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to eq true when sync object storage is disabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to be falsey selective_sync_namespaces: :other, selective_sync_shards: nil, factory: [:upload], model_factory: [:project], is_upload_included: false when sync object storage is enabled when the upload is locally stored is expected to eq false when the upload is object stored is expected to eq false when sync object storage is disabled when the upload is locally stored is expected to eq false when the upload is object stored is expected to be falsey selective_sync_namespaces: :other, selective_sync_shards: nil, factory: [:upload], model_factory: [:project, :in_subgroup], is_upload_included: false when sync object storage is enabled when the upload is locally stored is expected to eq false when the upload is object stored is expected to eq false when sync object storage is disabled when the upload is locally stored is expected to eq false when the upload is object stored is expected to be falsey selective_sync_namespaces: :other, selective_sync_shards: nil, factory: [:upload, :namespace_upload], model_factory: [:group], is_upload_included: false when sync object storage is enabled when the upload is locally stored is expected to eq false when the upload is object stored is expected to eq false when sync object storage is disabled when the upload is locally stored is expected to eq false when the upload is object stored is expected to be falsey selective_sync_namespaces: :other, selective_sync_shards: nil, factory: [:upload, :namespace_upload], model_factory: [:group, :nested], is_upload_included: false when sync object storage is enabled when the upload is locally stored is expected to eq false when the upload is object stored is expected to eq false when sync object storage is disabled when the upload is locally stored is expected to eq false when the upload is object stored is expected to be falsey selective_sync_namespaces: :other, selective_sync_shards: nil, factory: [:upload, :favicon_upload], model_factory: [:appearance], is_upload_included: true when sync object storage is enabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to eq true when sync object storage is disabled when the upload is locally stored is expected to eq true when the upload is object stored is expected to be falsey #destroy when running in a Geo primary node logs an event to the Geo event log Ci::CompareSecurityReportsService vulnerability_finding_signatures: true #execute DS when head pipeline has dependency scanning reports reports new vulnerabilities when base and head pipelines have dependency scanning reports reports status as parsed populates fields based on current_user reports fixed vulnerability reports fixed dependency scanning vulnerabilities when head pipeline has corrupted dependency scanning vulnerability reports returns status and error message returns status and error message when pipeline is nil #execute CS when head pipeline has container scanning reports reports new and fixed vulnerabilities when base and head pipelines have container scanning reports populates fields based on current_user reports new vulnerability reports fixed container scanning vulnerabilities #execute DAST when head pipeline has DAST reports containing some vulnerabilities reports the new vulnerabilities, while not changing the counts of fixed vulnerabilities when base and head pipelines have DAST reports containing vulnerabilities populates fields based on current_user reports new vulnerability reports fixed DAST vulnerabilities #execute SAST when head pipeline has sast reports reports new vulnerabilities when base and head pipelines have sast reports populates fields based on current_user reports new vulnerability reports fixed sast vulnerabilities #execute SECRET DETECTION when head pipeline has secret_detection reports reports new vulnerabilities when base and head pipelines have secret_detection reports populates fields based on current_user does not report any new vulnerability reports fixed secret_detection vulnerabilities vulnerability_finding_signatures: false #execute DS when head pipeline has dependency scanning reports reports new vulnerabilities when base and head pipelines have dependency scanning reports reports status as parsed populates fields based on current_user reports fixed vulnerability reports fixed dependency scanning vulnerabilities when head pipeline has corrupted dependency scanning vulnerability reports returns status and error message returns status and error message when pipeline is nil #execute CS when head pipeline has container scanning reports reports new and fixed vulnerabilities when base and head pipelines have container scanning reports populates fields based on current_user reports new vulnerability reports fixed container scanning vulnerabilities #execute DAST when head pipeline has DAST reports containing some vulnerabilities reports the new vulnerabilities, while not changing the counts of fixed vulnerabilities when base and head pipelines have DAST reports containing vulnerabilities populates fields based on current_user reports new vulnerability reports fixed DAST vulnerabilities #execute SAST when head pipeline has sast reports reports new vulnerabilities when base and head pipelines have sast reports populates fields based on current_user reports new vulnerability reports fixed sast vulnerabilities #execute SECRET DETECTION when head pipeline has secret_detection reports reports new vulnerabilities when base and head pipelines have secret_detection reports populates fields based on current_user does not report any new vulnerability reports fixed secret_detection vulnerabilities Vulnerabilities::DismissService with an authorized user with proper permissions creates note behaves like calls vulnerability statistics utility services in order calls the service classes in order when the `dismiss_findings` argument is false dismisses only vulnerability when the `dismiss_findings` argument is not false dismisses a vulnerability and its associated findings with correct attributes when comment is added dismisses a vulnerability and its associated findings with comment when the dismissal_reason is added dismisses a vulnerability and its associated findings with comment when there is a finding dismissal error responds with error when security dashboard feature is disabled raises an "access denied" error permissions is expected to be allowed for :owner is expected to be allowed for :maintainer is expected to be allowed for :developer is expected to be denied for :auditor is expected to be denied for :reporter is expected to be denied for :guest is expected to be denied for :anonymous when admin mode is enabled is expected to be allowed for :admin when admin mode is disabled is expected to be denied for :admin Issue searches issues names elasticsearch queries searches by iid and scopes to type: issue only handles a project missing project_feature when limited indexing is on when the project is not enabled specifically #searchable? returns false when a project is enabled specifically #searchable? returns true when a group is enabled #searchable? returns true json returns json with all needed elements when add_namespace_ancestry_ids_to_issues_mapping migration is not done returns json without namespace_ancestry field length limits when there is an elasticsearch_indexed_field_length limit truncates to the default plan limit when the elasticsearch_indexed_field_length limit is 0 does not truncate the fields behaves like no results when the user cannot read cross project returns the record if a single project was passed does not return anything when trying to search cross project Dashboard::Projects::ListService #execute when passing a project id behaves like project found returns the project when passing a project record behaves like project found returns the project when passing invalid project id behaves like project not found returns an empty list with insufficient access behaves like project not found returns an empty list checking license plan: "ultimate", trial: false, expired: false, available: true behaves like project found returns the project plan: "ultimate", trial: false, expired: true, available: true behaves like project found returns the project plan: "ultimate", trial: true, expired: false, available: false behaves like project not found returns an empty list plan: "ultimate", trial: true, expired: true, available: false behaves like project not found returns an empty list plan: "premium", trial: false, expired: false, available: true behaves like project found returns the project plan: nil, trial: false, expired: false, available: false behaves like project not found returns an empty list checking plans check_namespace_plan: true, plan: :gold, available: true behaves like project found returns the project if :include_unavailable option is provided behaves like project found returns the project check_namespace_plan: true, plan: :premium, available: true behaves like project found returns the project if :include_unavailable option is provided behaves like project found returns the project check_namespace_plan: true, plan: :ultimate, available: true behaves like project found returns the project if :include_unavailable option is provided behaves like project found returns the project check_namespace_plan: true, plan: nil, available: false behaves like project not found returns an empty list if :include_unavailable option is provided behaves like project found returns the project check_namespace_plan: false, plan: :gold, available: true behaves like project found returns the project if :include_unavailable option is provided behaves like project found returns the project check_namespace_plan: false, plan: :premium, available: true behaves like project found returns the project if :include_unavailable option is provided behaves like project found returns the project check_namespace_plan: false, plan: :ultimate, available: true behaves like project found returns the project if :include_unavailable option is provided behaves like project found returns the project check_namespace_plan: false, plan: nil, available: true behaves like project found returns the project if :include_unavailable option is provided behaves like project found returns the project checking availability of public projects on GitLab.com check_namespace_plan: true, project_visibility: 20, namespace_visibility: 20, available: true behaves like project found returns the project check_namespace_plan: true, project_visibility: 0, namespace_visibility: 20, available: false behaves like project not found returns an empty list check_namespace_plan: true, project_visibility: 20, namespace_visibility: 0, available: false behaves like project not found returns an empty list check_namespace_plan: true, project_visibility: 0, namespace_visibility: 0, available: false behaves like project not found returns an empty list check_namespace_plan: false, project_visibility: 20, namespace_visibility: 20, available: true behaves like project found returns the project check_namespace_plan: false, project_visibility: 0, namespace_visibility: 20, available: true behaves like project found returns the project check_namespace_plan: false, project_visibility: 20, namespace_visibility: 0, available: true behaves like project found returns the project check_namespace_plan: false, project_visibility: 0, namespace_visibility: 0, available: true behaves like project found returns the project when the user is an auditor behaves like project found returns the project MergeRequest searches merge requests names elasticsearch queries searches by iid and scopes to type: merge_request only returns json with all needed elements handles when a project is missing project_feature behaves like limited indexing is enabled when the project is not enabled specifically #searchable? returns false when a project is enabled specifically #searchable? returns true when a group is enabled #searchable? returns true behaves like no results when the user cannot read cross project returns the record if a single project was passed does not return anything when trying to search cross project EE::ProtectedRefAccess in ProtectedBranch::MergeAccessLevel ProtectedBranch::MergeAccessLevel includes {described_class} requires access_level if no user or group is specified doesn't require access_level if user specified doesn't require access_level if group specified with the `protected_refs_for_users` feature disabled does not allow to create an ProtectedBranch::MergeAccessLevel with a group does not allow to create an ProtectedBranch::MergeAccessLevel with a user with the `protected_refs_for_users` feature enabled allows creating an ProtectedBranch::MergeAccessLevel with a group does not allow to add non member groups allows creating an ProtectedBranch::MergeAccessLevel with a user does not allow to add non member users allows users with access through group in ProtectedBranch::PushAccessLevel ProtectedBranch::PushAccessLevel includes {described_class} requires access_level if no user or group is specified doesn't require access_level if user specified doesn't require access_level if group specified with the `protected_refs_for_users` feature disabled does not allow to create an ProtectedBranch::PushAccessLevel with a group does not allow to create an ProtectedBranch::PushAccessLevel with a user with the `protected_refs_for_users` feature enabled allows creating an ProtectedBranch::PushAccessLevel with a group does not allow to add non member groups allows creating an ProtectedBranch::PushAccessLevel with a user does not allow to add non member users allows users with access through group in ProtectedTag::CreateAccessLevel ProtectedTag::CreateAccessLevel includes {described_class} requires access_level if no user or group is specified doesn't require access_level if user specified doesn't require access_level if group specified with the `protected_refs_for_users` feature disabled does not allow to create an ProtectedTag::CreateAccessLevel with a group does not allow to create an ProtectedTag::CreateAccessLevel with a user with the `protected_refs_for_users` feature enabled allows creating an ProtectedTag::CreateAccessLevel with a group does not allow to add non member groups allows creating an ProtectedTag::CreateAccessLevel with a user does not allow to add non member users allows users with access through group SearchService #search_objects redacting search results (repository) commits behaves like it redacts incorrect results when allowed does nothing when disallowed redacts results blobs behaves like it redacts incorrect results when allowed does nothing when disallowed redacts results wiki blobs behaves like it redacts incorrect results when allowed does nothing when disallowed redacts results redacting search results redacts projects the user does not have access to redacts issues the user does not have access to redacts merge requests the user does not have access to redacts milestones the user does not have access to redacts notes the user does not have access to #projects when all projects are accessible returns the project returns the projects for guests handles spaces in the param returns nil if projects param is not a String when some projects are accessible returns only accessible projects when no projects are accessible returns nil when no project_ids are provided returns nil when the advanced_search_multi_project_select feature is not enabled returns nil Resolvers::EpicsResolver with a group #resolve returns nothing when feature disabled finds all epics with iid finds a specific epic with iid does not inflate the complexity with iids finds a specific epic with iids finds multiple epics with iids increases the complexity based on child_complexity and number of iids within timeframe when start_date and end_date are present returns epics within timeframe when timeframe start and end are present returns epics within timeframe with state lists epics with opened state lists epics with closed state with search filters epics by title filters epics by description with in param returns an error if param search is missing filters epics by description only filters epics by title only filters epics by title and description with anonymous user with disable_anonymous_search enabled returns an error with disable_anonymous_search disabled filters epics by search term with author_username filters epics by author with label_name filters epics by labels with my_reaction_emoji filters epics by reaction emoji with milestone_title filters epics by issues milestone returns empty result if milestone is not assigned to any epic issues with sort orders epics by start date in descending order orders epics by start date in ascending order orders epics by end date in descending order orders epics by end date in ascending order orders epics by title in descending order orders epics by title in ascending order with subgroups finds only the epics within the group we are looking at returns all epics does not return subgroup epics when include_descendant_groups is false filters by milestones in subgroups when the resolved group is a subgroup returns only the epics belonging to the subgroup by default returns the epics belonging to the ancestor groups when include_ancestor_groups is true with partial iids returns the expected epics if just the first number of iid is requested returns the expected epics if first two numbers of iid are requested returns the expected epics if last two numbers of iid are given returns the expected epics if exact number of iid is given with negated filters for label is expected to contain exactly #<Epic id:284 group287&2> and #<Epic id:285 group287&3> for author is expected to contain exactly #<Epic id:283 group287&1> and #<Epic id:285 group287&3> for emoji is expected to contain exactly #<Epic id:283 group287&1> and #<Epic id:284 group287&2> when passing a non existent, batch loaded group returns nil without breaking Ci::PipelineArtifact #replicables_for_current_secondary selective_sync_namespaces: nil, selective_sync_shards: nil, factory: [:ci_pipeline_artifact], project_factory: [:project], include_expectation: true when sync object storage is enabled when the pipeline artifact is locally stored is expected to eq true when the pipeline artifact is object stored is expected to eq true when sync object storage is disabled when the pipeline artifact is locally stored is expected to eq true when the pipeline artifact is object stored is expected to be falsey selective_sync_namespaces: nil, selective_sync_shards: :model, factory: [:ci_pipeline_artifact], project_factory: [:project], include_expectation: true when sync object storage is enabled when the pipeline artifact is locally stored is expected to eq true when the pipeline artifact is object stored is expected to eq true when sync object storage is disabled when the pipeline artifact is locally stored is expected to eq true when the pipeline artifact is object stored is expected to be falsey selective_sync_namespaces: nil, selective_sync_shards: :other, factory: [:ci_pipeline_artifact], project_factory: [:project], include_expectation: false when sync object storage is enabled when the pipeline artifact is locally stored is expected to eq false when the pipeline artifact is object stored is expected to eq false when sync object storage is disabled when the pipeline artifact is locally stored is expected to eq false when the pipeline artifact is object stored is expected to be falsey selective_sync_namespaces: :model_parent, selective_sync_shards: nil, factory: [:ci_pipeline_artifact], project_factory: [:project], include_expectation: true when sync object storage is enabled when the pipeline artifact is locally stored is expected to eq true when the pipeline artifact is object stored is expected to eq true when sync object storage is disabled when the pipeline artifact is locally stored is expected to eq true when the pipeline artifact is object stored is expected to be falsey selective_sync_namespaces: :model_parent_parent, selective_sync_shards: nil, factory: [:ci_pipeline_artifact], project_factory: [:project, :in_subgroup], include_expectation: true when sync object storage is enabled when the pipeline artifact is locally stored is expected to eq true when the pipeline artifact is object stored is expected to eq true when sync object storage is disabled when the pipeline artifact is locally stored is expected to eq true when the pipeline artifact is object stored is expected to be falsey selective_sync_namespaces: :other, selective_sync_shards: nil, factory: [:ci_pipeline_artifact], project_factory: [:project], include_expectation: false when sync object storage is enabled when the pipeline artifact is locally stored is expected to eq false when the pipeline artifact is object stored is expected to eq false when sync object storage is disabled when the pipeline artifact is locally stored is expected to eq false when the pipeline artifact is object stored is expected to be falsey selective_sync_namespaces: :other, selective_sync_shards: nil, factory: [:ci_pipeline_artifact], project_factory: [:project, :in_subgroup], include_expectation: false when sync object storage is enabled when the pipeline artifact is locally stored is expected to eq false when the pipeline artifact is object stored is expected to eq false when sync object storage is disabled when the pipeline artifact is locally stored is expected to eq false when the pipeline artifact is object stored is expected to be falsey selective_sync_namespaces: nil, selective_sync_shards: nil, factory: [:ci_pipeline_artifact, :expired], project_factory: [:project], include_expectation: true when sync object storage is enabled when the pipeline artifact is locally stored is expected to eq true when the pipeline artifact is object stored is expected to eq true when sync object storage is disabled when the pipeline artifact is locally stored is expected to eq true when the pipeline artifact is object stored is expected to be falsey Projects::Alerting::NotifyService #execute existing alert with same payload fingerprint generic fingerprinting license not enabled creates AlertManagement::Alert does not increment the existing alert count generic fingerprinting license enabled does not create AlertManagement::Alert increments the existing alert count end_time provided for subsequent alert does not create AlertManagement::Alert resolves the existing alert with on-call schedules behaves like sends on-call notification if enabled with on-call schedules enabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with escalation policy feature disabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with on-call schedules disabled behaves like does not send on-call notification is expected not to receive new(*(any args)) 0 times when alert with the same fingerprint already exists which is triggered behaves like sends on-call notification if enabled with on-call schedules enabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with escalation policy feature disabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with on-call schedules disabled behaves like does not send on-call notification is expected not to receive new(*(any args)) 0 times which is acknowledged behaves like does not send on-call notification is expected not to receive new(*(any args)) 0 times which is resolved behaves like sends on-call notification if enabled with on-call schedules enabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with escalation policy feature disabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with on-call schedules disabled behaves like does not send on-call notification is expected not to receive new(*(any args)) 0 times which is ignored behaves like does not send on-call notification is expected not to receive new(*(any args)) 0 times with resolving payload behaves like sends on-call notification if enabled with on-call schedules enabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with escalation policy feature disabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with on-call schedules disabled behaves like does not send on-call notification is expected not to receive new(*(any args)) 0 times when alert with the same fingerprint already exists which is triggered behaves like sends on-call notification if enabled with on-call schedules enabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with escalation policy feature disabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with on-call schedules disabled behaves like does not send on-call notification is expected not to receive new(*(any args)) 0 times which is acknowledged behaves like sends on-call notification if enabled with on-call schedules enabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with escalation policy feature disabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with on-call schedules disabled behaves like does not send on-call notification is expected not to receive new(*(any args)) 0 times which is resolved behaves like sends on-call notification if enabled with on-call schedules enabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with escalation policy feature disabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with on-call schedules disabled behaves like does not send on-call notification is expected not to receive new(*(any args)) 0 times which is ignored behaves like sends on-call notification if enabled with on-call schedules enabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with escalation policy feature disabled behaves like sends on-call notification is expected to receive notify_oncall_users_of_alert([#<User id:1528 @user1489>], having attributes {:class => AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, ...vironment_id: integer, domain: integer), :fingerprint => "b5448ce070e8ff567c4870e9fe0aeba3c0a98330"}) 1 time with on-call schedules disabled behaves like does not send on-call notification is expected not to receive new(*(any args)) 0 times with escalation policies ready is expected to receive perform_async(a kind of Integer) 1 time behaves like does not send on-call notification is expected not to receive new(*(any args)) 0 times existing alert with same payload fingerprint does not create an escalation with resolving payload with existing alert escalation is expected to change `target.pending_escalations.reload.count` from 2 to 0 GroupsHelper #render_setting_to_allow_project_access_token_creation? with self-managed returns true if group is root returns false if group is subgroup on .com with a free plan returns false with a paid plan returns true if group is root returns false if group is subgroup #permanent_deletion_date returns the sum of the date passed as argument and the deletion_adjourned_period set in application setting #remove_group_message delayed deletion feature is available returns the message related to delayed deletion group is already marked for deletion returns the message related to permanent deletion delayed deletion feature is not available returns the message related to permanent deletion #immediately_remove_group_message returns the message related to immediate deletion #show_discover_group_security? gitlab_com?: true, user?: true, security_dashboard_feature_available?: true, can_admin_group?: true returns the expected value gitlab_com?: true, user?: true, security_dashboard_feature_available?: true, can_admin_group?: false returns the expected value gitlab_com?: true, user?: true, security_dashboard_feature_available?: false, can_admin_group?: true returns the expected value gitlab_com?: true, user?: true, security_dashboard_feature_available?: false, can_admin_group?: false returns the expected value gitlab_com?: true, user?: false, security_dashboard_feature_available?: true, can_admin_group?: true returns the expected value gitlab_com?: true, user?: false, security_dashboard_feature_available?: true, can_admin_group?: false returns the expected value gitlab_com?: true, user?: false, security_dashboard_feature_available?: false, can_admin_group?: true returns the expected value gitlab_com?: true, user?: false, security_dashboard_feature_available?: false, can_admin_group?: false returns the expected value gitlab_com?: false, user?: true, security_dashboard_feature_available?: true, can_admin_group?: true returns the expected value gitlab_com?: false, user?: true, security_dashboard_feature_available?: true, can_admin_group?: false returns the expected value gitlab_com?: false, user?: true, security_dashboard_feature_available?: false, can_admin_group?: true returns the expected value gitlab_com?: false, user?: true, security_dashboard_feature_available?: false, can_admin_group?: false returns the expected value gitlab_com?: false, user?: false, security_dashboard_feature_available?: true, can_admin_group?: true returns the expected value gitlab_com?: false, user?: false, security_dashboard_feature_available?: true, can_admin_group?: false returns the expected value gitlab_com?: false, user?: false, security_dashboard_feature_available?: false, can_admin_group?: true returns the expected value gitlab_com?: false, user?: false, security_dashboard_feature_available?: false, can_admin_group?: false returns the expected value #show_group_activity_analytics? when feature is not available for group returns false when current user does not have access to the group returns false when feature is available and user has access to it returns true #show_delayed_project_removal_setting? licensed?: true, result: true is expected to equal true licensed?: false, result: false is expected to equal false #show_product_purchase_success_alert? when purchased_product is present product: "product", result: true is expected to equal true product: "", result: false is expected to equal false product: nil, result: false is expected to equal false when purchased_product is not present is expected to equal false ApprovalRules::ParamsFilteringService #execute create behaves like assigning_users_and_groups user can update approvers only assigns eligible users and groups user cannot update approvers deletes the approval_rules_attributes from params empty project approval rule adds empty rule inapplicable user defined rules when multiple_approval_rules feature is available adds inapplicable user defined rules when multiple_approval_rules feature is not available does not add inapplicable user defined rules any approver rule sets rule type for the rules attributes any approver rule from a project rule and the project rule has hidden groups sets rule type for the rules attributes update behaves like assigning_users_and_groups user can update approvers only assigns eligible users and groups user cannot update approvers deletes the approval_rules_attributes from params inapplicable user defined rules does not add inapplicable user defined rules when reset_approval_rules_to_defaults is true when multiple_approval_rules feature is available adds inapplicable user defined rules when multiple_approval_rules feature is not available does not add inapplicable user defined rules with remove_hidden_groups being true behaves like assigning_users_and_groups user can update approvers only assigns eligible users and groups user cannot update approvers deletes the approval_rules_attributes from params Gitlab::Auth::Ldap::Access #allowed? LDAP user Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead. Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead. finds a user by dn first finds a user by email if not found by dn returns false if user cannot be found when exists in LDAP/AD user blocked in LDAP/AD blocks user in GitLab on a read-only instance does not block user in GitLab user unblocked in LDAP/AD unblocks user in GitLab on a read-only instance does not unblock user in GitLab when no longer exist in LDAP/AD blocks user in GitLab on a read-only instance does not block user in GitLab #update_user email address does not update email if email attribute is not set does not update the email if the user has the same email in GitLab and in LDAP does not update the email if the user has the same email GitLab and in LDAP, but with upper case in LDAP when mail is different does not update the email when in a read-only GitLab instance updates the email if the user email is different does not update the name if the user email is different name does not update name if name attribute is not set does not update the name if the user has the same name in GitLab and in LDAP when cn is different does not update the name when in a read-only GitLab instance updates the name if the user name is different does not update the email if the user name is different when first and last name attributes passed does not update the name when in a read-only GitLab instance updates the name if the user name is different does not update the email if the user name is different group memberships doesn't continue when there is no `memberOf` param when there is `memberof` param triggers a sync for all groups found in `memberof` for new users doesn't trigger a sync when in a read-only GitLab instance doesn't trigger a sync when there are no links for the provider does not performs the membership update for existing users SSH keys adds a SSH key if it is in LDAP but not in gitlab adds a SSH key and give it a proper name does not add a SSH key if it is invalid does not add a SSH key when in a read-only GitLab instance user has at least one LDAPKey removes a SSH key if it is no longer in LDAP removes a SSH key if the ldap attribute was removed kerberos identity adds a Kerberos identity if it is in Active Directory but not in GitLab updates existing Kerberos identity in GitLab if Active Directory has a different one does not remove Kerberos identities from GitLab if they are none in the LDAP provider does not modify identities in GitLab if they are no kerberos principal in the LDAP provider does not add a Kerberos identity when in a read-only GitLab instance LDAP entity whent external UID changed in the entry updates the external UID does not update the external UID when in a read-only GitLab instance ApplicationSettings::UpdateService #execute common params properly updates settings with given params with valid params returns success params with invalid params returns error params elasticsearch_indexing update index creation when index does not exist creates a new index when ES service is not reachable does not throw exception when modifying a non Advanced Search setting does not check index_exists repository_size_limit assignment as Bytes when param present converts from MB to Bytes when param not present does not update due to invalidity assign nil value elasticsearch limiting namespaces and projects namespaces creates ElasticsearchIndexedNamespace objects when given elasticsearch_namespace_ids deletes ElasticsearchIndexedNamespace objects not in elasticsearch_namespace_ids disregards already existing ElasticsearchIndexedNamespace in elasticsearch_namespace_ids projects creates ElasticsearchIndexedProject objects when given elasticsearch_project_ids deletes ElasticsearchIndexedProject objects not in elasticsearch_project_ids disregards already existing ElasticsearchIndexedProject in elasticsearch_project_ids setting number_of_shards and number_of_replicas accepts hash values accepts legacy (integer) values user cap setting when new user cap is set to nil when changing new user cap to any number does not call ApproveBlockedPendingApprovalUsersWorker when leaving new user cap set to nil does not call ApproveBlockedPendingApprovalUsersWorker when new user cap is set to a number when decreasing new user cap does not call ApproveBlockedPendingApprovalUsersWorker when increasing new user cap calls ApproveBlockedPendingApprovalUsersWorker when changing user cap to nil calls ApproveBlockedPendingApprovalUsersWorker Vulnerabilities::ResolveService with an authorized user with proper permissions resolves a vulnerability creates note behaves like calls vulnerability statistics utility services in order calls the service classes in order behaves like removes dismissal feedback from associated findings when there is no error removes dismissal feedback from associated findings when there is an error does not remove any feedback responds with error when security dashboard feature is disabled raises an "access denied" error permissions is expected to be allowed for :owner is expected to be allowed for :maintainer is expected to be allowed for :developer is expected to be denied for :auditor is expected to be denied for :reporter is expected to be denied for :guest is expected to be denied for :anonymous when admin mode is enabled is expected to be allowed for :admin when admin mode is disabled is expected to be denied for :admin AlertManagement::NetworkAlertService #execute with valid payload behaves like never-before-seen network alert assigns the correct properties behaves like creates an alert management alert or errors is expected to be success creates AlertManagement::Alert executes the alert service hooks and fails to save writes a warning to the log behaves like alerts service responds with an error is expected to eq :bad_request behaves like creates expected system notes for alert for new_alert behaves like does not send alert notification emails is expected not to receive new(*(any args)) 0 times behaves like does not process incident issues is expected not to receive perform_async(*(any args)) 0 times for an existing alert with the same fingerprint which is triggered behaves like existing network alert behaves like adds an alert management alert event is expected to be success behaves like does not create an alert management alert is expected not to change `AlertManagement::Alert.count` behaves like does not create a system note for alert is expected not to change `Note.count` behaves like does not send alert notification emails is expected not to receive new(*(any args)) 0 times behaves like does not process incident issues is expected not to receive perform_async(*(any args)) 0 times with an additional existing resolved alert behaves like existing network alert behaves like adds an alert management alert event is expected to be success behaves like does not create an alert management alert is expected not to change `AlertManagement::Alert.count` behaves like does not create a system note for alert is expected not to change `Note.count` behaves like does not send alert notification emails is expected not to receive new(*(any args)) 0 times behaves like does not process incident issues is expected not to receive perform_async(*(any args)) 0 times which is resolved behaves like never-before-seen network alert assigns the correct properties behaves like creates an alert management alert or errors is expected to be success creates AlertManagement::Alert executes the alert service hooks and fails to save writes a warning to the log behaves like alerts service responds with an error is expected to eq :bad_request behaves like creates expected system notes for alert for new_alert behaves like does not send alert notification emails is expected not to receive new(*(any args)) 0 times behaves like does not process incident issues is expected not to receive perform_async(*(any args)) 0 times with overlong payload behaves like alerts service responds with an error and takes no actions is expected to eq :bad_request behaves like does not create an alert management alert is expected not to change `AlertManagement::Alert.count` behaves like does not create a system note for alert is expected not to change `Note.count` behaves like does not process incident issues is expected not to receive perform_async(*(any args)) 0 times behaves like does not send alert notification emails is expected not to receive new(*(any args)) 0 times ProjectWiki searches wiki page indexes can delete wiki pages #use_elasticsearch? delegates to Project#use_elasticsearch? Vulnerabilities::UpdateService with an authorized user with proper permissions behaves like calls Vulnerabilities::Statistics::UpdateService calls the service class behaves like calls Vulnerabilities::HistoricalStatistics::UpdateService calls the service class when finding name is longer than 255 characters truncates vulnerability title to have 255 characters when neither severity nor confidence are overridden updates the vulnerability from updated finding (title, severity and confidence only) when severity is overridden updates the vulnerability from updated finding (title and confidence only) when confidence is overridden updates the vulnerability from updated finding (title and severity only) when the `resolved_on_default_branch` kwarg is provided updates the resolved_on_default_branch attribute of vulnerability when the `resolved_on_default_branch` kwarg is not provided does not update the resolved_on_default_branch attribute of vulnerability when security dashboard feature is disabled raises an "access denied" error when user does not have rights to update a vulnerability raises an "access denied" error StoreSecurityReportsWorker #secret_detection_vulnerability_found? is expected to equal true #revoke_secret_detection_token? visibility: :public, token_revocation_enabled: true, secret_detection_vulnerability_found: true is expected to eql true visibility: :public, token_revocation_enabled: true, secret_detection_vulnerability_found: false is expected to eql false visibility: :public, token_revocation_enabled: false, secret_detection_vulnerability_found: true is expected to eql false visibility: :public, token_revocation_enabled: false, secret_detection_vulnerability_found: false is expected to eql false visibility: :private, token_revocation_enabled: true, secret_detection_vulnerability_found: true is expected to eql false visibility: :private, token_revocation_enabled: true, secret_detection_vulnerability_found: false is expected to eql false visibility: :private, token_revocation_enabled: false, secret_detection_vulnerability_found: true is expected to eql false visibility: :private, token_revocation_enabled: false, secret_detection_vulnerability_found: false is expected to eql false visibility: nil, token_revocation_enabled: true, secret_detection_vulnerability_found: true is expected to eql false visibility: nil, token_revocation_enabled: true, secret_detection_vulnerability_found: false is expected to eql false visibility: nil, token_revocation_enabled: false, secret_detection_vulnerability_found: true is expected to eql false visibility: nil, token_revocation_enabled: false, secret_detection_vulnerability_found: false is expected to eql false #perform when at least one security report feature is enabled report_type: :sast scans security reports for token revocation when the `security_report_ingestion_framework` feature is enabled executes IngestReportsService for given pipeline when the `security_report_ingestion_framework` feature is disabled executes StoreReportsService for given pipeline report_type: :dast scans security reports for token revocation when the `security_report_ingestion_framework` feature is enabled executes IngestReportsService for given pipeline when the `security_report_ingestion_framework` feature is disabled executes StoreReportsService for given pipeline report_type: :dependency_scanning scans security reports for token revocation when the `security_report_ingestion_framework` feature is enabled executes IngestReportsService for given pipeline when the `security_report_ingestion_framework` feature is disabled executes StoreReportsService for given pipeline report_type: :container_scanning scans security reports for token revocation when the `security_report_ingestion_framework` feature is enabled executes IngestReportsService for given pipeline when the `security_report_ingestion_framework` feature is disabled executes StoreReportsService for given pipeline report_type: :cluster_image_scanning scans security reports for token revocation when the `security_report_ingestion_framework` feature is enabled executes IngestReportsService for given pipeline when the `security_report_ingestion_framework` feature is disabled executes StoreReportsService for given pipeline when security reports feature is not available does not execute StoreReportsService EpicNoteEntity exposes epic-specific elements behaves like note entity basic note exposes correct elements does not expose elements for specific notes cases exposes author correctly does not expose web_url for author exposes permission fields on current_user :can_resolve_discussion discussion is resolvable user can resolve is true user cannot resolve is false discussion is not resolvable is false when note was edited exposes last_edited_at and last_edited_by elements when note is a system note exposes system_note_icon_name element on a system note sets system_note_icon_name for epic system notes RequirementsManagement::RequirementsFinder #execute when requirements are enabled when project is not set does not return any requirements when project is set returns all requirements in the project when state is set returns matched requirements when iid is set returns matched requirements when last_test_report_state is set returns matched requirements when last_test_report_state is not valid does not filter requirements does not raise error when user can not read requirements in the project does not return any requirements filter by author author_username: "projectusername", filtered_requirements: [:requirement1, :requirement2] returns the requirements filtered author_username: "nonexistent_user", filtered_requirements: [] returns the requirements filtered author_username: nil, filtered_requirements: [:requirement3, :requirement2, :requirement1] returns the requirements filtered author_username: ["projectusername", "otheruser123"], filtered_requirements: [:requirement3, :requirement2, :requirement1] returns the requirements filtered author_username: ["nonexistentuser", "nonsense"], filtered_requirements: [] returns the requirements filtered filter by search query: "nonsense", filtered_requirements: [] returns the requirements filtered query: "serverless", filtered_requirements: [:requirement1] returns the requirements filtered query: "with", filtered_requirements: [:requirement1, :requirement3] returns the requirements filtered query: nil, filtered_requirements: [:requirement3, :requirement2, :requirement1] returns the requirements filtered query: "", filtered_requirements: [:requirement3, :requirement2, :requirement1] returns the requirements filtered ordering sort: "id_asc", ordered_requirements: [:requirement1, :requirement2, :requirement3] returns the requirements ordered sort: "id_desc", ordered_requirements: [:requirement3, :requirement2, :requirement1] returns the requirements ordered sort: "updated_at_asc", ordered_requirements: [:requirement1, :requirement3, :requirement2] returns the requirements ordered sort: "updated_at_desc", ordered_requirements: [:requirement2, :requirement3, :requirement1] returns the requirements ordered sort: "err", ordered_requirements: [:requirement3, :requirement2, :requirement1] returns the requirements ordered when requirements are disabled when project is set does not return any requirements Gitlab::Ci::Reports::LicenseScanning::Report #by_license_name with existing license finds right name without existing license is expected to be nil #merge_dependencies_info! without licensed dependencies does not merge dependency path with licensed dependencies merge path to matched dependencies #violates? when checking for violations using v1 license scan report when a denied license is found in the report is expected to be truthy when a denied license is discovered with a different casing for the name is expected to be truthy when none of the licenses discovered in the report violate the denied policy is expected to be falsey when checking for violations using the v2 license scan reports when a denied license with a SPDX identifier is also in the report is expected to be truthy when a denied license does not have an SPDX identifier because it was provided by an end user is expected to be truthy when none of the licenses discovered match any of the denied software policies is expected to be falsey #diff_with when the other report is not available is expected to be empty when diffing two v1 reports is expected to contain exactly "Apache 2.0" is expected to contain exactly "MIT" and "BSD" is expected to contain exactly "WTFPL" when diffing two v2 reports is expected to contain exactly "Apache 2.0" is expected to contain exactly "MIT" and "BSD" is expected to contain exactly "WTFPL" when diffing a v1 report with a v2 report is expected to contain exactly "Apache 2.0" is expected to contain exactly "MIT" and "BSD" is expected to contain exactly "WTFPL" when diffing a v2 report with a v1 report is expected to contain exactly "Apache 2.0" is expected to contain exactly "MIT" and "BSD" is expected to contain exactly "WTFPL" #empty? is expected to be empty is expected not to be empty .parse_from when parsing a v1 report is expected to eql "1.0" is expected to eq 4 when parsing a v2 report is expected to eql "2.0" is expected to eq 3 Iterations::CreateService for projects behaves like iterations create service iterations feature enabled #execute valid params creates an iteration invalid params does not create an iteration but returns errors no permissions is not allowed iterations feature disabled #execute is not allowed for groups group without cadences behaves like iterations create service iterations feature enabled #execute valid params creates an iteration invalid params does not create an iteration but returns errors no permissions is not allowed iterations feature disabled #execute is not allowed group with a cadence behaves like iterations create service iterations feature enabled #execute valid params creates an iteration invalid params does not create an iteration but returns errors no permissions is not allowed iterations feature disabled #execute is not allowed group with multiple cadences behaves like iterations create service iterations feature enabled #execute valid params creates an iteration invalid params does not create an iteration but returns errors no permissions is not allowed iterations feature disabled #execute is not allowed with specific cadence being passed as param valid params creates an iteration ComplianceManagement::Frameworks::CreateService custom_compliance_frameworks is disabled does not create a new compliance framework responds with an error message custom_compliance_frameworks is enabled namespace has a parent responds with a successful service response creates the new framework in the root namespace when using invalid parameters responds with an error service response when creating a compliance framework for a namespace that current_user is not the owner of responds with an error service response does not create a new compliance framework when pipeline_configuration_full_path parameter is used and feature is not available returns an error when using parameters for a valid compliance framework creates a new compliance framework responds with a successful service response has the expected attributes when compliance pipeline configuration is available sets the pipeline configuration path attribute AuditEventPresenter exposes the date exposes the action exposes the author gets the event author name event authored by a user that exists returns a url event authored by a user that no longer exists when `author_name` is not included in the details does not return a url when `author_name` is included in the details and not in the author_name column shows the author name as provided in the details #target delegates to the model object exposes the ip address exposes the database value by default survives a round trip from JSON exposes the object returns the object path if it exists returns the stored name if it has been deleted returns the object url if it exists returns no object url if it has been deleted DastSiteValidation associations is expected to belong to dast_site_token required: is expected to have many dast_sites validations is expected to be valid is expected to validate that :dast_site_token_id cannot be empty/falsy before_create #set_normalized_url_base normalizes the dast_site_token url scopes by_project_id includes the correct records by_url_base includes the correct records by_most_recent includes the correct records enums is expected to define :validation_strategy as an enum, backed by an integer, with possible values ‹{text_file: 0, header: 1, meta_tag: 2}› #project returns project through dast_site_token #dast_site returns dast_site through dast_site_token #validation_url formats the url correctly #start is always possible to start over records a timestamp transitions to the correct state #retry when state=failed returns true records a timestamp transitions to the correct state otherwise returns false #fail_op when state=failed returns false otherwise returns true records a timestamp transitions to the correct state #pass when state=inprogress returns true records a timestamp transitions to the correct state otherwise returns false VulnerabilityPresenter #scanner returns the scanner for a finding returns empty hash if scanner is missing for a vulnerabilities_finding #scan returns the scan for a finding returns empty hash if scan is missing for a vulnerabilities_finding #remediations returns remediations #location_link_with_raw_path returns the location link in raw format #location_link returns the location link in blob format #blob_path returns the path in blob format returns nil if file is missing in the finding #raw_path returns the path in raw format returns nil if file is missing in the finding #jira_issue_description DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: vulnerabilities/jira_issue_description.md.erb (called from jira_issue_description at /builds/gitlab-org/gitlab/ee/app/presenters/vulnerability_presenter.rb:52) returns the jira description in string format #description when the vulnerability description field is populated returns the description for the vulnerability when the vulnerability description field is empty returns the description for the vulnerability finding Ci::RetryBuildService behaves like restricts access to protected environments when build is related to a protected environment when user does not have access to the environment raises Gitlab::Access::DeniedError when user has access to the environment enqueues the build #clone! when user has ability to execute build dast clones the profile associations when build has secrets clones secrets credit card requirement when credit card is required when project is on free plan when user has credit card behaves like creates a retried build creates a retried build when user does not have credit card raises an exception when feature flag is disabled behaves like creates a retried build creates a retried build when credit card is not required behaves like creates a retried build creates a retried build #execute when the CI quota is exceeded when there are no runners available is expected not to be failed when shared runners are available fails the build with private runners is expected not to be failed Gitlab::ImportExport::Group::RelationFactory epic object does not have the original ID does not have the original group_id has the new group_id excluded attributes are removed from the imported object overridden model does not raise errors behaves like Notes user references when the importer is admin and the note author is not mapped is expected to eq #<User id:1970 @user1757> is expected to include "*By Administrator" and the note author is the importer user is expected to eq #<User id:1972 @user1759> is expected not to include "*By Administrator" and the note author exists in the target instance is expected to eq #<User id:1974 @user1761> is expected not to include "*By Administrator" when the importer is not admin and the note author is not mapped is expected to eq #<User id:1978 @user1765> is expected to include "*By Administrator" and the note author is the importer user is expected to eq #<User id:1980 @user1767> is expected to include "*By Administrator" and the note author exists in the target instance is expected to eq #<User id:1983 @user1770> is expected to include "*By Administrator" SystemNotes::MergeTrainService #enqueue posts the 'merge train' system note behaves like a system note has the correct attributes when index of the merge request is not zero posts the 'merge train' system note #cancel posts the 'merge train' system note behaves like a system note has the correct attributes #abort posts the 'merge train' system note behaves like a system note has the correct attributes behaves like creates a removed merge train TODO creates Todo of MERGE_TRAIN_REMOVED #add_when_pipeline_succeeds posts the 'add to merge train when pipeline succeeds' system note behaves like a system note has the correct attributes #cancel_add_when_pipeline_succeeds posts the 'add to merge train when pipeline succeeds' system note behaves like a system note has the correct attributes #abort_add_when_pipeline_succeeds posts the 'add to merge train when pipeline succeeds' system note behaves like a system note has the correct attributes behaves like creates a removed merge train TODO creates Todo of MERGE_TRAIN_REMOVED Issuable::CommonSystemNotesService on issuable update when weight is changed creates a resource weight event when health status is updated when setting a health_status creates system note when health status is removed creates system note when issuable is an epic creates 2 system notes with the correct content behaves like issuable iteration changed when iteration is changed creates a resource iteration event on issuable create creates a resource weight event does not create a system note behaves like issuable iteration changed when iteration is changed creates a resource iteration event EE::LockHelper #lock_file_link there is no locks returns Lock with no toltip returns Lock button with tooltip exact lock returns Unlock with no toltip returns Lock button with tooltip upstream lock returns Lock with no toltip returns Lock button with tooltip downstream lock returns Lock with no toltip returns Lock button with tooltip Projects::GitlabProjectsImportService #execute creates template export job if project saved and custom template exists sets custom template import strategy after export does not create export job if project not saved behaves like gitlab projects import validations with an invalid path returns an invalid project with a valid path creates a project override params stores them as import data when passed when there is a project with the same path does not create the project when overwrite param is set creates a project in a temporary full_path Types::Admin::CloudLicenses::CurrentLicenseType is expected to eq "CurrentLicense" is expected to include graphql fields "last_sync", "billable_users_count", "maximum_user_count", and "users_over_license_count" with license type fields is expected to include graphql fields "id", "type", "plan", "name", "email", "company", "starts_at", "expires_at", "block_changes_at", "activated_at", and "users_in_license_count" field values id is expected to eq #<GlobalID:0x00007f9e9cc6e868 @uri=#<URI::GID gid://gitlab/License/86>> type is expected to eq "cloud" plan is expected to eq "ultimate" name is expected to eq "User Example" email is expected to eq "user@example.com" company is expected to eq "Example Inc." starts_at is expected to eq Tue, 13 Jul 2021 expires_at is expected to eq Wed, 13 Jul 2022 block_changes_at is expected to eq Sat, 13 Aug 2022 activated_at is expected to eq Fri, 13 Aug 2021 18:41:24.000000000 +0000 users_in_license_count is expected to eq 25 #users_over_license_count returns the number of users over the paid users in the license when license is for a trial returns 0 field values last_sync is expected to eq 2021-10-13 18:41:23.931300311 +0000 billable_users_count is expected to eq 10 maximum_user_count is expected to eq 20 API-Fuzzing.latest.gitlab-ci.yml is expected not to be nil the template file uses the production repository doesn't use the staging repository the created pipeline when no stages when project has no stages includes no jobs when stages includes fuzz when project has no license includes job to display error when project has Ultimate license by default includes a job when configured with HAR includes job when configured with OpenAPI includes job when configured with Postman includes job when API_FUZZING_DISABLED=1 includes no jobs Clusters::ClusterPresenter #health_data with project cluster behaves like cluster health data is expected to include {:"metrics-endpoint" => "/namespace2090/project2142/-/clusters/11/metrics.json", :"alerts-endpoint" => "/", :"prometheus-alerts-available" => "true"} when prometheus_computed_alerts feature is disabled alerts-endpoint is nil prometheus-alerts-available is nil with group cluster behaves like cluster health data is expected to include {:"metrics-endpoint" => "/groups/group514/-/clusters/20/metrics.json", :"alerts-endpoint" => "/", :"prometheus-alerts-available" => "true"} when prometheus_computed_alerts feature is disabled alerts-endpoint is nil prometheus-alerts-available is nil NetworkPolicies::ResourcesService #execute returns success response with policies from the deployment namespace behaves like tracking unique hll events tracks unique event without deployment_platform returns error response with Kubeclient::HttpError related to network policies returns error response with Kubeclient::HttpError related to cilium network policies returns error response without environment_id returns success response with policies from two deployment namespaces with a partial successful response returns error response for the platforms with failures returns error response with the policies for all successful platforms SamlGroupLink associations is expected to belong to group required: validations is expected to validate that :group cannot be empty/falsy is expected to validate that :access_level cannot be empty/falsy is expected to validate that :saml_group_name cannot be empty/falsy is expected to validate that the length of :saml_group_name is at most 255 is expected to define :access_level as an enum, backed by an integer, with possible values ‹{Guest: 10, Reporter: 20, Developer: 30, Maintainer: 40, Owner: 50}› group name uniqueness is expected to validate that :saml_group_name is case-sensitively unique within the scope of :group_id saml_group_name with whitespaces saves group link name without whitespace .by_id_and_group_id finds the group link with multiple groups and group links finds group links within the given groups does not find group links outside the given groups .by_saml_group_name finds the group link with multiple groups and group links finds group links within the given groups Analytics::MergeRequestMetricsRefresh #execute updates metric via update_metric! method when metric is already present does not update metric updates metric when forced #execute_async schedules CodeReviewMetricsWorker with params Iterations::RollOverIssuesWorker is labeled as idempotent performs multiple times sequentially without raising an exception #perform when iteration cadence is not automatic exits early when roll-over option on iteration cadence is not enabled exits early when roll-over option on iteration cadence is enabled avoids N+1 database queries when service fails to create future iteration logs error when cadence has upcoming iteration filters out any iterations that are not closed when cadence does not have upcoming iteration creates a new iteration to roll-over issues when service fails to create future iteration logs error and exits early with batches run in batches Types::IssueType is expected to have graphql field :epic is expected to have graphql field :iteration is expected to have graphql field :weight is expected to have graphql field :health_status is expected to have graphql field :blocking_count is expected to have graphql field :blocked is expected to have graphql field :blocked_by_count is expected to have graphql field :blocked_by_issues is expected to have graphql field :sla_due_at is expected to have graphql field :metric_images N+1 queries group issues behaves like avoids N+1 queries on blocked is expected not to exceed query limit 5 project issues behaves like avoids N+1 queries on blocked is expected not to exceed query limit 7 Gitlab::Ci::Parsers::Security::Validators::SchemaValidator report_type: :cluster_image_scanning, expected_errors: ["root is missing required keys: vulnerabilities"], valid_data: {"version"=>"10.0.0", "vulnerabilities"=>[]} #valid? when given data is invalid according to the schema is expected to be falsey when given data is valid according to the schema is expected to be truthy #errors is expected to eq ["root is missing required keys: vulnerabilities"] report_type: :container_scanning, expected_errors: ["root is missing required keys: vulnerabilities"], valid_data: {"version"=>"10.0.0", "vulnerabilities"=>[]} #valid? when given data is invalid according to the schema is expected to be falsey when given data is valid according to the schema is expected to be truthy #errors is expected to eq ["root is missing required keys: vulnerabilities"] report_type: :coverage_fuzzing, expected_errors: ["root is missing required keys: vulnerabilities"], valid_data: {"version"=>"10.0.0", "vulnerabilities"=>[]} #valid? when given data is invalid according to the schema is expected to be falsey when given data is valid according to the schema is expected to be truthy #errors is expected to eq ["root is missing required keys: vulnerabilities"] report_type: :dast, expected_errors: ["root is missing required keys: vulnerabilities"], valid_data: {"version"=>"10.0.0", "vulnerabilities"=>[]} #valid? when given data is invalid according to the schema is expected to be falsey when given data is valid according to the schema is expected to be truthy #errors is expected to eq ["root is missing required keys: vulnerabilities"] report_type: :dependency_scanning, expected_errors: ["root is missing required keys: dependency_files, vulnerabilities"], valid_data: {"version"=>"10.0.0", "vulnerabilities"=>[], "dependency_files"=>[]} #valid? when given data is invalid according to the schema is expected to be falsey when given data is valid according to the schema is expected to be truthy #errors is expected to eq ["root is missing required keys: dependency_files, vulnerabilities"] Analytics::CycleAnalytics::ProjectStage when creating label based event when the label id is not passed returns validation error when `start_event_label_id` is missing returns validation error when `end_event_label_id` is missing when group label is defined on the root group succeeds when subgroup is given succeeds when label is defined for a different group returns validation for `start_event_label_id` returns validation for `end_event_label_id` when `ProjectLabel is given raises error when `ProjectLabel` is given for `start_event_label` raises error when `ProjectLabel` is given for `end_event_label` project without group returns validation error when end event is label based returns validation error when start event is label based NewEpicWorker #perform when an epic not found does not call Services logs an error when a user not found does not call Services logs an error with a user when the new epic author is not confirmed behaves like a new epic where the current user cannot trigger notifications does not create a notification for the mentioned user when the new epic author is blocked behaves like a new epic where the current user cannot trigger notifications does not create a notification for the mentioned user when the new epic author is a ghost behaves like a new epic where the current user cannot trigger notifications does not create a notification for the mentioned user when everything is ok creates an event user watches group creates a notification for watcher mention creates a notification for the mentioned user SyncSeatLinkRequestWorker #perform makes an HTTP POST request with passed params when response contains a license when there is no previous license behaves like successful license creation persists the new license when there is a previous license when it is a cloud license when the current license key does not match the one returned from sync creates a new license when the current license key matches the one returned from sync reuses the current license and updates the last_synced_at when persisting fails WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #<ActiveRecord::RecordInvalid: Validation failed: The license key is invalid. Make sure it is exactly as you received it from GitLab Inc.>. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/ee/spec/workers/sync_seat_link_request_worker_spec.rb:110:in `block (7 levels) in <top (required)>'. does not delete the current license and logs error when it is not a cloud license behaves like successful license creation persists the new license when response contains reconciliation dates saves the reconciliation dates when an upcoming_reconciliation already exists updates the upcoming_reconciliation behaves like unsuccessful request when the request is not successful raises an error with the expected message Analytics::DevopsAdoption::Snapshot is expected to belong to namespace required: is expected to validate that :namespace cannot be empty/falsy is expected to validate that :recorded_at cannot be empty/falsy is expected to validate that :end_time cannot be empty/falsy .latest_for_namespace_ids returns for previous month finalized snapshot for the given namespace ids based on snapshot end_time .for_month returns all snapshots where end_time equals given datetime end of month .not_finalized returns all snapshots which were recorded earlier than snapshot end_time .finalized returns all snapshots which were recorded later than snapshot end_time .for_timespan returns snapshots for given timespan .for_namespaces returns all snapshots with given namespaces #start_time is start of the month of end_time Gitlab::UsageDataCounters::IssueActivityUniqueCounter for Issue health status changed actions behaves like a daily tracked issuable event is expected to be truthy does not track edit actions if author is not present for Issue iteration changed actions behaves like a daily tracked issuable event is expected to be truthy does not track edit actions if author is not present for Issue weight changed actions behaves like a daily tracked issuable event is expected to be truthy does not track edit actions if author is not present for Issue added to epic actions behaves like a daily tracked issuable event is expected to be truthy does not track edit actions if author is not present for Issue removed from epic actions behaves like a daily tracked issuable event is expected to be truthy does not track edit actions if author is not present for Issue changed epic actions behaves like a daily tracked issuable event is expected to be truthy does not track edit actions if author is not present EE::AuthHelper button_based_providers excludes group_saml providers_for_base_controller excludes group_saml form_based_providers includes kerberos provider form_based_auth_provider_has_active_class? selects main LDAP server form_based_providers with smartcard_auth feature flag off does not include smartcard provider with smartcard_auth feature flag on includes smartcard provider smartcard_enabled_for_ldap? LDAP server with optional smartcard auth returns true returns false with required flag LDAP server with required smartcard auth returns true returns true with required flag LDAP server with disabled smartcard auth returns false returns false with required flag no matching LDAP server returns false smartcard_login_button_classes when smartcard auth is optional returns the correct CSS classes when smartcard auth is required returns the correct CSS classes Clusters::AgentAuthorizationsFinder #execute feature is not available is expected to be empty project authorizations agent configuration project does not share a root namespace with the given project is expected to be empty with project authorizations present is expected to contain exactly #<Clusters::Agents::ProjectAuthorization id: 2, project_id: 1182, agent_id: 2, config: {"default_namespace"=>"production"}> with overlapping authorizations is expected to contain exactly #<Clusters::Agents::ProjectAuthorization id: 3, project_id: 1182, agent_id: 4, config: {"default_namespace"=>"production"}> implicit authorizations returns authorizations for agents directly associated with the project authorized groups agent configuration project is outside the requesting project hierarchy is expected to be empty multiple agents are authorized for the same group returns authorizations for all agents a single agent is authorized to more than one matching group picks the authorization for the closest group to the requesting project ApprovalWrappedCodeOwnerRule #approvals_required feature_enabled: true, optional_section: false, approver_count: 0, expected_required_approvals: 0 when project.code_owner_approval_required_available? is true when the project doesn't require code owner approval on all MRs returns the expected number of approvals for protected_branches that do require approval when project.code_owner_approval_required_available? is falsy returns nil feature_enabled: true, optional_section: false, approver_count: 2, expected_required_approvals: 1 when project.code_owner_approval_required_available? is true when the project doesn't require code owner approval on all MRs returns the expected number of approvals for protected_branches that do require approval when project.code_owner_approval_required_available? is falsy returns nil feature_enabled: true, optional_section: true, approver_count: 2, expected_required_approvals: 0 when project.code_owner_approval_required_available? is true when the project doesn't require code owner approval on all MRs returns the expected number of approvals for protected_branches that do require approval when project.code_owner_approval_required_available? is falsy returns nil feature_enabled: false, optional_section: false, approver_count: 2, expected_required_approvals: 0 when project.code_owner_approval_required_available? is true when the project doesn't require code owner approval on all MRs returns the expected number of approvals for protected_branches that do require approval when project.code_owner_approval_required_available? is falsy returns nil feature_enabled: false, optional_section: false, approver_count: 0, expected_required_approvals: 0 when project.code_owner_approval_required_available? is true when the project doesn't require code owner approval on all MRs returns the expected number of approvals for protected_branches that do require approval when project.code_owner_approval_required_available? is falsy returns nil Gitlab::SeatLinkData #initialize when passing no params returns object with default attributes set when passing params returns object with given attributes set when passing date param only returns object with attributes set using given date .to_json is expected to delegate #to_json to the #data object returns payload data as a JSON string when instance has no current license returns payload data as a JSON string #sync when ready to sync seats performs the sync when not ready to sync seats does not perform the sync #should_sync_seats? when all the pre conditions are valid is expected to eq true when license key is missing is expected to be falsey when expires_at is not set is expected to be falsey when license is trial is expected to be falsey when timestamp is out of the range is expected to eq true when historical data not found is expected to eq true IssuablesAnalytics #data when issuable relation is ordered by priority generates chart data correctly when months_back parameter is nil returns a hash containing the issues count created in the past 12 months when months_back parameter is present returns a hash containing the issues count created in the past x months AuditEvents::RepositoryPushAuditEventService #attributes when branch push returns audit event attributes when tag push returns audit event attributes #enabled? when not licensed and not enabled is expected to equal false when licensed but not enabled is expected to equal false when licensed and enabled is expected to equal true Mutations::MergeRequests::SetAssignees behaves like a multi-assignable resource #resolve when the user can update the resource sets the assignees removes assignees not in the list when passing "append" as true does not remove assignees not in the list AuditEvents::ExportCsvService includes the appropriate headers data verification ID Author ID Author Name Entity ID Entity Type Entity Path Target ID Target Type Target Details Action IP Address Created At (UTC) Resolvers::Vulnerabilities::IssueLinksResolver #ready? when the link_type filter is given but is not `CREATED` or `RELATED` when the filter is a string is expected to raise Gitlab::Graphql::Errors::ArgumentError with "Provide a valid vulnerability issue link type" when the filter is a number is expected to raise Gitlab::Graphql::Errors::ArgumentError when the filter is a symbol is expected to raise Gitlab::Graphql::Errors::ArgumentError #resolve when there is no filter given is expected to contain exactly #<Vulnerabilities::IssueLink id: 1, vulnerability_id: 48, issue_id: 181, link_type: "related", created_at: "2021-10-13 18:42:32.571410153 +0000", updated_at: "2021-10-13 18:42:32.571410153 +0000"> and #<Vulnerabilities::IssueLink id: 2, vulnerability_id: 48, issue_id: 182, link_type: "created", created_at: "2021-10-13 18:42:32.825015505 +0000", updated_at: "2021-10-13 18:42:32.825015505 +0000"> is expected not to raise Exception when the link_type filter is given when the filter is `CREATED` is expected to contain exactly #<Vulnerabilities::IssueLink id: 2, vulnerability_id: 48, issue_id: 182, link_type: "created", created_at: "2021-10-13 18:42:32.825015505 +0000", updated_at: "2021-10-13 18:42:32.825015505 +0000"> is expected not to raise Exception when the filter is `RELATED` is expected to contain exactly #<Vulnerabilities::IssueLink id: 1, vulnerability_id: 48, issue_id: 181, link_type: "related", created_at: "2021-10-13 18:42:32.571410153 +0000", updated_at: "2021-10-13 18:42:32.571410153 +0000"> is expected not to raise Exception StatusPage::IncidentCommentEntity exposes JSON fields field #note behaves like reference links for status page with public project with public issue shows link anchor with HTML data attributes with confidential issue redacts link anchor and HTML data attributes with private project with public issue redacts link anchor and HTML data attributes mentions with username anonymizes mention with arbitrary username shows the mention with @all anonymizes mention with groups group_visibility: :public anonymizes mention group_visibility: :internal anonymizes mention group_visibility: :private anonymizes mention behaves like img upload tags for status page converts to html Gitlab::ContributionAnalytics::DataCollector #totals collects event counts grouped by users by calling #base_query deriving various counts from #raw_counts extracts correct counts from raw_counts for #push_by_author_count for #total_push_author_count for #total_push_count for #total_merge_requests_closed_count for #total_merge_requests_created_count for #total_merge_requests_merged_count for #total_merge_requests_approved_count for #total_issues_closed_count handles empty result AwardEmojis::DestroyService #execute publish to status page with recognized emoji triggers status page publish with unrecognized emoji does not trigger status page publish service tracking emoji removing when awardable is an epic tracks usage when awardable is not an epic does not track epic emoji awarding ComplianceManagement::Framework validation is expected to validate that :namespace_id is case-sensitively unique within the scope of :name is expected to validate that :name cannot be empty/falsy is expected to validate that the length of :name is at most 255 is expected to validate that the length of :description is at most 255 is expected to validate that the length of :color is at most 10 is expected to validate that :regulated cannot be empty/falsy is expected to validate that the length of :pipeline_configuration_full_path is at most 255 color with whitespace strips whitespace Resolvers::ScanExecutionPolicyResolver #resolve when feature is not licensed raises ResourceNotAvailable error when feature is licensed returns scan execution policies when user is unauthorized raises ResourceNotAvailable error Groups::RepositoryStorageMove behaves like handles repository moves associations is expected to belong to container required: validations is expected to validate that :container cannot be empty/falsy is expected to validate that :state cannot be empty/falsy is expected to validate that :source_storage_name cannot be empty/falsy is expected to validate that :destination_storage_name cannot be empty/falsy source_storage_name inclusion does not allow repository storages that don't match a label in the configuration destination_storage_name inclusion does not allow repository storages that don't match a label in the configuration container repository read-only does not allow the container to be read-only on create defaults destination_storage_name can pick new storage state transitions when in the default state and transits to scheduled triggers the corresponding repository storage worker when the transition fails does not trigger the corresponding repository storage worker and adds an error and transits to started does not allow the transition when started and transits to replicated marks the container as writable updates the updated_at column of the container and transits to failed marks the container as writable Vulnerabilities::FindingSignature associations is expected to belong to finding class_name => Vulnerabilities::Finding required: validations is expected to validate that :finding cannot be empty/falsy .by_project is expected to eq [#<Vulnerabilities::FindingSignature id: 2, finding_id: 87, created_at: "2021-10-13 18:42:48.69460026...000", algorithm_type: "hash", signature_sha: ".;\x01\xAA\xEB\xBCig\xAD\xBAd\xBB\xC6\x0F\xB3EaE<\\">] .by_signature_sha is expected to eq [#<Vulnerabilities::FindingSignature id: 3, finding_id: 88, created_at: "2021-10-13 18:42:49.81353032...3530325 +0000", algorithm_type: "hash", signature_sha: "~!\x02\xE9\x04@v?YQ\xA1}\x0F\x94U\x06>lUC">] Analytics::CycleAnalytics::Stages::DeleteService behaves like permission check for Value Stream Analytics Stage services when user has no access is expected to be error is expected to eq :forbidden when license is missing is expected to be error is expected to eq :forbidden when persisted stage is given is expected to be success deletes the stage disallows deletion when default stage is given is expected not to be success is expected to eq :forbidden IterationNote .from_event behaves like a synthetic note behaves like a system note has the correct attributes #discussion_id returns the expected discussion id with a remove iteration event creates the expected note projects/security/dast_profiles/show renders Vue app root passes new dast saved scan path passes new dast site profile path passes new dast scanner profile path passes project's full path Cluster-Image-Scanning.gitlab-ci.yml the created pipeline when project has no license includes no jobs when project has Ultimate license by default includes job with CIS_MAJOR_VERSION greater than 3 includes job when CLUSTER_IMAGE_SCANNING_DISABLED=1 includes no jobs ServicePing::PermitDataCategoriesService #execute with out current license when usage ping setting is set to true returns all categories when usage ping setting is set to false returns no categories with current license when usage ping setting is set to true and license has operational_metrics_enabled set to true returns all categories when User.single_user&.requires_usage_stats_consent? is required returns no categories and license has operational_metrics_enabled set to false returns all categories when usage ping setting is set to false and license has operational_metrics_enabled set to true returns all categories and license has operational_metrics_enabled set to false returns all categories IncidentManagement::IssuableEscalationStatus validations when policy and escalation start time are both provided is expected to be valid when neither policy and escalation start time are provided is expected to be valid when escalation start time is provided without a policy is invalid when policy is provided without an escalation start time is invalid #trigger with escalation policy updates escalations_started_at without escalation policy does not change escalations_started_at acknowledge does not change escalations_started_at ignore does not change escalations_started_at resolve does not change escalations_started_at Commit behaves like a mentionable with EE-specific mentions extracts references from its reference property creates cross-reference notes layouts/application layouts/_user_notification_dot when we show the notification dot DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: shared/_logo.svg (called from brand_header_logo at /builds/gitlab-org/gitlab/app/helpers/appearances_helper.rb:42) DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: shared/_logo.svg (called from brand_header_logo at /builds/gitlab-org/gitlab/app/helpers/appearances_helper.rb:42) DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: shared/_logo_type.svg (called from brand_header_logo_type at /builds/gitlab-org/gitlab/app/helpers/appearances_helper.rb:49) DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: shared/_logo_type.svg (called from brand_header_logo_type at /builds/gitlab-org/gitlab/app/helpers/appearances_helper.rb:49) has the notification dot when we do not show the notification dot does not have the notification dot Gitlab::Ci::YamlProcessor Bridge Needs needs upstream pipeline creates jobs with valid specification needs both job and pipeline creates jobs with valid specification needs cross projects artifacts creates jobs with valid specification needs cross projects artifacts and pipelines returns errors with invalid needs cross projects artifacts returns errors cross pipeline needs when job is not present returns an error with cross project and cross pipeline needs returns a valid specification dast configuration creates a job with a valid specification secrets returns secrets info Analytics::CodeReviewMetricsWorker #perform with code review analytics feature available executes operation for provided MR for invalid MR id does not execute operation for invalid operation raises an error Groups::RecentMergeRequestsCountService #relation_for_count uses the MergeRequestsFinder to scope issues #count only returns the count of recent MRs when user does not have access to some MRs caches per-user so users will see the correct value does not include those MRs ProjectAlias is expected to belong to project required: is expected to validate that :project cannot be empty/falsy is expected to validate that :name cannot be empty/falsy is expected to validate that :name is case-sensitively unique is expected not to allow :name to be ‹"/foo"› is expected not to allow :name to be ‹"foo/foo"› is expected not to allow :name to be ‹"foo.git"› Gitlab::Auth::Smartcard::SANExtension #alternate_emails without SAN extensions is expected to be empty with SAN extensions single extension is expected to match [{6=>"https://gitlab.example.com"}] multiple entries using ASN1 is expected to match [{1=>"my@other.address", 6=>"1.2.3.4"}] custom General Name can't use custom alt names that are not part of general names #email_identity is expected to eq "singleEntryEmail@some.domain" multiple email identity SAN entries alternate name email for GitLab defined in the certificate is expected to eq "newemail@some.domain" inappropriate URI format is expected to be nil no alternate name defined to use with GitLab is expected to be nil when the host is partially matched to the URI is expected to be nil Vulnerabilities::DestroyDismissalFeedbackService #execute without necessary permissions raises `Gitlab::Access::AccessDeniedError` error with necessary permissions destroys the feedback records associated with the findings of the given vulnerability VulnerabilityExports::CreateService #execute when security dashboard feature is disabled raises an "access denied" error when security dashboard feature is enabled does not raise an "access denied" error creates new Vulnerabilities::Export schedules ::VulnerabilityExports::ExportWorker background job returns new Vulnerabilities::Export with project and format assigned Gitlab::Ci::Config::Entry::Secret validation when entry config value is correct when file setting is not defined behaves like configures secrets #value returns secret configuration #valid? is valid when file setting is defined behaves like configures secrets #value returns secret configuration #valid? is valid when entry value is not correct #errors when there is an unknown key present reports error when there is no vault entry reports error Security::StoreScansService .execute delegates the call to an instance of `Security::StoreScansService` #execute executes Security::StoreGroupedScansService for each group of artifacts if the feature is available when the pipeline is for the default branch schedules the `StoreSecurityReportsWorker` when the pipeline is not for the default branch does not schedule the `StoreSecurityReportsWorker` Resolvers::Ci::CodeCoverageSummaryResolver #resolve when project has coverage returns coverage summary for the project as a batch when project does not have coverage returns nil Types::DastScannerProfileType is expected to eq "DastScannerProfile" is expected to require graphql authorizations :read_on_demand_dast_scan is expected to have graphql fields :id, :profileName, :spiderTimeout, :targetTimeout, :editPath, :scanType, :useAjaxSpider, :showDebugMessages, and :referencedInSecurityPolicies dast_scanner_profiles profile_name field is expected to eq "Digital Portable Component 1cb5f9b9 - 2" when security policies are enabled only calls Gitaly twice when multiple profiles are present SystemNotes::VulnerabilitiesService #change_vulnerability_state state changed to dismissed creates the note text correctly behaves like a system note has the correct attributes state changed to resolved creates the note text correctly behaves like a system note has the correct attributes state changed to confirmed creates the note text correctly behaves like a system note has the correct attributes GitlabSubscriptions::PlanUpgradeService #execute when the response is a failure returns nil values when the response is successful eligible: true, assisted_id: "111", free_id: "222", plan_id: "111" returns the correct values eligible: true, assisted_id: nil, free_id: "222", plan_id: "222" returns the correct values eligible: true, assisted_id: "111", free_id: nil, plan_id: "111" returns the correct values eligible: true, assisted_id: nil, free_id: nil, plan_id: nil returns the correct values eligible: false, assisted_id: "111", free_id: "222", plan_id: "111" returns the correct values eligible: false, assisted_id: "111", free_id: nil, plan_id: "111" returns the correct values eligible: false, assisted_id: nil, free_id: "222", plan_id: "222" returns the correct values eligible: nil, assisted_id: "111", free_id: "222", plan_id: nil returns the correct values Mutations::GitlabSubscriptions::Activate #resolve when successful adds the issue to the epic when failure returns errors when non-admin raises errors Gitlab::GitAccessSnippet #check protocol_name: "ssh" is expected to be a kind of Gitlab::GitAccessResult::Success protocol_name: "web" is expected to be a kind of Gitlab::GitAccessResult::Success protocol_name: "http" is expected to be a kind of Gitlab::GitAccessResult::Success protocol_name: "https" is expected to be a kind of Gitlab::GitAccessResult::Success VulnerabilityUserMention associations is expected to belong to vulnerability required: is expected to belong to note required: behaves like has user mentions #has_mentions? when no mentions returns false when mentioned_users_ids not null returns true when mentioned projects returns true when mentioned groups returns true Security::StoreFindingsMetadataService #execute when the given security scan already has findings does not create new findings in database when the given security scan does not have any findings creates the security finding entries in database when the scanners already exist in the database does not create new scanner entries in the database when the scanner does not exist in the database creates new scanner entry in the database Boards::EpicBoards::DestroyService behaves like board destroy service #execute when there is more than one board destroys the board when there is only one board does not remove board ProjectsFinder #execute filter by plans with ultimate plan is expected to contain exactly #<Project id:1255 namespace2211/project2251>> and #<Project id:1256 namespace2212/project2252>> with multiple plans is expected to contain exactly #<Project id:1255 namespace2211/project2251>>, #<Project id:1256 namespace2212/project2252>>, and #<Project id:1257 namespace2213/project2253>> with other plans is expected to be empty without plans is expected to contain exactly #<Project id:1255 namespace2211/project2251>>, #<Project id:1256 namespace2212/project2252>>, #<Project id:1257 namespace2213/project2253>>, and #<Project id:1258 namespace2214/project2254>> with empty plans is expected to contain exactly #<Project id:1255 namespace2211/project2251>>, #<Project id:1256 namespace2212/project2252>>, #<Project id:1257 namespace2213/project2253>>, and #<Project id:1258 namespace2214/project2254>> filter by aimed for deletion is expected to contain exactly #<Project id:1259 namespace2215/project2255>> Gitlab::Ci::Config::Entry::Job .nodes when filtering all the entry/node names is expected to include :dast_configuration and :secrets validations when entry value is correct when has secrets behaves like a valid entry #valid? is valid when has dast_configuration behaves like a valid entry #valid? is valid when entry value is not correct when has needs when needs is bridge type behaves like an invalid entry reports error when has invalid dast_configuration behaves like an invalid entry reports error when has invalid secrets behaves like an invalid entry reports error dast_configuration includes dast_profile value secrets includes secrets value SecurityHelper #instance_security_dashboard_data returns vulnerability, project, feedback, asset, and docs paths for the instance security dashboard #instance_security_settings_data when user is not auditor is expected to eq {:is_auditor=>"false"} when user is auditor is expected to eq {:is_auditor=>"true"} Gitlab::Verify::Uploads includes uploads in object storage Boards::EpicBoardsFinder #execute finds all epic boards in the group ordered by case-insensitive name when include_ancestor_groups parameter is set finds all epic boards in the group or ancestor groups when ID parameter is set finds epic board by ID AuditEvents::ProtectedBranchAuditEventService #security_event when a protected_branch is add creates an event logs to a file with the provided details when a protected_branch is remove creates an event logs to a file with the provided details when not licensed doesn't create an event or log to a file Resolvers::EpicIssuesResolver is expected to have nullable GraphQL type EpicIssueConnection #resolve finds all epic issues finds only epic issues that user can read StatusPage::PublishWorker #perform behaves like an idempotent worker is labeled as idempotent performs multiple times sequentially without raising an exception when service succeeds execute the service with unknown project does not execute the service when service returns an error succeeds and logs the error when service raises an exception re-raises exception Issues::DuplicateService #execute relates the duplicate issues projects/_merge_request_status_checks_settings renders the settings title renders the settings description renders the settings app element renders the loading spinner GroupSaml::SignUpService #execute creates new user links new user to oauth identity when group has enforced_group_managed_accounts enabled creates new user managed by given group ProjectRepositoryState assocations is expected to belong to project required: inverse_of => repository_state validations is expected to validate that :project cannot be empty/falsy is expected to validate that :project is case-sensitively unique Mutations::Vulnerabilities::Dismiss #resolve when the user can dismiss the vulnerability when user does not have access to the project raises an error with invalid params raises an error when user has access to the project returns the dismissed vulnerability Issues::CloseService sync requirement behaves like sync requirement with issue state when skip_authorization is false does not change issue state when skip_authorization is true keeps requirement and requirement issue in sync when issue is not of requirement_type does not sync state when saving requirement fails does not change requirement and issue states logs error Integrations::Github::RemoteProject #api_url uses github.com API endpoint when git repo mirror URL is used excludes auth token set as username for a custom host is extracted from the url #owner is extracted from the url #repository_name is extracted from the url when https git URL is used doesn't include '.git' at the end when project sub-route accidentally used ignores the sub-route Security::SecurityOrchestrationPolicies::ScanPipelineService #execute when there is an invalid action does not create scan job when there is only one action behaves like creates scan jobs returns created jobs when there are multiple actions behaves like creates scan jobs returns created jobs when there are valid and invalid actions behaves like creates scan jobs returns created jobs Gitlab::Auth::Ldap::Config .available_providers when multiple LDAP servers are licensed returns multiple configured providers ._available_servers when no database connection occurs returns an empty array Gitlab::SearchResults #projects avoid N+1 queries BoardSimpleEntity #milestone has no `milestone` attribute has `milestone` attribute #iteration has no `iteration` attribute has `iteration` attribute BlobEntity as json exposes needed attributes FeatureFlagIssues::DestroyService #execute unlinks the feature flag and the issue does not unlink the feature flag and the issue when the user cannot admin the feature flag Gitlab::Database::Connection #geo_uncached_queries when no block is given raises error when the current node is a primary wraps the block in an ActiveRecord::Base.uncached block when the current node is a secondary wraps the block in a Geo::TrackingBase.uncached block and an ActiveRecord::Base.uncached block when there is no current node wraps the block in an ActiveRecord::Base.uncached block IterationsUpdateStatusWorker #perform schedules an issues roll-over job when iterations with passed due dates are in `upcoming`, `current` or `closes` states updates the status of iterations that require it in batches run in batches Groups::ImportExport::ExportService #execute exports group and descendants wiki repositories when ndjson is not enabled does not export group wiki repositories projects/merge_requests/show.html.haml when merge request is created by a GitLab team member renders an employee badge next to their name AlertManagement::Alerts::UpdateService #execute when a status is included when moving from a closed status to an open status behaves like creates an escalation is expected to receive perform_async(a kind of Integer) 1 time moving from an open status to closed status is expected to change `target.pending_escalations.reload.count` from 1 to 0 moving from a status of the same group does not create or delete escalations VulnerabilityExternalIssueLinks::DestroyService deletes the specified vulnerability-external issue link EE::Namespace::RootStorageStatistics #recalculate! when namespace belongs to a group aggregates namespace statistics works when there are no namespace statistics when namespace belong to a user does not aggregate namespace statistics EE::Ci::PipelineEditorHelper #js_pipeline_editor_data with licensed feature returns ee specific values without licensed feature does not return the API fuzzing path RepositoryImportWorker updates the error on custom project template Import/Export when project is a mirror adds mirror in front of the mirror scheduler queue sidekiq options disables retry disables dead sets default status expiration Applications::CreateService #audit_event_service instance application creates AuditEvent with correct entity type group application creates AuditEvent with correct entity type user application creates AuditEvent with correct entity type IncidentManagement::OncallSchedulesFinder #execute when feature is available when user has permissions returns project on-call schedules when iid given returns an on-call schedule for iid when user has no permissions is expected to eq #<ActiveRecord::Relation []> when feature is not avaiable is expected to eq #<ActiveRecord::Relation []> Security::ScanPolicy read_scan when the security_dashboard feature is enabled when the current user has developer access to the scan's project is expected to be allowed :read_scan when the current user does not have developer access to the scan's project is expected to be disallowed :read_scan when the security_dashboard feature is disabled is expected to be disallowed :read_scan Vulnerabilities::Finding::Evidence::SupportingMessage is expected to belong to evidence class_name => Vulnerabilities::Finding::Evidence inverse_of => supporting_messages required: true is expected to have one request class_name => Vulnerabilities::Finding::Evidence::Request inverse_of => supporting_message is expected to have one response class_name => Vulnerabilities::Finding::Evidence::Response inverse_of => supporting_message is expected to validate that the length of :name is at most 2048 is expected to validate that :name cannot be empty/falsy Licenses::DestroyService raises an error if license is nil raises an error if the user is not an admin when admin mode is enabled destroys a license with cloud license destroys a license when admin mode is disabled raises not allowed error AppSec::Dast::SiteProfiles::Audit::UpdateService #execute audits the changes in the given properties omits the values for secret properties omits the values for properties too long to be displayed sorts properties that are arrays before comparing them ProjectAuthorization .visible_to_user_and_access_level returns the records for given user that have at least the given access Types::NamespaceType has specific fields Customized fields returns the expected values for customized fields defined in NamespaceType DesignManagement::DeleteDesignsService #execute when service is successful calls repository#log_geo_updated_event when service errors does not call repository#log_geo_updated_event Elastic::ApplicationVersionedSearch .elastic_index_dependant_association adds the associations to elastic_index_dependants when the association does not exist raises an error when the class is not an ApplicationRecord raises an error Gitlab::Ci::Reports::LicenseScanning::ReportsComparer #new_licenses is expected to contain exactly "Apache 2.0" #existing_licenses is expected to contain exactly "MIT" and "BSD" #removed_licenses is expected to contain exactly "WTFPL" EE::ApplicationSettingsHelper .visible_attributes personal access token parameters is expected to include :max_personal_access_token_lifetime, :enforce_pat_expiration, and :enforce_ssh_key_expiration ElasticIndexInitialBulkCronWorker behaves like worker with data consistency .get_data_consistency_feature_flag_enabled? returns true .get_data_consistency returns correct data consistency Gitlab::IncidentManagement .oncall_schedules_available? is expected to be truthy when there is no license is expected to be falsey .escalation_policies_available? is expected to be truthy when escalation policies not avaialble is expected to be falsey when on-call schedules not available is expected to be falsey MergeRequests::PostMergeService #execute finalize approvals executes ApprovalRules::FinalizeService CreateGithubWebhookWorker #perform creates the webhook Types::GroupStatsType is expected to require graphql authorizations :read_group has the expected fields Types::Vulnerability::IssueLinkType is expected to have graphql fields :id, :link_type, and :issue is expected to require graphql authorizations :read_issue_link Types::QueryType is expected to have graphql fields :ci_minutes_usage, :current_license, :geo_node, :instance_security_dashboard, :iteration, :license_history_entries, :vulnerabilities, :vulnerabilities_count_by_day, and :vulnerability AuditEvents::ImpersonationAuditEventService #security_event creates an event and logs to a file with the provided details Snowplow Schema Validation snowplow events definition matches the schema for EE behaves like matches schema conforms schema json Gitlab::Usage::Metrics::Aggregates::Aggregate .new loads aggregated metrics from both sources Types::AlertManagement::PayloadAlertFieldTypeEnum exposes all alert field types LdapSyncWorker #perform with the default license key syncs all LDAP users without a license key does not sync LDAP users groups/compliance_frameworks/edit.html.haml shows the compliance frameworks form Types::RequirementsManagement::TestReportType is expected to eq "TestReport" is expected to have graphql fields :id, :state, :author, and :created_at Boards::EpicBoards::Visits::CreateService #execute with epic board behaves like boards recent visit create service returns nil when there is no user returns nil when database is read only records the visit Types::PermissionTypes::Project is expected to have graphql field :admin_path_locks Types::MergeRequests::ApprovalStateType is expected to have graphql fields :approval_rules_overwritten and :rules is expected to require graphql authorizations :read_merge_request IncidentManagement::OncallScheduleHelper #oncall_schedule_data returns on-call schedule data Types::PathLockType is expected to eq "PathLock" has the expected fields Types::GroupReleaseStatsType is expected to require graphql authorizations :read_group_release_stats has the expected fields Boards::EpicBoardLabel associations is expected to belong to epic_board required: true inverse_of => epic_board_labels is expected to belong to label required: true inverse_of => epic_board_labels BaseCountService #update_cache_for_key calls Gitlab::Cache.delete_on_geo_secondaries Integrations::GitlabSlackApplication #chat_responder returns the chat responder to use Types::VulnerabilityLocation::ContainerScanningType is expected to have graphql fields :dependency, :image, and :operating_system Resolvers::InstanceSecurityDashboardResolver #resolve is expected to be a kind of InstanceSecurityDashboard Ci::Processable delegations is expected to delegate #merge_train_pipeline? to the #pipeline object Types::VulnerabilityDetails::BaseType is expected to have graphql fields :name, :description, and :fieldName Knapsack report was generated. Preview: { "ee/spec/models/project_spec.rb": 218.9642327270003, "ee/spec/lib/gitlab/elastic/project_search_results_spec.rb": 164.4367483820006, "ee/spec/models/merge_request_spec.rb": 91.15452670299965, "ee/spec/services/elastic/process_bookkeeping_service_spec.rb": 69.61769353899945, "ee/spec/services/ee/issues/update_service_spec.rb": 46.585044903999005, "ee/spec/services/epic_links/create_service_spec.rb": 56.407052381999165, "ee/spec/models/ci/pipeline_spec.rb": 30.96329387700098, "ee/spec/models/upload_spec.rb": 31.709340002998943, "ee/spec/services/ci/compare_security_reports_service_spec.rb": 35.14824414599934, "ee/spec/services/vulnerabilities/dismiss_service_spec.rb": 44.92809592999947, "ee/spec/models/concerns/elastic/issue_spec.rb": 34.336115296999196, "ee/spec/services/dashboard/projects/list_service_spec.rb": 21.63565587300036, "ee/spec/models/concerns/elastic/merge_request_spec.rb": 29.71846493599878, "ee/spec/models/ee/protected_ref_access_spec.rb": 21.056487117999495, "ee/spec/services/search_service_spec.rb": 25.972286986001563, "ee/spec/graphql/resolvers/epics_resolver_spec.rb": 15.678745571000036, "ee/spec/models/ee/ci/pipeline_artifact_spec.rb": 16.257532626001193, "ee/spec/services/projects/alerting/notify_service_spec.rb": 10.168148329999894, "ee/spec/helpers/ee/groups_helper_spec.rb": 14.705349630001365, "ee/spec/services/approval_rules/params_filtering_service_spec.rb": 16.467086053000457, "ee/spec/lib/gitlab/auth/ldap/access_spec.rb": 9.932837394999297, "ee/spec/services/application_settings/update_service_spec.rb": 14.463518668999313, "ee/spec/services/vulnerabilities/resolve_service_spec.rb": 13.15031987400107, "ee/spec/services/alert_management/network_alert_service_spec.rb": 6.535301366999192, "ee/spec/models/concerns/elastic/project_wiki_spec.rb": 12.615233104999788, "ee/spec/services/vulnerabilities/update_service_spec.rb": 11.826000430999557, "ee/spec/workers/store_security_reports_worker_spec.rb": 9.110520722000729, "ee/spec/serializers/epic_note_entity_spec.rb": 7.918046894001236, "ee/spec/finders/requirements_management/requirements_finder_spec.rb": 4.910537457000828, "ee/spec/lib/gitlab/ci/reports/license_scanning/report_spec.rb": 4.185168316998897, "ee/spec/services/iterations/create_service_spec.rb": 5.1984105949995865, "ee/spec/services/compliance_management/frameworks/create_service_spec.rb": 8.299099541998658, "ee/spec/presenters/audit_event_presenter_spec.rb": 2.9710153110008832, "ee/spec/models/dast_site_validation_spec.rb": 2.9913883189983608, "ee/spec/presenters/vulnerability_presenter_spec.rb": 3.743703746000392, "ee/spec/services/ci/retry_build_service_spec.rb": 6.721526687000733, "ee/spec/lib/gitlab/import_export/group/relation_factory_spec.rb": 6.247094667998681, "ee/spec/services/system_notes/merge_train_service_spec.rb": 5.218240963000426, "ee/spec/services/ee/issuable/common_system_notes_service_spec.rb": 6.581784111998786, "ee/spec/helpers/ee/lock_helper_spec.rb": 4.5366389179998805, "ee/spec/services/projects/gitlab_projects_import_service_spec.rb": 6.960796339000808, "ee/spec/graphql/types/admin/cloud_licenses/current_license_type_spec.rb": 2.1686342410012003, "ee/spec/lib/gitlab/ci/templates/api_fuzzing_latest_gitlab_ci_yaml_spec.rb": 4.372215516999859, "ee/spec/presenters/ee/clusters/cluster_presenter_spec.rb": 7.928034901999126, "ee/spec/services/network_policies/resources_service_spec.rb": 6.686994850000701, "ee/spec/models/saml_group_link_spec.rb": 1.695681731998775, "ee/spec/lib/analytics/merge_request_metrics_refresh_spec.rb": 3.185018478001439, "ee/spec/workers/iterations/roll_over_issues_worker_spec.rb": 2.734372887000063, "ee/spec/graphql/types/issue_type_spec.rb": 3.6491273259998707, "ee/spec/lib/ee/gitlab/ci/parsers/security/validators/schema_validator_spec.rb": 1.2628029099996638, "ee/spec/models/analytics/cycle_analytics/project_stage_spec.rb": 2.8387583659987286, "ee/spec/workers/new_epic_worker_spec.rb": 5.388535004000005, "ee/spec/workers/sync_seat_link_request_worker_spec.rb": 1.4746976360002009, "ee/spec/models/analytics/devops_adoption/snapshot_spec.rb": 2.6340274890008004, "ee/spec/lib/ee/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb": 1.001569959000335, "ee/spec/helpers/ee/auth_helper_spec.rb": 1.0246886670011008, "ee/spec/finders/clusters/agent_authorizations_finder_spec.rb": 3.3120550229996297, "ee/spec/models/approval_wrapped_code_owner_rule_spec.rb": 2.984585349999179, "ee/spec/models/gitlab/seat_link_data_spec.rb": 1.633454967999569, "ee/spec/models/issuables_analytics_spec.rb": 3.7626398440006597, "ee/spec/services/audit_events/repository_push_audit_event_service_spec.rb": 2.699489241000265, "ee/spec/graphql/mutations/merge_requests/set_assignees_spec.rb": 3.962814532000266, "ee/spec/services/audit_events/export_csv_service_spec.rb": 1.4918366149995563, "ee/spec/graphql/resolvers/vulnerabilities/issue_links_resolver_spec.rb": 1.8748884629985696, "ee/spec/serializers/status_page/incident_comment_entity_spec.rb": 3.8713431420001143, "ee/spec/lib/gitlab/contribution_analytics/data_collector_spec.rb": 2.281647787000111, "ee/spec/services/award_emojis/destroy_service_spec.rb": 2.3435814710010163, "ee/spec/models/compliance_management/framework_spec.rb": 1.2965435570004047, "ee/spec/graphql/resolvers/scan_execution_policy_resolver_spec.rb": 2.326640391998808, "ee/spec/models/groups/repository_storage_move_spec.rb": 1.5163108420001663, "ee/spec/models/vulnerabilities/finding_signature_spec.rb": 3.2220117739998386, "ee/spec/services/analytics/cycle_analytics/stages/delete_service_spec.rb": 1.6155225109996536, "ee/spec/models/iteration_note_spec.rb": 2.5097644120014593, "ee/spec/views/projects/security/dast_profiles/show.html.haml_spec.rb": 2.542867099000432, "ee/spec/lib/gitlab/ci/templates/cluster_image_scanning_gitlab_ci_yaml_spec.rb": 2.3189988329995685, "ee/spec/services/ee/service_ping/permit_data_categories_service_spec.rb": 1.3102803749989107, "ee/spec/models/incident_management/issuable_escalation_status_spec.rb": 1.4817039059998933, "ee/spec/models/commit_spec.rb": 2.745103866000136, "ee/spec/views/layouts/application.html.haml_spec.rb": 2.5540136769996025, "ee/spec/lib/gitlab/ci/yaml_processor_spec.rb": 1.0146546279993345, "ee/spec/workers/analytics/code_review_metrics_worker_spec.rb": 2.3489176300008694, "ee/spec/services/groups/recent_merge_requests_count_service_spec.rb": 2.6107380610010296, "ee/spec/models/project_alias_spec.rb": 1.1597090609993757, "ee/spec/lib/gitlab/auth/smartcard/san_extension_spec.rb": 1.4534498189987062, "ee/spec/services/vulnerabilities/destroy_dismissal_feedback_service_spec.rb": 2.44124310999905, "ee/spec/services/vulnerability_exports/create_service_spec.rb": 2.890151560999584, "ee/spec/lib/gitlab/ci/config/entry/secret_spec.rb": 0.7815277339996101, "ee/spec/services/security/store_scans_service_spec.rb": 1.0152304479997838, "ee/spec/graphql/resolvers/ci/code_coverage_summary_resolver_spec.rb": 1.5403850599996076, "ee/spec/graphql/types/dast_scanner_profile_type_spec.rb": 2.1987409869998373, "ee/spec/services/system_notes/vulnerabilities_service_spec.rb": 1.8230429880004522, "ee/spec/services/gitlab_subscriptions/plan_upgrade_service_spec.rb": 1.088806288998967, "ee/spec/graphql/mutations/gitlab_subscriptions/activate_spec.rb": 1.0233886869991693, "ee/spec/lib/ee/gitlab/git_access_snippet_spec.rb": 1.5366904700003943, "ee/spec/models/vulnerability_user_mention_spec.rb": 1.0345963750005467, "ee/spec/services/security/store_findings_metadata_service_spec.rb": 1.4000951349989919, "ee/spec/services/boards/epic_boards/destroy_service_spec.rb": 0.7041214620003302, "ee/spec/finders/ee/projects_finder_spec.rb": 2.2437338920008187, "ee/spec/lib/gitlab/ci/config/entry/job_spec.rb": 0.9854305909993855, "ee/spec/helpers/security_helper_spec.rb": 0.9731188620007742, "ee/spec/lib/ee/gitlab/verify/uploads_spec.rb": 1.3793298269993102, "ee/spec/finders/boards/epic_boards_finder_spec.rb": 1.0384180749988445, "ee/spec/services/audit_events/protected_branch_audit_event_service_spec.rb": 1.1058532879997074, "ee/spec/graphql/resolvers/epic_issues_resolver_spec.rb": 2.6621218450000015, "ee/spec/workers/status_page/publish_worker_spec.rb": 1.1300285550005356, "ee/spec/services/issues/duplicate_service_spec.rb": 1.9664712229987344, "ee/spec/views/projects/_merge_request_status_checks_settings.html.haml_spec.rb": 1.0724574319992826, "ee/spec/services/group_saml/sign_up_service_spec.rb": 1.5885838349986443, "ee/spec/models/project_repository_state_spec.rb": 0.9717784919994301, "ee/spec/graphql/mutations/vulnerabilities/dismiss_spec.rb": 3.134147913000561, "ee/spec/services/ee/issues/close_service_spec.rb": 2.5201335510009812, "ee/spec/models/integrations/github/remote_project_spec.rb": 1.0249775369993586, "ee/spec/services/security/security_orchestration_policies/scan_pipeline_service_spec.rb": 0.8001296709990129, "ee/spec/lib/ee/gitlab/auth/ldap/config_spec.rb": 0.7555748559989297, "ee/spec/lib/ee/gitlab/search_results_spec.rb": 2.6847027330004494, "ee/spec/serializers/ee/board_simple_entity_spec.rb": 1.4125294240002404, "ee/spec/serializers/ee/blob_entity_spec.rb": 0.8762343630005489, "ee/spec/services/feature_flag_issues/destroy_service_spec.rb": 1.5270535409999866, "ee/spec/lib/ee/gitlab/database/connection_spec.rb": 0.9519361849997949, "ee/spec/workers/iterations_update_status_worker_spec.rb": 1.1665657309986273, "ee/spec/services/ee/groups/import_export/export_service_spec.rb": 1.7690582550003455, "ee/spec/views/projects/merge_requests/show.html.haml_spec.rb": 2.3234949140005483, "ee/spec/services/ee/alert_management/alerts/update_service_spec.rb": 1.7266697980012395, "ee/spec/services/vulnerability_external_issue_links/destroy_service_spec.rb": 1.2994268859984004, "ee/spec/models/ee/namespace/root_storage_statistics_spec.rb": 2.0444016740002553, "ee/spec/helpers/ee/ci/pipeline_editor_helper_spec.rb": 0.9984867889997986, "ee/spec/workers/repository_import_worker_spec.rb": 1.6795295649990294, "ee/spec/services/applications/create_service_spec.rb": 1.0390395560007164, "ee/spec/finders/incident_management/oncall_schedules_finder_spec.rb": 1.8689618829994288, "ee/spec/policies/security/scan_policy_spec.rb": 1.3615432799997507, "ee/spec/models/vulnerabilities/finding/evidence/supporting_message_spec.rb": 0.7374121180000657, "ee/spec/services/licenses/destroy_service_spec.rb": 1.2385599129993352, "ee/spec/services/app_sec/dast/site_profiles/audit/update_service_spec.rb": 1.428958282000167, "ee/spec/models/ee/project_authorization_spec.rb": 1.5391291689993523, "ee/spec/graphql/ee/types/namespace_type_spec.rb": 1.029026526000962, "ee/spec/services/ee/design_management/delete_designs_service_spec.rb": 1.7729576639994775, "ee/spec/models/concerns/elastic/application_versioned_search_spec.rb": 0.7400812290015892, "ee/spec/lib/gitlab/ci/reports/license_scanning/reports_comparer_spec.rb": 0.8646866849994694, "ee/spec/helpers/ee/application_settings_helper_spec.rb": 0.7111025220001466, "ee/spec/workers/elastic_index_initial_bulk_cron_worker_spec.rb": 0.7560944260003453, "ee/spec/lib/gitlab/incident_management_spec.rb": 1.2736359890004678, "ee/spec/services/ee/merge_requests/post_merge_service_spec.rb": 1.4488821400009328, "ee/spec/workers/create_github_webhook_worker_spec.rb": 1.1407327940014511, "ee/spec/graphql/types/group_stats_type_spec.rb": 0.6460089779993723, "ee/spec/graphql/types/vulnerability/issue_link_type_spec.rb": 0.7343326580012217, "ee/spec/graphql/types/query_type_spec.rb": 0.69001677399865, "ee/spec/services/audit_events/impersonation_audit_event_service_spec.rb": 0.9312924570003815, "ee/spec/lib/gitlab/tracking/snowplow_schema_validation_spec.rb": 0.8234857789993839, "ee/spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb": 0.6010954430003039, "ee/spec/graphql/types/alert_management/payload_alert_field_type_enum_spec.rb": 0.5804978249998385, "ee/spec/workers/ldap_sync_worker_spec.rb": 0.9001217500008352, "ee/spec/views/groups/compliance_frameworks/edit.html.haml_spec.rb": 0.6428306479992898, "ee/spec/graphql/types/requirements_management/test_report_type_spec.rb": 0.6415831590002199, "ee/spec/services/boards/epic_boards/visits/create_service_spec.rb": 0.7807823739985906, "ee/spec/graphql/types/permission_types/project_spec.rb": 0.6612557570006175, "ee/spec/graphql/types/merge_requests/approval_state_type_spec.rb": 0.6430738580002071, "ee/spec/helpers/incident_management/oncall_schedule_helper_spec.rb": 0.7668786150006781, "ee/spec/graphql/types/path_lock_type_spec.rb": 0.8243539979994239, "ee/spec/graphql/types/group_release_stats_type_spec.rb": 0.6738425259991345, "ee/spec/models/boards/epic_board_label_spec.rb": 0.6654315470004804, "ee/spec/services/base_count_service_spec.rb": 0.6303877800000919, "ee/spec/models/integrations/gitlab_slack_application_spec.rb": 0.6002858430001652, "ee/spec/graphql/types/vulnerability_location/container_scanning_type_spec.rb": 0.6194287220005208, "ee/spec/graphql/resolvers/instance_security_dashboard_resolver_spec.rb": 0.6614382770003431, "ee/spec/models/ci/processable_spec.rb": 0.6588839670002926, "ee/spec/graphql/types/vulnerability_details/base_type_spec.rb": 0.6071875719990203 } Knapsack global time execution for tests: 22m 42s Finished in 22 minutes 44 seconds (files took 53.15 seconds to load) 3082 examples, 0 failures Wed 13 Oct 2021 06:45:10 PM UTC section_end:1634150710:step_script [0Ksection_start:1634150710:archive_cache [0K[0K[36;1mSaving cache for successful job[0;m[0;m [32;1mNot uploading cache ruby-gems-v1-4 due to policy[0;m [32;1mNot uploading cache gitaly-ruby-gems-v1-4 due to policy[0;m section_end:1634150712:archive_cache [0Ksection_start:1634150712:upload_artifacts_on_success [0K[0K[36;1mUploading artifacts for successful job[0;m[0;m [32;1mUploading artifacts...[0;m coverage/: found 5 matching files and directories [0;m [0;33mWARNING: crystalball/: no matching files [0;m deprecations/: found 11 matching files and directories[0;m knapsack/: found 3 matching files and directories [0;m rspec_flaky/: found 4 matching files and directories[0;m rspec_profiling/: found 1 matching files and directories[0;m [0;33mWARNING: tmp/capybara/: no matching files [0;m tmp/memory_test/: found 2 matching files and directories[0;m log/*.log: found 19 matching files and directories[0;m Uploading artifacts as "archive" to coordinator... ok[0;m id[0;m=1677157349 responseStatus[0;m=201 Created token[0;m=gsJ2UfBe [32;1mUploading artifacts...[0;m junit_rspec.xml: found 1 matching files and directories[0;m Uploading artifacts as "junit" to coordinator... ok[0;m id[0;m=1677157349 responseStatus[0;m=201 Created token[0;m=gsJ2UfBe section_end:1634150715:upload_artifacts_on_success [0Ksection_start:1634150715:cleanup_file_variables [0K[0K[36;1mCleaning up project directory and file based variables[0;m[0;m section_end:1634150716:cleanup_file_variables [0K[32;1mJob succeeded[0;m