rspec-ee integration pg13 opensearch2 2/6
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 16.3.0~beta.108.g2b6048b4 (2b6048b4)2 on blue-4.private.runners-manager.gitlab.com/gitlab.com/gitlab-org tDjA3Sp3, system ID: s_96a8ae3d10503 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true, FF_RESOLVE_FULL_TLS_CHAIN:false6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...10Using docker image sha256:040d884aa26536e670b0fce0ec5f71c13491b07030e76acb1dc97df5a1c1792e for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:86b66425c287d3c74a2bc40edebacfc88bc90ea64fc582c26fba7cd2834e9c29 ...11WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.12WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.13Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...16Using docker image sha256:f4c047edb00d9bbfcc2b002a01548fab14592940f5b3e6b3f227f690e3fa272d for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:9a1b6b68dc464f0baae914703d5b059e7773bf23c9579c44e2a1b1154a83656f ...17Starting service redis:6.2-alpine ...18Pulling docker image redis:6.2-alpine ...19Using docker image sha256:9b4dc93acb797b99419bb31d8a452680508f1bf10a8604d721c0474072417a2b for redis:6.2-alpine with digest redis@sha256:452b7655bda0e270a6376b71d22fcb30662e745dcb4728f99fa87f01287b465d ...20WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 is already created. Ignoring.21WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 is already created. Ignoring.22Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 ...23Authenticating with credentials from job payload (GitLab Registry)24Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 ...25Using docker image sha256:3019060693909c4761e3d0a55f31591cdc9a425c5caabc0efe58b7aac9af2245 for registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:39a04f1ad7b480c016bbb682d5525e272bc54bc252be03b1b9236b2375d81384 ...26Starting service opensearchproject/opensearch:2.2.1 ...27Pulling docker image opensearchproject/opensearch:2.2.1 ...28Using docker image sha256:d9061b1eaade1130f9bcb282a635d1c1430174bd706c71f48fe3d76933ea15fb for opensearchproject/opensearch:2.2.1 with digest opensearchproject/opensearch@sha256:d6909c2acc7890ee847e6dd7d896b8f8db11bb63102b69117de7835abfc0863e ...29Waiting for services to be up and running (timeout 30 seconds)...30*** WARNING: Service runner-tdja3sp3-project-278964-concurrent-0-d766b443a9359bde-opensearchproject__opensearch-4 probably didn't start properly.31Health check error:32service "runner-tdja3sp3-project-278964-concurrent-0-d766b443a9359bde-opensearchproject__opensearch-4-wait-for-service" timeout33Health check container logs:342023-10-19T10:07:11.429340540Z waiting for TCP connection to ee29553ab12d on [9200 9300 9600 9650]...352023-10-19T10:07:11.429393920Z dialing ee29553ab12d:9650...362023-10-19T10:07:11.429671510Z dialing ee29553ab12d:9300...372023-10-19T10:07:11.429684730Z dialing ee29553ab12d:9200...382023-10-19T10:07:11.429690390Z dialing ee29553ab12d:9600...392023-10-19T10:07:12.434667779Z dialing ee29553ab12d:9600...402023-10-19T10:07:12.434694019Z dialing ee29553ab12d:9200...412023-10-19T10:07:12.434698939Z dialing ee29553ab12d:9300...422023-10-19T10:07:12.434703129Z dialing ee29553ab12d:9650...432023-10-19T10:07:13.434290179Z dialing ee29553ab12d:9650...442023-10-19T10:07:13.434343729Z dialing ee29553ab12d:9200...452023-10-19T10:07:13.434349909Z dialing ee29553ab12d:9300...462023-10-19T10:07:13.434354249Z dialing ee29553ab12d:9600...472023-10-19T10:07:14.435410307Z dialing ee29553ab12d:9600...482023-10-19T10:07:14.435468877Z dialing ee29553ab12d:9650...492023-10-19T10:07:14.435475997Z dialing ee29553ab12d:9300...502023-10-19T10:07:14.435480807Z dialing ee29553ab12d:9200...512023-10-19T10:07:15.436318996Z dialing ee29553ab12d:9650...522023-10-19T10:07:15.436354996Z dialing ee29553ab12d:9600...532023-10-19T10:07:15.436378356Z dialing ee29553ab12d:9300...542023-10-19T10:07:15.436383647Z dialing ee29553ab12d:9200...552023-10-19T10:07:16.437331605Z dialing ee29553ab12d:9650...562023-10-19T10:07:16.437396735Z dialing ee29553ab12d:9600...572023-10-19T10:07:16.437401915Z dialing ee29553ab12d:9200...582023-10-19T10:07:16.437405985Z dialing ee29553ab12d:9300...592023-10-19T10:07:17.438552026Z dialing ee29553ab12d:9200...602023-10-19T10:07:17.438586736Z dialing ee29553ab12d:9600...612023-10-19T10:07:17.438592066Z dialing ee29553ab12d:9300...622023-10-19T10:07:17.438607806Z dialing ee29553ab12d:9650...632023-10-19T10:07:18.440480534Z dialing ee29553ab12d:9300...642023-10-19T10:07:18.440519564Z dialing ee29553ab12d:9600...652023-10-19T10:07:18.440525804Z dialing ee29553ab12d:9200...662023-10-19T10:07:18.440530284Z dialing ee29553ab12d:9650...672023-10-19T10:07:19.441669384Z dialing ee29553ab12d:9650...682023-10-19T10:07:19.441707955Z dialing ee29553ab12d:9200...692023-10-19T10:07:19.441713224Z dialing ee29553ab12d:9300...702023-10-19T10:07:19.441737924Z dialing ee29553ab12d:9600...712023-10-19T10:07:20.443083964Z dialing ee29553ab12d:9600...722023-10-19T10:07:20.443140284Z dialing ee29553ab12d:9300...732023-10-19T10:07:20.443148264Z dialing ee29553ab12d:9200...742023-10-19T10:07:20.443153124Z dialing ee29553ab12d:9650...752023-10-19T10:07:21.444009913Z dialing ee29553ab12d:9650...762023-10-19T10:07:21.444100473Z dialing ee29553ab12d:9200...772023-10-19T10:07:21.444109243Z dialing ee29553ab12d:9600...782023-10-19T10:07:21.444113673Z dialing ee29553ab12d:9300...792023-10-19T10:07:22.445666523Z dialing ee29553ab12d:9600...802023-10-19T10:07:22.446184382Z dialing ee29553ab12d:9300...812023-10-19T10:07:22.446539443Z dialing ee29553ab12d:9200...822023-10-19T10:07:22.446556972Z dialing ee29553ab12d:9650...832023-10-19T10:07:23.447438442Z dialing ee29553ab12d:9600...842023-10-19T10:07:23.447493522Z dialing ee29553ab12d:9650...852023-10-19T10:07:23.447499552Z dialing ee29553ab12d:9200...862023-10-19T10:07:23.447503312Z dialing ee29553ab12d:9300...872023-10-19T10:07:24.449277011Z dialing ee29553ab12d:9600...882023-10-19T10:07:24.449328061Z dialing ee29553ab12d:9300...892023-10-19T10:07:24.449333971Z dialing ee29553ab12d:9650...902023-10-19T10:07:24.449338061Z dialing ee29553ab12d:9200...912023-10-19T10:07:25.450484170Z dialing ee29553ab12d:9300...922023-10-19T10:07:25.450534050Z dialing ee29553ab12d:9600...932023-10-19T10:07:25.450538590Z dialing ee29553ab12d:9650...942023-10-19T10:07:25.450542850Z dialing ee29553ab12d:9200...952023-10-19T10:07:26.451229889Z dialing ee29553ab12d:9600...962023-10-19T10:07:26.451277989Z dialing ee29553ab12d:9300...972023-10-19T10:07:26.451283839Z dialing ee29553ab12d:9650...982023-10-19T10:07:26.451287649Z dialing ee29553ab12d:9200...992023-10-19T10:07:27.453013199Z dialing ee29553ab12d:9300...1002023-10-19T10:07:27.453050609Z dialing ee29553ab12d:9200...1012023-10-19T10:07:27.453059569Z dialing ee29553ab12d:9600...1022023-10-19T10:07:27.453064859Z dialing ee29553ab12d:9650...1032023-10-19T10:07:28.453664128Z dialing ee29553ab12d:9600...1042023-10-19T10:07:28.453698638Z dialing ee29553ab12d:9650...1052023-10-19T10:07:28.453703548Z dialing ee29553ab12d:9200...1062023-10-19T10:07:28.453707188Z dialing ee29553ab12d:9300...1072023-10-19T10:07:29.455290318Z dialing ee29553ab12d:9200...1082023-10-19T10:07:29.455338358Z dialing ee29553ab12d:9650...1092023-10-19T10:07:29.455344628Z dialing ee29553ab12d:9600...1102023-10-19T10:07:29.455349148Z dialing ee29553ab12d:9300...1112023-10-19T10:07:30.456311757Z dialing ee29553ab12d:9300...1122023-10-19T10:07:30.456452677Z dialing ee29553ab12d:9650...1132023-10-19T10:07:30.456507787Z dialing ee29553ab12d:9600...1142023-10-19T10:07:30.456520617Z dialing ee29553ab12d:9200...1152023-10-19T10:07:31.457299837Z dialing ee29553ab12d:9650...1162023-10-19T10:07:31.457494977Z dialing ee29553ab12d:9300...1172023-10-19T10:07:31.457673016Z dialing ee29553ab12d:9200...1182023-10-19T10:07:31.457685976Z dialing ee29553ab12d:9600...1192023-10-19T10:07:32.458336306Z dialing ee29553ab12d:9650...1202023-10-19T10:07:32.458389526Z dialing ee29553ab12d:9200...1212023-10-19T10:07:32.458395216Z dialing ee29553ab12d:9600...1222023-10-19T10:07:32.458399036Z dialing ee29553ab12d:9300...1232023-10-19T10:07:33.460740565Z dialing ee29553ab12d:9200...1242023-10-19T10:07:33.460779425Z dialing ee29553ab12d:9300...1252023-10-19T10:07:33.460786305Z dialing ee29553ab12d:9650...1262023-10-19T10:07:33.460790575Z dialing ee29553ab12d:9600...1272023-10-19T10:07:34.461823823Z dialing ee29553ab12d:9600...1282023-10-19T10:07:34.461859463Z dialing ee29553ab12d:9200...1292023-10-19T10:07:34.461864634Z dialing ee29553ab12d:9300...1302023-10-19T10:07:34.461868463Z dialing ee29553ab12d:9650...1312023-10-19T10:07:35.462701793Z dialing ee29553ab12d:9200...1322023-10-19T10:07:35.462736253Z dialing ee29553ab12d:9300...1332023-10-19T10:07:35.462740742Z dialing ee29553ab12d:9600...1342023-10-19T10:07:35.462744462Z dialing ee29553ab12d:9650...1352023-10-19T10:07:36.463855853Z dialing ee29553ab12d:9300...1362023-10-19T10:07:36.463916353Z dialing ee29553ab12d:9650...1372023-10-19T10:07:36.463969513Z dialing ee29553ab12d:9200...1382023-10-19T10:07:36.463977142Z dialing ee29553ab12d:9600...1392023-10-19T10:07:37.465557712Z dialing ee29553ab12d:9650...1402023-10-19T10:07:37.465593272Z dialing ee29553ab12d:9200...1412023-10-19T10:07:37.465597942Z dialing ee29553ab12d:9300...1422023-10-19T10:07:37.465601472Z dialing ee29553ab12d:9600...1432023-10-19T10:07:38.467680131Z dialing ee29553ab12d:9600...1442023-10-19T10:07:38.467715971Z dialing ee29553ab12d:9300...1452023-10-19T10:07:38.467721942Z dialing ee29553ab12d:9200...1462023-10-19T10:07:38.467726062Z dialing ee29553ab12d:9650...1472023-10-19T10:07:39.469555711Z dialing ee29553ab12d:9600...1482023-10-19T10:07:39.469595001Z dialing ee29553ab12d:9200...1492023-10-19T10:07:39.469604101Z dialing ee29553ab12d:9650...1502023-10-19T10:07:39.469608951Z dialing ee29553ab12d:9300...1512023-10-19T10:07:40.471616050Z dialing ee29553ab12d:9300...1522023-10-19T10:07:40.471654420Z dialing ee29553ab12d:9200...1532023-10-19T10:07:40.471665370Z dialing ee29553ab12d:9650...1542023-10-19T10:07:40.471671110Z dialing ee29553ab12d:9600...1552023-10-19T10:07:41.473649570Z dialing ee29553ab12d:9650...1562023-10-19T10:07:41.473684000Z dialing ee29553ab12d:9200...1572023-10-19T10:07:41.473688690Z dialing ee29553ab12d:9300...1582023-10-19T10:07:41.473712920Z dialing ee29553ab12d:9600...159Service container logs:1602023-10-19T10:07:19.302014803Z WARNING: A terminally deprecated method in java.lang.System has been called1612023-10-19T10:07:19.302188683Z WARNING: System::setSecurityManager has been called by org.opensearch.bootstrap.OpenSearch (file:/usr/share/opensearch/lib/opensearch-2.2.1.jar)1622023-10-19T10:07:19.302207043Z WARNING: Please consider reporting this to the maintainers of org.opensearch.bootstrap.OpenSearch1632023-10-19T10:07:19.302212733Z WARNING: System::setSecurityManager will be removed in a future release1642023-10-19T10:07:21.776196243Z WARNING: A terminally deprecated method in java.lang.System has been called1652023-10-19T10:07:21.778017953Z WARNING: System::setSecurityManager has been called by org.opensearch.bootstrap.Security (file:/usr/share/opensearch/lib/opensearch-2.2.1.jar)1662023-10-19T10:07:21.778389483Z WARNING: Please consider reporting this to the maintainers of org.opensearch.bootstrap.Security1672023-10-19T10:07:21.778407823Z WARNING: System::setSecurityManager will be removed in a future release1682023-10-19T10:07:21.822489860Z [2023-10-19T10:07:21,820][INFO ][o.o.n.Node ] [ee29553ab12d] version[2.2.1], pid[1], build[tar/1a1ffa37cd4d8ede3b18275a11908af4d2f087b8/2022-08-30T17:51:15.085457923Z], OS[Linux/5.15.109+/amd64], JVM[Eclipse Adoptium/OpenJDK 64-Bit Server VM/17.0.4/17.0.4+8]1692023-10-19T10:07:21.823079600Z [2023-10-19T10:07:21,822][INFO ][o.o.n.Node ] [ee29553ab12d] JVM home [/usr/share/opensearch/jdk], using bundled JDK [true]1702023-10-19T10:07:21.823999430Z [2023-10-19T10:07:21,823][INFO ][o.o.n.Node ] [ee29553ab12d] JVM arguments [-Xshare:auto, -Dopensearch.networkaddress.cache.ttl=60, -Dopensearch.networkaddress.cache.negative.ttl=10, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -XX:+ShowCodeDetailsInExceptionMessages, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dio.netty.allocator.numDirectArenas=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.locale.providers=SPI,COMPAT, -Xms1g, -Xmx1g, -XX:+UseG1GC, -XX:G1ReservePercent=25, -XX:InitiatingHeapOccupancyPercent=30, -Djava.io.tmpdir=/tmp/opensearch-17353212644919788835, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p.log, -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m, -Dclk.tck=100, -Djdk.attach.allowAttachSelf=true, -Djava.security.policy=/usr/share/opensearch/config/opensearch-performance-analyzer/opensearch_security.policy, --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED, -Dopensearch.cgroups.hierarchy.override=/, -XX:MaxDirectMemorySize=536870912, -Dopensearch.path.home=/usr/share/opensearch, -Dopensearch.path.conf=/usr/share/opensearch/config, -Dopensearch.distribution.type=tar, -Dopensearch.bundled_jdk=true]1712023-10-19T10:07:26.452780929Z [2023-10-19T10:07:26,452][WARN ][stderr ] [ee29553ab12d] SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".1722023-10-19T10:07:26.453166329Z [2023-10-19T10:07:26,452][WARN ][stderr ] [ee29553ab12d] SLF4J: Defaulting to no-operation (NOP) logger implementation1732023-10-19T10:07:26.453494449Z [2023-10-19T10:07:26,453][WARN ][stderr ] [ee29553ab12d] SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.1742023-10-19T10:07:26.487642297Z [2023-10-19T10:07:26,487][INFO ][o.o.s.s.t.SSLConfig ] [ee29553ab12d] SSL dual mode is disabled1752023-10-19T10:07:26.488553267Z [2023-10-19T10:07:26,488][WARN ][o.o.s.OpenSearchSecurityPlugin] [ee29553ab12d] OpenSearch Security plugin installed but disabled. This can expose your configuration (including passwords) to the public.1762023-10-19T10:07:30.882372651Z [2023-10-19T10:07:30,881][INFO ][o.o.p.c.PluginSettings ] [ee29553ab12d] Trying to create directory /dev/shm/performanceanalyzer/.1772023-10-19T10:07:30.883044071Z [2023-10-19T10:07:30,882][INFO ][o.o.p.c.PluginSettings ] [ee29553ab12d] Config: metricsLocation: /dev/shm/performanceanalyzer/, metricsDeletionInterval: 1, httpsEnabled: false, cleanup-metrics-db-files: true, batch-metrics-retention-period-minutes: 7, rpc-port: 9650, webservice-port 96001782023-10-19T10:07:33.473791864Z [2023-10-19T10:07:33,473][INFO ][o.o.i.r.ReindexPlugin ] [ee29553ab12d] ReindexPlugin reloadSPI called1792023-10-19T10:07:33.474703454Z [2023-10-19T10:07:33,474][INFO ][o.o.i.r.ReindexPlugin ] [ee29553ab12d] Unable to find any implementation for RemoteReindexExtension1802023-10-19T10:07:33.965471602Z [2023-10-19T10:07:33,965][INFO ][o.o.j.JobSchedulerPlugin ] [ee29553ab12d] Loaded scheduler extension: opendistro_anomaly_detector, index: .opendistro-anomaly-detector-jobs1812023-10-19T10:07:34.095698815Z [2023-10-19T10:07:34,095][INFO ][o.o.j.JobSchedulerPlugin ] [ee29553ab12d] Loaded scheduler extension: reports-scheduler, index: .opendistro-reports-definitions1822023-10-19T10:07:34.096983305Z [2023-10-19T10:07:34,096][INFO ][o.o.j.JobSchedulerPlugin ] [ee29553ab12d] Loaded scheduler extension: opendistro-index-management, index: .opendistro-ism-config1832023-10-19T10:07:34.137608313Z [2023-10-19T10:07:34,137][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [aggs-matrix-stats]1842023-10-19T10:07:34.137819523Z [2023-10-19T10:07:34,137][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [analysis-common]1852023-10-19T10:07:34.142519433Z [2023-10-19T10:07:34,137][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [geo]1862023-10-19T10:07:34.142547133Z [2023-10-19T10:07:34,138][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [ingest-common]1872023-10-19T10:07:34.142553253Z [2023-10-19T10:07:34,138][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [ingest-geoip]1882023-10-19T10:07:34.142560253Z [2023-10-19T10:07:34,138][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [ingest-user-agent]1892023-10-19T10:07:34.142570773Z [2023-10-19T10:07:34,138][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [lang-expression]1902023-10-19T10:07:34.142577042Z [2023-10-19T10:07:34,138][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [lang-mustache]1912023-10-19T10:07:34.142581693Z [2023-10-19T10:07:34,138][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [lang-painless]1922023-10-19T10:07:34.142585622Z [2023-10-19T10:07:34,139][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [mapper-extras]1932023-10-19T10:07:34.142589862Z [2023-10-19T10:07:34,139][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [opensearch-dashboards]1942023-10-19T10:07:34.142594113Z [2023-10-19T10:07:34,139][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [parent-join]1952023-10-19T10:07:34.142611133Z [2023-10-19T10:07:34,139][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [percolator]1962023-10-19T10:07:34.142615282Z [2023-10-19T10:07:34,139][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [rank-eval]1972023-10-19T10:07:34.142619313Z [2023-10-19T10:07:34,139][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [reindex]1982023-10-19T10:07:34.142623162Z [2023-10-19T10:07:34,139][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [repository-url]1992023-10-19T10:07:34.142627162Z [2023-10-19T10:07:34,139][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [systemd]2002023-10-19T10:07:34.142631102Z [2023-10-19T10:07:34,139][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded module [transport-netty4]2012023-10-19T10:07:34.142635062Z [2023-10-19T10:07:34,139][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-alerting]2022023-10-19T10:07:34.142638893Z [2023-10-19T10:07:34,140][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-anomaly-detection]2032023-10-19T10:07:34.142642713Z [2023-10-19T10:07:34,140][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-asynchronous-search]2042023-10-19T10:07:34.142648293Z [2023-10-19T10:07:34,140][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-cross-cluster-replication]2052023-10-19T10:07:34.142652513Z [2023-10-19T10:07:34,140][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-geospatial]2062023-10-19T10:07:34.142656742Z [2023-10-19T10:07:34,140][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-index-management]2072023-10-19T10:07:34.142660773Z [2023-10-19T10:07:34,140][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-job-scheduler]2082023-10-19T10:07:34.142664813Z [2023-10-19T10:07:34,140][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-knn]2092023-10-19T10:07:34.142668882Z [2023-10-19T10:07:34,140][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-ml]2102023-10-19T10:07:34.142672902Z [2023-10-19T10:07:34,140][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-notifications]2112023-10-19T10:07:34.142676722Z [2023-10-19T10:07:34,140][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-notifications-core]2122023-10-19T10:07:34.142680773Z [2023-10-19T10:07:34,140][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-observability]2132023-10-19T10:07:34.142684442Z [2023-10-19T10:07:34,140][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-performance-analyzer]2142023-10-19T10:07:34.142688093Z [2023-10-19T10:07:34,140][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-reports-scheduler]2152023-10-19T10:07:34.142691962Z [2023-10-19T10:07:34,141][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-security]2162023-10-19T10:07:34.142695722Z [2023-10-19T10:07:34,141][INFO ][o.o.p.PluginsService ] [ee29553ab12d] loaded plugin [opensearch-sql]2172023-10-19T10:07:34.350761601Z [2023-10-19T10:07:34,350][INFO ][o.o.e.NodeEnvironment ] [ee29553ab12d] using [1] data paths, mounts [[/ (overlay)]], net usable_space [74.5gb], net total_space [94.2gb], types [overlay]2182023-10-19T10:07:34.351083591Z [2023-10-19T10:07:34,350][INFO ][o.o.e.NodeEnvironment ] [ee29553ab12d] heap size [1gb], compressed ordinary object pointers [true]2192023-10-19T10:07:34.687540041Z [2023-10-19T10:07:34,687][INFO ][o.o.n.Node ] [ee29553ab12d] node name [ee29553ab12d], node ID [33OsT7lKR92dg7ux4otItw], cluster name [docker-cluster], roles [ingest, remote_cluster_client, data, cluster_manager]220*********221Authenticating with credentials from job payload (GitLab Registry)222Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...223Using docker image sha256:0e91ea18fbaa4ebdc741809bd36c6691f7b21bf3e2183d562490a26844321167 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-13@sha256:1e003ac05bb3c0fbcf15dd2ae1387c05a0a08d48dd68aff29398f872048f4e8a ...225Running on runner-tdja3sp3-project-278964-concurrent-0 via runner-tdja3sp3-private-1697704057-0d99d255...227Fetching changes with git depth set to 20...228Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/229Created fresh repository.230remote: Enumerating objects: 175495, done. 231remote: Counting objects: 100% (175495/175495), done. 232remote: Compressing objects: 100% (119238/119238), done. 233remote: Total 175495 (delta 83016), reused 113694 (delta 49335), pack-reused 0 234Receiving objects: 100% (175495/175495), 148.32 MiB | 24.70 MiB/s, done.235Resolving deltas: 100% (83016/83016), done.237 * [new ref] refs/pipelines/1042272888 -> refs/pipelines/1042272888238Checking out 3af7b5df as detached HEAD (ref is refs/merge-requests/134621/merge)...239Skipping Git submodules setup240$ git remote set-url origin "${CI_REPOSITORY_URL}"242Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...243cache.zip is up to date 244Successfully extracted cache246Downloading artifacts for compile-test-assets (5328358048)...247Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5328358048 responseStatus=200 OK token=64_D4mug248Downloading artifacts for detect-tests (5328358058)...249Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5328358058 responseStatus=200 OK token=64_D4mug250Downloading artifacts for retrieve-tests-metadata (5328358066)...251Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5328358066 responseStatus=200 OK token=64_D4mug252Downloading artifacts for setup-test-env (5328358054)...253Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5328358054 responseStatus=200 OK token=64_D4mug255Using docker image sha256:0e91ea18fbaa4ebdc741809bd36c6691f7b21bf3e2183d562490a26844321167 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-13@sha256:1e003ac05bb3c0fbcf15dd2ae1387c05a0a08d48dd68aff29398f872048f4e8a ...256$ echo $FOSS_ONLY257$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb258$ export GOPATH=$CI_PROJECT_DIR/.go259$ mkdir -p $GOPATH260$ source scripts/utils.sh261$ source scripts/prepare_build.sh293Using decomposed database config (config/database.yml.decomposed-postgresql)294Geo DB will be set up.295Embedding DB will be set up.329$ source ./scripts/rspec_helpers.sh330$ run_timed_command "gem install knapsack --no-document"331$ gem install knapsack --no-document332Successfully installed knapsack-4.0.03331 gem installed334==> 'gem install knapsack --no-document' succeeded in 1 seconds.335$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"340$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"341$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"342$ tooling/bin/create_job_metrics_file || true343[job-metrics] Creating the job metrics file for the CI/CD job.344$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request"345RETRY_FAILED_TESTS_IN_NEW_PROCESS: true346KNAPSACK_GENERATE_REPORT: true347FLAKY_RSPEC_GENERATE_REPORT: true348KNAPSACK_TEST_FILE_PATTERN: {ee/}spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb349KNAPSACK_LOG_LEVEL: debug350KNAPSACK_REPORT_PATH: knapsack/rspec-ee_integration_pg13_opensearch2_2_6_report.json351FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json352FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec-ee_integration_pg13_opensearch2_2_6_report.json353NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec-ee_integration_pg13_opensearch2_2_6_report.json354RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-5328358973.txt355CRYSTALBALL: 356RSPEC_TESTS_MAPPING_ENABLED: 357RSPEC_TESTS_FILTER_FILE: 358Shell set options (set -o) enabled:359braceexpand on360hashall on361interactive-comments on362pipefail on363Knapsack report generator started!364/builds/gitlab-org/gitlab/ee/app/services/remote_development/service_response_factory.rb:41: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!365/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/create_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!366/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/reconcile_service.rb:38: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!367/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/update_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!368/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/main.rb:32: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!369/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!370/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!371/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!372/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!373/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:19: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!374/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!375/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!376/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_flattener.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!377/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!378/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!379/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!380/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!381/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!382/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!383/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:54: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!384/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:102: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!385/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:126: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!386/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:159: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!387/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:202: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!388/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:235: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!389/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!390/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:52: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!391/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!392/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!393/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!394/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:23: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!395/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!396/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!397/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!398/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!399/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!400/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:25: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!401/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!402/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_variables_creator.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!403/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/main.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!404/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!405/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/updater.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!406/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/agent_infos_observer.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!407/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!408/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!409/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_to_infos_converter.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!410/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_validator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!411/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/rails_infos_observer.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!412/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/workspaces_to_rails_infos_converter.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!413/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/orphaned_workspaces_observer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!414/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_from_agent_infos_updater.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!415/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_finder.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!416/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!417INFO: analyzing "public.p_ci_runner_machine_builds" inheritance tree418INFO: analyzing "gitlab_partitions_dynamic.ci_runner_machine_builds_100"419INFO: "ci_runner_machine_builds_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows420INFO: analyzing "public.p_ci_job_annotations" inheritance tree421INFO: analyzing "gitlab_partitions_dynamic.ci_job_annotations_100"422INFO: "ci_job_annotations_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows423INFO: analyzing "public.p_ci_builds_metadata" inheritance tree424INFO: analyzing "public.ci_builds_metadata"425INFO: "ci_builds_metadata": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows426INFO: analyzing "public.p_ci_runner_machine_builds" inheritance tree427INFO: analyzing "gitlab_partitions_dynamic.ci_runner_machine_builds_100"428INFO: "ci_runner_machine_builds_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows429INFO: analyzing "public.p_ci_job_annotations" inheritance tree430INFO: analyzing "gitlab_partitions_dynamic.ci_job_annotations_100"431INFO: "ci_job_annotations_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows432INFO: analyzing "public.p_ci_builds_metadata" inheritance tree433INFO: analyzing "public.ci_builds_metadata"434INFO: "ci_builds_metadata": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows435Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true, :real_ai_request=>true}436Test environment set up in 1.900639515 seconds437API::DependencyProxy::Packages::Maven438 # order random439 GET /api/v4/projects/:project_id/dependency_proxy/packages/maven/*path/:file_name440 with valid parameters441 with package registry public access set to true442 with a public project443 behaves like handling different token types444 and a personal access token445 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :forbidden446 behaves like returning response status447 returns forbidden448 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :ok449 behaves like returning response status450 returns ok451 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :ok452 behaves like returning response status453 returns ok454 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized455 behaves like returning response status456 returns unauthorized457 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized458 behaves like returning response status459 returns unauthorized460 and a deploy token461 valid_token: true, sent_using: :custom_header, expected_status: :ok462 behaves like returning response status463 returns ok464 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized465 behaves like returning response status466 returns unauthorized467 valid_token: true, sent_using: :basic_auth, expected_status: :ok468 behaves like returning response status469 returns ok470 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized471 behaves like returning response status472 returns unauthorized473 and a ci job token474 valid_token: true, sent_using: :custom_header, expected_status: :ok475 behaves like returning response status476 returns ok477 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized478 behaves like returning response status479 returns unauthorized480 valid_token: true, sent_using: :basic_auth, expected_status: :ok481 behaves like returning response status482 returns ok483 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized484 behaves like returning response status485 returns unauthorized486 behaves like a user pulling files487 with a reporter pulling files488 behaves like pulling existing files489 when pulling a pom file490 etag_service_response: #<ServiceResponse:0x00007cef233ff068 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil491 behaves like returning response status492 returns ok493 etag_service_response: #<ServiceResponse:0x00007cef233f76d8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil494 behaves like returning response status495 returns ok496 etag_service_response: #<ServiceResponse:0x00007cef233f4208 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"497 behaves like returning a workhorse sendurl response498 returns a workhorse sendurl response499 when pulling a md5 file500 returns it501 when pulling a sha1 file502 returns it503 behaves like pulling non existing files504 with file test.pom505 behaves like returning a workhorse sendurl response506 returns a workhorse sendurl response507 with file test.md5508 behaves like returning a workhorse sendurl response509 returns a workhorse sendurl response510 with file test.sha1511 behaves like returning a workhorse sendurl response512 returns a workhorse sendurl response513 behaves like pulling existing files514 when pulling a pom file515 etag_service_response: #<ServiceResponse:0x00007cef232a0af0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil516 behaves like returning response status517 returns ok518 etag_service_response: #<ServiceResponse:0x00007cef232997a0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil519 behaves like returning response status520 returns ok521 etag_service_response: #<ServiceResponse:0x00007cef23292a18 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"522 behaves like returning a workhorse sendurl response523 returns a workhorse sendurl response524 when pulling a md5 file525 returns it526 when pulling a sha1 file527 returns it528 behaves like pulling non existing files529 with file test.pom530 behaves like returning a workhorse sendurl response531 returns a workhorse sendurl response532 with file test.md5533 behaves like returning a workhorse sendurl response534 returns a workhorse sendurl response535 with file test.sha1536 behaves like returning a workhorse sendurl response537 returns a workhorse sendurl response538 with a developer pulling files539 behaves like pulling existing files540 when pulling a pom file541 etag_service_response: #<ServiceResponse:0x00007cef4d99e440 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil542 behaves like returning response status543 returns ok544 etag_service_response: #<ServiceResponse:0x00007cef4e7bdf08 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil545 behaves like returning response status546 returns ok547 etag_service_response: #<ServiceResponse:0x00007cef4e676d98 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"548 behaves like returning a workhorse sendurl response549 returns a workhorse sendurl response550 when pulling a md5 file551 returns it552 when pulling a sha1 file553 returns it554 behaves like pulling non existing files555 with file test.pom556 behaves like returning a workhorse senddependency response557 returns a workhorse senddependency response558 with file test.md5559 behaves like returning a workhorse sendurl response560 returns a workhorse sendurl response561 with file test.sha1562 behaves like returning a workhorse sendurl response563 returns a workhorse sendurl response564 behaves like pulling existing files565 when pulling a pom file566 etag_service_response: #<ServiceResponse:0x00007cef3b846280 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil567 behaves like returning response status568 returns ok569 etag_service_response: #<ServiceResponse:0x00007cef3b7d1890 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil570 behaves like returning response status571 returns ok572 etag_service_response: #<ServiceResponse:0x00007cef46513238 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"573 behaves like returning a workhorse sendurl response574 returns a workhorse sendurl response575 when pulling a md5 file576 returns it577 when pulling a sha1 file578 returns it579 behaves like pulling non existing files580 with file test.pom581 behaves like returning a workhorse senddependency response582 returns a workhorse senddependency response583 with file test.md5584 behaves like returning a workhorse sendurl response585 returns a workhorse sendurl response586 with file test.sha1587 behaves like returning a workhorse sendurl response588 returns a workhorse sendurl response589 with a maintainer pulling files590 behaves like pulling existing files591 when pulling a pom file592 etag_service_response: #<ServiceResponse:0x00007cef38483bc8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil593 behaves like returning response status594 returns ok595 etag_service_response: #<ServiceResponse:0x00007cef38d4df60 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil596 behaves like returning response status597 returns ok598 etag_service_response: #<ServiceResponse:0x00007cef38c7fea8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"599 behaves like returning a workhorse senddependency response600 returns a workhorse senddependency response601 when pulling a md5 file602 returns it603 when pulling a sha1 file604 returns it605 behaves like pulling non existing files606 with file test.pom607 behaves like returning a workhorse senddependency response608 returns a workhorse senddependency response609 with file test.md5610 behaves like returning a workhorse sendurl response611 returns a workhorse sendurl response612 with file test.sha1613 behaves like returning a workhorse sendurl response614 returns a workhorse sendurl response615 behaves like pulling existing files616 when pulling a pom file617 etag_service_response: #<ServiceResponse:0x00007cef3e159280 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil618 behaves like returning response status619 returns ok620 etag_service_response: #<ServiceResponse:0x00007cef3e8059a8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil621 behaves like returning response status622 returns ok623 etag_service_response: #<ServiceResponse:0x00007cef3e7b5688 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"624 behaves like returning a workhorse senddependency response625 returns a workhorse senddependency response626 when pulling a md5 file627 returns it628 when pulling a sha1 file629 returns it630 behaves like pulling non existing files631 with file test.pom632 behaves like returning a workhorse senddependency response633 returns a workhorse senddependency response634 with file test.md5635 behaves like returning a workhorse sendurl response636 returns a workhorse sendurl response637 with file test.sha1638 behaves like returning a workhorse sendurl response639 returns a workhorse sendurl response640 with a ci job token641 with custom headers642 behaves like pulling existing files643 when pulling a pom file644 etag_service_response: #<ServiceResponse:0x00007cef39bd1dc0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil645 behaves like returning response status646 returns ok647 etag_service_response: #<ServiceResponse:0x00007cef39ae0ba0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil648 behaves like returning response status649 returns ok650 etag_service_response: #<ServiceResponse:0x00007cef39a56ce8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"651 behaves like returning a workhorse senddependency response652 returns a workhorse senddependency response653 when pulling a md5 file654 returns it655 when pulling a sha1 file656 returns it657 behaves like pulling non existing files658 with file test.pom659 behaves like returning a workhorse senddependency response660 returns a workhorse senddependency response661 with file test.md5662 behaves like returning a workhorse sendurl response663 returns a workhorse sendurl response664 with file test.sha1665 behaves like returning a workhorse sendurl response666 returns a workhorse sendurl response667 with basic auth668 behaves like pulling existing files669 when pulling a pom file670 etag_service_response: #<ServiceResponse:0x00007cef3b61c310 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil671 behaves like returning response status672 returns ok673 etag_service_response: #<ServiceResponse:0x00007cef3b505fa8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil674 behaves like returning response status675 returns ok676 etag_service_response: #<ServiceResponse:0x00007cef3b46be08 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"677 behaves like returning a workhorse senddependency response678 returns a workhorse senddependency response679 when pulling a md5 file680 returns it681 when pulling a sha1 file682 returns it683 behaves like pulling non existing files684 with file test.pom685 behaves like returning a workhorse senddependency response686 returns a workhorse senddependency response687 with file test.md5688 behaves like returning a workhorse sendurl response689 returns a workhorse sendurl response690 with file test.sha1691 behaves like returning a workhorse sendurl response692 returns a workhorse sendurl response693 with a deploy token694 with custom headers695 behaves like pulling existing files696 when pulling a pom file697 etag_service_response: #<ServiceResponse:0x00007cef2e6aa820 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil698 behaves like returning response status699 returns ok700 etag_service_response: #<ServiceResponse:0x00007cef2dd16cc8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil701 behaves like returning response status702 returns ok703 etag_service_response: #<ServiceResponse:0x00007cef2db93f18 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"704 behaves like returning a workhorse senddependency response705 returns a workhorse senddependency response706 when pulling a md5 file707 returns it708 when pulling a sha1 file709 returns it710 behaves like pulling non existing files711 with file test.pom712 behaves like returning a workhorse senddependency response713 returns a workhorse senddependency response714 with file test.md5715 behaves like returning a workhorse sendurl response716 returns a workhorse sendurl response717 with file test.sha1718 behaves like returning a workhorse sendurl response719 returns a workhorse sendurl response720 with basic auth721 behaves like pulling existing files722 when pulling a pom file723 etag_service_response: #<ServiceResponse:0x00007cef349798e8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil724 behaves like returning response status725 returns ok726 etag_service_response: #<ServiceResponse:0x00007cef3493a990 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil727 behaves like returning response status728 returns ok729 etag_service_response: #<ServiceResponse:0x00007cef34bcb7e0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"730 behaves like returning a workhorse senddependency response731 returns a workhorse senddependency response732 when pulling a md5 file733 returns it734 when pulling a sha1 file735 returns it736 behaves like pulling non existing files737 with file test.pom738 behaves like returning a workhorse senddependency response739 returns a workhorse senddependency response740 with file test.md5741 behaves like returning a workhorse sendurl response742 returns a workhorse sendurl response743 with file test.sha1744 behaves like returning a workhorse sendurl response745 returns a workhorse sendurl response746 with an internal project747 behaves like handling different token types748 and a personal access token749 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :unauthorized750 behaves like returning response status751 returns unauthorized752 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :ok753 behaves like returning response status754 returns ok755 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :ok756 behaves like returning response status757 returns ok758 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized759 behaves like returning response status760 returns unauthorized761 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized762 behaves like returning response status763 returns unauthorized764 and a deploy token765 valid_token: true, sent_using: :custom_header, expected_status: :ok766 behaves like returning response status767 returns ok768 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized769 behaves like returning response status770 returns unauthorized771 valid_token: true, sent_using: :basic_auth, expected_status: :ok772 behaves like returning response status773 returns ok774 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized775 behaves like returning response status776 returns unauthorized777 and a ci job token778 valid_token: true, sent_using: :custom_header, expected_status: :ok779 behaves like returning response status780 returns ok781 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized782 behaves like returning response status783 returns unauthorized784 valid_token: true, sent_using: :basic_auth, expected_status: :ok785 behaves like returning response status786 returns ok787 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized788 behaves like returning response status789 returns unauthorized790 behaves like a user pulling files791 with a reporter pulling files792 behaves like pulling existing files793 when pulling a pom file794 etag_service_response: #<ServiceResponse:0x00007cef43bee380 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil795 behaves like returning response status796 returns ok797 etag_service_response: #<ServiceResponse:0x00007cef43bbf5f8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil798 behaves like returning response status799 returns ok800 etag_service_response: #<ServiceResponse:0x00007cef43b59c80 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"801 behaves like returning a workhorse sendurl response802 returns a workhorse sendurl response803 when pulling a md5 file804 returns it805 when pulling a sha1 file806 returns it807 behaves like pulling non existing files808 with file test.pom809 behaves like returning a workhorse sendurl response810 returns a workhorse sendurl response811 with file test.md5812 behaves like returning a workhorse sendurl response813 returns a workhorse sendurl response814 with file test.sha1815 behaves like returning a workhorse sendurl response816 returns a workhorse sendurl response817 behaves like pulling existing files818 when pulling a pom file819 etag_service_response: #<ServiceResponse:0x00007cef35ac9d28 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil820 behaves like returning response status821 returns ok822 etag_service_response: #<ServiceResponse:0x00007cef35a99ce0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil823 behaves like returning response status824 returns ok825 etag_service_response: #<ServiceResponse:0x00007cef35a6c538 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"826 behaves like returning a workhorse sendurl response827 returns a workhorse sendurl response828 when pulling a md5 file829 returns it830 when pulling a sha1 file831 returns it832 behaves like pulling non existing files833 with file test.pom834 behaves like returning a workhorse sendurl response835 returns a workhorse sendurl response836 with file test.md5837 behaves like returning a workhorse sendurl response838 returns a workhorse sendurl response839 with file test.sha1840 behaves like returning a workhorse sendurl response841 returns a workhorse sendurl response842 with a developer pulling files843 behaves like pulling existing files844 when pulling a pom file845 etag_service_response: #<ServiceResponse:0x00007cef35f66638 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil846 behaves like returning response status847 returns ok848 etag_service_response: #<ServiceResponse:0x00007cef35f5ed70 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil849 behaves like returning response status850 returns ok851 etag_service_response: #<ServiceResponse:0x00007cef35eed558 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"852 behaves like returning a workhorse sendurl response853 returns a workhorse sendurl response854 when pulling a md5 file855 returns it856 when pulling a sha1 file857 returns it858 behaves like pulling non existing files859 with file test.pom860 behaves like returning a workhorse senddependency response861 returns a workhorse senddependency response862 with file test.md5863 behaves like returning a workhorse sendurl response864 returns a workhorse sendurl response865 with file test.sha1866 behaves like returning a workhorse sendurl response867 returns a workhorse sendurl response868 behaves like pulling existing files869 when pulling a pom file870 etag_service_response: #<ServiceResponse:0x00007cef364c24b0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil871 behaves like returning response status872 returns ok873 etag_service_response: #<ServiceResponse:0x00007cef3649d1b0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil874 behaves like returning response status875 returns ok876 etag_service_response: #<ServiceResponse:0x00007cef364aa270 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"877 behaves like returning a workhorse sendurl response878 returns a workhorse sendurl response879 when pulling a md5 file880 returns it881 when pulling a sha1 file882 returns it883 behaves like pulling non existing files884 with file test.pom885 behaves like returning a workhorse senddependency response886 returns a workhorse senddependency response887 with file test.md5888 behaves like returning a workhorse sendurl response889 returns a workhorse sendurl response890 with file test.sha1891 behaves like returning a workhorse sendurl response892 returns a workhorse sendurl response893 with a maintainer pulling files894 behaves like pulling existing files895 when pulling a pom file896 etag_service_response: #<ServiceResponse:0x00007cef36e909b0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil897 behaves like returning response status898 returns ok899 etag_service_response: #<ServiceResponse:0x00007cef36e518f0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil900 behaves like returning response status901 returns ok902 etag_service_response: #<ServiceResponse:0x00007cef370ed8e8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"903 behaves like returning a workhorse senddependency response904 returns a workhorse senddependency response905 when pulling a md5 file906 returns it907 when pulling a sha1 file908 returns it909 behaves like pulling non existing files910 with file test.pom911 behaves like returning a workhorse senddependency response912 returns a workhorse senddependency response913 with file test.md5914 behaves like returning a workhorse sendurl response915 returns a workhorse sendurl response916 with file test.sha1917 behaves like returning a workhorse sendurl response918 returns a workhorse sendurl response919 behaves like pulling existing files920 when pulling a pom file921 etag_service_response: #<ServiceResponse:0x00007cef37408ca8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil922 behaves like returning response status923 returns ok924 etag_service_response: #<ServiceResponse:0x00007cef3742daa8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil925 behaves like returning response status926 returns ok927 etag_service_response: #<ServiceResponse:0x00007cef3766b068 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"928 behaves like returning a workhorse senddependency response929 returns a workhorse senddependency response930 when pulling a md5 file931 returns it932 when pulling a sha1 file933 returns it934 behaves like pulling non existing files935 with file test.pom936 behaves like returning a workhorse senddependency response937 returns a workhorse senddependency response938 with file test.md5939 behaves like returning a workhorse sendurl response940 returns a workhorse sendurl response941 with file test.sha1942 behaves like returning a workhorse sendurl response943 returns a workhorse sendurl response944 with a ci job token945 with custom headers946 behaves like pulling existing files947 when pulling a pom file948 etag_service_response: #<ServiceResponse:0x00007cef2c138df8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil949 behaves like returning response status950 returns ok951 etag_service_response: #<ServiceResponse:0x00007cef37436f68 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil952 behaves like returning response status953 returns ok954 etag_service_response: #<ServiceResponse:0x00007cef2c2f5678 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"955 behaves like returning a workhorse senddependency response956 returns a workhorse senddependency response957 when pulling a md5 file958 returns it959 when pulling a sha1 file960 returns it961 behaves like pulling non existing files962 with file test.pom963 behaves like returning a workhorse senddependency response964 returns a workhorse senddependency response965 with file test.md5966 behaves like returning a workhorse sendurl response967 returns a workhorse sendurl response968 with file test.sha1969 behaves like returning a workhorse sendurl response970 returns a workhorse sendurl response971 with basic auth972 behaves like pulling existing files973 when pulling a pom file974 etag_service_response: #<ServiceResponse:0x00007cef2c6be3e0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil975 behaves like returning response status976 returns ok977 etag_service_response: #<ServiceResponse:0x00007cef2c6a6038 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil978 behaves like returning response status979 returns ok980 etag_service_response: #<ServiceResponse:0x00007cef2c6d8970 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"981 behaves like returning a workhorse senddependency response982 returns a workhorse senddependency response983 when pulling a md5 file984 returns it985 when pulling a sha1 file986 returns it987 behaves like pulling non existing files988 with file test.pom989 behaves like returning a workhorse senddependency response990 returns a workhorse senddependency response991 with file test.md5992 behaves like returning a workhorse sendurl response993 returns a workhorse sendurl response994 with file test.sha1995 behaves like returning a workhorse sendurl response996 returns a workhorse sendurl response997 with a deploy token998 with custom headers999 behaves like pulling existing files1000 when pulling a pom file1001 etag_service_response: #<ServiceResponse:0x00007cef2ca07b00 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1002 behaves like returning response status1003 returns ok1004 etag_service_response: #<ServiceResponse:0x00007cef2ca1d810 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1005 behaves like returning response status1006 returns ok1007 etag_service_response: #<ServiceResponse:0x00007cef2c9b1688 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1008 behaves like returning a workhorse senddependency response1009 returns a workhorse senddependency response1010 when pulling a md5 file1011 returns it1012 when pulling a sha1 file1013 returns it1014 behaves like pulling non existing files1015 with file test.pom1016 behaves like returning a workhorse senddependency response1017 returns a workhorse senddependency response1018 with file test.md51019 behaves like returning a workhorse sendurl response1020 returns a workhorse sendurl response1021 with file test.sha11022 behaves like returning a workhorse sendurl response1023 returns a workhorse sendurl response1024 with basic auth1025 behaves like pulling existing files1026 when pulling a pom file1027 etag_service_response: #<ServiceResponse:0x00007cef2cceedc8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1028 behaves like returning response status1029 returns ok1030 etag_service_response: #<ServiceResponse:0x00007cef2cd104f0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1031 behaves like returning response status1032 returns ok1033 etag_service_response: #<ServiceResponse:0x00007cef2ccca478 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1034 behaves like returning a workhorse senddependency response1035 returns a workhorse senddependency response1036 when pulling a md5 file1037 returns it1038 when pulling a sha1 file1039 returns it1040 behaves like pulling non existing files1041 with file test.pom1042 behaves like returning a workhorse senddependency response1043 returns a workhorse senddependency response1044 with file test.md51045 behaves like returning a workhorse sendurl response1046 returns a workhorse sendurl response1047 with file test.sha11048 behaves like returning a workhorse sendurl response1049 returns a workhorse sendurl response1050 with a private project1051 behaves like handling different token types1052 and a personal access token1053 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :unauthorized1054 behaves like returning response status1055 returns unauthorized1056 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :forbidden1057 behaves like returning response status1058 returns forbidden1059 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :forbidden1060 behaves like returning response status1061 returns forbidden1062 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1063 behaves like returning response status1064 returns unauthorized1065 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1066 behaves like returning response status1067 returns unauthorized1068 user_role: :reporter, valid_token: true, sent_using: :custom_header, expected_status: :ok1069 behaves like returning response status1070 returns ok1071 user_role: :reporter, valid_token: true, sent_using: :basic_auth, expected_status: :ok1072 behaves like returning response status1073 returns ok1074 user_role: :reporter, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1075 behaves like returning response status1076 returns unauthorized1077 user_role: :reporter, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1078 behaves like returning response status1079 returns unauthorized1080 and a deploy token1081 valid_token: true, sent_using: :custom_header, expected_status: :ok1082 behaves like returning response status1083 returns ok1084 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1085 behaves like returning response status1086 returns unauthorized1087 valid_token: true, sent_using: :basic_auth, expected_status: :ok1088 behaves like returning response status1089 returns ok1090 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1091 behaves like returning response status1092 returns unauthorized1093 and a ci job token1094 valid_token: true, sent_using: :custom_header, expected_status: :ok1095 behaves like returning response status1096 returns ok1097 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1098 behaves like returning response status1099 returns unauthorized1100 valid_token: true, sent_using: :basic_auth, expected_status: :ok1101 behaves like returning response status1102 returns ok1103 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1104 behaves like returning response status1105 returns unauthorized1106 behaves like a user pulling files1107 with a reporter pulling files1108 behaves like pulling existing files1109 when pulling a pom file1110 etag_service_response: #<ServiceResponse:0x00007cef2eb4f178 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1111 behaves like returning response status1112 returns ok1113 etag_service_response: #<ServiceResponse:0x00007cef2f2e01d0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1114 behaves like returning response status1115 returns ok1116 etag_service_response: #<ServiceResponse:0x00007cef2f2b95a8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1117 behaves like returning a workhorse sendurl response1118 returns a workhorse sendurl response1119 when pulling a md5 file1120 returns it1121 when pulling a sha1 file1122 returns it1123 behaves like pulling non existing files1124 with file test.pom1125 behaves like returning a workhorse sendurl response1126 returns a workhorse sendurl response1127 with file test.md51128 behaves like returning a workhorse sendurl response1129 returns a workhorse sendurl response1130 with file test.sha11131 behaves like returning a workhorse sendurl response1132 returns a workhorse sendurl response1133 behaves like pulling existing files1134 when pulling a pom file1135 etag_service_response: #<ServiceResponse:0x00007cef2f654410 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1136 behaves like returning response status1137 returns ok1138 etag_service_response: #<ServiceResponse:0x00007cef2f8a9d50 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1139 behaves like returning response status1140 returns ok1141 etag_service_response: #<ServiceResponse:0x00007cef2f8616b8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1142 behaves like returning a workhorse sendurl response1143 returns a workhorse sendurl response1144 when pulling a md5 file1145 returns it1146 when pulling a sha1 file1147 returns it1148 behaves like pulling non existing files1149 with file test.pom1150 behaves like returning a workhorse sendurl response1151 returns a workhorse sendurl response1152 with file test.md51153 behaves like returning a workhorse sendurl response1154 returns a workhorse sendurl response1155 with file test.sha11156 behaves like returning a workhorse sendurl response1157 returns a workhorse sendurl response1158 with a developer pulling files1159 behaves like pulling existing files1160 when pulling a pom file1161 etag_service_response: #<ServiceResponse:0x00007cef30517088 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1162 behaves like returning response status1163 returns ok1164 etag_service_response: #<ServiceResponse:0x00007cef304e5c18 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1165 behaves like returning response status1166 returns ok1167 etag_service_response: #<ServiceResponse:0x00007cef304f07d0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1168 behaves like returning a workhorse sendurl response1169 returns a workhorse sendurl response1170 when pulling a md5 file1171 returns it1172 when pulling a sha1 file1173 returns it1174 behaves like pulling non existing files1175 with file test.pom1176 behaves like returning a workhorse senddependency response1177 returns a workhorse senddependency response1178 with file test.md51179 behaves like returning a workhorse sendurl response1180 returns a workhorse sendurl response1181 with file test.sha11182 behaves like returning a workhorse sendurl response1183 returns a workhorse sendurl response1184 behaves like pulling existing files1185 when pulling a pom file1186 etag_service_response: #<ServiceResponse:0x00007cef308a53a8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1187 behaves like returning response status1188 returns ok1189 etag_service_response: #<ServiceResponse:0x00007cef3085c248 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1190 behaves like returning response status1191 returns ok1192 etag_service_response: #<ServiceResponse:0x00007cef3081c1c0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1193 behaves like returning a workhorse sendurl response1194 returns a workhorse sendurl response1195 when pulling a md5 file1196 returns it1197 when pulling a sha1 file1198 returns it1199 behaves like pulling non existing files1200 with file test.pom1201 behaves like returning a workhorse senddependency response1202 returns a workhorse senddependency response1203 with file test.md51204 behaves like returning a workhorse sendurl response1205 returns a workhorse sendurl response1206 with file test.sha11207 behaves like returning a workhorse sendurl response1208 returns a workhorse sendurl response1209 with a maintainer pulling files1210 behaves like pulling existing files1211 when pulling a pom file1212 etag_service_response: #<ServiceResponse:0x00007cef314a4550 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1213 behaves like returning response status1214 returns ok1215 etag_service_response: #<ServiceResponse:0x00007cef313fa398 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1216 behaves like returning response status1217 returns ok1218 etag_service_response: #<ServiceResponse:0x00007cef314342c8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1219 behaves like returning a workhorse senddependency response1220 returns a workhorse senddependency response1221 when pulling a md5 file1222 returns it1223 when pulling a sha1 file1224 returns it1225 behaves like pulling non existing files1226 with file test.pom1227 behaves like returning a workhorse senddependency response1228 returns a workhorse senddependency response1229 with file test.md51230 behaves like returning a workhorse sendurl response1231 returns a workhorse sendurl response1232 with file test.sha11233 behaves like returning a workhorse sendurl response1234 returns a workhorse sendurl response1235 behaves like pulling existing files1236 when pulling a pom file1237 etag_service_response: #<ServiceResponse:0x00007cef31a757e0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1238 behaves like returning response status1239 returns ok1240 etag_service_response: #<ServiceResponse:0x00007cef31ad0028 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1241 behaves like returning response status1242 returns ok1243 etag_service_response: #<ServiceResponse:0x00007cef31a97980 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1244 behaves like returning a workhorse senddependency response1245 returns a workhorse senddependency response1246 when pulling a md5 file1247 returns it1248 when pulling a sha1 file1249 returns it1250 behaves like pulling non existing files1251 with file test.pom1252 behaves like returning a workhorse senddependency response1253 returns a workhorse senddependency response1254 with file test.md51255 behaves like returning a workhorse sendurl response1256 returns a workhorse sendurl response1257 with file test.sha11258 behaves like returning a workhorse sendurl response1259 returns a workhorse sendurl response1260 with a ci job token1261 with custom headers1262 behaves like pulling existing files1263 when pulling a pom file1264 etag_service_response: #<ServiceResponse:0x00007cef272a4228 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1265 behaves like returning response status1266 returns ok1267 etag_service_response: #<ServiceResponse:0x00007cef27274e88 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1268 behaves like returning response status1269 returns ok1270 etag_service_response: #<ServiceResponse:0x00007cef272566b8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1271 behaves like returning a workhorse senddependency response1272 returns a workhorse senddependency response1273 when pulling a md5 file1274 returns it1275 when pulling a sha1 file1276 returns it1277 behaves like pulling non existing files1278 with file test.pom1279 behaves like returning a workhorse senddependency response1280 returns a workhorse senddependency response1281 with file test.md51282 behaves like returning a workhorse sendurl response1283 returns a workhorse sendurl response1284 with file test.sha11285 behaves like returning a workhorse sendurl response1286 returns a workhorse sendurl response1287 with basic auth1288 behaves like pulling existing files1289 when pulling a pom file1290 etag_service_response: #<ServiceResponse:0x00007cef1d60fc28 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1291 behaves like returning response status1292 returns ok1293 etag_service_response: #<ServiceResponse:0x00007cef1d5bf548 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1294 behaves like returning response status1295 returns ok1296 etag_service_response: #<ServiceResponse:0x00007cef1d6032c0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1297 behaves like returning a workhorse senddependency response1298 returns a workhorse senddependency response1299 when pulling a md5 file1300 returns it1301 when pulling a sha1 file1302 returns it1303 behaves like pulling non existing files1304 with file test.pom1305 behaves like returning a workhorse senddependency response1306 returns a workhorse senddependency response1307 with file test.md51308 behaves like returning a workhorse sendurl response1309 returns a workhorse sendurl response1310 with file test.sha11311 behaves like returning a workhorse sendurl response1312 returns a workhorse sendurl response1313 with a deploy token1314 with custom headers1315 behaves like pulling existing files1316 when pulling a pom file1317 etag_service_response: #<ServiceResponse:0x00007cef1d7567d0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1318 behaves like returning response status1319 returns ok1320 etag_service_response: #<ServiceResponse:0x00007cef1d73d500 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1321 behaves like returning response status1322 returns ok1323 etag_service_response: #<ServiceResponse:0x00007cef1d748b58 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1324 behaves like returning a workhorse senddependency response1325 returns a workhorse senddependency response1326 when pulling a md5 file1327 returns it1328 when pulling a sha1 file1329 returns it1330 behaves like pulling non existing files1331 with file test.pom1332 behaves like returning a workhorse senddependency response1333 returns a workhorse senddependency response1334 with file test.md51335 behaves like returning a workhorse sendurl response1336 returns a workhorse sendurl response1337 with file test.sha11338 behaves like returning a workhorse sendurl response1339 returns a workhorse sendurl response1340 with basic auth1341 behaves like pulling existing files1342 when pulling a pom file1343 etag_service_response: #<ServiceResponse:0x00007cef1d8e1c08 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1344 behaves like returning response status1345 returns ok1346 etag_service_response: #<ServiceResponse:0x00007cef1d8c4e78 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1347 behaves like returning response status1348 returns ok1349 etag_service_response: #<ServiceResponse:0x00007cef1d854920 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1350 behaves like returning a workhorse senddependency response1351 returns a workhorse senddependency response1352 when pulling a md5 file1353 returns it1354 when pulling a sha1 file1355 returns it1356 behaves like pulling non existing files1357 with file test.pom1358 behaves like returning a workhorse senddependency response1359 returns a workhorse senddependency response1360 with file test.md51361 behaves like returning a workhorse sendurl response1362 returns a workhorse sendurl response1363 with file test.sha11364 behaves like returning a workhorse sendurl response1365 returns a workhorse sendurl response1366 with package registry public access set to false1367 with a public project1368 behaves like handling different token types1369 and a personal access token1370 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :forbidden1371 behaves like returning response status1372 returns forbidden1373 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :ok1374 behaves like returning response status1375 returns ok1376 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :ok1377 behaves like returning response status1378 returns ok1379 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1380 behaves like returning response status1381 returns unauthorized1382 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1383 behaves like returning response status1384 returns unauthorized1385 and a deploy token1386 valid_token: true, sent_using: :custom_header, expected_status: :ok1387 behaves like returning response status1388 returns ok1389 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1390 behaves like returning response status1391 returns unauthorized1392 valid_token: true, sent_using: :basic_auth, expected_status: :ok1393 behaves like returning response status1394 returns ok1395 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1396 behaves like returning response status1397 returns unauthorized1398 and a ci job token1399 valid_token: true, sent_using: :custom_header, expected_status: :ok1400 behaves like returning response status1401 returns ok1402 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1403 behaves like returning response status1404 returns unauthorized1405 valid_token: true, sent_using: :basic_auth, expected_status: :ok1406 behaves like returning response status1407 returns ok1408 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1409 behaves like returning response status1410 returns unauthorized1411 behaves like a user pulling files1412 with a reporter pulling files1413 behaves like pulling existing files1414 when pulling a pom file1415 etag_service_response: #<ServiceResponse:0x00007cef1dbe1890 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1416 behaves like returning response status1417 returns ok1418 etag_service_response: #<ServiceResponse:0x00007cef1dc35800 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1419 behaves like returning response status1420 returns ok1421 etag_service_response: #<ServiceResponse:0x00007cef1dca5128 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1422 behaves like returning a workhorse sendurl response1423 returns a workhorse sendurl response1424 when pulling a md5 file1425 returns it1426 when pulling a sha1 file1427 returns it1428 behaves like pulling non existing files1429 with file test.pom1430 behaves like returning a workhorse sendurl response1431 returns a workhorse sendurl response1432 with file test.md51433 behaves like returning a workhorse sendurl response1434 returns a workhorse sendurl response1435 with file test.sha11436 behaves like returning a workhorse sendurl response1437 returns a workhorse sendurl response1438 behaves like pulling existing files1439 when pulling a pom file1440 etag_service_response: #<ServiceResponse:0x00007cef1dcfec00 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1441 behaves like returning response status1442 returns ok1443 etag_service_response: #<ServiceResponse:0x00007cef1dcf5d08 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1444 behaves like returning response status1445 returns ok1446 etag_service_response: #<ServiceResponse:0x00007cef1dc69a88 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1447 behaves like returning a workhorse sendurl response1448 returns a workhorse sendurl response1449 when pulling a md5 file1450 returns it1451 when pulling a sha1 file1452 returns it1453 behaves like pulling non existing files1454 with file test.pom1455 behaves like returning a workhorse sendurl response1456 returns a workhorse sendurl response1457 with file test.md51458 behaves like returning a workhorse sendurl response1459 returns a workhorse sendurl response1460 with file test.sha11461 behaves like returning a workhorse sendurl response1462 returns a workhorse sendurl response1463 with a developer pulling files1464 behaves like pulling existing files1465 when pulling a pom file1466 etag_service_response: #<ServiceResponse:0x00007cef1deb9a90 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1467 behaves like returning response status1468 returns ok1469 etag_service_response: #<ServiceResponse:0x00007cef1deb0c88 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1470 behaves like returning response status1471 returns ok1472 etag_service_response: #<ServiceResponse:0x00007cef1ddffde8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1473 behaves like returning a workhorse sendurl response1474 returns a workhorse sendurl response1475 when pulling a md5 file1476 returns it1477 when pulling a sha1 file1478 returns it1479 behaves like pulling non existing files1480 with file test.pom1481 behaves like returning a workhorse senddependency response1482 returns a workhorse senddependency response1483 with file test.md51484 behaves like returning a workhorse sendurl response1485 returns a workhorse sendurl response1486 with file test.sha11487 behaves like returning a workhorse sendurl response1488 returns a workhorse sendurl response1489 behaves like pulling existing files1490 when pulling a pom file1491 etag_service_response: #<ServiceResponse:0x00007cef1e0c37f0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1492 behaves like returning response status1493 returns ok1494 etag_service_response: #<ServiceResponse:0x00007cef1e082548 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1495 behaves like returning response status1496 returns ok1497 etag_service_response: #<ServiceResponse:0x00007cef1e0a5638 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1498 behaves like returning a workhorse sendurl response1499 returns a workhorse sendurl response1500 when pulling a md5 file1501 returns it1502 when pulling a sha1 file1503 returns it1504 behaves like pulling non existing files1505 with file test.pom1506 behaves like returning a workhorse senddependency response1507 returns a workhorse senddependency response1508 with file test.md51509 behaves like returning a workhorse sendurl response1510 returns a workhorse sendurl response1511 with file test.sha11512 behaves like returning a workhorse sendurl response1513 returns a workhorse sendurl response1514 with a maintainer pulling files1515 behaves like pulling existing files1516 when pulling a pom file1517 etag_service_response: #<ServiceResponse:0x00007cef1f210648 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1518 behaves like returning response status1519 returns ok1520 etag_service_response: #<ServiceResponse:0x00007cef1f208560 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1521 behaves like returning response status1522 returns ok1523 etag_service_response: #<ServiceResponse:0x00007cef1f1fcd28 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1524 behaves like returning a workhorse senddependency response1525 returns a workhorse senddependency response1526 when pulling a md5 file1527 returns it1528 when pulling a sha1 file1529 returns it1530 behaves like pulling non existing files1531 with file test.pom1532 behaves like returning a workhorse senddependency response1533 returns a workhorse senddependency response1534 with file test.md51535 behaves like returning a workhorse sendurl response1536 returns a workhorse sendurl response1537 with file test.sha11538 behaves like returning a workhorse sendurl response1539 returns a workhorse sendurl response1540 behaves like pulling existing files1541 when pulling a pom file1542 etag_service_response: #<ServiceResponse:0x00007cef202ba1b0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1543 behaves like returning response status1544 returns ok1545 etag_service_response: #<ServiceResponse:0x00007cef202b1f38 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1546 behaves like returning response status1547 returns ok1548 etag_service_response: #<ServiceResponse:0x00007cef203326d8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1549 behaves like returning a workhorse senddependency response1550 returns a workhorse senddependency response1551 when pulling a md5 file1552 returns it1553 when pulling a sha1 file1554 returns it1555 behaves like pulling non existing files1556 with file test.pom1557 behaves like returning a workhorse senddependency response1558 returns a workhorse senddependency response1559 with file test.md51560 behaves like returning a workhorse sendurl response1561 returns a workhorse sendurl response1562 with file test.sha11563 behaves like returning a workhorse sendurl response1564 returns a workhorse sendurl response1565 with a ci job token1566 with custom headers1567 behaves like pulling existing files1568 when pulling a pom file1569 etag_service_response: #<ServiceResponse:0x00007cef203e2bf0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1570 behaves like returning response status1571 returns ok1572 etag_service_response: #<ServiceResponse:0x00007cef203d66e8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1573 behaves like returning response status1574 returns ok1575 etag_service_response: #<ServiceResponse:0x00007cef1e0eca38 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1576 behaves like returning a workhorse senddependency response1577 returns a workhorse senddependency response1578 when pulling a md5 file1579 returns it1580 when pulling a sha1 file1581 returns it1582 behaves like pulling non existing files1583 with file test.pom1584 behaves like returning a workhorse senddependency response1585 returns a workhorse senddependency response1586 with file test.md51587 behaves like returning a workhorse sendurl response1588 returns a workhorse sendurl response1589 with file test.sha11590 behaves like returning a workhorse sendurl response1591 returns a workhorse sendurl response1592 with basic auth1593 behaves like pulling existing files1594 when pulling a pom file1595 etag_service_response: #<ServiceResponse:0x00007cef1e3275a0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1596 behaves like returning response status1597 returns ok1598 etag_service_response: #<ServiceResponse:0x00007cef1e31f148 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1599 behaves like returning response status1600 returns ok1601 etag_service_response: #<ServiceResponse:0x00007cef1e43f960 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1602 behaves like returning a workhorse senddependency response1603 returns a workhorse senddependency response1604 when pulling a md5 file1605 returns it1606 when pulling a sha1 file1607 returns it1608 behaves like pulling non existing files1609 with file test.pom1610 behaves like returning a workhorse senddependency response1611 returns a workhorse senddependency response1612 with file test.md51613 behaves like returning a workhorse sendurl response1614 returns a workhorse sendurl response1615 with file test.sha11616 behaves like returning a workhorse sendurl response1617 returns a workhorse sendurl response1618 with a deploy token1619 with custom headers1620 behaves like pulling existing files1621 when pulling a pom file1622 etag_service_response: #<ServiceResponse:0x00007cef1eefd1b8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1623 behaves like returning response status1624 returns ok1625 etag_service_response: #<ServiceResponse:0x00007cef1ef84d70 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1626 behaves like returning response status1627 returns ok1628 etag_service_response: #<ServiceResponse:0x00007cef1ef74c90 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1629 behaves like returning a workhorse senddependency response1630 returns a workhorse senddependency response1631 when pulling a md5 file1632 returns it1633 when pulling a sha1 file1634 returns it1635 behaves like pulling non existing files1636 with file test.pom1637 behaves like returning a workhorse senddependency response1638 returns a workhorse senddependency response1639 with file test.md51640 behaves like returning a workhorse sendurl response1641 returns a workhorse sendurl response1642 with file test.sha11643 behaves like returning a workhorse sendurl response1644 returns a workhorse sendurl response1645 with basic auth1646 behaves like pulling existing files1647 when pulling a pom file1648 etag_service_response: #<ServiceResponse:0x00007cef1f0a5f38 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1649 behaves like returning response status1650 returns ok1651 etag_service_response: #<ServiceResponse:0x00007cef1f09c550 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1652 behaves like returning response status1653 returns ok1654 etag_service_response: #<ServiceResponse:0x00007cef1f1622c8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1655 behaves like returning a workhorse senddependency response1656 returns a workhorse senddependency response1657 when pulling a md5 file1658 returns it1659 when pulling a sha1 file1660 returns it1661 behaves like pulling non existing files1662 with file test.pom1663 behaves like returning a workhorse senddependency response1664 returns a workhorse senddependency response1665 with file test.md51666 behaves like returning a workhorse sendurl response1667 returns a workhorse sendurl response1668 with file test.sha11669 behaves like returning a workhorse sendurl response1670 returns a workhorse sendurl response1671 with an internal project1672 behaves like handling different token types1673 and a personal access token1674 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :unauthorized1675 behaves like returning response status1676 returns unauthorized1677 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :ok1678 behaves like returning response status1679 returns ok1680 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :ok1681 behaves like returning response status1682 returns ok1683 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1684 behaves like returning response status1685 returns unauthorized1686 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1687 behaves like returning response status1688 returns unauthorized1689 and a deploy token1690 valid_token: true, sent_using: :custom_header, expected_status: :ok1691 behaves like returning response status1692 returns ok1693 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1694 behaves like returning response status1695 returns unauthorized1696 valid_token: true, sent_using: :basic_auth, expected_status: :ok1697 behaves like returning response status1698 returns ok1699 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1700 behaves like returning response status1701 returns unauthorized1702 and a ci job token1703 valid_token: true, sent_using: :custom_header, expected_status: :ok1704 behaves like returning response status1705 returns ok1706 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1707 behaves like returning response status1708 returns unauthorized1709 valid_token: true, sent_using: :basic_auth, expected_status: :ok1710 behaves like returning response status1711 returns ok1712 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1713 behaves like returning response status1714 returns unauthorized1715 behaves like a user pulling files1716 with a reporter pulling files1717 behaves like pulling existing files1718 when pulling a pom file1719 etag_service_response: #<ServiceResponse:0x00007cef1e872a78 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1720 behaves like returning response status1721 returns ok1722 etag_service_response: #<ServiceResponse:0x00007cef1e85e410 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1723 behaves like returning response status1724 returns ok1725 etag_service_response: #<ServiceResponse:0x00007cef1e84ebc8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1726 behaves like returning a workhorse sendurl response1727 returns a workhorse sendurl response1728 when pulling a md5 file1729 returns it1730 when pulling a sha1 file1731 returns it1732 behaves like pulling non existing files1733 with file test.pom1734 behaves like returning a workhorse sendurl response1735 returns a workhorse sendurl response1736 with file test.md51737 behaves like returning a workhorse sendurl response1738 returns a workhorse sendurl response1739 with file test.sha11740 behaves like returning a workhorse sendurl response1741 returns a workhorse sendurl response1742 behaves like pulling existing files1743 when pulling a pom file1744 etag_service_response: #<ServiceResponse:0x00007cef1f570ba8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1745 behaves like returning response status1746 returns ok1747 etag_service_response: #<ServiceResponse:0x00007cef1f649f48 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1748 behaves like returning response status1749 returns ok1750 etag_service_response: #<ServiceResponse:0x00007cef1f63ced8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1751 behaves like returning a workhorse sendurl response1752 returns a workhorse sendurl response1753 when pulling a md5 file1754 returns it1755 when pulling a sha1 file1756 returns it1757 behaves like pulling non existing files1758 with file test.pom1759 behaves like returning a workhorse sendurl response1760 returns a workhorse sendurl response1761 with file test.md51762 behaves like returning a workhorse sendurl response1763 returns a workhorse sendurl response1764 with file test.sha11765 behaves like returning a workhorse sendurl response1766 returns a workhorse sendurl response1767 with a developer pulling files1768 behaves like pulling existing files1769 when pulling a pom file1770 etag_service_response: #<ServiceResponse:0x00007cef1e68bb60 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1771 behaves like returning response status1772 returns ok1773 etag_service_response: #<ServiceResponse:0x00007cef1e688230 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1774 behaves like returning response status1775 returns ok1776 etag_service_response: #<ServiceResponse:0x00007cef1f7d78b0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1777 behaves like returning a workhorse sendurl response1778 returns a workhorse sendurl response1779 when pulling a md5 file1780 returns it1781 when pulling a sha1 file1782 returns it1783 behaves like pulling non existing files1784 with file test.pom1785 behaves like returning a workhorse senddependency response1786 returns a workhorse senddependency response1787 with file test.md51788 behaves like returning a workhorse sendurl response1789 returns a workhorse sendurl response1790 with file test.sha11791 behaves like returning a workhorse sendurl response1792 returns a workhorse sendurl response1793 behaves like pulling existing files1794 when pulling a pom file1795 etag_service_response: #<ServiceResponse:0x00007cef1f899690 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1796 behaves like returning response status1797 returns ok1798 etag_service_response: #<ServiceResponse:0x00007cef1f97d818 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1799 behaves like returning response status1800 returns ok1801 etag_service_response: #<ServiceResponse:0x00007cef1f96bc80 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1802 behaves like returning a workhorse sendurl response1803 returns a workhorse sendurl response1804 when pulling a md5 file1805 returns it1806 when pulling a sha1 file1807 returns it1808 behaves like pulling non existing files1809 with file test.pom1810 behaves like returning a workhorse senddependency response1811 returns a workhorse senddependency response1812 with file test.md51813 behaves like returning a workhorse sendurl response1814 returns a workhorse sendurl response1815 with file test.sha11816 behaves like returning a workhorse sendurl response1817 returns a workhorse sendurl response1818 with a maintainer pulling files1819 behaves like pulling existing files1820 when pulling a pom file1821 etag_service_response: #<ServiceResponse:0x00007cef1fab4038 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1822 behaves like returning response status1823 returns ok1824 etag_service_response: #<ServiceResponse:0x00007cef1fb78e38 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1825 behaves like returning response status1826 returns ok1827 etag_service_response: #<ServiceResponse:0x00007cef1fb67b88 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1828 behaves like returning a workhorse senddependency response1829 returns a workhorse senddependency response1830 when pulling a md5 file1831 returns it1832 when pulling a sha1 file1833 returns it1834 behaves like pulling non existing files1835 with file test.pom1836 behaves like returning a workhorse senddependency response1837 returns a workhorse senddependency response1838 with file test.md51839 behaves like returning a workhorse sendurl response1840 returns a workhorse sendurl response1841 with file test.sha11842 behaves like returning a workhorse sendurl response1843 returns a workhorse sendurl response1844 behaves like pulling existing files1845 when pulling a pom file1846 etag_service_response: #<ServiceResponse:0x00007cef1fc72f28 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1847 behaves like returning response status1848 returns ok1849 etag_service_response: #<ServiceResponse:0x00007cef1fc612c8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1850 behaves like returning response status1851 returns ok1852 etag_service_response: #<ServiceResponse:0x00007cef1fd3c3f0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1853 behaves like returning a workhorse senddependency response1854 returns a workhorse senddependency response1855 when pulling a md5 file1856 returns it1857 when pulling a sha1 file1858 returns it1859 behaves like pulling non existing files1860 with file test.pom1861 behaves like returning a workhorse senddependency response1862 returns a workhorse senddependency response1863 with file test.md51864 behaves like returning a workhorse sendurl response1865 returns a workhorse sendurl response1866 with file test.sha11867 behaves like returning a workhorse sendurl response1868 returns a workhorse sendurl response1869 with a ci job token1870 with custom headers1871 behaves like pulling existing files1872 when pulling a pom file1873 etag_service_response: #<ServiceResponse:0x00007cef1fdbff20 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1874 behaves like returning response status1875 returns ok1876 etag_service_response: #<ServiceResponse:0x00007cef1fdbcaa0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1877 behaves like returning response status1878 returns ok1879 etag_service_response: #<ServiceResponse:0x00007cef1fdb59f8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1880 behaves like returning a workhorse senddependency response1881 returns a workhorse senddependency response1882 when pulling a md5 file1883 returns it1884 when pulling a sha1 file1885 returns it1886 behaves like pulling non existing files1887 with file test.pom1888 behaves like returning a workhorse senddependency response1889 returns a workhorse senddependency response1890 with file test.md51891 behaves like returning a workhorse sendurl response1892 returns a workhorse sendurl response1893 with file test.sha11894 behaves like returning a workhorse sendurl response1895 returns a workhorse sendurl response1896 with basic auth1897 behaves like pulling existing files1898 when pulling a pom file1899 etag_service_response: #<ServiceResponse:0x00007cef1fea5610 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1900 behaves like returning response status1901 returns ok1902 etag_service_response: #<ServiceResponse:0x00007cef1fe9dc58 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1903 behaves like returning response status1904 returns ok1905 etag_service_response: #<ServiceResponse:0x00007cef1fe96098 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1906 behaves like returning a workhorse senddependency response1907 returns a workhorse senddependency response1908 when pulling a md5 file1909 returns it1910 when pulling a sha1 file1911 returns it1912 behaves like pulling non existing files1913 with file test.pom1914 behaves like returning a workhorse senddependency response1915 returns a workhorse senddependency response1916 with file test.md51917 behaves like returning a workhorse sendurl response1918 returns a workhorse sendurl response1919 with file test.sha11920 behaves like returning a workhorse sendurl response1921 returns a workhorse sendurl response1922 with a deploy token1923 with custom headers1924 behaves like pulling existing files1925 when pulling a pom file1926 etag_service_response: #<ServiceResponse:0x00007cef1ff819f8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1927 behaves like returning response status1928 returns ok1929 etag_service_response: #<ServiceResponse:0x00007cef1ff79848 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1930 behaves like returning response status1931 returns ok1932 etag_service_response: #<ServiceResponse:0x00007cef1ff72548 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1933 behaves like returning a workhorse senddependency response1934 returns a workhorse senddependency response1935 when pulling a md5 file1936 returns it1937 when pulling a sha1 file1938 returns it1939 behaves like pulling non existing files1940 with file test.pom1941 behaves like returning a workhorse senddependency response1942 returns a workhorse senddependency response1943 with file test.md51944 behaves like returning a workhorse sendurl response1945 returns a workhorse sendurl response1946 with file test.sha11947 behaves like returning a workhorse sendurl response1948 returns a workhorse sendurl response1949 with basic auth1950 behaves like pulling existing files1951 when pulling a pom file1952 etag_service_response: #<ServiceResponse:0x00007cef2d187bc8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1953 behaves like returning response status1954 returns ok1955 etag_service_response: #<ServiceResponse:0x00007cef20179eb8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1956 behaves like returning response status1957 returns ok1958 etag_service_response: #<ServiceResponse:0x00007cef20166908 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1959 behaves like returning a workhorse senddependency response1960 returns a workhorse senddependency response1961 when pulling a md5 file1962 returns it1963 when pulling a sha1 file1964 returns it1965 behaves like pulling non existing files1966 with file test.pom1967 behaves like returning a workhorse senddependency response1968 returns a workhorse senddependency response1969 with file test.md51970 behaves like returning a workhorse sendurl response1971 returns a workhorse sendurl response1972 with file test.sha11973 behaves like returning a workhorse sendurl response1974 returns a workhorse sendurl response1975 with a private project1976 behaves like handling different token types1977 and a personal access token1978 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :unauthorized1979 behaves like returning response status1980 returns unauthorized1981 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :forbidden1982 behaves like returning response status1983 returns forbidden1984 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :forbidden1985 behaves like returning response status1986 returns forbidden1987 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1988 behaves like returning response status1989 returns unauthorized1990 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1991 behaves like returning response status1992 returns unauthorized1993 user_role: :reporter, valid_token: true, sent_using: :custom_header, expected_status: :ok1994 behaves like returning response status1995 returns ok1996 user_role: :reporter, valid_token: true, sent_using: :basic_auth, expected_status: :ok1997 behaves like returning response status1998 returns ok1999 user_role: :reporter, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized2000 behaves like returning response status2001 returns unauthorized2002 user_role: :reporter, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized2003 behaves like returning response status2004 returns unauthorized2005 and a deploy token2006 valid_token: true, sent_using: :custom_header, expected_status: :ok2007 behaves like returning response status2008 returns ok2009 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized2010 behaves like returning response status2011 returns unauthorized2012 valid_token: true, sent_using: :basic_auth, expected_status: :ok2013 behaves like returning response status2014 returns ok2015 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized2016 behaves like returning response status2017 returns unauthorized2018 and a ci job token2019 valid_token: true, sent_using: :custom_header, expected_status: :ok2020 behaves like returning response status2021 returns ok2022 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized2023 behaves like returning response status2024 returns unauthorized2025 valid_token: true, sent_using: :basic_auth, expected_status: :ok2026 behaves like returning response status2027 returns ok2028 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized2029 behaves like returning response status2030 returns unauthorized2031 behaves like a user pulling files2032 with a reporter pulling files2033 behaves like pulling existing files2034 when pulling a pom file2035 etag_service_response: #<ServiceResponse:0x00007cef208f9b48 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2036 behaves like returning response status2037 returns ok2038 etag_service_response: #<ServiceResponse:0x00007cef208f15b0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2039 behaves like returning response status2040 returns ok2041 etag_service_response: #<ServiceResponse:0x00007cef208e5968 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"2042 behaves like returning a workhorse sendurl response2043 returns a workhorse sendurl response2044 when pulling a md5 file2045 returns it2046 when pulling a sha1 file2047 returns it2048 behaves like pulling non existing files2049 with file test.pom2050 behaves like returning a workhorse sendurl response2051 returns a workhorse sendurl response2052 with file test.md52053 behaves like returning a workhorse sendurl response2054 returns a workhorse sendurl response2055 with file test.sha12056 behaves like returning a workhorse sendurl response2057 returns a workhorse sendurl response2058 behaves like pulling existing files2059 when pulling a pom file2060 etag_service_response: #<ServiceResponse:0x00007cef20abed20 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2061 behaves like returning response status2062 returns ok2063 etag_service_response: #<ServiceResponse:0x00007cef20a7fe68 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2064 behaves like returning response status2065 returns ok2066 etag_service_response: #<ServiceResponse:0x00007cef20a7c538 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"2067 behaves like returning a workhorse sendurl response2068 returns a workhorse sendurl response2069 when pulling a md5 file2070 returns it2071 when pulling a sha1 file2072 returns it2073 behaves like pulling non existing files2074 with file test.pom2075 behaves like returning a workhorse sendurl response2076 returns a workhorse sendurl response2077 with file test.md52078 behaves like returning a workhorse sendurl response2079 returns a workhorse sendurl response2080 with file test.sha12081 behaves like returning a workhorse sendurl response2082 returns a workhorse sendurl response2083 with a developer pulling files2084 behaves like pulling existing files2085 when pulling a pom file2086 etag_service_response: #<ServiceResponse:0x00007cef20ca8488 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2087 behaves like returning response status2088 returns ok2089 etag_service_response: #<ServiceResponse:0x00007cef20c34a88 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2090 behaves like returning response status2091 returns ok2092 etag_service_response: #<ServiceResponse:0x00007cef20c2d738 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"2093 behaves like returning a workhorse sendurl response2094 returns a workhorse sendurl response2095 when pulling a md5 file2096 returns it2097 when pulling a sha1 file2098 returns it2099 behaves like pulling non existing files2100 with file test.pom2101 behaves like returning a workhorse senddependency response2102 returns a workhorse senddependency response2103 with file test.md52104 behaves like returning a workhorse sendurl response2105 returns a workhorse sendurl response2106 with file test.sha12107 behaves like returning a workhorse sendurl response2108 returns a workhorse sendurl response2109 behaves like pulling existing files2110 when pulling a pom file2111 etag_service_response: #<ServiceResponse:0x00007cef20d54558 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2112 behaves like returning response status2113 returns ok2114 etag_service_response: #<ServiceResponse:0x00007cef20e1e858 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2115 behaves like returning response status2116 returns ok2117 etag_service_response: #<ServiceResponse:0x00007cef20e17620 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"2118 behaves like returning a workhorse sendurl response2119 returns a workhorse sendurl response2120 when pulling a md5 file2121 returns it2122 when pulling a sha1 file2123 returns it2124 behaves like pulling non existing files2125 with file test.pom2126 behaves like returning a workhorse senddependency response2127 returns a workhorse senddependency response2128 with file test.md52129 behaves like returning a workhorse sendurl response2130 returns a workhorse sendurl response2131 with file test.sha12132 behaves like returning a workhorse sendurl response2133 returns a workhorse sendurl response2134 with a maintainer pulling files2135 behaves like pulling existing files2136 when pulling a pom file2137 etag_service_response: #<ServiceResponse:0x00007cef20ed5530 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2138 behaves like returning response status2139 returns ok2140 etag_service_response: #<ServiceResponse:0x00007cef20ecdb28 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2141 behaves like returning response status2142 returns ok2143 etag_service_response: #<ServiceResponse:0x00007cef20f98c88 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"2144 behaves like returning a workhorse senddependency response2145 returns a workhorse senddependency response2146 when pulling a md5 file2147 returns it2148 when pulling a sha1 file2149 returns it2150 behaves like pulling non existing files2151 with file test.pom2152 behaves like returning a workhorse senddependency response2153 returns a workhorse senddependency response2154 with file test.md52155 behaves like returning a workhorse sendurl response2156 returns a workhorse sendurl response2157 with file test.sha12158 behaves like returning a workhorse sendurl response2159 returns a workhorse sendurl response2160 behaves like pulling existing files2161 when pulling a pom file2162 etag_service_response: #<ServiceResponse:0x00007cef210cead0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2163 behaves like returning response status2164 returns ok2165 etag_service_response: #<ServiceResponse:0x00007cef210c6e70 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2166 behaves like returning response status2167 returns ok2168 etag_service_response: #<ServiceResponse:0x00007cef210bf6e8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"2169 behaves like returning a workhorse senddependency response2170 returns a workhorse senddependency response2171 when pulling a md5 file2172 returns it2173 when pulling a sha1 file2174 returns it2175 behaves like pulling non existing files2176 with file test.pom2177 behaves like returning a workhorse senddependency response2178 returns a workhorse senddependency response2179 with file test.md52180 behaves like returning a workhorse sendurl response2181 returns a workhorse sendurl response2182 with file test.sha12183 behaves like returning a workhorse sendurl response2184 returns a workhorse sendurl response2185 with a ci job token2186 with custom headers2187 behaves like pulling existing files2188 when pulling a pom file2189 etag_service_response: #<ServiceResponse:0x00007cef21249810 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2190 behaves like returning response status2191 returns ok2192 etag_service_response: #<ServiceResponse:0x00007cef21241b88 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2193 behaves like returning response status2194 returns ok2195 etag_service_response: #<ServiceResponse:0x00007cef2123a3d8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"2196 behaves like returning a workhorse senddependency response2197 returns a workhorse senddependency response2198 when pulling a md5 file2199 returns it2200 when pulling a sha1 file2201 returns it2202 behaves like pulling non existing files2203 with file test.pom2204 behaves like returning a workhorse senddependency response2205 returns a workhorse senddependency response2206 with file test.md52207 behaves like returning a workhorse sendurl response2208 returns a workhorse sendurl response2209 with file test.sha12210 behaves like returning a workhorse sendurl response2211 returns a workhorse sendurl response2212 with basic auth2213 behaves like pulling existing files2214 when pulling a pom file2215 etag_service_response: #<ServiceResponse:0x00007cef214085c0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2216 behaves like returning response status2217 returns ok2218 etag_service_response: #<ServiceResponse:0x00007cef21400d70 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2219 behaves like returning response status2220 returns ok2221 etag_service_response: #<ServiceResponse:0x00007cef213f9930 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"2222 behaves like returning a workhorse senddependency response2223 returns a workhorse senddependency response2224 when pulling a md5 file2225 returns it2226 when pulling a sha1 file2227 returns it2228 behaves like pulling non existing files2229 with file test.pom2230 behaves like returning a workhorse senddependency response2231 returns a workhorse senddependency response2232 with file test.md52233 behaves like returning a workhorse sendurl response2234 returns a workhorse sendurl response2235 with file test.sha12236 behaves like returning a workhorse sendurl response2237 returns a workhorse sendurl response2238 with a deploy token2239 with custom headers2240 behaves like pulling existing files2241 when pulling a pom file2242 etag_service_response: #<ServiceResponse:0x00007cef215f8060 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2243 behaves like returning response status2244 returns ok2245 etag_service_response: #<ServiceResponse:0x00007cef215f0a18 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2246 behaves like returning response status2247 returns ok2248 etag_service_response: #<ServiceResponse:0x00007cef21579760 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"2249 behaves like returning a workhorse senddependency response2250 returns a workhorse senddependency response2251 when pulling a md5 file2252 returns it2253 when pulling a sha1 file2254 returns it2255 behaves like pulling non existing files2256 with file test.pom2257 behaves like returning a workhorse senddependency response2258 returns a workhorse senddependency response2259 with file test.md52260 behaves like returning a workhorse sendurl response2261 returns a workhorse sendurl response2262 with file test.sha12263 behaves like returning a workhorse sendurl response2264 returns a workhorse sendurl response2265 with basic auth2266 behaves like pulling existing files2267 when pulling a pom file2268 etag_service_response: #<ServiceResponse:0x00007cef21779c40 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2269 behaves like returning response status2270 returns ok2271 etag_service_response: #<ServiceResponse:0x00007cef217724b8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2272 behaves like returning response status2273 returns ok2274 etag_service_response: #<ServiceResponse:0x00007cef2176b0a0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"2275 behaves like returning a workhorse senddependency response2276 returns a workhorse senddependency response2277 when pulling a md5 file2278 returns it2279 when pulling a sha1 file2280 returns it2281 behaves like pulling non existing files2282 with file test.pom2283 behaves like returning a workhorse senddependency response2284 returns a workhorse senddependency response2285 with file test.md52286 behaves like returning a workhorse sendurl response2287 returns a workhorse sendurl response2288 with file test.sha12289 behaves like returning a workhorse sendurl response2290 returns a workhorse sendurl response2291 with invalid parameters2292 with an invalid path2293 behaves like returning response status with error2294 returns bad_request and error message2295 with an invalid file name2296 behaves like returning response status with error2297 returns bad_request and error message2298 with a developer2299 with non existing dependency proxy setting2300 behaves like returning response status2301 returns not_found2302 with disabled dependency proxy setting2303 behaves like returning response status2304 returns not_found2305 with packages disabled2306 behaves like returning response status2307 returns not_found2308 with dependency_proxy disabled2309 behaves like returning response status2310 returns not_found2311 with licensed feature dependency_proxy_for_packages disabled2312 behaves like returning response status2313 returns forbidden2314 with feature flag packages_dependency_proxy_maven disabled2315 behaves like returning response status2316 returns not_found2317Groups::WikisController2318 when the feature is enabled2319 behaves like wiki controller actions2320 GET #new2321 redirects to #show and appends a `random_title` param2322 when the wiki repository cannot be created2323 redirects to the wiki container and displays an error message2324 GET #pages2325 assigns the page collections2326 does not load the page content2327 does not load the sidebar2328 behaves like recovers from git errors2329 when we encounter CommandTimedOut error2330 renders the appropriate template2331 when we encounter a NoRepository error2332 renders the appropriate template2333 when the request is of non-html format2334 returns a 404 error2335 GET #history2336 behaves like recovers from git errors2337 when we encounter CommandTimedOut error2338 renders the appropriate template2339 when we encounter a NoRepository error2340 renders the appropriate template2341 behaves like fetching history2342 returns status ok2343 assigns @commits2344 behaves like fetching history2345 returns status not_found2346 GET #diff2347 when commit exists2348 renders the diff2349 when commit does not exist2350 returns a 404 error2351 when page does not exist2352 returns a 404 error2353 behaves like recovers from git errors2354 when we encounter CommandTimedOut error2355 renders the appropriate template2356 when we encounter a NoRepository error2357 renders the appropriate template2358 GET #show2359 when page exists2360 renders the page2361 behaves like recovers from git errors2362 when we encounter CommandTimedOut error2363 renders the appropriate template2364 when we encounter a NoRepository error2365 renders the appropriate template2366 the sidebar fails to load2367 renders the page, and marks the sidebar as failed2368 page view tracking2369 increases the page view counter2370 behaves like tracking unique hll events2371 tracks unique event2372 when page content encoding is invalid2373 sets flash error2374 when the page does not exist2375 when the user can create pages2376 builds a new wiki page with the id as the title2377 when a random_title param is present2378 builds a new wiki page with no title2379 when the user cannot create pages2380 shows the empty state2381 when page is a file2382 file_name: "dk.png"2383 delivers the file with the correct headers2384 file_name: "unsanitized.svg"2385 delivers the file with the correct headers2386 file_name: "sample.pdf"2387 delivers the file with the correct headers2388 POST #preview_markdown2389 renders json in a correct format2390 GET #edit2391 behaves like edit action2392 when the page does not exist2393 redirects to show2394 when id param is blank2395 redirects to the home page2396 when page content encoding is invalid2397 redirects to show2398 when the page has nil content2399 redirects to show2400 behaves like recovers from git errors2401 when we encounter CommandTimedOut error2402 renders the appropriate template2403 when we encounter a NoRepository error2404 renders the appropriate template2405 when page content encoding is valid2406 shows the edit page2407 PATCH #update2408 behaves like edit action2409 when the page does not exist2410 redirects to show2411 when id param is blank2412 redirects to the home page2413 when page content encoding is invalid2414 redirects to show2415 when the page has nil content2416 redirects to show2417 when page content encoding is valid2418 updates the page2419 when user does not have edit permissions2420 renders the empty state2421 POST #create2422 when page is valid2423 creates the page2424 when page is not valid2425 renders the edit state2426 DELETE #destroy2427 when page exists2428 behaves like deletes the page2429 is expected to be empty2430 but page cannot be deleted2431 renders the edit state2432 when user is a developer2433 behaves like deletes the page2434 is expected to be empty2435 when user is a reporter2436 returns 4042437 when page does not exist2438 renders 4042439 #git_access2440 renders the git access page2441 when the feature is not available2442 method: :get, action: :new2443 returns a 404 error2444 method: :get, action: :pages2445 returns a 404 error2446 method: :post, action: :create2447 returns a 404 error2448 method: :get, action: :show2449 returns a 404 error2450 method: :get, action: :edit2451 returns a 404 error2452 method: :get, action: :history2453 returns a 404 error2454 method: :post, action: :preview_markdown2455 returns a 404 error2456 method: :put, action: :update2457 returns a 404 error2458 method: :delete, action: :destroy2459 returns a 404 error2460 with feature from registration features2461 behaves like wiki controller actions2462 GET #new2463 redirects to #show and appends a `random_title` param2464 when the wiki repository cannot be created2465 redirects to the wiki container and displays an error message2466 GET #pages2467 assigns the page collections2468 does not load the page content2469 does not load the sidebar2470 behaves like recovers from git errors2471 when we encounter CommandTimedOut error2472 renders the appropriate template2473 when we encounter a NoRepository error2474 renders the appropriate template2475 when the request is of non-html format2476 returns a 404 error2477 GET #history2478 behaves like recovers from git errors2479 when we encounter CommandTimedOut error2480 renders the appropriate template2481 when we encounter a NoRepository error2482 renders the appropriate template2483 behaves like fetching history2484 returns status ok2485 assigns @commits2486 behaves like fetching history2487 returns status not_found2488 GET #diff2489 when commit exists2490 renders the diff2491 when commit does not exist2492 returns a 404 error2493 when page does not exist2494 returns a 404 error2495 behaves like recovers from git errors2496 when we encounter CommandTimedOut error2497 renders the appropriate template2498 when we encounter a NoRepository error2499 renders the appropriate template2500 GET #show2501 when page exists2502 renders the page2503 behaves like recovers from git errors2504 when we encounter CommandTimedOut error2505 renders the appropriate template2506 when we encounter a NoRepository error2507 renders the appropriate template2508 the sidebar fails to load2509 renders the page, and marks the sidebar as failed2510 page view tracking2511 increases the page view counter2512 behaves like tracking unique hll events2513 tracks unique event2514 when page content encoding is invalid2515 sets flash error2516 when the page does not exist2517 when the user can create pages2518 builds a new wiki page with the id as the title2519 when a random_title param is present2520 builds a new wiki page with no title2521 when the user cannot create pages2522 shows the empty state2523 when page is a file2524 file_name: "dk.png"2525 delivers the file with the correct headers2526 file_name: "unsanitized.svg"2527 delivers the file with the correct headers2528 file_name: "sample.pdf"2529 delivers the file with the correct headers2530 POST #preview_markdown2531 renders json in a correct format2532 GET #edit2533 behaves like edit action2534 when the page does not exist2535 redirects to show2536 when id param is blank2537 redirects to the home page2538 when page content encoding is invalid2539 redirects to show2540 when the page has nil content2541 redirects to show2542 behaves like recovers from git errors2543 when we encounter CommandTimedOut error2544 renders the appropriate template2545 when we encounter a NoRepository error2546 renders the appropriate template2547 when page content encoding is valid2548 shows the edit page2549 PATCH #update2550 behaves like edit action2551 when the page does not exist2552 redirects to show2553 when id param is blank2554 redirects to the home page2555 when page content encoding is invalid2556 redirects to show2557 when the page has nil content2558 redirects to show2559 when page content encoding is valid2560 updates the page2561 when user does not have edit permissions2562 renders the empty state2563 POST #create2564 when page is valid2565 creates the page2566 when page is not valid2567 renders the edit state2568 DELETE #destroy2569 when page exists2570 behaves like deletes the page2571 is expected to be empty2572 but page cannot be deleted2573 renders the edit state2574 when user is a developer2575 behaves like deletes the page2576 is expected to be empty2577 when user is a reporter2578 returns 4042579 when page does not exist2580 renders 4042581 #git_access2582 renders the git access page2583API::ProjectApprovalSettings2584 GET /projects/:id/approval_settings2585 when the request is correct2586 matches the response schema2587 when license is missing2588 returns 403 error2589 when target_branch is specified2590 filters the rules returned by target branch2591 private group filtering2592 excludes private groups if user has no access2593 includes private groups if user has access2594 report_approver rules2595 includes report_approver rules2596 when project is archived2597 when user has normal permissions2598 returns 4032599 when user has project admin permissions2600 allows access2601 POST /projects/:id/approval_settings/rules2602 behaves like an API endpoint for creating project approval rule2603 behaves like a restricted project approval rule API endpoint2604 when admin_merge_request_approvers_rules license feature is disabled2605 when disable_overriding_approvers_per_merge_request app setting is false2606 behaves like a user with access2607 returns 201 status2608 when disable_overriding_approvers_per_merge_request app setting is true2609 behaves like a user with access2610 returns 201 status2611 when admin_merge_request_approvers_rules license feature is enabled2612 when disable_overriding_approvers_per_merge_request app setting is false2613 behaves like a user with access2614 returns 201 status2615 when disable_overriding_approvers_per_merge_request app setting is true2616 behaves like a user without access2617 returns 4032618 when user is an admin2619 behaves like a user with access2620 returns 201 status2621 when missing parameters2622 returns 400 status2623 when user is without access2624 behaves like a user without access2625 returns 4032626 when the request is correct2627 changes settings properly2628 behaves like a user with access2629 returns 201 status2630 when protected_branch_ids param is present2631 creates approval rule associated to specified protected branches2632 when applies_to_all_protected_branches param is present2633 returns a list of project protected branches in the response2634 with rule_type set to report_approver2635 without report_type2636 returns a error http status2637 when creating a approval rule for each report_type2638 rule_name: "License-Check", report_type: :license_scanning2639 specifies `report_rule` and `report_type`2640 rule_name: "Coverage-Check", report_type: :code_coverage2641 specifies `report_rule` and `report_type`2642 with users or groups params2643 with a user2644 returns a user2645 with users_ids2646 returns a user2647 when both users and user_ids are set2648 returns a user from user_ids2649 with a group2650 returns a group2651 with group_ids2652 returns a group2653 when both groups and group_ids are set2654 returns a group from group_ids2655 with valid scanners2656 returns 201 status2657 with valid severity_levels2658 returns 201 status2659 with username2660 returns 201 status2661 with vulnerabilities_allowed2662 returns 201 status2663 PUT /projects/:id/approval_settings/:approval_rule_id2664 behaves like an API endpoint for updating project approval rule2665 behaves like a restricted project approval rule API endpoint2666 when admin_merge_request_approvers_rules license feature is disabled2667 when disable_overriding_approvers_per_merge_request app setting is false2668 behaves like a user with access2669 sets approvers2670 when applies_to_all_protected_branches param is present2671 returns a list of project protected branches in the response2672 when protected_branch_ids param is present2673 associates approval rule to specified protected branches2674 with users or groups params2675 with a user2676 sets a user2677 with users_ids2678 sets a user2679 when both users and user_ids are set2680 sets a user from user_ids2681 with a group2682 sets a group2683 with group_ids2684 sets a group2685 when both groups and group_ids are set2686 sets a group from group_ids2687 with valid scanners2688 returns 200 status2689 with nil scanners2690 returns 200 status2691 when scanners is NULL in the database2692 returns 200 status2693 with valid severity_levels2694 returns 200 status2695 when approver already exists2696 when sending json data2697 removes all approvers if empty params are given2698 with vulnerabilities_allowed2699 returns 200 status2700 when approval rule is from scan result policy2701 when report_type is scan_finding2702 behaves like cannot update rule2703 returns not_found2704 when report_type is license_scanning2705 behaves like cannot update rule2706 returns not_found2707 when disable_overriding_approvers_per_merge_request app setting is true2708 behaves like a user with access2709 sets approvers2710 when applies_to_all_protected_branches param is present2711 returns a list of project protected branches in the response2712 when protected_branch_ids param is present2713 associates approval rule to specified protected branches2714 with users or groups params2715 with a user2716 sets a user2717 with users_ids2718 sets a user2719 when both users and user_ids are set2720 sets a user from user_ids2721 with a group2722 sets a group2723 with group_ids2724 sets a group2725 when both groups and group_ids are set2726 sets a group from group_ids2727 with valid scanners2728 returns 200 status2729 with nil scanners2730 returns 200 status2731 when scanners is NULL in the database2732 returns 200 status2733 with valid severity_levels2734 returns 200 status2735 when approver already exists2736 when sending json data2737 removes all approvers if empty params are given2738 with vulnerabilities_allowed2739 returns 200 status2740 when approval rule is from scan result policy2741 when report_type is scan_finding2742 behaves like cannot update rule2743 returns not_found2744 when report_type is license_scanning2745 behaves like cannot update rule2746 returns not_found2747 when admin_merge_request_approvers_rules license feature is enabled2748 when disable_overriding_approvers_per_merge_request app setting is false2749 behaves like a user with access2750 sets approvers2751 when applies_to_all_protected_branches param is present2752 returns a list of project protected branches in the response2753 when protected_branch_ids param is present2754 associates approval rule to specified protected branches2755 with users or groups params2756 with a user2757 sets a user2758 with users_ids2759 sets a user2760 when both users and user_ids are set2761 sets a user from user_ids2762 with a group2763 sets a group2764 with group_ids2765 sets a group2766 when both groups and group_ids are set2767 sets a group from group_ids2768 with valid scanners2769 returns 200 status2770 with nil scanners2771 returns 200 status2772 when scanners is NULL in the database2773 returns 200 status2774 with valid severity_levels2775 returns 200 status2776 when approver already exists2777 when sending json data2778 removes all approvers if empty params are given2779 with vulnerabilities_allowed2780 returns 200 status2781 when approval rule is from scan result policy2782 when report_type is scan_finding2783 behaves like cannot update rule2784 returns not_found2785 when report_type is license_scanning2786 behaves like cannot update rule2787 returns not_found2788 when disable_overriding_approvers_per_merge_request app setting is true2789 behaves like a user without access2790 returns 4032791 when user is an admin2792 behaves like a user with access2793 sets approvers2794 when applies_to_all_protected_branches param is present2795 returns a list of project protected branches in the response2796 when protected_branch_ids param is present2797 associates approval rule to specified protected branches2798 with users or groups params2799 with a user2800 sets a user2801 with users_ids2802 sets a user2803 when both users and user_ids are set2804 sets a user from user_ids2805 with a group2806 sets a group2807 with group_ids2808 sets a group2809 when both groups and group_ids are set2810 sets a group from group_ids2811 with valid scanners2812 returns 200 status2813 with nil scanners2814 returns 200 status2815 when scanners is NULL in the database2816 returns 200 status2817 with valid severity_levels2818 returns 200 status2819 when approver already exists2820 when sending json data2821 removes all approvers if empty params are given2822 with vulnerabilities_allowed2823 returns 200 status2824 when approval rule is from scan result policy2825 when report_type is scan_finding2826 behaves like cannot update rule2827 returns not_found2828 when report_type is license_scanning2829 behaves like cannot update rule2830 returns not_found2831 as a project admin2832 behaves like a user with access2833 sets approvers2834 when applies_to_all_protected_branches param is present2835 returns a list of project protected branches in the response2836 when protected_branch_ids param is present2837 associates approval rule to specified protected branches2838 with users or groups params2839 with a user2840 sets a user2841 with users_ids2842 sets a user2843 when both users and user_ids are set2844 sets a user from user_ids2845 with a group2846 sets a group2847 with group_ids2848 sets a group2849 when both groups and group_ids are set2850 sets a group from group_ids2851 with valid scanners2852 returns 200 status2853 with nil scanners2854 returns 200 status2855 when scanners is NULL in the database2856 returns 200 status2857 with valid severity_levels2858 returns 200 status2859 when approver already exists2860 when sending json data2861 removes all approvers if empty params are given2862 with vulnerabilities_allowed2863 returns 200 status2864 when approval rule is from scan result policy2865 when report_type is scan_finding2866 behaves like cannot update rule2867 returns not_found2868 when report_type is license_scanning2869 behaves like cannot update rule2870 returns not_found2871 as a global admin2872 behaves like a user with access2873 sets approvers2874 when applies_to_all_protected_branches param is present2875 returns a list of project protected branches in the response2876 when protected_branch_ids param is present2877 associates approval rule to specified protected branches2878 with users or groups params2879 with a user2880 sets a user2881 with users_ids2882 sets a user2883 when both users and user_ids are set2884 sets a user from user_ids2885 with a group2886 sets a group2887 with group_ids2888 sets a group2889 when both groups and group_ids are set2890 sets a group from group_ids2891 with valid scanners2892 returns 200 status2893 with nil scanners2894 returns 200 status2895 when scanners is NULL in the database2896 returns 200 status2897 with valid severity_levels2898 returns 200 status2899 when approver already exists2900 when sending json data2901 removes all approvers if empty params are given2902 with vulnerabilities_allowed2903 returns 200 status2904 when approval rule is from scan result policy2905 when report_type is scan_finding2906 behaves like cannot update rule2907 returns not_found2908 when report_type is license_scanning2909 behaves like cannot update rule2910 returns not_found2911 as a random user2912 behaves like a user without access2913 returns 4032914 DELETE /projects/:id/approval_settings/rules/:approval_rule_id2915 behaves like an API endpoint for deleting project approval rule2916 behaves like a user with access2917 destroys2918 behaves like a restricted project approval rule API endpoint2919 when admin_merge_request_approvers_rules license feature is disabled2920 when disable_overriding_approvers_per_merge_request app setting is false2921 behaves like a user with access2922 destroys2923 when disable_overriding_approvers_per_merge_request app setting is true2924 behaves like a user with access2925 destroys2926 when admin_merge_request_approvers_rules license feature is enabled2927 when disable_overriding_approvers_per_merge_request app setting is false2928 behaves like a user with access2929 destroys2930 when disable_overriding_approvers_per_merge_request app setting is true2931 behaves like a user without access2932 returns 4032933 when user is an admin2934 behaves like a user with access2935 destroys2936 when approval rule not found2937 returns not found2938 when approval rule is from scan result policy2939 when report_type is scan_finding2940 behaves like cannot delete rule2941 returns not_found2942 when report_type is license_scanning2943 behaves like cannot delete rule2944 returns not_found2945 when user is not eligible to delete2946 behaves like a user without access2947 returns 4032948API::ProjectApprovalRules2949 GET /projects/:id/approval_rules/:approval_rule_id2950 when the request is correct2951 matches the response schema2952 when the user is not authorized2953 does not display rule information2954 when license is missing2955 returns 403 error2956 GET /projects/:id/approval_rules2957 when the request is correct2958 matches the response schema2959 private group filtering2960 excludes private groups if user has no access2961 includes private groups if user has access2962 report_approver rules2963 includes report_approver rules2964 rules from scan result policy2965 returns 4042966 when project is archived2967 when user has normal permissions2968 returns 4032969 when user has project admin permissions2970 allows access2971 when license is missing2972 returns 403 error2973 POST /projects/:id/approval_rules2974 behaves like an API endpoint for creating project approval rule2975 behaves like a restricted project approval rule API endpoint2976 when admin_merge_request_approvers_rules license feature is disabled2977 when disable_overriding_approvers_per_merge_request app setting is false2978 behaves like a user with access2979 returns 201 status2980 when disable_overriding_approvers_per_merge_request app setting is true2981 behaves like a user with access2982 returns 201 status2983 when admin_merge_request_approvers_rules license feature is enabled2984 when disable_overriding_approvers_per_merge_request app setting is false2985 behaves like a user with access2986 returns 201 status2987 when disable_overriding_approvers_per_merge_request app setting is true2988 behaves like a user without access2989 returns 4032990 when user is an admin2991 behaves like a user with access2992 returns 201 status2993 when missing parameters2994 returns 400 status2995 when user is without access2996 behaves like a user without access2997 returns 4032998 when the request is correct2999 changes settings properly3000 behaves like a user with access3001 returns 201 status3002 when protected_branch_ids param is present3003 creates approval rule associated to specified protected branches3004 when applies_to_all_protected_branches param is present3005 returns a list of project protected branches in the response3006 with rule_type set to report_approver3007 without report_type3008 returns a error http status3009 when creating a approval rule for each report_type3010 rule_name: "License-Check", report_type: :license_scanning3011 specifies `report_rule` and `report_type`3012 rule_name: "Coverage-Check", report_type: :code_coverage3013 specifies `report_rule` and `report_type`3014 with users or groups params3015 with a user3016 returns a user3017 with users_ids3018 returns a user3019 when both users and user_ids are set3020 returns a user from user_ids3021 with a group3022 returns a group3023 with group_ids3024 returns a group3025 when both groups and group_ids are set3026 returns a group from group_ids3027 with valid scanners3028 returns 201 status3029 with valid severity_levels3030 returns 201 status3031 with username3032 returns 201 status3033 with vulnerabilities_allowed3034 returns 201 status3035 PUT /projects/:id/approval_rules/:approval_rule_id3036 behaves like an API endpoint for updating project approval rule3037 behaves like a restricted project approval rule API endpoint3038 when admin_merge_request_approvers_rules license feature is disabled3039 when disable_overriding_approvers_per_merge_request app setting is false3040 behaves like a user with access3041 sets approvers3042 when applies_to_all_protected_branches param is present3043 returns a list of project protected branches in the response3044 when protected_branch_ids param is present3045 associates approval rule to specified protected branches3046 with users or groups params3047 with a user3048 sets a user3049 with users_ids3050 sets a user3051 when both users and user_ids are set3052 sets a user from user_ids3053 with a group3054 sets a group3055 with group_ids3056 sets a group3057 when both groups and group_ids are set3058 sets a group from group_ids3059 with valid scanners3060 returns 200 status3061 with nil scanners3062 returns 200 status3063 when scanners is NULL in the database3064 returns 200 status3065 with valid severity_levels3066 returns 200 status3067 when approver already exists3068 when sending json data3069 removes all approvers if empty params are given3070 with vulnerabilities_allowed3071 returns 200 status3072 when approval rule is from scan result policy3073 when report_type is scan_finding3074 behaves like cannot update rule3075 returns not_found3076 when report_type is license_scanning3077 behaves like cannot update rule3078 returns not_found3079 when disable_overriding_approvers_per_merge_request app setting is true3080 behaves like a user with access3081 sets approvers3082 when applies_to_all_protected_branches param is present3083 returns a list of project protected branches in the response3084 when protected_branch_ids param is present3085 associates approval rule to specified protected branches3086 with users or groups params3087 with a user3088 sets a user3089 with users_ids3090 sets a user3091 when both users and user_ids are set3092 sets a user from user_ids3093 with a group3094 sets a group3095 with group_ids3096 sets a group3097 when both groups and group_ids are set3098 sets a group from group_ids3099 with valid scanners3100 returns 200 status3101 with nil scanners3102 returns 200 status3103 when scanners is NULL in the database3104 returns 200 status3105 with valid severity_levels3106 returns 200 status3107 when approver already exists3108 when sending json data3109 removes all approvers if empty params are given3110 with vulnerabilities_allowed3111 returns 200 status3112 when approval rule is from scan result policy3113 when report_type is scan_finding3114 behaves like cannot update rule3115 returns not_found3116 when report_type is license_scanning3117 behaves like cannot update rule3118 returns not_found3119 when admin_merge_request_approvers_rules license feature is enabled3120 when disable_overriding_approvers_per_merge_request app setting is false3121 behaves like a user with access3122 sets approvers3123 when applies_to_all_protected_branches param is present3124 returns a list of project protected branches in the response3125 when protected_branch_ids param is present3126 associates approval rule to specified protected branches3127 with users or groups params3128 with a user3129 sets a user3130 with users_ids3131 sets a user3132 when both users and user_ids are set3133 sets a user from user_ids3134 with a group3135 sets a group3136 with group_ids3137 sets a group3138 when both groups and group_ids are set3139 sets a group from group_ids3140 with valid scanners3141 returns 200 status3142 with nil scanners3143 returns 200 status3144 when scanners is NULL in the database3145 returns 200 status3146 with valid severity_levels3147 returns 200 status3148 when approver already exists3149 when sending json data3150 removes all approvers if empty params are given3151 with vulnerabilities_allowed3152 returns 200 status3153 when approval rule is from scan result policy3154 when report_type is scan_finding3155 behaves like cannot update rule3156 returns not_found3157 when report_type is license_scanning3158 behaves like cannot update rule3159 returns not_found3160 when disable_overriding_approvers_per_merge_request app setting is true3161 behaves like a user without access3162 returns 4033163 when user is an admin3164 behaves like a user with access3165 sets approvers3166 when applies_to_all_protected_branches param is present3167 returns a list of project protected branches in the response3168 when protected_branch_ids param is present3169 associates approval rule to specified protected branches3170 with users or groups params3171 with a user3172 sets a user3173 with users_ids3174 sets a user3175 when both users and user_ids are set3176 sets a user from user_ids3177 with a group3178 sets a group3179 with group_ids3180 sets a group3181 when both groups and group_ids are set3182 sets a group from group_ids3183 with valid scanners3184 returns 200 status3185 with nil scanners3186 returns 200 status3187 when scanners is NULL in the database3188 returns 200 status3189 with valid severity_levels3190 returns 200 status3191 when approver already exists3192 when sending json data3193 removes all approvers if empty params are given3194 with vulnerabilities_allowed3195 returns 200 status3196 when approval rule is from scan result policy3197 when report_type is scan_finding3198 behaves like cannot update rule3199 returns not_found3200 when report_type is license_scanning3201 behaves like cannot update rule3202 returns not_found3203 as a project admin3204 behaves like a user with access3205 sets approvers3206 when applies_to_all_protected_branches param is present3207 returns a list of project protected branches in the response3208 when protected_branch_ids param is present3209 associates approval rule to specified protected branches3210 with users or groups params3211 with a user3212 sets a user3213 with users_ids3214 sets a user3215 when both users and user_ids are set3216 sets a user from user_ids3217 with a group3218 sets a group3219 with group_ids3220 sets a group3221 when both groups and group_ids are set3222 sets a group from group_ids3223 with valid scanners3224 returns 200 status3225 with nil scanners3226 returns 200 status3227 when scanners is NULL in the database3228 returns 200 status3229 with valid severity_levels3230 returns 200 status3231 when approver already exists3232 when sending json data3233 removes all approvers if empty params are given3234 with vulnerabilities_allowed3235 returns 200 status3236 when approval rule is from scan result policy3237 when report_type is scan_finding3238 behaves like cannot update rule3239 returns not_found3240 when report_type is license_scanning3241 behaves like cannot update rule3242 returns not_found3243 as a global admin3244 behaves like a user with access3245 sets approvers3246 when applies_to_all_protected_branches param is present3247 returns a list of project protected branches in the response3248 when protected_branch_ids param is present3249 associates approval rule to specified protected branches3250 with users or groups params3251 with a user3252 sets a user3253 with users_ids3254 sets a user3255 when both users and user_ids are set3256 sets a user from user_ids3257 with a group3258 sets a group3259 with group_ids3260 sets a group3261 when both groups and group_ids are set3262 sets a group from group_ids3263 with valid scanners3264 returns 200 status3265 with nil scanners3266 returns 200 status3267 when scanners is NULL in the database3268 returns 200 status3269 with valid severity_levels3270 returns 200 status3271 when approver already exists3272 when sending json data3273 removes all approvers if empty params are given3274 with vulnerabilities_allowed3275 returns 200 status3276 when approval rule is from scan result policy3277 when report_type is scan_finding3278 behaves like cannot update rule3279 returns not_found3280 when report_type is license_scanning3281 behaves like cannot update rule3282 returns not_found3283 as a random user3284 behaves like a user without access3285 returns 4033286 DELETE /projects/:id/approval_rules/:approval_rule_id3287 behaves like an API endpoint for deleting project approval rule3288 behaves like a user with access3289 destroys3290 behaves like a restricted project approval rule API endpoint3291 when admin_merge_request_approvers_rules license feature is disabled3292 when disable_overriding_approvers_per_merge_request app setting is false3293 behaves like a user with access3294 destroys3295 when disable_overriding_approvers_per_merge_request app setting is true3296 behaves like a user with access3297 destroys3298 when admin_merge_request_approvers_rules license feature is enabled3299 when disable_overriding_approvers_per_merge_request app setting is false3300 behaves like a user with access3301 destroys3302 when disable_overriding_approvers_per_merge_request app setting is true3303 behaves like a user without access3304 returns 4033305 when user is an admin3306 behaves like a user with access3307 destroys3308 when approval rule not found3309 returns not found3310 when approval rule is from scan result policy3311 when report_type is scan_finding3312 behaves like cannot delete rule3313 returns not_found3314 when report_type is license_scanning3315 behaves like cannot delete rule3316 returns not_found3317 when user is not eligible to delete3318 behaves like a user without access3319 returns 4033320Notify3321 for a project3322 for merge requests3323 that are new with approver3324 contains the approvers list3325 that are approved3326 is sent as the last approver3327 has the correct subject3328 contains the new status3329 contains a link to the merge request3330 contains the names of all of the approvers3331 contains the names of all assignees3332 behaves like a multiple recipients email3333 is sent to the given recipient3334 behaves like an answer to an existing thread with reply-by-email enabled3335 has X-GitLab-Project headers3336 has X-GitLab-*-ID header3337 has X-GitLab-*-IID header if model has iid defined3338 has X-GitLab-*-State header if model has state defined3339 has X-GitLab-Project headers3340 has X-GitLab-*-ID header3341 has X-GitLab-*-IID header if model has iid defined3342 has X-GitLab-*-State header if model has state defined3343 has the characteristics of a threaded reply3344 when reply-by-email is enabled with incoming address with %{key}3345 has a Reply-To header3346 when reply-by-email is enabled with incoming address without %{key}3347 has X-GitLab-Project headers3348 has X-GitLab-*-ID header3349 has X-GitLab-*-IID header if model has iid defined3350 has X-GitLab-*-State header if model has state defined3351 has the characteristics of a threaded reply3352 has a Reply-To header3353 behaves like it should show Gmail Actions View Merge request link3354 is expected to have body including "View Merge request"3355 behaves like it should have Gmail Actions links3356 is expected to have body including "ViewAction"3357 behaves like an unsubscribeable thread3358 has a List-Unsubscribe header in the correct format, and a body link3359 behaves like an unsubscribeable thread with incoming address without %{key}3360 has a List-Unsubscribe header in the correct format, and a body link3361 when merge request has no assignee3362 does not show the assignee3363 that are unapproved3364 is sent as the last unapprover3365 has the correct subject3366 contains the new status3367 contains a link to the merge request3368 contains the names of all of the approvers3369 contains the names of all assignees3370 behaves like a multiple recipients email3371 is sent to the given recipient3372 behaves like an answer to an existing thread with reply-by-email enabled3373 has X-GitLab-Project headers3374 has X-GitLab-*-ID header3375 has X-GitLab-*-IID header if model has iid defined3376 has X-GitLab-*-State header if model has state defined3377 has X-GitLab-Project headers3378 has X-GitLab-*-ID header3379 has X-GitLab-*-IID header if model has iid defined3380 has X-GitLab-*-State header if model has state defined3381 has the characteristics of a threaded reply3382 when reply-by-email is enabled with incoming address with %{key}3383 has a Reply-To header3384 when reply-by-email is enabled with incoming address without %{key}3385 has X-GitLab-Project headers3386 has X-GitLab-*-ID header3387 has X-GitLab-*-IID header if model has iid defined3388 has X-GitLab-*-State header if model has state defined3389 has the characteristics of a threaded reply3390 has a Reply-To header3391 behaves like it should show Gmail Actions View Merge request link3392 is expected to have body including "View Merge request"3393 behaves like it should have Gmail Actions links3394 is expected to have body including "ViewAction"3395 behaves like an unsubscribeable thread3396 has a List-Unsubscribe header in the correct format, and a body link3397 behaves like an unsubscribeable thread with incoming address without %{key}3398 has a List-Unsubscribe header in the correct format, and a body link3399 for merge requests without assignee3400 that are unapproved3401 contains the new status3402 for merge request with reviewer3403 merge request diff summary3404 when merge_request_diff_llm_summary exists3405 when SummarizeDiffService is disabled3406 does not include diff summary3407 when SummarizeDiffService is enabled3408 includes diff summary3409 when merge_request_diff_llm_summary is empty3410 when SummarizeDiffService is enabled3411 does not include diff summary3412 for a group3413 for epics3414 that are new3415 has the correct subject and body3416 contains a link to epic author3417 contains a link to the epic3418 behaves like an epic email starting a new thread with reply-by-email enabled3419 has the characteristics of a threaded email3420 when reply-by-email is enabled with incoming address with %{key}3421 has a Reply-To header3422 when reply-by-email is enabled with incoming address without %{key}3423 has the characteristics of a threaded email3424 has a Reply-To header3425 behaves like it should show Gmail Actions View Epic link3426 is expected to have body including "View Epic"3427 behaves like it should have Gmail Actions links3428 is expected to have body including "ViewAction"3429 behaves like an unsubscribeable thread3430 has a List-Unsubscribe header in the correct format, and a body link3431 behaves like an unsubscribeable thread with incoming address without %{key}3432 has a List-Unsubscribe header in the correct format, and a body link3433 behaves like having group identification headers3434 has specific group headers3435 got deleted before notification3436 does not send email3437 that changed status3438 behaves like epic notifications with reply3439 has the characteristics of a threaded reply3440 has a Reply-To header3441 has the correct subject and body3442 behaves like having group identification headers3443 has specific group headers3444 behaves like it should show Gmail Actions View Epic link3445 is expected to have body including "View Epic"3446 behaves like it should have Gmail Actions links3447 is expected to have body including "ViewAction"3448 behaves like an unsubscribeable thread3449 has a List-Unsubscribe header in the correct format, and a body link3450 behaves like an unsubscribeable thread with incoming address without %{key}3451 has a List-Unsubscribe header in the correct format, and a body link3452 for epic notes3453 behaves like epic notifications with reply3454 has the characteristics of a threaded reply3455 has a Reply-To header3456 has the correct subject and body3457 behaves like having group identification headers3458 has specific group headers3459 behaves like it should show Gmail Actions View Epic link3460 is expected to have body including "View Epic"3461 behaves like it should have Gmail Actions links3462 is expected to have body including "ViewAction"3463 behaves like an unsubscribeable thread3464 has a List-Unsubscribe header in the correct format, and a body link3465 behaves like an unsubscribeable thread with incoming address without %{key}3466 has a List-Unsubscribe header in the correct format, and a body link3467 behaves like a note email3468 is sent to the given recipient as the author3469 contains the message from the note3470 contains a link to note author3471 behaves like it should have Gmail Actions links3472 is expected to have body including "ViewAction"3473 for compliance violations3474 example at ./ee/spec/mailers/notify_spec.rb:3543475 is expected to have body including "Your Compliance Violations CSV export for the group"3476 behaves like an email sent from GitLab3477 has the characteristics of an email sent from GitLab3478 for compliance frameworks3479 example at ./ee/spec/mailers/notify_spec.rb:3713480 is expected to have body including "Your Compliance Frameworks CSV export for the group"3481 behaves like an email sent from GitLab3482 has the characteristics of an email sent from GitLab3483 mirror was hard failed3484 has the correct subject and body3485 behaves like an email sent from GitLab3486 has the characteristics of an email sent from GitLab3487 behaves like it should not have Gmail Actions links3488 is expected not to have body including "ViewAction"3489 behaves like a user cannot unsubscribe through footer link3490 does not have a List-Unsubscribe header or a body link3491 mirror was disabled3492 has the correct subject and body3493 behaves like an email sent from GitLab3494 has the characteristics of an email sent from GitLab3495 behaves like it should not have Gmail Actions links3496 is expected not to have body including "ViewAction"3497 behaves like a user cannot unsubscribe through footer link3498 does not have a List-Unsubscribe header or a body link3499 user was deleted3500 does not send email3501 mirror user changed3502 has the correct subject and body3503 behaves like an email sent from GitLab3504 has the characteristics of an email sent from GitLab3505 behaves like it should not have Gmail Actions links3506 is expected not to have body including "ViewAction"3507 behaves like a user cannot unsubscribe through footer link3508 does not have a List-Unsubscribe header or a body link3509 new user was created via saml3510 delivers mail to user email3511 contains all the useful information3512 behaves like an email sent from GitLab3513 has the characteristics of an email sent from GitLab3514 behaves like it should not have Gmail Actions links3515 is expected not to have body including "ViewAction"3516 behaves like a user cannot unsubscribe through footer link3517 does not have a List-Unsubscribe header or a body link3518 behaves like appearance header and footer enabled3519 contains header and footer3520 behaves like appearance header and footer not enabled3521 does not contain header and footer3522 merge request reviews3523 includes review summary3524API::Releases3525 POST /projects/:id/releases3526 updates the AuditEvent3527 without milestone3528 with milestone3529 is expected to include {:custom_message => "Created Release v0.1 with Milestone v1.0", :target_type => "Release", :target_id => 2, :target_details => "New release"}3530 with a group milestone3531 succesfully adds a group milestone3532 adds the milestone3533 fails to add a group milestone if project does not belong to this group3534 returns a 400 error as milestone not found3535 when valid group and project milestones are passed3536 adds the milestone3537 with a supergroup milestone3538 returns a 400 error as milestone not found3539 PUT /projects/:id/releases/:tag_name3540 creates an AuditEvent when a release is updated3541 with milestones3542 no existing milestones3543 add single milestone3544 behaves like update with milestones3545 is expected to eq "Milestones associated with release changed to v1.0"3546 add multiple milestones3547 behaves like update with milestones3548 is expected to eq "Milestones associated with release changed to v1.0, v2.0"3549 existing milestone3550 add milestone3551 behaves like update with milestones3552 is expected to eq "Milestones associated with release changed to v0.1, v1.0"3553 replace milestone3554 behaves like update with milestones3555 is expected to eq "Milestones associated with release changed to v1.0"3556 remove all milestones3557 behaves like update with milestones3558 is expected to eq "Milestones associated with release changed to [none]"3559 with group milestones3560 when a group milestone is passed3561 when there is no project milestone3562 adds the group milestone3563 when there is an existing project milestone3564 replaces the project milestone with the group milestone3565 POST /projects/:id/releases/:tag_name/evidence3566 accepts the request3567 accepts the request when using JOB-TOKEN auth3568 creates the Evidence3569 when tag_name is invalid3570 returns a 4043571 when user is a reporter3572 forbids the request3573 when user is a developer3574 accepts the request3575 when user is not a project member3576 forbids the request3577 when project is public3578 forbids the request3579 DELETE /projects/:id/releases/:tag_name3580 creates an AuditEvent when a release is deleted3581API::Wikis3582 GET /groups/:id/wikis3583 when group wiki is disabled3584 when user is guest3585 returns 404 Group Not Found3586 when user is developer3587 returns 403 Forbidden3588 when user is maintainer3589 returns 403 Forbidden3590 when wiki is available only for team members3591 when user is guest3592 returns 404 Group Not Found (PENDING: Temporarily skipped with xcontext)3593 when user is developer3594 return the empty list of wiki pages (PENDING: Temporarily skipped with xcontext)3595 when wiki has pages3596 returns the list of wiki pages without content (PENDING: Temporarily skipped with xcontext)3597 returns the list of wiki pages with content (PENDING: Temporarily skipped with xcontext)3598 when user is maintainer3599 return the empty list of wiki pages (PENDING: Temporarily skipped with xcontext)3600 when wiki has pages3601 returns the list of wiki pages without content (PENDING: Temporarily skipped with xcontext)3602 returns the list of wiki pages with content (PENDING: Temporarily skipped with xcontext)3603 when wiki is available for everyone with access3604 when user is guest3605 returns 404 Group Not Found3606 when user is developer3607 return the empty list of wiki pages3608 when wiki has pages3609 returns the list of wiki pages without content3610 returns the list of wiki pages with content3611 when user is maintainer3612 return the empty list of wiki pages3613 when wiki has pages3614 returns the list of wiki pages without content3615 returns the list of wiki pages with content3616 GET /groups/:id/wikis/:slug3617 when wiki is disabled3618 when user is guest3619 returns 404 Group Not Found3620 when user is developer3621 returns 403 Forbidden3622 when user is maintainer3623 returns 403 Forbidden3624 when wiki is available only for team members3625 when user is guest3626 returns 404 Group Not Found (PENDING: Temporarily skipped with xcontext)3627 when user is developer3628 behaves like returns wiki page3629 example at ./spec/support/shared_examples/lib/wikis_api_examples.rb:54 (PENDING: Temporarily skipped with xcontext)3630 when render param is false3631 behaves like returns wiki page3632 example at ./spec/support/shared_examples/lib/wikis_api_examples.rb:54 (PENDING: Temporarily skipped with xcontext)3633 when render param is true3634 behaves like returns wiki page3635 example at ./spec/support/shared_examples/lib/wikis_api_examples.rb:54 (PENDING: Temporarily skipped with xcontext)3636 when wiki page has versions3637 when version param is not present3638 retrieves the last version (PENDING: Temporarily skipped with xcontext)3639 when version param is set3640 retrieves the specific page version (PENDING: Temporarily skipped with xcontext)3641 when version param is not valid or inexistent3642 behaves like wiki API 404 Wiki Page Not Found3643 returns 404 Wiki Page Not Found (PENDING: Temporarily skipped with xcontext)3644 when page does not exist3645 returns 404 Wiki Page Not Found (PENDING: Temporarily skipped with xcontext)3646 when user is maintainer3647 behaves like returns wiki page3648 example at ./spec/support/shared_examples/lib/wikis_api_examples.rb:54 (PENDING: Temporarily skipped with xcontext)3649 when render param is false3650 behaves like returns wiki page3651 example at ./spec/support/shared_examples/lib/wikis_api_examples.rb:54 (PENDING: Temporarily skipped with xcontext)3652 when render param is true3653 behaves like returns wiki page3654 example at ./spec/support/shared_examples/lib/wikis_api_examples.rb:54 (PENDING: Temporarily skipped with xcontext)3655 when wiki page has versions3656 when version param is not present3657 retrieves the last version (PENDING: Temporarily skipped with xcontext)3658 when version param is set3659 retrieves the specific page version (PENDING: Temporarily skipped with xcontext)3660 when version param is not valid or inexistent3661 behaves like wiki API 404 Wiki Page Not Found3662 returns 404 Wiki Page Not Found (PENDING: Temporarily skipped with xcontext)3663 when page does not exist3664 returns 404 Wiki Page Not Found (PENDING: Temporarily skipped with xcontext)3665 when wiki is available for everyone with access3666 when user is guest3667 returns 404 Group Not Found3668 when user is developer3669 behaves like returns wiki page3670 is expected to eq "Page 9"3671 when render param is false3672 behaves like returns wiki page3673 is expected to eq "Page 10"3674 when render param is true3675 behaves like returns wiki page3676 is expected to eq "Page 11"3677 when wiki page has versions3678 when version param is not present3679 retrieves the last version3680 when version param is set3681 retrieves the specific page version3682 when version param is not valid or inexistent3683 behaves like wiki API 404 Wiki Page Not Found3684 returns 404 Wiki Page Not Found3685 when page does not exist3686 returns 404 Wiki Page Not Found3687 when user is maintainer3688 behaves like returns wiki page3689 is expected to eq "Page 15"3690 when render param is false3691 behaves like returns wiki page3692 is expected to eq "Page 16"3693 when render param is true3694 behaves like returns wiki page3695 is expected to eq "Page 17"3696 when wiki page has versions3697 when version param is not present3698 retrieves the last version3699 when version param is set3700 retrieves the specific page version3701 when version param is not valid or inexistent3702 behaves like wiki API 404 Wiki Page Not Found3703 returns 404 Wiki Page Not Found3704 when page does not exist3705 returns 404 Wiki Page Not Found3706 POST /groups/:id/wikis3707 when wiki is disabled3708 when user is guest3709 returns 404 Group Not Found3710 when user is developer3711 returns 403 Forbidden3712 when user is maintainer3713 returns 403 Forbidden3714 when wiki is available only for team members3715 when user is guest3716 returns 404 Group Not Found (PENDING: Temporarily skipped with xcontext)3717 when user is developer3718 creates the wiki page (PENDING: Temporarily skipped with xcontext)3719 responds with validation error on empty title (PENDING: Temporarily skipped with xcontext)3720 responds with validation error on empty content (PENDING: Temporarily skipped with xcontext)3721 when user is maintainer3722 creates the wiki page (PENDING: Temporarily skipped with xcontext)3723 responds with validation error on empty title (PENDING: Temporarily skipped with xcontext)3724 responds with validation error on empty content (PENDING: Temporarily skipped with xcontext)3725 when wiki is available for everyone with access3726 when user is guest3727 returns 404 Group Not Found3728 when user is developer3729 creates the wiki page3730 responds with validation error on empty title3731 responds with validation error on empty content3732 when user is maintainer3733 creates the wiki page3734 responds with validation error on empty title3735 responds with validation error on empty content3736 PUT /group/:id/wikis/:slug3737 when wiki is disabled3738 when user is guest3739 returns 404 Group Not Found3740 when user is developer3741 returns 403 Forbidden3742 when user is maintainer3743 returns 403 Forbidden3744 when wiki is available only for team members3745 when user is guest3746 returns 404 Group Not Found (PENDING: Temporarily skipped with xcontext)3747 when user is developer3748 updates the wiki page (PENDING: Temporarily skipped with xcontext)3749 updates with wiki with missing title (PENDING: Temporarily skipped with xcontext)3750 updates with wiki with missing content (PENDING: Temporarily skipped with xcontext)3751 updates with wiki with missing format (PENDING: Temporarily skipped with xcontext)3752 when page does not exist3753 returns 404 Wiki Page Not Found (PENDING: Temporarily skipped with xcontext)3754 when user is maintainer3755 updates the wiki page (PENDING: Temporarily skipped with xcontext)3756 updates with wiki with missing title (PENDING: Temporarily skipped with xcontext)3757 updates with wiki with missing content (PENDING: Temporarily skipped with xcontext)3758 updates with wiki with missing format (PENDING: Temporarily skipped with xcontext)3759 when page is not existing3760 returns 404 Wiki Page Not Found (PENDING: Temporarily skipped with xcontext)3761 when wiki is available for everyone with access3762 when user is guest3763 returns 404 Group Not Found3764 when user is developer3765 updates the wiki page3766 updates with wiki with missing title3767 updates with wiki with missing content3768 updates with wiki with missing format3769 when page does not exist3770 returns 404 Wiki Page Not Found3771 when user is maintainer3772 updates the wiki page3773 updates with wiki with missing title3774 updates with wiki with missing content3775 updates with wiki with missing format3776 when page does not exist3777 returns 404 Wiki Page Not Found3778 when user is owner of parent group3779 updates the wiki page3780 updates with wiki with missing title3781 updates with wiki with missing content3782 updates with wiki with missing format3783 DELETE /groups/:id/wikis/:slug3784 when wiki is disabled3785 when user is guest3786 returns 404 Group Not Found3787 when user is developer3788 returns 403 Forbidden3789 when user is maintainer3790 returns 403 Forbidden3791 when wiki is available only for team members3792 when user is guest3793 returns 404 Group Not Found (PENDING: Temporarily skipped with xcontext)3794 when user is developer3795 returns 403 Forbidden (PENDING: Temporarily skipped with xcontext)3796 when user is maintainer3797 returns 204 No Content (PENDING: Temporarily skipped with xcontext)3798 when wiki is available for everyone with access3799 when user is guest3800 returns 404 Group Not Found3801 when user is developer3802 returns 403 Forbidden3803 when user is maintainer3804 returns 204 No Content3805 when page does not exist3806 returns 404 Wiki Page Not Found3807 when user is owner of parent group3808 returns 204 No Content3809 POST /groups/:id/wikis/attachments3810 when wiki is disabled3811 when user is guest3812 returns 404 Group Not Found3813 when user is developer3814 returns 403 Forbidden3815 when user is maintainer3816 returns 403 Forbidden3817 when wiki is available only for team members3818 when user is guest3819 returns 404 Group Not Found (PENDING: Temporarily skipped with xcontext)3820 when user is developer3821 pushes attachment to the wiki repository (PENDING: Temporarily skipped with xcontext)3822 responds with validation error on empty file (PENDING: Temporarily skipped with xcontext)3823 responds with validation error on invalid temp file (PENDING: Temporarily skipped with xcontext)3824 is backward compatible with regular multipart uploads (PENDING: Temporarily skipped with xcontext)3825 when user is maintainer3826 pushes attachment to the wiki repository (PENDING: Temporarily skipped with xcontext)3827 responds with validation error on empty file (PENDING: Temporarily skipped with xcontext)3828 responds with validation error on invalid temp file (PENDING: Temporarily skipped with xcontext)3829 is backward compatible with regular multipart uploads (PENDING: Temporarily skipped with xcontext)3830 when wiki is available for everyone with access3831 when user is guest3832 returns 404 Group Not Found3833 when user is developer3834 pushes attachment to the wiki repository3835 responds with validation error on empty file3836 responds with validation error on invalid temp file3837 is backward compatible with regular multipart uploads3838 when user is maintainer3839 pushes attachment to the wiki repository3840 responds with validation error on empty file3841 responds with validation error on invalid temp file3842 is backward compatible with regular multipart uploads3843API::ProtectedEnvironments3844 GET /projects/:id/protected_environments3845 when authenticated as a maintainer3846 returns the protected environments3847 behaves like requests for non-maintainers3848 is expected to be denied for :guest3849 is expected to be denied for :developer3850 is expected to be denied for :reporter3851 is expected to be denied for :anonymous3852 GET /projects/:id/protected_environments/:environment3853 when authenticated as a maintainer3854 returns the protected environment3855 with multiple approval rules3856 returns the protected environment3857 when protected environment does not exist3858 behaves like 404 response3859 returns 4043860 behaves like requests for non-maintainers3861 is expected to be denied for :guest3862 is expected to be denied for :developer3863 is expected to be denied for :reporter3864 is expected to be denied for :anonymous3865 POST /projects/:id/protected_environments/3866 when authenticated as a maintainer3867 protects the environment with user allowed to deploy3868 protects the environment with group allowed to deploy3869 protects the environment with maintainers allowed to deploy3870 returns 409 error if environment is already protected3871 protects the environment and require approvals3872 returns error with invalid deploy access level3873 without deploy_access_levels3874 behaves like 400 response3875 returns 4003876 behaves like requests for non-maintainers3877 is expected to be denied for :guest3878 is expected to be denied for :developer3879 is expected to be denied for :reporter3880 is expected to be denied for :anonymous3881 PUT /projects/:id/protected_environments/:name3882 when authenticated as maintainer3883 behaves like requests to update deploy access levels3884 updates the environment / creating deploy access level3885 updates the environment / updating deploy access level3886 updates the environment / deleting deploy access level / failed3887 updates the environment / deleting deploy access level / succeed3888 updates the environment / updating required approval count3889 behaves like requests to update approval rules3890 updates the environment / creating approval rule3891 updates the environment / updating approval rule3892 updates the environment / deleting approval rule3893 with invalid deploy_access_level3894 returns error with invalid deploy access level3895 when protected environment does not exist3896 returns a not found error3897 behaves like requests for non-maintainers3898 is expected to be denied for :guest3899 is expected to be denied for :developer3900 is expected to be denied for :reporter3901 is expected to be denied for :anonymous3902 DELETE /projects/:id/protected_environments/:environment3903 when authenticated as a maintainer3904 unprotects the environment3905 behaves like requests for non-maintainers3906 is expected to be denied for :guest3907 is expected to be denied for :developer3908 is expected to be denied for :reporter3909 is expected to be denied for :anonymous3910 GET /groups/:id/protected_environments3911 behaves like group-level request is disallowed for maintainer3912 is expected to be denied for :maintainer3913 when authenticated as a owner3914 returns the protected environments3915 GET /groups/:id/protected_environments/:environment3916 behaves like group-level request is disallowed for maintainer3917 is expected to be denied for :maintainer3918 when authenticated as a owner3919 returns the protected environment3920 with multiple approval rules3921 returns the protected environment3922 when protected environment does not exist3923 behaves like 404 response3924 returns 4043925 POST /groups/:id/protected_environments/3926 behaves like group-level request is disallowed for maintainer3927 is expected to be denied for :maintainer3928 when authenticated as a owner3929 protects the environment with user allowed to deploy3930 protects the environment with group allowed to deploy3931 protects the environment with shared group allowed to deploy3932 protects the environment with maintainers allowed to deploy3933 protects the environment with group allowed to deploy with inheritance3934 protects the environment and require approvals3935 returns 409 error if environment is already protected3936 returns error with invalid deploy access level3937 without deploy_access_levels3938 behaves like 400 response3939 returns 4003940 PUT /groups/:id/protected_environments/:name3941 behaves like group-level request is disallowed for maintainer3942 is expected to be denied for :maintainer3943 when authenticated as a owner3944 updates the environment with shared group allowed to deploy3945 updates the environment with group allowed to deploy with inheritance3946 returns error with invalid deploy access level3947 behaves like requests to update deploy access levels3948 updates the environment / creating deploy access level3949 updates the environment / updating deploy access level3950 updates the environment / deleting deploy access level / failed3951 updates the environment / deleting deploy access level / succeed3952 updates the environment / updating required approval count3953 behaves like requests to update approval rules3954 updates the environment / creating approval rule3955 updates the environment / updating approval rule3956 updates the environment / deleting approval rule3957 behaves like requests for non-maintainers3958 is expected to be denied for :guest3959 is expected to be denied for :developer3960 is expected to be denied for :reporter3961 is expected to be denied for :anonymous3962 DELETE /groups/:id/protected_environments/:environment3963 behaves like group-level request is disallowed for maintainer3964 is expected to be denied for :maintainer3965 when authenticated as a owner3966 unprotects the environment3967API::Scim::InstanceScim3968 # order random3969 when user with an alphanumeric extern_uid3970 behaves like SCIM API endpoints3971 GET api/scim/v2/application/Users3972 responds with paginated users when there is no filter3973 behaves like Not available to SaaS customers3974 on GitLab.com3975 renders not found3976 behaves like Instance level SCIM license required3977 when license is not enabled3978 returns not found error3979 behaves like SCIM token authenticated3980 without token auth3981 responds with 4013982 behaves like SAML SSO must be enabled3983 responds with 403 when instance SAML SSO not enabled3984 when unsupported filters are used3985 responds with an error3986 when existing user matches filter3987 responds with 2003988 sets default values as required by the specification3989 when no user matches filter3990 responds with 2003991 GET api/scim/v2/application/Users/:id3992 responds with 403 when instance SAML SSO not configured3993 behaves like Not available to SaaS customers3994 on GitLab.com3995 renders not found3996 behaves like Instance level SCIM license required3997 when license is not enabled3998 returns not found error3999 behaves like SCIM token authenticated4000 without token auth4001 responds with 4014002 behaves like SAML SSO must be enabled4003 responds with 403 when instance SAML SSO not enabled4004 behaves like Invalid extern_uid returns 4044005 when there is no user associated with extern_uid4006 responds with 4044007 when there is a user with extern_uid4008 responds with 2004009 POST api/scim/v2/application/Users4010 behaves like Not available to SaaS customers4011 on GitLab.com4012 renders not found4013 behaves like Instance level SCIM license required4014 when license is not enabled4015 returns not found error4016 behaves like SCIM token authenticated4017 without token auth4018 responds with 4014019 behaves like SAML SSO must be enabled4020 responds with 403 when instance SAML SSO not enabled4021 without an existing user4022 responds with 201 and the new user attributes4023 when existing user4024 responds with 201 and the scim user attributes4025 when a provisioning error occurs4026 returns a 412 response and error message4027 behaves like Filtered params in errors4028 does not expose the password in error response4029 does not expose the access token in error response4030 when a conflict occurs4031 returns a 409 response and error message4032 behaves like Filtered params in errors4033 does not expose the password in error response4034 does not expose the access token in error response4035 PATCH api/scim/v2/application/Users/:id4036 behaves like Not available to SaaS customers4037 on GitLab.com4038 renders not found4039 behaves like Instance level SCIM license required4040 when license is not enabled4041 returns not found error4042 behaves like SCIM token authenticated4043 without token auth4044 responds with 4014045 behaves like SAML SSO must be enabled4046 responds with 403 when instance SAML SSO not enabled4047 behaves like Invalid extern_uid returns 4044048 when there is no user associated with extern_uid4049 responds with 4044050 when params update extern_uid for existing scim identity4051 responds with 204 and updates extern_uid4052 when params update other attributes on existing scim identity4053 responds with success but does not update the attributes4054 when params are invalid4055 ignores the params and returns a success response4056 when extern_uid update fails4057 returns an error4058 when deprovision fails4059 returns an error4060 when reprovision fails4061 returns an error4062 when param values deactivate scim identity4063 deactivates the scim_identity4064 when param values reactivate scim identity4065 activates the scim_identity4066 does not call reprovision service when identity is already active4067 when id param is missing from request4068 returns method not allowed error4069 DELETE /scim/v2/application/Users/:id4070 behaves like Not available to SaaS customers4071 on GitLab.com4072 renders not found4073 behaves like Instance level SCIM license required4074 when license is not enabled4075 returns not found error4076 behaves like SCIM token authenticated4077 without token auth4078 responds with 4014079 behaves like SAML SSO must be enabled4080 responds with 403 when instance SAML SSO not enabled4081 behaves like Invalid extern_uid returns 4044082 when there is no user associated with extern_uid4083 responds with 4044084 when existing user4085 responds with 204 and deactivates the scim identity4086 when deprovision fails4087 returns an error4088 when user with an email extern_uid4089 behaves like SCIM API endpoints4090 GET api/scim/v2/application/Users4091 responds with paginated users when there is no filter4092 behaves like Not available to SaaS customers4093 on GitLab.com4094 renders not found4095 behaves like Instance level SCIM license required4096 when license is not enabled4097 returns not found error4098 behaves like SCIM token authenticated4099 without token auth4100 responds with 4014101 behaves like SAML SSO must be enabled4102 responds with 403 when instance SAML SSO not enabled4103 when unsupported filters are used4104 responds with an error4105 when existing user matches filter4106 responds with 2004107 sets default values as required by the specification4108 when no user matches filter4109 responds with 2004110 GET api/scim/v2/application/Users/:id4111 responds with 403 when instance SAML SSO not configured4112 behaves like Not available to SaaS customers4113 on GitLab.com4114 renders not found4115 behaves like Instance level SCIM license required4116 when license is not enabled4117 returns not found error4118 behaves like SCIM token authenticated4119 without token auth4120 responds with 4014121 behaves like SAML SSO must be enabled4122 responds with 403 when instance SAML SSO not enabled4123 behaves like Invalid extern_uid returns 4044124 when there is no user associated with extern_uid4125 responds with 4044126 when there is a user with extern_uid4127 responds with 2004128 POST api/scim/v2/application/Users4129 behaves like Not available to SaaS customers4130 on GitLab.com4131 renders not found4132 behaves like Instance level SCIM license required4133 when license is not enabled4134 returns not found error4135 behaves like SCIM token authenticated4136 without token auth4137 responds with 4014138 behaves like SAML SSO must be enabled4139 responds with 403 when instance SAML SSO not enabled4140 without an existing user4141 responds with 201 and the new user attributes4142 when existing user4143 responds with 201 and the scim user attributes4144 when a provisioning error occurs4145 returns a 412 response and error message4146 behaves like Filtered params in errors4147 does not expose the password in error response4148 does not expose the access token in error response4149 when a conflict occurs4150 returns a 409 response and error message4151 behaves like Filtered params in errors4152 does not expose the password in error response4153 does not expose the access token in error response4154 PATCH api/scim/v2/application/Users/:id4155 behaves like Not available to SaaS customers4156 on GitLab.com4157 renders not found4158 behaves like Instance level SCIM license required4159 when license is not enabled4160 returns not found error4161 behaves like SCIM token authenticated4162 without token auth4163 responds with 4014164 behaves like SAML SSO must be enabled4165 responds with 403 when instance SAML SSO not enabled4166 behaves like Invalid extern_uid returns 4044167 when there is no user associated with extern_uid4168 responds with 4044169 when params update extern_uid for existing scim identity4170 responds with 204 and updates extern_uid4171 when params update other attributes on existing scim identity4172 responds with success but does not update the attributes4173 when params are invalid4174 ignores the params and returns a success response4175 when extern_uid update fails4176 returns an error4177 when deprovision fails4178 returns an error4179 when reprovision fails4180 returns an error4181 when param values deactivate scim identity4182 deactivates the scim_identity4183 when param values reactivate scim identity4184 activates the scim_identity4185 does not call reprovision service when identity is already active4186 when id param is missing from request4187 returns method not allowed error4188 DELETE /scim/v2/application/Users/:id4189 behaves like Not available to SaaS customers4190 on GitLab.com4191 renders not found4192 behaves like Instance level SCIM license required4193 when license is not enabled4194 returns not found error4195 behaves like SCIM token authenticated4196 without token auth4197 responds with 4014198 behaves like SAML SSO must be enabled4199 responds with 403 when instance SAML SSO not enabled4200 behaves like Invalid extern_uid returns 4044201 when there is no user associated with extern_uid4202 responds with 4044203 when existing user4204 responds with 204 and deactivates the scim identity4205 when deprovision fails4206 returns an error4207API::ProjectAliases4208 without premium license4209 GET /project_aliases4210 returns 4034211 behaves like GET request permissions for admin mode4212 behaves like when admin4213 behaves like makes request4214 returns4215 behaves like makes request4216 returns4217 behaves like when user4218 returns4219 behaves like makes request4220 returns4221 GET /project_aliases/:name4222 returns 4034223 behaves like GET request permissions for admin mode4224 behaves like when admin4225 behaves like makes request4226 returns4227 behaves like makes request4228 returns4229 behaves like when user4230 returns4231 behaves like makes request4232 returns4233 POST /project_aliases4234 returns 4034235 behaves like POST request permissions for admin mode4236 behaves like when admin4237 behaves like makes request4238 returns4239 behaves like makes request4240 returns4241 behaves like when user4242 returns4243 behaves like makes request4244 returns4245 DELETE /project_aliases/:name4246 returns 4034247 behaves like DELETE request permissions for admin mode4248 behaves like when admin4249 behaves like makes request4250 returns4251 behaves like makes request4252 returns4253 behaves like when user4254 returns4255 behaves like makes request4256 returns4257 with premium license4258 GET /project_aliases4259 behaves like GET request permissions for admin mode4260 behaves like when admin4261 behaves like makes request4262 returns4263 behaves like makes request4264 returns4265 behaves like when user4266 returns4267 behaves like makes request4268 returns4269 behaves like GitLab administrator only API endpoint4270 anonymous user4271 returns 4014272 regular user4273 returns 4034274 admin4275 returns the project aliases list4276 GET /project_aliases/:name4277 behaves like GET request permissions for admin mode4278 behaves like when admin4279 behaves like makes request4280 returns4281 behaves like makes request4282 returns4283 behaves like when user4284 returns4285 behaves like makes request4286 returns4287 behaves like GitLab administrator only API endpoint4288 anonymous user4289 returns 4014290 regular user4291 returns 4034292 admin4293 existing project alias4294 returns the project alias4295 non-existent project alias4296 returns 4044297 POST /project_aliases4298 behaves like POST request permissions for admin mode4299 behaves like when admin4300 behaves like makes request4301 returns4302 behaves like makes request4303 returns4304 behaves like when user4305 returns4306 behaves like makes request4307 returns4308 behaves like GitLab administrator only API endpoint4309 anonymous user4310 returns 4014311 regular user4312 returns 4034313 admin4314 existing project alias4315 returns 4004316 non-existent project alias4317 returns 2004318 DELETE /project_aliases/:name4319 behaves like DELETE request permissions for admin mode4320 behaves like when admin4321 behaves like makes request4322 returns4323 behaves like makes request4324 returns4325 behaves like when user4326 returns4327 behaves like makes request4328 returns4329 behaves like GitLab administrator only API endpoint4330 anonymous user4331 returns 4014332 regular user4333 returns 4034334 admin4335 existing project alias4336 returns 2044337 non-existent project alias4338 returns 4044339API::Users4340 updating name4341 behaves like PUT request permissions for admin mode4342 behaves like when admin4343 behaves like makes request4344 returns4345 behaves like makes request4346 returns4347 behaves like when user4348 returns4349 behaves like makes request4350 returns4351 when authenticated and ldap is enabled4352 returns non-ldap user4353 when `disable_name_update_for_users` feature is available4354 when the ability to update their name is disabled for users4355 behaves like admin can update the name of a user4356 updates the user with new name4357 when the ability to update their name is not disabled for users4358 behaves like admin can update the name of a user4359 updates the user with new name4360 when `disable_name_update_for_users` feature is not available4361 behaves like admin can update the name of a user4362 updates the user with new name4363 extended audit events4364 PUT /users/:id4365 creates audit event when updating user with new password4366 behaves like PUT request permissions for admin mode4367 behaves like when admin4368 behaves like makes request4369 returns4370 behaves like makes request4371 returns4372 behaves like when user4373 returns4374 behaves like makes request4375 returns4376 POST /users/:id/block4377 creates audit event when blocking user4378 behaves like POST request permissions for admin mode4379 behaves like when admin4380 behaves like makes request4381 returns4382 behaves like makes request4383 returns4384 behaves like when user4385 returns4386 behaves like makes request4387 returns4388 POST /user/keys4389 creates audit event when user adds a new SSH key4390 POST /users/:id/keys4391 creates audit event when admin adds a new key for a user4392 behaves like POST request permissions for admin mode4393 behaves like when admin4394 behaves like makes request4395 returns4396 behaves like makes request4397 returns4398 behaves like when user4399 returns4400 behaves like makes request4401 returns4402 shared_runners_minutes_limit4403 PUT /users/:id4404 when user is an admin4405 updates shared_runners_minutes_limit4406 when user is not an admin4407 cannot update their own shared_runners_minutes_limit4408 when auditor field is specified4409 PUT /users/:id4410 when user is an admin4411 updates auditor status for the user4412 when licensed_feature is not available4413 cannot update auditor status for the user4414 when user is not an admin4415 cannot update auditor status for the user4416 POST /users/4417 behaves like POST request permissions for admin mode4418 behaves like when admin4419 behaves like makes request4420 returns4421 behaves like makes request4422 returns4423 behaves like when user4424 returns4425 behaves like makes request4426 returns4427 when user is an admin4428 creates user with auditor status4429 when licensed_feature is not available4430 cannot create user with auditor status4431 when user is not an admin4432 cannot create user with auditor status4433 with group SAML4434 creates user with new identity4435 creates user with new identity without sending reset password email4436 updates user with new identity4437 fails to update user with nonexistent identity4438 fails to update user with nonexistent provider4439 contains provisioned_by_group_id parameter4440 behaves like POST request permissions for admin mode4441 behaves like when admin4442 behaves like makes request4443 returns4444 behaves like makes request4445 returns4446 behaves like when user4447 returns4448 behaves like makes request4449 returns4450 GET /api/users?saml_provider_id4451 querying users by saml provider id4452 returns only users for the saml_provider_id4453 GET /api/users?auditors=true4454 querying users who are auditors4455 returns all users4456 GET /user/:id4457 when authenticated4458 as an admin4459 contains scim_identities parameter4460 and user has a plan4461 contains is_auditor parameter4462 and user is not a trial user4463 contains plan and trial4464 and user is a trial user4465 contains plan and trial4466 and user has no plan4467 returns `nil` for both plan and trial4468 as a user4469 does not contain plan and trial info4470 does not contain is_auditor parameter4471 does not contain provisioned_by_group_id parameter4472 does not contain scim_identities parameter4473 when not authenticated4474 does not contain plan and trial info4475 POST /users/:user_id/personal_access_tokens4476 when the user is a service account4477 when the feature is licensed4478 when the user is an admin4479 with required params4480 does not allow PAT creation4481 when admin mode enabled4482 allows PAT creation4483 when missing params4484 does not allow PAT creation4485 when the user is not an admin4486 does not allow PAT creation4487 when the feature is not licensed4488 does not allow PAT creation4489 POST /user/personal_access_tokens4490 when disable_personal_access_tokens feature is available4491 when personal access tokens are disabled in settings4492 does not create a personal access token4493 when personal access tokens are enabled in settings4494 creates a personal access token4495 GET /api/users?extern_uid=:extern_uid&provider=scim4496 querying users by SCIM identity as an admin4497 returns only users for the extern_uid4498Query.project(fullPath).dependencies4499 # order random4500 does not make N+1 queries4501 returns the expected dependency data when performing a well-formed query with an authorized user4502 with component_names as an argument4503 filters records based on the component name4504 with an unauthorized user4505 does not return dependency data4506 with package_managers as an argument4507 filters records based on the package manager name4508 when dependencies have no version data4509 returns a nil version4510 when dependencies have no source data4511 returns nil for data which originates from a source4512 behaves like sorted paginated query4513 behaves like requires variables4514 shared example requires variables to be set4516 when sorting4517 sorts correctly4518 when paginating4519 paginates correctly4520 with sort as an argument4521 sorts by component name descending4522Groups::GroupMembersController4523 GET /groups/*group_id/-/group_members4524 pushes feature flag to frontend4525 sets @banned to include banned group members4526 sets @members not to include banned group members4527 when licensed feature is not available4528 behaves like assigns @banned and @members correctly4529 does not assign @banned4530 sets @members to include banned group members4531 when feature flag is disabled4532 behaves like assigns @banned and @members correctly4533 does not assign @banned4534 sets @members to include banned group members4535 when sub-group4536 behaves like assigns @banned and @members correctly4537 does not assign @banned4538 sets @members to include banned group members4539 PUT /groups/*group_id/-/group_members/:id/ban4540 when current user is an owner4541 redirects back to group members page4542 behaves like bans the user4543 bans the user4544 when ban fails4545 redirects back to group members page with the error message as alert4546 when user cannot admin_group_member (not an owner)4547 returns 4034548 PUT /groups/*group_id/-/group_members/:id/unban4549 when current user is an owner4550 redirects back to banned group members page4551 behaves like unbans the user4552 unbans the user4553 when unbanning a subgroup member4554 behaves like unbans the user4555 unbans the user4556 when member is not banned4557 returns 4044558 when unban fails4559 redirects back to banned group members page with the error message as alert4560 when user is not an owner4561 returns 4044562 PUT /groups/*group_id/-/group_members/:id4563 when group has email domain feature enabled4564 for a user with an email belonging to the allowed domain4565 returns error status4566 for a user with an un-verified email belonging to a domain different from the allowed domain4567 returns error status4568 returns error message4569 GET /groups/*group_id/-/group_members/export_csv4570 redirects back to members list4571 when LDAP sync is enabled4572 redirects back to members list4573Groups::Settings::DomainVerificationController4574 # order random4575 GET /groups/:group_id/-/settings/domain_verification/:domain4576 returns domain4577 returns domain with a certificate4578 returns domain with letsencrypt4579 returns domain with letsencrypt with auto_ssl_failed4580 behaves like renders 404 when domain_verification is unavailable4581 when domain_verification is unavailable4582 renders 4044583 POST /groups/:group_id/-/settings/domain_verification/:domain/retry_auto_ssl4584 call PagesDomains::RetryAcmeOrderService4585 behaves like renders 404 when domain_verification is unavailable4586 when domain_verification is unavailable4587 renders 4044588 DELETE /groups/:group_id/-/settings/domain_verification/:domain/clean_certificate4589 remove domain certificate4590 behaves like renders 404 when domain_verification is unavailable4591 when domain_verification is unavailable4592 renders 4044593 POST /groups/:group_id/-/settings/domain_verification4594 creates a new domain4595 fails to create domain without project_id4596 creates a new secure domain4597 creates domain with letsencrypt enabled4598 fails to create domain without key4599 fails to create domain with key missmatch4600 behaves like renders 404 when domain_verification is unavailable4601 when domain_verification is unavailable4602 renders 4044603 GET /groups/:group_id/-/settings/domain_verification4604 when domain verification is available4605 when the user is an owner4606 renders index with 200 status code4607 behaves like respects sso enforcement4608 redirects to SSO sign in4609 when subgroup4610 behaves like renders 4044611 renders 4044612 when user is not owner4613 behaves like renders 4044614 renders 4044615 behaves like renders 404 when domain_verification is unavailable4616 when domain_verification is unavailable4617 renders 4044618 POST /groups/:group_id/-/settings/domain_verification/:domain/verify4619 call VerifyPagesDomainService success4620 call VerifyPagesDomainService error4621 behaves like renders 404 when domain_verification is unavailable4622 when domain_verification is unavailable4623 renders 4044624 PUT /groups/:group_id/-/settings/domain_verification/:domain4625 updates pages domain removing certificate4626 publishes PagesDomainUpdatedEvent event4627 updates pages domain adding certificate4628 updates pages domain enabling letsencrypt4629 updates pages domain disabling letsencrypt and adding certificate4630 with invalid params4631 fails to update pages domain adding certificate without key4632 does not publish PagesDomainUpdatedEvent event4633 fails to update pages domain adding certificate with missing chain4634 fails to update pages domain with key missmatch4635 behaves like renders 404 when domain_verification is unavailable4636 when domain_verification is unavailable4637 renders 4044638 GET /groups/:group_id/-/settings/domain_verification/new4639 when domain_verification_operation is enabled4640 render the 'new' page4641 behaves like respects sso enforcement4642 redirects to SSO sign in4643 behaves like renders 404 when domain_verification is unavailable4644 when domain_verification is unavailable4645 renders 4044646 DELETE /groups/:group_id/-/settings/domain_verification/:domain4647 deletes a pages domain4648 behaves like renders 404 when domain_verification is unavailable4649 when domain_verification is unavailable4650 renders 4044651API::VulnerabilityIssueLinks4652 GET /vulnerabilities/:id/issue_links4653 with an authorized user with proper permissions4654 when linked issue is not confidential and available for the user4655 gets the list of visible issue links4656 when there is an additional confidential issue linked4657 gets the list of visible issue links4658 does not return confidential issue in the response4659 when link is created to issue in the inaccessible project4660 gets the list of visible issue links4661 does not return issue from inaccessible project4662 behaves like responds with "not found" for an unknown vulnerability ID4663 is expected to respond with numeric status code not_found4664 behaves like forbids access to vulnerability API endpoint in case of disabled features4665 when security dashboard feature is not available4666 responds with 403 Forbidden4667 permissions4668 is expected to be allowed for :admin4669 is expected to be allowed for :owner4670 is expected to be allowed for :maintainer4671 is expected to be allowed for :developer4672 is expected to be allowed for :auditor4673 is expected to be denied for :reporter4674 is expected to be denied for :guest4675 is expected to be denied for :anonymous4676 POST /vulnerabilities/:id/issue_links4677 with an authorized user with proper permissions4678 with valid params4679 creates a new vulnerability-issue link4680 when issue is from different project4681 when target_project_id is invalid4682 responds with "not found" and specific error message4683 when user does not have access to the project4684 responds with "not found" and specific error message4685 when user is authorized with proper permissions to the project4686 creates a new vulnerability-issue link4687 with unknown issue ID4688 responds with "not found" and specific error message4689 when a link between these issue and vulnerability already exists4690 responds with "conflict" status code and specific error message4691 when a "created" link for a vulnerability already exists4692 responds with "conflict" status code and specific error message4693 when trying to relate a confidential issue of the same project4694 creates a new vulnerability-issue link4695 behaves like responds with "not found" for an unknown vulnerability ID4696 is expected to respond with numeric status code not_found4697 behaves like forbids access to vulnerability API endpoint in case of disabled features4698 when security dashboard feature is not available4699 responds with 403 Forbidden4700 permissions4701 is expected to be allowed for :admin4702 is expected to be allowed for :owner4703 is expected to be allowed for :maintainer4704 is expected to be allowed for :developer4705 is expected to be denied for :auditor4706 is expected to be denied for :reporter4707 is expected to be denied for :guest4708 is expected to be denied for :anonymous4709 DELETE /vulnerabilities/:id/issue_links/:issue_link_id4710 with an authorized user with proper permissions4711 with valid params4712 deletes the specified vulnerability-issue link4713 with link to an issue that the current user cannot see4714 deletes the link without disclosing the linked issue4715 with unknown issue link ID4716 responds with "not found" and specific error message4717 behaves like responds with "not found" for an unknown vulnerability ID4718 is expected to respond with numeric status code not_found4719 behaves like forbids access to vulnerability API endpoint in case of disabled features4720 when security dashboard feature is not available4721 responds with 403 Forbidden4722 permissions4723 is expected to be allowed for :admin4724 is expected to be allowed for :owner4725 is expected to be allowed for :maintainer4726 is expected to be allowed for :developer4727 is expected to be denied for :auditor4728 is expected to be denied for :reporter4729 is expected to be denied for :guest4730 is expected to be denied for :anonymous4731API::RelatedEpicLinks4732 GET /groups/:id/related_epic_links4733 when user has no access to the group4734 returns 4044735 when user has access to the group4736 returns only related epics links the user has access to4737 behaves like endpoint with features check4738 when epics feature is not available4739 is expected to eq 4034740 when related_epics feature is not available4741 is expected to eq 4034742 when filtered by updated_before4743 returns related epic links updated before the given parameter4744 returns no related epic links4745 when filtered by updated_after4746 returns related epic links updated before the given parameter4747 returns no related epic links4748 when filtered by created_after4749 returns related epic links created after the given parameter4750 returns no related epic links4751 when filtered by created_before4752 returns related epic links created before the given parameter4753 returns no related epic links4754 when epics links are in a sub-group4755 returns linked epic from sub-group4756 when user has access to both groups4757 returns related epic links4758 returns multiple links without N + 14759 with pagination4760 returns first page of related epics4761 returns the last page of related epics4762 GET /groups/:id/epics/:epic_id/related_epics4763 when user cannot read epics4764 returns 4044765 when user can read epics4766 returns related epics4767 returns multiple links without N + 14768 behaves like endpoint with features check4769 when epics feature is not available4770 is expected to eq 4034771 when related_epics feature is not available4772 is expected to eq 4034773 POST /groups/:id/epics/:epic_id/related_epics4774 behaves like unauthenticated resource4775 returns 4014776 when user can not access source epic4777 behaves like forbidden resource4778 returns 4034779 when user can access source epic4780 when user cannot access target epic4781 when group is private4782 behaves like not found resource4783 returns 4044784 when epic_relations_for_non_members is disabled4785 behaves like forbidden resource4786 returns 4034787 when user can access target epic group4788 returns 201 when sending full path of target group4789 returns 201 status for is_blocked_by link and contains the expected link response4790 behaves like successful response4791 returns created4792 behaves like endpoint with features check4793 when epics feature is not available4794 is expected to eq 4034795 when related_epics feature is not available4796 is expected to eq 4034797 when target epic is confidential4798 behaves like forbidden resource4799 returns 4034800 when target epic is not found4801 behaves like not found resource4802 returns 4044803 DELETE /groups/:id/epics/:epic_id/related_epics4804 behaves like unauthenticated resource4805 returns 4014806 when user can not access source epic4807 behaves like forbidden resource4808 returns 4034809 when user can access source epic4810 when target group is private4811 behaves like not found resource4812 returns 4044813 when epic_relations_for_non_members is disabled4814 behaves like not found resource4815 returns 4044816 when user can access target group4817 behaves like successful response4818 returns ok4819 behaves like endpoint with features check4820 when epics feature is not available4821 is expected to eq 4034822 when related_epics feature is not available4823 is expected to eq 4034824 when related_epic_link_id belongs to a different epic4825 behaves like not found resource4826 returns 4044827Projects::Security::PoliciesController4828 GET #edit4829 with authorized user4830 when feature is available4831 renders the edit page4832 does not contain any approver data4833 with scan result policy type4834 renders the edit page with approvers data4835 when type is missing4836 redirects to #index4837 when type is invalid4838 redirects to #index4839 when id does not exist4840 returns 4044841 when there is no policy configuration4842 returns 4044843 when policy yaml file does not exist4844 redirects to project page4845 when policy yaml is invalid4846 redirects to policy file4847 behaves like tracks govern usage event4848 tracks unique event4849 when feature is not available4850 returns 4044851 behaves like doesn't track govern usage event4852 doesn't tracks event4853 with unauthorized user4854 when feature is available4855 returns 4044856 behaves like doesn't track govern usage event4857 doesn't tracks event4858 with anonymous user4859 returns 3024860 behaves like doesn't track govern usage event4861 doesn't tracks event4862 GET #new4863 license: true, status: :ok4864 is expected to respond with numeric status code ok4865 usage tracking4866 with license available4867 behaves like tracks govern usage event4868 tracks unique event4869 without license available4870 behaves like doesn't track govern usage event4871 doesn't tracks event4872 license: false, status: :not_found4873 is expected to respond with numeric status code not_found4874 usage tracking4875 with license available4876 behaves like tracks govern usage event4877 tracks unique event4878 without license available4879 behaves like doesn't track govern usage event4880 doesn't tracks event4881 GET #index4882 license: true, status: :ok4883 is expected to respond with numeric status code ok4884 usage tracking4885 with license available4886 behaves like tracks govern usage event4887 tracks unique event4888 without license available4889 behaves like doesn't track govern usage event4890 doesn't tracks event4891 license: false, status: :not_found4892 is expected to respond with numeric status code not_found4893 usage tracking4894 with license available4895 behaves like tracks govern usage event4896 tracks unique event4897 without license available4898 behaves like doesn't track govern usage event4899 doesn't tracks event4900 GET #schema4901 returns JSON schema4902Query.vulnerability(id)4903 # order random4904 query all fields4905 for a sast vulnerability4906 behaves like a working graphql query that returns data4907 contains data4908 returns the vulnerability4909 behaves like a working graphql query4910 returns a successful response4911 with an unauthenticated client4912 behaves like a working graphql query that returns no data4913 contains no data4914 behaves like a working graphql query4915 returns a successful response4916 for a dependency_scanning vulnerability4917 behaves like a working graphql query that returns data4918 contains data4919 returns the vulnerability4920 behaves like a working graphql query4921 returns a successful response4922 with an unauthenticated client4923 behaves like a working graphql query that returns no data4924 contains no data4925 behaves like a working graphql query4926 returns a successful response4927 for a container_scanning vulnerability4928 behaves like a working graphql query that returns data4929 contains data4930 returns the vulnerability4931 behaves like a working graphql query4932 returns a successful response4933 with an unauthenticated client4934 behaves like a working graphql query that returns no data4935 contains no data4936 behaves like a working graphql query4937 returns a successful response4938 for a dast vulnerability4939 behaves like a working graphql query that returns data4940 contains data4941 returns the vulnerability4942 behaves like a working graphql query4943 returns a successful response4944 with an unauthenticated client4945 behaves like a working graphql query that returns no data4946 contains no data4947 behaves like a working graphql query4948 returns a successful response4949 for a secret_detection vulnerability4950 behaves like a working graphql query that returns data4951 contains data4952 returns the vulnerability4953 behaves like a working graphql query4954 returns a successful response4955 with an unauthenticated client4956 behaves like a working graphql query that returns no data4957 contains no data4958 behaves like a working graphql query4959 returns a successful response4960 for a coverage_fuzzing vulnerability4961 behaves like a working graphql query that returns data4962 contains data4963 returns the vulnerability4964 behaves like a working graphql query4965 returns a successful response4966 with an unauthenticated client4967 behaves like a working graphql query that returns no data4968 contains no data4969 behaves like a working graphql query4970 returns a successful response4971 for a api_fuzzing vulnerability4972 behaves like a working graphql query that returns data4973 contains data4974 returns the vulnerability4975 behaves like a working graphql query4976 returns a successful response4977 with an unauthenticated client4978 behaves like a working graphql query that returns no data4979 contains no data4980 behaves like a working graphql query4981 returns a successful response4982 for a cluster_image_scanning vulnerability4983 behaves like a working graphql query that returns data4984 contains data4985 returns the vulnerability4986 behaves like a working graphql query4987 returns a successful response4988 with an unauthenticated client4989 behaves like a working graphql query that returns no data4990 contains no data4991 behaves like a working graphql query4992 returns a successful response4993 for a generic vulnerability4994 behaves like a working graphql query that returns data4995 contains data4996 returns the vulnerability4997 behaves like a working graphql query4998 returns a successful response4999 with an unauthenticated client5000 behaves like a working graphql query that returns no data5001 contains no data5002 behaves like a working graphql query5003 returns a successful response5004API::EpicLinks5005 GET /groups/:id/epics/:epic_iid/epics5006 behaves like user does not have access5007 returns 403 when subepics feature is disabled5008EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5009EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5010 returns 404 not found error for a user without permissions to see the group5011 unauthenticated user5012 returns 401 unauthorized error5013 when subepics feature is enabled5014 returns 200 status5015 with group hierarchy5016 returns children from any group hierarchy5017 executes limited number of N+1 queries5018 POST /groups/:id/epics/:epic_iid/epics/child_epic_id5019 behaves like user does not have access5020 returns 403 when subepics feature is disabled5021EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5022EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5023 returns 404 not found error for a user without permissions to see the group5024 unauthenticated user5025 returns 401 unauthorized error5026 when subepics feature is enabled5027 when user is not a member5028 returns 4035029 when user is guest5030 returns 201 status5031 when target epic cannot be read5032 returns 404 status5033 POST /groups/:id/epics/:epic_iid/epics5034 behaves like user does not have access5035 returns 403 when subepics feature is disabled5036EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5037EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5038 returns 404 not found error for a user without permissions to see the group5039 unauthenticated user5040 returns 401 unauthorized error5041 when subepics feature is enabled5042 when user is not a member5043 returns 4035044 when user is a guest5045 returns 201 status5046 when user is a reporter5047 returns 201 status5048 does apply the confidential parameter if set5049 when the parent epic is confidential5050 copies the confidentiality status from the parent epic5051 does not allow creating a non-confidential sub-epic5052 and epic has errors5053 returns 400 error5054 PUT /groups/:id/epics/:epic_iid/epics/:child_epic_id5055 behaves like user does not have access5056 returns 403 when subepics feature is disabled5057EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5058EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5059 returns 404 not found error for a user without permissions to see the group5060 unauthenticated user5061 returns 401 unauthorized error5062 when subepics are enabled5063 when user has permissions to reorder epics5064 returns status 2005065 when child belongs to a different group hierarchy5066 returns status 404 if user is not a member5067 returns status 200 if user has guest access5068 when user does not have permissions to reorder epics5069 returns status 4035070 DELETE /groups/:id/epics/:epic_iid/epics5071 behaves like user does not have access5072 returns 403 when subepics feature is disabled5073EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5074EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5075 returns 404 not found error for a user without permissions to see the group5076 unauthenticated user5077 returns 401 unauthorized error5078 when epics feature is enabled5079 when user is not a member5080 returns 4035081 when user is guest5082 returns 200 status5083 with confidential epic5084 returns status 4035085 when child belongs to a different group hierarchy5086 when user is not a member of the child's group5087 returns 404 status5088 when user has guest access to child's group5089 returns 200 status5090 when epics feature is disabled5091 when user is developer5092 returns 403 status5093SubscriptionsController5094 GET #new5095 for unauthenticated subscription request5096 is expected to respond with numeric status code redirect5097 is expected to redirect to "/users/sign_up"5098 stores subscription URL for later5099 with authenticated user5100 is expected to render template layouts/minimal5101 is expected to render template new5102 when there are groups eligible for the subscription5103 assigns the eligible groups for the subscription5104 and request specify which group to use5105 assign requested group5106 request does not specify namespace5107 falls back to users namespace5108 when there are no eligible groups for the subscription5109 assigns eligible groups as an empty array if CustomerDot returns empty payload5110 assigns eligible groups as an empty array if user is not owner of any groups5111 GET #buy_minutes5112 with authenticated user5113 when the add-on plan cannot be found5114 is expected to respond with numeric status code not_found5115 when there are groups eligible for the addon5116 is expected to render template layouts/minimal5117 is expected to render template buy_minutes5118 assigns the group for the addon5119 GET #buy_storage5120 with authenticated user5121 when the add-on plan cannot be found5122 is expected to respond with numeric status code not_found5123 when there are groups eligible for the addon5124 is expected to render template layouts/minimal5125 is expected to render template buy_storage5126 assigns the group for the addon5127 GET #payment_form5128 with unauthorized user5129 is expected to respond with numeric status code redirect5130 is expected to redirect to "/users/sign_in"5131 with authorized user5132 is expected to respond with numeric status code ok5133 returns the data attribute of the client response in JSON format5134 GET #payment_method5135 with unauthorized user5136 is expected to respond with numeric status code redirect5137 is expected to redirect to "/users/sign_in"5138 with authorized user5139 is expected to respond with numeric status code ok5140 returns the data attribute of the client response in JSON format5141 GET #validate_payment_method5142 with unauthorized user5143 is expected to respond with numeric status code unauthorized5144 with authorized user5145 is expected to respond with numeric status code ok5146 is expected to be successful5147 POST #create5148 with unauthorized user5149 is expected to respond with numeric status code unauthorized5150 with authorized user5151 creates subscription idempotently5152 when setting up for a company5153 updates the setup_for_company attribute of the current user5154 creates a group based on the company5155 when using a promo code5156 creates subscription using promo code5157 when not setting up for a company5158 does not update the setup_for_company attribute of the current user5159 creates a group based on the user5160 when an error occurs creating a group5161 returns the errors in json format5162 when invalid name is passed5163 returns the errors in json format5164 tracks errors5165 on successful creation of a subscription5166 is expected to respond with numeric status code ok5167 returns the group edit location in JSON format5168 on unsuccessful creation of a subscription5169 is expected to respond with numeric status code ok5170 returns the error message in JSON format5171 when selecting an existing group5172 when the selected group is eligible for a new subscription5173 does not create a group5174 returns the selected group location in JSON format5175 when having an explicit redirect5176 is expected to respond with numeric status code ok5177 returns the provided redirect path as location5178 tracks the creation of the subscriptions5179 purchasing an addon5180 tracks creation with add-on success message5181 when the selected group is ineligible for a new subscription5182 does not create a group5183 returns a 404 not found5184 when selected group is a sub group5185 is expected to respond with numeric status code not_found5186 when selecting a non existing group5187 is expected to respond with numeric status code not_found5188 when selecting a group without owner role5189 is expected to respond with numeric status code not_found5190API::VulnerabilityExports5191 POST /security/projects/:id/vulnerability_exports5192 behaves like creating export for exportable5193 when the request does not fulfill the requirements5194 responds with bad_request5195 when the request fulfills the requirements5196 when the user is not authorized to take the action5197 responds with 403 forbidden5198 when the user is authorized to take the action5199 when the export creation succeeds5200 returns information about new vulnerability export5201 when the export creation fails5202 returns the error message5203 behaves like forbids access to vulnerability API endpoint in case of disabled features5204 when security dashboard feature is not available5205 responds with 403 Forbidden5206 permissions5207 is expected to be allowed for :admin5208 is expected to be allowed for :owner5209 is expected to be allowed for :maintainer5210 is expected to be allowed for :developer5211 is expected to be allowed for :auditor5212 is expected to be denied for :reporter5213 is expected to be denied for :guest5214 is expected to be denied for :anonymous5215 POST /security/groups/:id/vulnerability_exports5216 behaves like creating export for exportable5217 when the request does not fulfill the requirements5218 responds with bad_request5219 when the request fulfills the requirements5220 when the user is not authorized to take the action5221 responds with 403 forbidden5222 when the user is authorized to take the action5223 when the export creation succeeds5224 returns information about new vulnerability export5225 when the export creation fails5226 returns the error message5227 behaves like forbids access to vulnerability API endpoint in case of disabled features5228 when security dashboard feature is not available5229 responds with 403 Forbidden5230 POST /security/vulnerability_exports5231 behaves like creating export for exportable5232 when the request does not fulfill the requirements5233 responds with bad_request5234 when the request fulfills the requirements5235 when the user is not authorized to take the action5236 responds with 403 forbidden5237 when the user is authorized to take the action5238 when the export creation succeeds5239 returns information about new vulnerability export5240 when the export creation fails5241 returns the error message5242 behaves like forbids access to vulnerability API endpoint in case of disabled features5243 when security dashboard feature is not available5244 responds with 403 Forbidden5245 GET /security/vulnerability_exports/:id5246 with an authorized user with proper permissions5247 when export is finished5248 returns information about vulnerability export5249 does not return Poll-Interval header5250 when export is running5251 returns information about vulnerability export5252 returns Poll-Interval header with value set to 5 seconds5253 permissions5254 is expected to be denied for :admin5255 is expected to be denied for :owner5256 is expected to be denied for :maintainer5257 is expected to be denied for :developer5258 is expected to be denied for :auditor5259 is expected to be denied for :reporter5260 is expected to be denied for :guest5261 is expected to be denied for :anonymous5262 for export author5263 is expected to be allowed for #<User id:973 @user805>5264 GET /security/vulnerability_exports/:id/download5265 with an authorized user with proper permissions5266 when export is running5267 renders 4045268 when export is failed5269 renders 4045270 when export is finished5271 renders 200 with CSV file5272 permissions5273 is expected to be denied for :admin5274 is expected to be denied for :owner5275 is expected to be denied for :maintainer5276 is expected to be denied for :developer5277 is expected to be denied for :auditor5278 is expected to be denied for :reporter5279 is expected to be denied for :guest5280 is expected to be denied for :anonymous5281 for export author5282 is expected to be allowed for #<User id:973 @user805>5283Ldap::OmniauthCallbacksController5284 displays LDAP sync flash on first sign in5285 skips LDAP sync flash on subsequent sign ins5286 for sign up5287 does not enforce onboarding for sign up5288 multiple ldap providers configured5289 multiple ldap servers licensed feature available5290 allows sign in to first provider5291 allows sign in to other provider5292 multiple ldap servers licensed feature not available5293 allows sign in5294 does not allow sign in for other providers5295 access denied5296 logs a failure event5297Groups::Analytics::CycleAnalytics::ValueStreamsController5298 # order random5299 behaves like value stream controller actions5300 GET index5301 when user is a member5302 returns the persisted value streams5303 when user is not a member5304 renders 4045305 GET #show5306 succeeds5307 when value stream is not found5308 renders 4045309 behaves like authorization examples5310 when not licensed5311 renders 4045312 when user is not a member5313 renders 4045314 GET #new5315 succeeds5316 behaves like authorization examples5317 when not licensed5318 renders 4045319 when user is not a member5320 renders 4045321 GET #edit5322 succeeds5323 when value stream is not found5324 renders 404 not found5325 behaves like authorization examples5326 when not licensed5327 renders 4045328 when user is not a member5329 renders 4045330 PUT #update5331 succeeds5332 when validation error happens5333 returns 422 unprocessable entity5334 when value stream is not found5335 renders 404 not found5336 when updating value stream with in-memory stages5337 returns a successful 200 response5338 when deleting the stage by excluding it from the stages array5339 returns a successful 200 response5340 when updating setting5341 updates project ids filter array5342 when project ids filter parameter is empty5343 clears the filter5344 behaves like authorization examples5345 when not licensed5346 renders 4045347 when user is not a member5348 renders 4045349 POST #create5350 succeeds5351 when validation error happens5352 returns 422 unprocessable entity5353 when stage names are not unique5354 returns 422 unprocessable entity5355 when settings parameters are present5356 saves value stream setting5357 behaves like authorization examples5358 when not licensed5359 renders 4045360 when user is not a member5361 renders 4045362 DELETE #destroy5363 succeeds5364 when value stream is not found5365 renders 404 not found5366 behaves like authorization examples5367 when not licensed5368 renders 4045369 when user is not a member5370 renders 4045371API::GroupServiceAccounts5372 # order random5373 POST /groups/:id/service_accounts/:user_id/personal_access_tokens5374 when the feature is licensed5375 when user is an owner5376 when the group exists5377 creates personal access token for the user5378 when an error is thrown by the model5379 returns the error5380 when target user does not belong to group5381 returns error5382 when target user is not service accounts5383 returns bad request error5384 when group does not exist5385 returns error5386 when user is not an owner5387 returns error5388 without authentication5389 returns error5390 when feature is not licensed5391 returns error5392 POST /personal_access_tokens/:token_id/rotate5393 when the feature is licensed5394 when user is an owner5395 when the group exists5396 revokes the token5397 when service raises an error5398 returns error message5399 when token does not exist5400 returns not found5401 when token does not belong to service account user5402 returns bad request5403 when target user does not belong to group5404 returns error5405 when target user is not service accounts5406 returns bad request error5407 when group does not exist5408 returns error5409 when user is not an owner5410 throws error5411 when the feature is not licensed5412 returns error5413 POST /groups/:id/service_accounts5414 when the feature is licensed5415 when current user is an owner5416 when the group exists5417 creates user with user type service_account_user5418 returns bad request when service returns bad request5419 when the group does not exist5420 returns error5421 when user is not an owner5422 returns error5423 without authentication5424 returns error5425 when the feature is not licensed5426 returns error5427Projects::Security::ConfigurationController5428 GET #show5429 user_role: :guest, security_dashboard_enabled: false, status: :forbidden, selector: nil5430 responds with the correct status5431 when the "Security and Compliance" feature is disabled5432 is expected to respond with numeric status code not_found5433 user_role: :guest, security_dashboard_enabled: true, status: :forbidden, selector: nil5434 responds with the correct status5435 when the "Security and Compliance" feature is disabled5436 is expected to respond with numeric status code not_found5437 user_role: :developer, security_dashboard_enabled: false, status: :ok, selector: "#js-security-configuration"5438 responds with the correct status5439 when the "Security and Compliance" feature is disabled5440 is expected to respond with numeric status code not_found5441 user_role: :developer, security_dashboard_enabled: true, status: :ok, selector: "#js-security-configuration"5442 responds with the correct status5443 when the "Security and Compliance" feature is disabled5444 is expected to respond with numeric status code not_found5445 with developer and security dashboard feature enabled5446 responds in json format when requested5447 renders data on the project's security configuration5448 when the latest pipeline used Auto DevOps5449 reports that Auto DevOps is enabled5450 POST #auto_fix5451 with feature enabled5452 with sufficient permissions5453 with setup feature param5454 processes request and updates setting5455 without setup feature param5456 processes request and updates setting5457 without processable feature5458 does not pass validation5459 without sufficient permissions5460 is expected to respond with numeric status code not_found5461 with feature disabled5462 is expected to respond with numeric status code not_found5463API::MergeRequestApprovalSettings5464 GET /groups/:id/merge_request_approval_settings5465 when the user is authorised5466 matches the response schema5467 allow_author_approval values5468 behaves like resolvable5469 instance_prevents_approval: true, group_allows_approval: true, value: false, locked: true, inherited_from: "instance"5470 has the correct value5471 has the correct locked status5472 has the correct inheritance5473 instance_prevents_approval: true, group_allows_approval: false, value: false, locked: true, inherited_from: "instance"5474 has the correct value5475 has the correct locked status5476 has the correct inheritance5477 instance_prevents_approval: false, group_allows_approval: true, value: true, locked: false, inherited_from: nil5478 has the correct value5479 has the correct locked status5480 has the correct inheritance5481 instance_prevents_approval: false, group_allows_approval: false, value: false, locked: false, inherited_from: nil5482 has the correct value5483 has the correct locked status5484 has the correct inheritance5485 allow_committer_approval values5486 behaves like resolvable5487 instance_prevents_approval: true, group_allows_approval: true, value: false, locked: true, inherited_from: "instance"5488 has the correct value5489 has the correct locked status5490 has the correct inheritance5491 instance_prevents_approval: true, group_allows_approval: false, value: false, locked: true, inherited_from: "instance"5492 has the correct value5493 has the correct locked status5494 has the correct inheritance5495 instance_prevents_approval: false, group_allows_approval: true, value: true, locked: false, inherited_from: nil5496 has the correct value5497 has the correct locked status5498 has the correct inheritance5499 instance_prevents_approval: false, group_allows_approval: false, value: false, locked: false, inherited_from: nil5500 has the correct value5501 has the correct locked status5502 has the correct inheritance5503 allow_overrides_to_approver_list_per_merge_request values5504 behaves like resolvable5505 instance_prevents_approval: true, group_allows_approval: true, value: false, locked: true, inherited_from: "instance"5506 has the correct value5507 has the correct locked status5508 has the correct inheritance5509 instance_prevents_approval: true, group_allows_approval: false, value: false, locked: true, inherited_from: "instance"5510 has the correct value5511 has the correct locked status5512 has the correct inheritance5513 instance_prevents_approval: false, group_allows_approval: true, value: true, locked: false, inherited_from: nil5514 has the correct value5515 has the correct locked status5516 has the correct inheritance5517 instance_prevents_approval: false, group_allows_approval: false, value: false, locked: false, inherited_from: nil5518 has the correct value5519 has the correct locked status5520 has the correct inheritance5521 when the group does not have existing settings5522 returns in-memory default settings5523 when the user is not authorised5524 returns 403 status5525 PUT /groups/:id/merge_request_approval_setting5526 when the user is authorised5527 returns 200 status with correct response body5528 matches the response schema5529 when update fails5530 returns 400 status5531 when invalid params5532 returns 400 status with error message5533 when the user is not authorised5534 returns 403 status5535 GET /projects/:id/merge_request_approval_settings5536 matches the response schema5537 when the project does not have existing settings5538 returns in-memory default settings5539 PUT /projects/:id/merge_request_approval_settings5540 matches the response schema and updates the params5541 when enabling selective_code_owner_removals and retain_approvals_on_push5542 updates the params5543 when enabling selective_code_owner_removals with retain_approvals_on_push disabled5544 returns error response and does not update the params5545Query.[group](fullPath).doraPerformanceScoreCounts5546 # order random5547 when there is some error in the service5548 returns an error5549 when there is data for the target month5550 working query5551 behaves like a working graphql query5552 returns a successful response5553 when no filters are applied5554 returns the correct data5555 when filters are applied5556 returns the correct data5557 returns a count of projects with no DORA scores in given time frame5558 when no metric count fields are requested5559 does not fire off any data queries5560 behaves like a working graphql query5561 returns a successful response5562 when user does not have access5563 returns nil5564 behaves like a working graphql query5565 returns a successful response5566 when there is no data for the target month5567 working query5568 returns all empty data5569 returns a count of projects with no DORA scores in given time frame5570 behaves like a working graphql query5571 returns a successful response5572 when DORA analytics feature is not available5573 returns nil5574 behaves like a working graphql query5575 returns a successful response5576 when there is partial data for the target month5577 working query5578 returns partial data5579 returns a count of projects with no DORA scores in given time frame5580 behaves like a working graphql query5581 returns a successful response5582Update an external audit event destination5583 when feature is licensed5584 when current user is a group owner but destination belongs to another group5585 behaves like a mutation on an unauthorized resource5586 behaves like a mutation that returns top-level errors5587 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"5588 behaves like a mutation that does not update a destination5589 does not destroy the destination5590 does not audit the update5591 when current user is a group owner of a different group5592 behaves like a mutation on an unauthorized resource5593 behaves like a mutation that returns top-level errors5594 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"5595 behaves like a mutation that does not update a destination5596 does not destroy the destination5597 does not audit the update5598 when current user is a group owner5599 updates the destination_url5600 updates the destination name5601 behaves like audits update to external streaming destination5602 when both destination url and destination name are updated5603 audits the update5604 when only destination url is updated5605 audits the update5606 when only destination name is updated5607 audits the update5608 when there is no change in values5609 behaves like a mutation that does not update a destination5610 does not destroy the destination5611 does not audit the update5612 when current user is a group maintainer5613 behaves like a mutation that does not update a destination5614 does not destroy the destination5615 does not audit the update5616 when current user is a group developer5617 behaves like a mutation that does not update a destination5618 does not destroy the destination5619 does not audit the update5620 when current user is a group guest5621 behaves like a mutation that does not update a destination5622 does not destroy the destination5623 does not audit the update5624 when feature is unlicensed5625 does not destroy the destination5626 behaves like a mutation on an unauthorized resource5627 behaves like a mutation that returns top-level errors5628 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"5629Querying an Iteration5630 when the user has access to the iteration5631 is expected to include {"title" => nil}5632 behaves like a working graphql query5633 returns a successful response5634 when `report` field is included5635 when fullPath argument is not provided5636 current_user: group_member, expected_scope_count: 45637 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 4}]}5638 current_user: project1_member, expected_scope_count: 45639 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 4}]}5640 when fullPath argument is provided5641 when current user has authorized access to one or more projects under the namespace5642 scope: group, current_user: group_member, expected_scope_count: 45643 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 4}]}5644 scope: group, current_user: project1_member, expected_scope_count: 45645 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 4}]}5646 scope: project1, current_user: group_member, expected_scope_count: 25647 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 2}]}5648 scope: project1, current_user: project1_member, expected_scope_count: 25649 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 2}]}5650 scope: project2, current_user: project2_member, expected_scope_count: 15651 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 1}]}5652 scope: project2, current_user: group_member, expected_scope_count: 15653 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 1}]}5654 scope: subgroup, current_user: group_member, expected_scope_count: 15655 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 1}]}5656 scope: subgroup, current_user: subgroup_member, expected_scope_count: 15657 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 1}]}5658 when current user cannot access the given namespace5659 scope: other_group, current_user: group_member5660 raises an exception5661 scope: project1, current_user: subgroup_member5662 raises an exception5663 scope: project1, current_user: project2_member5664 raises an exception5665 scope: project2, current_user: project1_member5666 raises an exception5667 scope: subgroup, current_user: project1_member5668 raises an exception5669 when the user does not have access to the iteration5670 is expected to be nil5671 behaves like a working graphql query5672 returns a successful response5673 when ID argument is missing5674 raises an exception5675 scoped path5676 inside a project context5677 group-owned iteration5678 behaves like scoped path5679 is expected to include {"scopedPath" => "/groups/project-271/-/iterations/1", "scopedUrl" => /\/groups\/project-271\/-\/iterations\/1$/, "webPath" => "/groups/group352/-/iterations/1", "webUrl" => /\/groups\/group352\/-\/iterations\/1$/}5680 when given a raw model id (backward compatibility)5681 is expected to include {"scopedPath" => "/groups/project-271/-/iterations/1", "scopedUrl" => /\/groups\/project-271\/-\/iterations\/1$/, "webPath" => "/groups/group352/-/iterations/1", "webUrl" => /\/groups\/group352\/-\/iterations\/1$/}5682 inside a group context5683 group-owned iteration5684 behaves like scoped path5685 is expected to include {"scopedPath" => "/groups/group352/-/iterations/1", "scopedUrl" => /\/groups\/group352\/-\/iterations\/1$/, "webPath" => "/groups/group352/-/iterations/1", "webUrl" => /\/groups\/group352\/-\/iterations\/1$/}5686 when given a raw model id (backward compatibility)5687 is expected to include {"scopedPath" => "/groups/group352/-/iterations/1", "scopedUrl" => /\/groups\/group352\/-\/iterations\/1$/, "webPath" => "/groups/group352/-/iterations/1", "webUrl" => /\/groups\/group352\/-\/iterations\/1$/}5688 group-owned iteration5689 behaves like scoped path5690 is expected to include {"scopedPath" => "/groups/group352/group358/-/iterations/1", "scopedUrl" => /\/groups\/group352\/group358\/-\/iterations\/1$/, "webPath" => "/groups/group352/-/iterations/1", "webUrl" => /\/groups\/group352\/-\/iterations\/1$/}5691 when given a raw model id (backward compatibility)5692 is expected to include {"scopedPath" => "/groups/group352/group359/-/iterations/1", "scopedUrl" => /\/groups\/group352\/group359\/-\/iterations\/1$/, "webPath" => "/groups/group352/-/iterations/1", "webUrl" => /\/groups\/group352\/-\/iterations\/1$/}5693 root context5694 group-owned iteration5695 behaves like scoped path5696 is expected to include {"scopedPath" => "/groups/group352/-/iterations/1", "scopedUrl" => /\/groups\/group352\/-\/iterations\/1$/, "webPath" => "/groups/group352/-/iterations/1", "webUrl" => /\/groups\/group352\/-\/iterations\/1$/}5697 when given a raw model id (backward compatibility)5698 is expected to include {"scopedPath" => "/groups/group352/-/iterations/1", "scopedUrl" => /\/groups\/group352\/-\/iterations\/1$/, "webPath" => "/groups/group352/-/iterations/1", "webUrl" => /\/groups\/group352\/-\/iterations\/1$/}5699 project-owned iteration5700 behaves like scoped path5701 is expected to include {"scopedPath" => "/groups/group352/-/iterations/1", "scopedUrl" => /\/groups\/group352\/-\/iterations\/1$/, "webPath" => "/groups/group352/-/iterations/1", "webUrl" => /\/groups\/group352\/-\/iterations\/1$/}5702 when given a raw model id (backward compatibility)5703 is expected to include {"scopedPath" => "/groups/group352/-/iterations/1", "scopedUrl" => /\/groups\/group352\/-\/iterations\/1$/, "webPath" => "/groups/group352/-/iterations/1", "webUrl" => /\/groups\/group352\/-\/iterations\/1$/}5704RegistrationsController5705 # order random5706 POST #create5707 behaves like creates a user with ArkoseLabs risk band on signup request5708 when arkose_labs_token verification succeeds5709 records the user's data from Arkose Labs5710 behaves like creates the user5711 creates the user5712 when verification fails5713 does not record the user's data from Arkose Labs5714 behaves like renders new action with an alert flash5715 renders new action with an alert flash5716 when user is not persisted5717 does not record the user's data from Arkose Labs5718 when the feature flag is disabled5719 behaves like creates the user5720 creates the user5721 behaves like skips verification and data recording5722 skips verification and data recording5723 when feature is disabled5724 behaves like creates the user5725 creates the user5726 behaves like skips verification and data recording5727 skips verification and data recording5728 when reCAPTCHA is enabled5729 behaves like creates the user5730 creates the user5731 when reCAPTCHA verification fails5732 does not create the user5733 when arkose_labs_token param is not present5734 behaves like renders new action with an alert flash5735 renders new action with an alert flash5736 behaves like skips verification and data recording5737 skips verification and data recording5738 identity verification5739 when identity verification is turned off5740 sending confirmation instructions5741 sends Devise confirmation instructions5742 does not send custom confirmation instructions5743 sets the confirmation_sent_at time5744 sets the confirmation_token to the unencrypted Devise token5745 setting a session variable5746 does not set the `verification_user_id` session variable5747 redirection5748 redirects to the `users_almost_there_path`5749 when identity verification is turned on5750 sending confirmation instructions5751 does not send Devise confirmation instructions5752 sends custom confirmation instructions5753 sets the confirmation_sent_at time5754 sets the confirmation_token to the encrypted custom token5755 preventing token collisions5756 does not raise an error when an identical token exists in the database5757 setting a session variable5758 sets the `verification_user_id` session variable5759 handling sticking5760 sticks or unsticks the request5761 redirection5762 redirects to the `identity_verification_path`5763 when user is not persisted5764 does not try to send custom confirmation instructions5765 with onboarding progress5766 when on SaaS5767 sets onboarding5768 when not on SaaS5769 does not set onboarding5770SmartcardController5771 #auth5772 with smartcard_auth enabled5773 redirects to extract certificate5774 with provider param5775 forwards the provider param5776 with smartcard_auth disabled5777 renders 4045778 #extract_certificate5779 with smartcard_auth enabled5780 redirects to verify certificate5781 with provider param5782 forwards the provider param5783 missing NGINX client certificate header5784 renders unauthorized5785 request from different host / port5786 renders 4045787 with smartcard_auth disabled5788 renders 4045789 #verify_certificate5790 Smartcard::Certificate5791 behaves like a client certificate authentication5792 with smartcard_auth enabled5793 allows sign in5794 redirects to root5795 logs audit event5796 stores active session5797 user does not exist5798 signup allowed5799 creates user5800 signup disabled5801 renders 4015802 missing client certificate param5803 renders unauthorized5804 with smartcard_auth disabled5805 renders 4045806 user already exists5807 finds existing user5808 certificate header formats from NGINX5809 escaped format5810 behaves like valid certificate header5811 authenticates user5812 deprecated format5813 behaves like valid certificate header5814 authenticates user5815 Smartcard::LdapCertificate5816 sets correct parameters for LDAP search5817 behaves like a client certificate authentication5818 with smartcard_auth enabled5819 allows sign in5820 redirects to root5821 logs audit event5822 stores active session5823 user does not exist5824 signup allowed5825 creates user5826 signup disabled5827 renders 4015828 missing client certificate param5829 renders unauthorized5830 with smartcard_auth disabled5831 renders 4045832 user already exists5833 finds existing user5834 user has a different identity5835 doesn't login a user5836 doesn't create a new user entry either5837UserAddOnAssignmentCreate5838 # order random5839 when user_id does not exists5840 behaves like empty response5841 returns nil5842 when user is member of shared group5843 behaves like success response5844 returns expected response5845 when the user is already assigned5846 behaves like success response5847 returns expected response5848 when user belongs to subgroup5849 behaves like success response5850 returns expected response5851 when user is member of shared project5852 behaves like success response5853 returns expected response5854 when user is guest5855 behaves like success response5856 returns expected response5857 when user does not belong to namespace5858 behaves like error response5859 returns expected errors5860 when current_user is admin5861 behaves like success response5862 returns expected response5863 when the query requests add on assignments that belong to a different namespace5864 does not return the unauthorised assignments5865 returns authorised assignments5866 when there are multiple add-on assignments for the user5867 avoids N+1 database queries5868 when user belongs to project5869 behaves like success response5870 returns expected response5871 behaves like success response5872 returns expected response5873 when feature flag hamilton_seat_management is disabled5874 behaves like empty response5875 returns nil5876 when current_user is not owner or admin5877 behaves like empty response5878 returns nil5879 when ad_on_purchase has expired5880 behaves like empty response5881 returns nil5882 when there are no free seats available5883 behaves like error response5884 returns expected errors5885 when add_on_purchase_id does not exists5886 behaves like empty response5887 returns nil5888Groups::Analytics::DashboardsController5889 # order random5890 GET value_streams_dashboard5891 when user is not logged in5892 redirects the user to the login page5893 when user is not authorized5894 behaves like forbidden response5895 returns forbidden response5896 when user is logged in5897 when the license is not available5898 behaves like forbidden response5899 returns forbidden response5900 when the license is available5901 succeeds5902 can accept a `query` params5903 will return projects in a subgroup5904 passes pointer_project if it has been configured5905 does not pass pointer_project if the configured project is missing5906 does not pass pointer_project if it was not configured5907 tracks page view on usage ping5908 when project_id outside of the group hierarchy was set5909 does not pass the project pointer5910 GET index5911 when user is not logged in5912 redirects the user to the login page5913 when user is logged in5914 when the license is not available5915 behaves like forbidden response5916 returns forbidden response5917 when the license is available5918 succeeds5919 when group_analytics_dashboards is disabled5920 redirects to value stream dashboards5921Groups::Analytics::DashboardsController5922 # order random5923 behaves like tracking unique visits5924 tracks unique visit if the format is HTML5925 tracks unique visit if DNT is not enabled5926 does not track unique visit if DNT is enabled5927 does not track unique visit if the format is JSON5928 behaves like Snowplow event tracking with RedisHLL context5929 behaves like Snowplow event tracking5930 is emitted5931API::ResourceLabelEvents5932 when eventable is an Epic5933 behaves like resource_label_events API5934 GET /groups/:id/epics/:noteable_id/resource_label_events5935 with local label reference5936 returns an array of resource label events5937 returns a 404 error when eventable id not found5938EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5939EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5940 returns 404 when not authorized5941 with cross-project label reference5942 returns cross references accessible by user5943 does not return cross references not accessible by user5944 GET /groups/:id/epics/:noteable_id/resource_label_events/:event_id5945 with local label reference5946 returns a resource label event by id5947EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5948EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5949 returns 404 when not authorized5950 returns a 404 error if resource label event not found5951 with cross-project label reference5952 returns a 404 error if cross-reference project is not accessible5953 pagination5954 returns the second page5955Projects::MergeRequestsController5956 GET #edit5957 when the project requires code owner approval5958 does not cause an extra queries when code owner rules are present5959 does not cause extra queries when multiple code owner rules are present5960 GET #index5961 avoids N+1 (PENDING: Temporarily skipped with xit)5962 security_reports5963 when the user can not read project security resources5964 responds with 4045965 when the user can read project security resources5966 when the pipeline is pending5967 returns 204 HTTP status along with the `Poll-Interval` header5968 when the pipeline is not pending5969 when the given type is invalid5970 responds with 4005971 when the given type is valid5972 when comparison is being processed5973 returns 204 HTTP status along with the `Poll-Interval` header5974 when comparison is done5975 when the comparison is errored5976 responds with 4005977 when the comparision is succeeded5978 responds with 200 along with the report payload5979Mutation.vulnerabilitiesDismiss5980 # order random5981 when the user does not have access5982 behaves like a mutation that returns a top-level access error5983 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"5984 when the user has access5985 when security_dashboard is disabled5986 behaves like a mutation that returns top-level errors5987 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"5988 when security_dashboard is enabled5989 dismisses the vulnerabilities5990 without a comment5991 dismisses the vulnerabilities5992 without a dismissal reason5993 dismisses the vulnerabilities5994 when too many vulnerabilities are passed5995 behaves like a mutation that returns top-level errors5996 is expected to contain exactly /Maximum vulnerability_ids exceeded \(1\)/5997 when vulnerability_id is nil5998 behaves like a mutation that returns top-level errors5999 is expected to contain exactly /Expected value to not be null/6000 when vulnerability_ids are empty6001 behaves like a mutation that returns top-level errors6002 is expected to contain exactly "At least 1 value must be provided for vulnerability_ids"6003Mutations::Epics::Update6004 when the user does not have permission6005 does not update the epic6006 behaves like a mutation that returns a top-level access error6007 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6008 when the user has permission6009 when epics are disabled6010 behaves like a mutation that returns top-level errors6011 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6012 when epics are enabled6013 updates the epic6014 when closing the epic6015 closes open epic6016 when reopening the epic6017 allows epic to be reopend6018 when changing labels of the epic6019 by ID6020 adds and removes labels correctly6021 when labels are added6022 adds labels correctly and keeps the title ordering6023 by title6024 adds and removes labels correctly6025 when labels are added6026 adds labels correctly and keeps the title ordering6027 when there are ActiveRecord validation errors6028 does not update the epic6029 behaves like a mutation that returns errors in the response6030 is expected to contain exactly "Title can't be blank"6031 when the list of attributes is empty6032 behaves like a mutation that returns top-level errors6033 is expected to contain exactly "The list of epic attributes is empty"6034Reposition and move epic between board lists6035 when epics are available6036 when user does not have permissions to admin the board6037 raises resource not available error6038 when user has permissions to admin the board6039 when required move params are missing6040 raises an error6041 when positionInList param is invalid6042 when move_before_id is also given6043 raises an error6044 when move_after_id is also given6045 raises an error6046 when position_in_list is invalid6047 raises an error6048 moving an epic to another list6049 moves the epic to another list6050 repositioning an epic6051 when both move_before_id and move_after_id params are present6052 repositions the epic6053 when only move_before_id param is present6054 repositions the epic6055 when only move_after_id param is present6056 repositions the epic6057 when position_in_list param is present6058 when moving an epic to the beginning of the list6059 repositions the epic6060 when moving an epic to the bottom of the list6061 repositions the epic6062Dashboard::ProjectsController6063 #removed6064 when licensed6065 for admin users6066 returns success6067 paginates the records6068 returns projects marked for deletion6069 for non-admin users6070 returns success6071 paginates the records6072 for should_check_namespace_plan6073 should_check_namespace_plan: false, removed_projects_count: 36074 accounts total removable projects6075 should_check_namespace_plan: true, removed_projects_count: 26076 accounts total removable projects6077 when not licensed6078 behaves like returns not found6079 is expected to respond with numeric status code not_found6080API::ResourceIterationEvents6081 when eventable is an Issue6082 behaves like resource_iteration_events API6083 GET /projects/:id/issues/:noteable_id/resource_iteration_events6084 returns an array of resource iteration events6085 returns a 404 error when eventable id not found6086 returns 404 when not authorized6087 GET /projects/:id/issues/:noteable_id/resource_iteration_events/:event_id6088 returns a resource iteration event by id6089 returns 404 when not authorized6090 returns a 404 error if resource iteration event not found6091 pagination6092 returns the second page6093Getting children of an epic6094 # order random6095 when epics are disabled6096 does not find the epic children6097 when epics are enabled6098 returns children from authorized groups6099 when user has access to all children groups6100 returns all children6101 executes limited number of N+1 queries6102 when include_ancestor_groups is `false`6103 excludes children from ancestor groups6104 when include_descendant_groups is `false`6105 excludes children from descendant groups6106 when include_descendant_groups and include_ancestor_groups are `false`6107 excludes children from descendant and ancestor groups6108getting the project compliance standards adherence for a group6109 # order random6110 when the user is unauthorized6111 when not part of the group6112 behaves like returns nil6113 is expected to be nil6114 with maintainer access6115 behaves like returns nil6116 is expected to be nil6117 when the user is authorized6118 behaves like a working graphql query6119 returns a successful response6120 without any filters6121 finds all the project compliance standards adherence for the group and its subgroups6122 with filters6123 when given an array of project IDs6124 when projects have compliance standards adherence6125 finds the filtered project compliance standards adherence6126 with a non existent project id6127 returns an empty array6128 with empty project id6129 finds all the project compliance standards adherence for the group and its subgroups6130 when project does not have an adherence record associated with it6131 returns an empty array6132 when given a check_name6133 when the input is valid6134 finds the filtered project compliance standards adherence6135 when the input is not valid6136 finds the filtered project compliance standards adherence6137 when given a standard6138 when the input is valid6139 finds the filtered project compliance standards adherence6140 when the input is not valid6141 finds the filtered project compliance standards adherence6142Updating the dependency proxy packages settings6143 # order random6144 post graphql mutation6145 role: :anonymous, result: :denied, existing_settings: true6146 with existing settings6147 returns the correct result6148 with a non existing project path6149 returns the resource access error6150 role: :anonymous, result: :denied, existing_settings: false6151 with non existing settings6152 returns the correct result6153 with a non existing project path6154 returns the resource access error6155 role: :developer, result: :denied, existing_settings: true6156 with existing settings6157 returns the correct result6158 with a non existing project path6159 returns the resource access error6160 role: :developer, result: :denied, existing_settings: false6161 with non existing settings6162 returns the correct result6163 with a non existing project path6164 returns the resource access error6165 role: :maintainer, result: :success, existing_settings: true6166 with existing settings6167 returns the correct result6168 with a non existing project path6169 returns the resource access error6170 role: :maintainer, result: :success, existing_settings: false6171 with non existing settings6172 returns the correct result6173 with a non existing project path6174 returns the resource access error6175 without permission6176 returns no response6177 with a maintainer6178 with config packages disabled6179 behaves like returning a graphql error6180 does not create any setting6181 with config dependency_proxy disabled6182 behaves like returning a graphql error6183 does not create any setting6184 with packages feature disabled in the project6185 behaves like returning a graphql error6186 does not create any setting6187 with licensed dependency proxy for packages disabled6188 behaves like returning a graphql error6189 does not create any setting6190 with packages_dependency_proxy_maven disabled6191 behaves like returning a graphql error6192 does not create any setting6193Creating a DAST Profile6194 behaves like an on-demand scan mutation when user cannot run an on-demand scan6195 when a user does not have access to the project6196 behaves like a mutation that returns a top-level access error6197 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6198 when a user does not have access to run a dast scan on the project6199 behaves like a mutation that returns a top-level access error6200 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6201 behaves like an on-demand scan mutation when user can run an on-demand scan6202 returns an empty errors array6203 returns dastProfile.id6204 returns dastProfile.editPath6205 returns a non-empty pipelineUrl6206 when on demand scan licensed feature is not available6207 behaves like a mutation that returns a top-level access error6208 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6209 when dastProfileSchedule is present6210 creates a Dast::ProfileSchedule6211Setting Project Continuous Vulnerability Scanning6212 # order random6213 when the user does not have permission6214 does not enable cvs6215 behaves like a mutation that returns a top-level access error6216 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6217 when the user has permission6218 and feature is enabled6219 value_before: true, enable: false, value_after: false6220 updates the project setting and returns the new value6221 value_before: true, enable: true, value_after: true6222 updates the project setting and returns the new value6223 value_before: false, enable: true, value_after: true6224 updates the project setting and returns the new value6225 value_before: false, enable: false, value_after: false6226 updates the project setting and returns the new value6227 and feature is disabled6228 does not enable cvs6229 behaves like a mutation that returns a top-level access error6230 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6231Projects::Security::ApiFuzzingConfigurationController6232 when the "Security and Compliance" feature is disabled6233 is expected to respond with numeric status code not_found6234 GET #show6235 behaves like SecurityDashboardsPermissions6236 access for all actions6237 when security dashboard feature is disabled6238 returns 4046239 when security dashboard feature is enabled6240 when user has guest access6241 denies access6242 when user has developer access6243 grants access6244 with authorized user6245 renders the show template6246 renders the side navigation with the correct submenu set as active6247 with unauthorized user6248 returns a 4036249Query.ciCatalogResource6250 # order random6251 latestVersion6252 when the resource has versions6253 returns the resource with the latest version data6254 when the resource does not have a version6255 returns nil6256 when the CI Namespace Catalog feature is not available6257 returns nil6258 openMergeRequestsCount6259 when merge_requests_count is requested6260 returns the correct count6261 when open merge_requests_count is zero6262 returns zero6263 versions6264 when the resource has versions6265 returns the resource with the versions data6266 when the resource does not have a version6267 returns versions as an empty array6268 when the CI Namespace Catalog feature is available6269 when the current user has permission to read the namespace catalog6270 returns the resource with the expected data6271 when the current user does not have permission to read the namespace catalog6272 returns nil6273 rootNamespace6274 returns the correct root namespace data6275 openIssuesCount6276 when open_issue_count is requested6277 returns the correct count6278 when open_issue_count is zero6279 returns zero6280Projects::Analytics::IssuesAnalyticsController6281 behaves like issue analytics controller6282 GET #show6283 when issue analytics is not available for license6284 renders 4046285 when user does not have permission to read the resource6286 renders 4046287 when issue analytics is available for license6288 as HTML6289 renders show template6290 as JSON6291 renders new chart data as JSON6292 when new issue analytics data format is disabled6293 renders chart data as JSON6294 when user cannot view issues6295 does not count issues which user cannot view6296 GET #show6297 behaves like tracking unique visits6298 tracks unique visit if the format is HTML6299 tracks unique visit if DNT is not enabled6300 does not track unique visit if DNT is enabled6301 does not track unique visit if the format is JSON6302 behaves like Snowplow event tracking with RedisHLL context6303 behaves like Snowplow event tracking6304 is emitted6305Query.group(fullPath).projects.dastProfiles.dastProfileSchedule6306 when a user has access to dast_profile_schedule6307 returns a dast_profile_schedule6308 behaves like query dastProfiles.dastProfileSchedule shared examples6309 avoids N+1 queries6310Projects::Analytics::MergeRequestAnalyticsController6311 GET #show6312 is expected to be successful6313 behaves like tracking unique visits6314 tracks unique visit if the format is HTML6315 tracks unique visit if DNT is not enabled6316 does not track unique visit if DNT is enabled6317 does not track unique visit if the format is JSON6318 behaves like Snowplow event tracking with RedisHLL context6319 behaves like Snowplow event tracking6320 is emitted6321 when license is missing6322 is expected to respond with numeric status code not_found6323 when the user has no access to the group6324 is expected to respond with numeric status code not_found6325 when requesting HTML6326 renders the side navigation with the correct submenu set as active6327Admin::Geo::SettingsController6328 #show6329 without a valid license6330 does not redirects to the 403 page6331 does show license alert6332 with a valid license6333 does not show license alert6334 #update6335 with a valid license6336 sets the geo node property in ApplicationSetting6337 redirects the update to the referer6338getting Incident Management on-call schedules6339 # order random6340 with project permissions6341 with unavailable feature6342 is expected to be empty6343 behaves like a working graphql query6344 returns a successful response6345 without on-call schedules6346 is expected to be empty6347 behaves like a working graphql query6348 returns a successful response6349 with on-call schedules6350 returns the correct properties of the on-call schedule6351 behaves like a working graphql query6352 returns a successful response6353 with an array of iids given6354 is expected to eq 16355 is expected to eq "1"6356 behaves like a working graphql query6357 returns a successful response6358 without project permissions6359 is expected to be nil6360 behaves like a working graphql query6361 returns a successful response6362GroupsController6363 external authorization6364 with external authorization service enabled6365 PUT #update6366 no license6367 does not update the file_template_project_id successfully6368 with license6369 updates the file_template_project_id successfully6370 with insights feature6371 updates insight project_id successfully6372 removes insight successfully6373 with sso enforcement enabled6374 without SAML session6375 prevents access to group resources6376 with active SAML session6377 allows access to group resources6378 "group information content" preference behaviour6379 GET #show6380 with user having proper permissions and feature enabled6381 with group view set as default6382 renders the expected template6383 with group view set to security dashboard6384 in HTML format6385 redirects to the security dashboard6386 in Atom format6387 does not redirect to the security dashboard6388 GET #details6389 with user having proper permissions and feature enabled6390 with group view set to security dashboard6391 does not redirect to the security dashboard6392API::Analytics::CodeReviewAnalytics6393 GET code_review6394 is successful6395 with merge requests present6396 returns list of open MRs with pagination headers6397 with label & milestone filters6398 applies filter6399 with negation filters6400 applies filter6401 with any label filter present6402 applies filter6403 when user has no authorization6404 is not authorized6405 when feature is not available in plan6406 is not_authorized6407 when project_id is not specified6408 is not found6409Rack Attack EE throttles6410 requests to prometheus alert notify endpoint with oauth token6411 behaves like incident management rate limiting6412 limits set6413 when the throttle is enabled6414 rejects requests over the rate limit6415 allows requests after throttling and then waiting for the next period6416 when the throttle is disabled6417 allows requests over the rate limit6418 requests to generic alert notify endpoint with oauth token6419 behaves like incident management rate limiting6420 limits set6421 when the throttle is enabled6422 rejects requests over the rate limit6423 allows requests after throttling and then waiting for the next period6424 when the throttle is disabled6425 allows requests over the rate limit6426 requests to AlertManagement::HttpIntegration notify endpoint with oauth token6427 behaves like incident management rate limiting6428 limits set6429 when the throttle is enabled6430 rejects requests over the rate limit6431 allows requests after throttling and then waiting for the next period6432 when the throttle is disabled6433 allows requests over the rate limit6434Mutations::Boards::Create6435 behaves like boards create mutation6436 when the user does not have permission6437 does not create the board6438 behaves like a mutation that returns a top-level access error6439 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6440 when the user has permission6441 when the parent (project_path or group_path) param is given6442 when everything is ok6443 creates the board6444 returns the created board6445 when hide_backlog_list parameter is true6446 returns the board with correct hide_backlog_list field6447 when hide_closed_list parameter is true6448 returns the board with correct hide_closed_list field6449 when the Boards::CreateService returns an error response6450 does not create a board6451 returns an error6452 when neither project_path nor group_path param is given6453 does not create the board6454 behaves like a mutation that returns top-level errors6455 is expected to contain exactly "Exactly one of group_path or project_path arguments is required"6456 when the user has permission to create a board6457 sets cadence_id on creation6458getting unprotect access levels for a branch protection6459 # order random6460 behaves like a GraphQL query for access levels6461 when request AccessLevel type objects as a guest user6462 is expected not to be present6463 behaves like a working graphql query6464 returns a successful response6465 when request AccessLevel type objects as a maintainer6466 query6467 avoids N+1 queries6468 response6469 returns all the access level attributes6470 behaves like a working graphql query6471 returns a successful response6472 when request AccessLevel type objects as a maintainer6473 query6474 avoids N+1 queries6475 response6476 returns all the access level attributes6477 behaves like a working graphql query6478 returns a successful response6479Bulk update issues6480 # order random6481 when user can update all issues6482 updates all issues6483 when setting arguments to null or none6484 updates all issues6485 when scoping to a parent group6486 when group_bulk_edit feature is available6487 updates all issues6488 when current user cannot read the specified group6489 returns a resource not found error6490 when group_bulk_edit feature is not available6491 returns a resource not available message6492buildForecast6493 # order random6494 when forecast context does not exist6495 returns an error6496 when forecast is too weak6497 returns no values6498 when forecast has invalid input6499 returns an error6500 when forecast is good enough6501 returns forecast values6502Set project compliance framework6503 #resolve6504 when feature is not available6505 behaves like a mutation that returns top-level errors6506 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6507 when feature is available6508 behaves like a working GraphQL mutation6509 with a personal access token6510 behaves like prevents access to the mutation6511 does not resolve the mutation6512 behaves like allows access to the mutation6513 behaves like a working graphql query that returns data6514 contains data6515 behaves like a working graphql query6516 returns a successful response6517 with an OAuth token6518 behaves like prevents access to the mutation6519 does not resolve the mutation6520 behaves like allows access to the mutation6521 behaves like a working graphql query that returns data6522 contains data6523 behaves like a working graphql query6524 returns a successful response6525Groups::Security::DashboardController6526 GET show6527 when security dashboard feature is enabled6528 and user is allowed to access group security dashboard6529 is expected to respond with numeric status code ok6530 is expected to render template show6531 behaves like tracks govern usage event6532 tracks unique event6533 when user is not allowed to access group security dashboard6534 is expected to respond with numeric status code ok6535 is expected to render template unavailable6536 behaves like doesn't track govern usage event6537 doesn't tracks event6538 when security dashboard feature is disabled6539 is expected to respond with numeric status code ok6540 is expected to render template unavailable6541 behaves like doesn't track govern usage event6542 doesn't tracks event6543getting iterations6544 query for iterations by timeframe6545 without start date6546 returns error6547 without end date6548 returns error6549 with start and end date6550 does not have errors6551 query for iterations by cadence6552 with multiple cadences6553 returns iterations6554 searching by cadence title or iteration title and sorting by cadence and due date ASC6555 search: "two", ordered_expected_iterations: lazy { [past_iteration1, past_iteration2, upcoming_group_iteration] }6556 correctly returns ordered items6557 search: "iteration", ordered_expected_iterations: lazy { [closed_group_iteration, current_group_iteration, past_iteration1, past_iteration2, upcoming_group_iteration] }6558 correctly returns ordered items6559 query for iterations by state6560 with invalid state6561 returns empty iterations list6562 with `current` state6563 returns `current` iteration6564 with `closed` state6565 returns `closed` iteration6566 when sorting by cadence and due date DESC6567 returns `closed` iteration sorted by due date DESC6568Creating a workspace6569 # order random6570 creates the workspace6571 when there are service errors6572 behaves like a mutation that returns errors in the response6573 is expected to contain exactly "some error"6574 when remote_development_feature_flag feature flag is disabled6575 behaves like a mutation that returns top-level errors6576 is expected to include /'remote_development_feature_flag' feature flag is disabled/6577 when remote_development feature is unlicensed6578 behaves like a mutation that returns top-level errors6579 is expected to include /'remote_development' licensed feature is not available/6580 when the user cannot create a workspace for the project6581 behaves like a mutation on an unauthorized resource6582 behaves like a mutation that returns top-level errors6583 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6584 when required arguments are missing6585 returns error about required argument6586Groups::RoadmapController6587 #show6588 when the user is signed in6589 when the user has access to the group6590 when epics feature is disabled6591 behaves like returns 404 status6592 is expected to respond with numeric status code not_found6593 when epics feature is enabled6594 returns 200 status6595 when roadmaps_sort is nil6596 stores roadmaps sorting param in user preference6597 defaults to sort_value_start_date_soon6598 when roadmaps_sort is present6599 update roadmaps_sort with current value6600 when the user does not have access to the group6601 behaves like returns 404 status6602 is expected to respond with numeric status code not_found6603 when user is not signed in6604 when epics feature is enabled6605 when anonymous users does not have access to the group6606 redirects to login page6607 when anonymous users have access to the group6608EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar6609EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar6610 stores epics sorting param in a cookie6611Creating a new HTTP Integration6612 stores the custom mapping params6613 behaves like creating a new HTTP integration6614 creates a new integration6615 without required argument project_path6616 behaves like an invalid argument to the mutation6617 behaves like a mutation that returns top-level errors6618 is expected to contain exactly (include "invalid value for projectPath")6619 without required argument active6620 behaves like an invalid argument to the mutation6621 behaves like a mutation that returns top-level errors6622 is expected to contain exactly (include "invalid value for active")6623 without required argument name6624 behaves like an invalid argument to the mutation6625 behaves like a mutation that returns top-level errors6626 is expected to contain exactly (include "invalid value for name")6627 with the custom mappings feature unavailable6628 behaves like ignoring the custom mapping6629 creates integration without the custom mapping params6630 behaves like validating the payload_example6631 validates the payload_example size6632 with invalid payloadExample attribute6633 responds with errors6634 behaves like validating the payload_attribute_mappings6635 with invalid payloadAttributeMapping attribute does not contain fieldName6636 responds with errors6637 with invalid payloadAttributeMapping attribute does not contain path6638 responds with errors6639 with invalid payloadAttributeMapping attribute does not contain type6640 responds with errors6641Create an external audit event destination header6642 when feature is licensed6643 when current user is a group owner6644 creates the header with the correct attributes6645 when active param is also provided6646 creates the header with the correct attributes6647 when the header attributes are invalid6648 returns correct errors6649 behaves like a mutation that does not create a header6650 does not create a header6651 when current user is a group maintainer6652 behaves like a mutation that does not create a header6653 does not create a header6654 when current user is a group developer6655 behaves like a mutation that does not create a header6656 does not create a header6657 when current user is a group guest6658 behaves like a mutation that does not create a header6659 does not create a header6660 when feature is unlicensed6661 behaves like a mutation on an unauthorized resource6662 behaves like a mutation that returns top-level errors6663 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6664 behaves like a mutation that does not create a header6665 does not create a header6666Query.addOnPurchase6667 # order random6668 when seats are assigned6669 behaves like success response6670 returns expected response6671 when current_user is admin6672 behaves like success response6673 returns expected response6674 when namespace does not exists6675 behaves like empty response6676 returns nil6677 when expires_on date is today6678 behaves like success response6679 returns expected response6680 when add_on_name does not exists6681 behaves like empty response6682 returns nil6683 when no active add_on_purchase is present6684 behaves like empty response6685 returns nil6686 when current_user is not owner of namespace6687 behaves like empty response6688 returns nil6689 behaves like success response6690 returns expected response6691 when namespace is not root namespace6692 behaves like empty response6693 returns nil6694 when add_on_name param is all caps6695 behaves like success response6696 returns expected response6697Update an instance external audit event destination6698 # order random6699 when feature is licensed6700 when current user is instance admin6701 updates the destination with correct response6702 behaves like audits update to external streaming destination6703 when both destination url and destination name are updated6704 audits the update6705 when only destination url is updated6706 audits the update6707 when only destination name is updated6708 audits the update6709 when destination is same as previous one6710 updates the destination with correct response6711 when the destination id is invalid6712 does not update destination6713 behaves like a mutation that returns top-level errors6714 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6715 when current user is not instance admin6716 behaves like a mutation that does not update destination6717 does not update the destination6718 does not audit the update6719 behaves like a mutation that returns top-level errors6720 is expected to contain exactly "You do not have access to this mutation."6721 when feature is unlicensed6722 behaves like a mutation that does not update destination6723 does not update the destination6724 does not audit the update6725 behaves like a mutation that returns top-level errors6726 is expected to contain exactly "You do not have access to this mutation."6727API::ResourceWeightEvents6728 GET /projects/:id/issues/:noteable_id/resource_weight_events6729 returns an array of resource weight events6730 returns a 404 error when issue id not found6731 returns 404 when not authorized6732 GET /projects/:id/issues/:noteable_id/resource_weight_events/:event_id6733 returns a resource weight event by id6734 returns 404 when not authorized6735 returns a 404 error if resource weight event not found6736 pagination6737 returns the second page6738API::Experiments6739 GET /experiments6740 when on .com6741 returns a 401 for anonymous users6742 returns a 403 for users6743 returns a 403 for non human users6744 for gitlab team members6745 returns the feature flag details6746 understands the state of the feature flag and what that means for an experiment6747 the null_hypothesis as a canary6748 runs and tracks the expected events6749 returns a 400 if experimentation seems broken6750 publishes into a collection of experiments that have been run in the request6751 when not .com6752 returns a 403 for users6753Query.[project|group](fullPath).dora.metrics6754 when querying for project-level metrics6755 returns the expected project-level DORA metrics6756 when date field is not selected6757 does not fill date range with nil values6758 when querying multiple metrics6759 returns data for multiple metrics6760 when querying for group-level metrics6761 returns the expected group-level DORA metrics6762 when date field is not selected6763 does not fill date range with nil values6764 when querying multiple metrics6765 returns data for multiple metrics6766 with deprecated format6767 when querying for project-level metrics6768 returns the expected project-level DORA metrics6769 when querying for group-level metrics6770 returns the expected group-level DORA metrics6771Delete a compliance framework6772 feature is unlicensed6773 does not destroy a compliance framework6774 behaves like a mutation that returns top-level errors6775 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6776 when licensed6777 current_user is namespace owner6778 has no errors6779 destroys a compliance framework6780 current_user is not namespace owner6781 does not destroy a compliance framework6782 behaves like a mutation that returns top-level errors6783 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6784Updating a workspace6785 # order random6786 updates the workspace6787 when the user cannot create a workspace for the project6788 behaves like a mutation on an unauthorized resource6789 behaves like a mutation that returns top-level errors6790 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6791 when there are service errors6792 behaves like a mutation that returns errors in the response6793 is expected to contain exactly "some error"6794 when some required arguments are missing6795 returns error about required argument6796 when remote_development_feature_flag feature flag is disabled6797 behaves like a mutation that returns top-level errors6798 is expected to include /'remote_development_feature_flag' feature flag is disabled/6799 when remote_development feature is unlicensed6800 behaves like a mutation that returns top-level errors6801 is expected to include /'remote_development' licensed feature is not available/6802Creating a DAST Scanner Profile6803 behaves like an on-demand scan mutation when user cannot run an on-demand scan6804 when a user does not have access to the project6805 behaves like a mutation that returns a top-level access error6806 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6807 when a user does not have access to run a dast scan on the project6808 behaves like a mutation that returns a top-level access error6809 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6810 behaves like an on-demand scan mutation when user can run an on-demand scan6811 returns an empty errors array6812 returns the dast_scanner_profile id6813 sets default values of omitted properties6814 when on demand scan licensed feature is not available6815 behaves like a mutation that returns a top-level access error6816 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6817 when dast_scanner_profile exists6818 returns errors6819Groups::UsageQuotasController6820 # order random6821 GET #index6822 when user has read_usage_quotas permission6823 renders index with 200 status code6824 behaves like seat count alert6825 when the namespace qualifies for the alert6826 sets the seat_count_data6827 when the namespace does not qualify for the alert6828 sets the seat_count_data to nil6829 when user does not have read_usage_quotas permission6830 renders not_found6831 GET #pending_members6832 renders the pending members index6833 when user cap feature is unavailable6834 returns 4046835 when user does not have permission for pending members index6836 renders not_found6837Projects::Settings::AnalyticsController6838 # order random6839 as a maintainer6840 GET show6841 renders analytics settings6842 is unavailable when the combined_analytics_dashboards feature flag is disabled6843 PATCH update6844 redirects with expected flash6845 updates dashboard pointer project reference6846 with existing product_analytics_instrumentation_key6847 updates product analytics settings and cleans up instrumentation key6848 updates dashboard pointer project reference and does not clean up instrumentation key6849 when save is unsuccessful6850 redirects back to form with error6851Setting the epic of an issue6852 returns an error if the user is not allowed to update the issue6853 returns an error if issue can not be updated6854 promotes the issue to epic6855 when epic has to be in a different group6856 when user cannot create epic in new group6857 does not promote the issue to epic6858 when user can create epic in new group6859 promotes the issue to epic6860Query.issue(id)6861 # order random6862 when issue has a parent link6863 returns hasParent as `true`6864 when user has access to the epic6865 returns epic and hasEpic is `true`6866 when user has no access to the epic6867 when there is an epic6868 returns null for epic and hasEpic is `true`6869 when there is no epic6870 returns null for epic and hasEpic is `false`6871Creating a DAST Site Token6872 behaves like an on-demand scan mutation when user cannot run an on-demand scan6873 when a user does not have access to the project6874 behaves like a mutation that returns a top-level access error6875 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6876 when a user does not have access to run a dast scan on the project6877 behaves like a mutation that returns a top-level access error6878 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6879 behaves like an on-demand scan mutation when user can run an on-demand scan6880 returns an empty errors array6881 deletes dast_site_validations where state=passed6882 when on demand scan licensed feature is not available6883 behaves like a mutation that returns a top-level access error6884 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6885Destroy an external audit event destination header6886 when feature is licensed6887 when current user is a group owner6888 destroys the header6889 when header ID belongs to a different destination6890 behaves like a mutation that does not destroy a header6891 does not destroy the destination6892 when current user is a group maintainer6893 behaves like a mutation that does not destroy a header6894 does not destroy the destination6895 when current user is a group developer6896 behaves like a mutation that does not destroy a header6897 does not destroy the destination6898 when current user is a group guest6899 behaves like a mutation that does not destroy a header6900 does not destroy the destination6901 when feature is unlicensed6902 does not destroy the header6903 behaves like a mutation on an unauthorized resource6904 behaves like a mutation that returns top-level errors6905 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6906Git LFS File Locking API6907 Create File Lock endpoint6908 with an exceeded namespace storage limit6909 does not create the lock6910 Listing File Locks endpoint6911 with an exceeded namespace storage limit6912 returns the list of locked files6913 List File Locks for verification endpoint6914 with an exceeded namespace storage limit6915 rejects the request6916 Delete File Lock endpoint6917 with an exceeded namespace storage limit6918 does not delete the lock6919Update list limit metrics6920 returns an error if the list cannot be found6921 updates the list limit metrics for limit metric all_metrics6922 updates the list limit metrics for limit metric issue_count6923 updates the list limit metrics for limit metric issue_weights6924 the current_user is not allowed to update the issue6925 returns an error6926 the list_id is not a valid ListID6927 behaves like an invalid argument to the mutation6928 behaves like a mutation that returns top-level errors6929 is expected to contain exactly (include "invalid value for listId")6930Query.currentUser.workspaces6931 # order random6932 behaves like workspaces query in licensed environment and with feature flag on6933 when licensed and remote_development_feature_flag feature flag is enabled6934 is expected to contain exactly (a hash including {"name" => "workspace-8-1486-bev9rc"})6935 behaves like a working graphql query6936 returns a successful response6937 when user is not authorized6938 is expected to eq []6939 behaves like workspaces query in unlicensed environment and with feature flag off6940 when remote_development feature is unlicensed6941 returns an error6942 when remote_development_feature_flag feature flag is disabled6943 returns an error6944Deleting an iteration6945 when the user does not have permission6946 behaves like a mutation that returns a top-level access error6947 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6948 when the user has permission6949 when iterations feature is disabled6950 behaves like a mutation that returns top-level errors6951 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6952 when iterations feature is enabled6953 when iteration belongs to a manual cadence6954 deletes the iteration6955 when iteration belongs to an automatic cadence6956 behaves like a mutation that returns top-level errors6957 is expected to contain exactly "Deleting iterations from automatic iteration cadences is not allowed."6958 when required arguments are missing6959 returns error about required argument6960API::V3::Github6961 GET /repos/:namespace/:project/pulls6962 returns status 2006963 behaves like a GitHub Enterprise Jira DVCS reversible end of life endpoint6964 is a reachable endpoint6965 when the flag is disabled6966 presents as an endpoint that does not exist6967 group_ip_restriction6968 returns 404 for request from ip not in the range6969get list of epic boards6970 when the user does not have access to the epic board group6971 returns nil group6972 when user can access the epic board group6973 sorting and pagination6974 behaves like sorted paginated query6975 behaves like requires variables6976 shared example requires variables to be set6978 when sorting6979 sorts correctly6980 when paginating6981 paginates correctly6982 field values6983 returns the correct values for hiding board lists6984Creating a DAST Site Profile6985 behaves like an on-demand scan mutation when user cannot run an on-demand scan6986 when a user does not have access to the project6987 behaves like a mutation that returns a top-level access error6988 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6989 when a user does not have access to run a dast scan on the project6990 behaves like a mutation that returns a top-level access error6991 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6992 behaves like an on-demand scan mutation when user can run an on-demand scan6993 returns an empty errors array6994 returns the dast_site_profile id6995 when on demand scan licensed feature is not available6996 behaves like a mutation that returns a top-level access error6997 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6998Projects::IncidentManagement::EscalationPoliciesController6999 # order random7000 GET #index7001 with read permissions7002 renders index with 200 status code7003 with admin permissions7004 renders index with 200 status code7005 unauthorized7006 responds with 4047007 with unavailable feature7008 responds with 4047009 with unavailable on-call schedules feature7010 responds with 4047011Create a milestone or assignee board list7012 the user is not allowed to read board lists7013 behaves like a mutation that returns a top-level access error7014 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"7015 when user has permissions to admin board lists7016 milestone list7017 creates the list7018 assignee list7019 creates the list7020SubscriptionsController7021 # order random7022 GET /payment_form7023 behaves like requires authentication7024 requires authentication7025 when user is undergoing identity verification7026 skips authentication7027 when user has verified a credit card7028 behaves like requires authentication7029 requires authentication7030 POST /validate_payment_method7031 behaves like requires authentication7032 requires authentication7033 when user is undergoing identity verification7034 skips authentication7035 when user has verified a credit card7036 behaves like requires authentication7037 requires authentication7038Query.project.mergeRequest.approvalState7039 when requesting information about approval state7040 when no approval rule is set to the MR7041 returns null data7042 when the MR has approval rules configured7043 returns appropriate data7044 when there are commented approvers7045 returns appropriate data7046 when there are invalid approvers rules7047 returns appropriate data7048Projects::RunnersController7049 # order random7050 #toggle_shared_runners7051 when shared runners are off7052 when user has valid credit card7053 permits enabling and disabling shared runners7054 when user does not have valid credit card7055 does not permit enabling shared runners7056getting list of branch rules for a project7057 # order random7058 when the user does have read_protected_branch abilities7059 queries7060 avoids N+1 queries7061 response7062 includes all fields7063 behaves like a working graphql query7064 returns a successful response7065API::Ai::Experimentation::OpenAi7066 # order random7067 POST /ai/experimentation/openai/embeddings7068 behaves like behind AI experimentation API feature flag7069 when ai_experimentation_api is disabled7070 responds as not found7071 behaves like delegates AI request to Workhorse7072 responds with Workhorse send-url headers7073 POST /ai/experimentation/openai/chat/completions7074 behaves like behind AI experimentation API feature flag7075 when ai_experimentation_api is disabled7076 responds as not found7077 behaves like delegates AI request to Workhorse7078 responds with Workhorse send-url headers7079 POST /ai/experimentation/openai/completions7080 behaves like behind AI experimentation API feature flag7081 when ai_experimentation_api is disabled7082 responds as not found7083 behaves like delegates AI request to Workhorse7084 responds with Workhorse send-url headers7085Destroying an iteration cadence7086 when the user does not have permission7087 behaves like a mutation that returns a top-level access error7088 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"7089 when the user has permission7090 when iterations feature is disabled7091 behaves like a mutation that returns top-level errors7092 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"7093 when iterations feature is enabled7094 destroys the iteration cadence7095 when required arguments are missing7096 returns error about required argument7097DeviseMailer7098 #confirmation_instructions7099 when additional custom text is added7100 includes the additional custom text7101 behaves like an email with information about unconfirmed user settings7102 when delete unconfirmed users settings are present7103 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "hard", delete_after_days: 7, result: true7104 has the correct email body contents7105 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "soft", delete_after_days: 7, result: true7106 has the correct email body contents7107 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "off", delete_after_days: 7, result: false7108 has the correct email body contents7109 delete_unconfirmed_users_license: false, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "hard", delete_after_days: 7, result: false7110 has the correct email body contents7111 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: false, email_confirmation_setting: "hard", delete_after_days: 7, result: false7112 has the correct email body contents7113 delete_unconfirmed_users_license: false, delete_unconfirmed_users_application_setting: false, email_confirmation_setting: "hard", delete_after_days: 7, result: false7114 has the correct email body contents7115Query.project(fullPath).securityTrainingUrls7116 # order random7117 when unauthenticated7118 behaves like a working graphql query that returns no data7119 contains no data7120 behaves like a working graphql query7121 returns a successful response7122 when authenticated7123 when not authorized7124 behaves like a working graphql query that returns no data7125 contains no data7126 behaves like a working graphql query7127 returns a successful response7128 when authorized7129 returns the security training urls7130Projects::InsightsController7131 # order random7132 POST #query7133 succeeds7134 when statement timeout happens7135 returns error response7136 GET #show7137 behaves like contribution analytics charts configuration7138 when user does not have permissions to access all charts7139 removes forbidden charts from configuration7140 when user have permissions to access all charts7141 does not remove charts from configuration7142API::GenericPackages7143 # order random7144 GET /api/v4/projects/:id/packages/generic/:package_name/:package_version/:file_name7145 behaves like applying ip restriction for group7146 in group without restriction7147 behaves like returning response status7148 returns ok7149 in group with restriction7150 with address within the range7151 behaves like returning response status7152 returns ok7153 with address outside the range7154 behaves like returning response status7155 returns not_found7156Groups::Settings::AccessTokensController7157 # order random7158 POST /:namespace/-/settings/access_tokens7159 when has trial subscription7160 cannot create token7161 when has non-trial subscription7162 can create token7163getting project information7164 returns Todos for all target types7165 behaves like a working graphql query7166 returns a successful response7167AiAction for Generate Commit Message7168 # order random7169#<Thread:0x00007cef0a255398 /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:417 run> terminated with exception (report_on_exception is true):7170/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/webmock-3.19.1/lib/webmock/http_lib_adapters/net_http.rb:106:in `request': Real HTTP connections are disabled. Unregistered request: GET https://db-snowplow.trx.gitlab.net/i?cx=eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMC05IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJzb3VyY2UiOiJnaXRsYWItcmFpbHMiLCJwbGFuIjpudWxsLCJleHRyYSI6eyJpZCI6MzgsIm1lcmdlX3JlcXVlc3RfaWQiOjI5LCJsYXRlc3RfYnVpbGRfc3RhcnRlZF9hdCI6bnVsbCwibGF0ZXN0X2J1aWxkX2ZpbmlzaGVkX2F0IjpudWxsLCJmaXJzdF9kZXBsb3llZF90b19wcm9kdWN0aW9uX2F0IjpudWxsLCJtZXJnZWRfYXQiOm51bGwsImNyZWF0ZWRfYXQiOiIyMDIzLTEwLTE5IDEwOjMzOjI0IFVUQyIsInVwZGF0ZWRfYXQiOiIyMDIzLTEwLTE5IDEwOjMzOjI0IFVUQyIsInBpcGVsaW5lX2lkIjpudWxsLCJtZXJnZWRfYnlfaWQiOm51bGwsImxhdGVzdF9jbG9zZWRfYnlfaWQiOm51bGwsImxhdGVzdF9jbG9zZWRfYXQiOm51bGwsImZpcnN0X2NvbW1lbnRfYXQiOm51bGwsImZpcnN0X2NvbW1pdF9hdCI6bnVsbCwibGFzdF9jb21taXRfYXQiOm51bGwsImRpZmZfc2l6ZSI6bnVsbCwibW9kaWZpZWRfcGF0aHNfc2l6ZSI6bnVsbCwiY29tbWl0c19jb3VudCI6bnVsbCwiZmlyc3RfYXBwcm92ZWRfYXQiOm51bGwsImZpcnN0X3JlYXNzaWduZWRfYXQiOm51bGwsImFkZGVkX2xpbmVzIjpudWxsLCJyZW1vdmVkX2xpbmVzIjpudWxsfSwidXNlcl9pZCI6bnVsbCwiaXNfZ2l0bGFiX3RlYW1fbWVtYmVyIjpudWxsLCJuYW1lc3BhY2VfaWQiOm51bGwsInByb2plY3RfaWQiOm51bGwsImNvbnRleHRfZ2VuZXJhdGVkX2F0IjoiMjAyMy0xMC0xOSAxMDozMzoyNSBVVEMifX1dfQ==&dtm=1697711605166&e=se&eid=05a53d0f-4a0e-401e-9547-bf50bf9be450&p=srv&se_ac=database_event_create&se_ca=MergeRequest::Metrics&se_la=merge_request_metrics&se_pr=create&stm=1697711605168&tna=gl&tv=rb-0.8.0 with headers {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent'=>'Ruby'} (WebMock::NetConnectNotAllowedError)7171You can stub this request with the following snippet:7172stub_request(:get, "https://db-snowplow.trx.gitlab.net/i?cx=eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMC05IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJzb3VyY2UiOiJnaXRsYWItcmFpbHMiLCJwbGFuIjpudWxsLCJleHRyYSI6eyJpZCI6MzgsIm1lcmdlX3JlcXVlc3RfaWQiOjI5LCJsYXRlc3RfYnVpbGRfc3RhcnRlZF9hdCI6bnVsbCwibGF0ZXN0X2J1aWxkX2ZpbmlzaGVkX2F0IjpudWxsLCJmaXJzdF9kZXBsb3llZF90b19wcm9kdWN0aW9uX2F0IjpudWxsLCJtZXJnZWRfYXQiOm51bGwsImNyZWF0ZWRfYXQiOiIyMDIzLTEwLTE5IDEwOjMzOjI0IFVUQyIsInVwZGF0ZWRfYXQiOiIyMDIzLTEwLTE5IDEwOjMzOjI0IFVUQyIsInBpcGVsaW5lX2lkIjpudWxsLCJtZXJnZWRfYnlfaWQiOm51bGwsImxhdGVzdF9jbG9zZWRfYnlfaWQiOm51bGwsImxhdGVzdF9jbG9zZWRfYXQiOm51bGwsImZpcnN0X2NvbW1lbnRfYXQiOm51bGwsImZpcnN0X2NvbW1pdF9hdCI6bnVsbCwibGFzdF9jb21taXRfYXQiOm51bGwsImRpZmZfc2l6ZSI6bnVsbCwibW9kaWZpZWRfcGF0aHNfc2l6ZSI6bnVsbCwiY29tbWl0c19jb3VudCI6bnVsbCwiZmlyc3RfYXBwcm92ZWRfYXQiOm51bGwsImZpcnN0X3JlYXNzaWduZWRfYXQiOm51bGwsImFkZGVkX2xpbmVzIjpudWxsLCJyZW1vdmVkX2xpbmVzIjpudWxsfSwidXNlcl9pZCI6bnVsbCwiaXNfZ2l0bGFiX3RlYW1fbWVtYmVyIjpudWxsLCJuYW1lc3BhY2VfaWQiOm51bGwsInByb2plY3RfaWQiOm51bGwsImNvbnRleHRfZ2VuZXJhdGVkX2F0IjoiMjAyMy0xMC0xOSAxMDozMzoyNSBVVEMifX1dfQ==&dtm=1697711605166&e=se&eid=05a53d0f-4a0e-401e-9547-bf50bf9be450&p=srv&se_ac=database_event_create&se_ca=MergeRequest::Metrics&se_la=merge_request_metrics&se_pr=create&stm=1697711605168&tna=gl&tv=rb-0.8.0").7173 with(7174 headers: {7175 'Accept'=>'*/*',7176 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',7177 'User-Agent'=>'Ruby'7178 }).7179 to_return(status: 200, body: "", headers: {})7180============================================================7181 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:307:in `http_get'7182 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:290:in `process_get_event'7183 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:272:in `block in send_requests_with_get'7184 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:271:in `each'7185 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:271:in `send_requests_with_get'7186 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:236:in `send_requests'7187 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:427:in `block in consume'7188 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:425:in `loop'7189 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:425:in `consume'7190 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:417:in `block (2 levels) in initialize'7191 successfully performs an generate commit message request7192 when openai_experimentation feature flag is disabled7193 returns nil7194 when third_party_ai_features_enabled disabled7195 returns nil7196 when experiment_features_enabled disabled7197 returns nil7198getting a compliance frameworks list for a project7199 when the project has no compliance framework assigned7200 is an empty array7201 when the project has a compliance framework assigned7202 includes its name7203Hand Raise Leads7204 # order random7205 POST /-/subscriptions/hand_raise_leads7206 when authenticated7207 is expected to respond with numeric status code ok7208 calls the hand raise lead service with correct parameters7209 when not on gitlab.com7210 is expected to respond with numeric status code not_found7211 when namespace cannot be found7212 is expected to respond with numeric status code not_found7213 with failure7214 is expected to respond with numeric status code forbidden7215 when not authenticated7216 is expected to respond with numeric status code not_found7217ProfilesController7218 PUT update7219 updating name7220 when `disable_name_update_for_users` feature is available7221 when the ability to update thier name is not disabled for users7222 behaves like a user can update their name7223 updates their name7224 behaves like a user can update their name7225 updates their name7226 when the ability to update their name is disabled for users7227 as a regular user7228 does not update their name7229 as an admin in admin mode7230 behaves like a user can update their name7231 updates their name7232 when `disable_name_update_for_users` feature is not available7233 behaves like a user can update their name7234 updates their name7235 behaves like a user can update their name7236 updates their name7237API::NugetGroupPackages7238 # order random7239 GET /api/v4/groups/:id/-/packages/nuget/metadata/*package_name/*package_version7240 behaves like applying ip restriction for group7241 in group without restriction7242 behaves like returning response status7243 returns ok7244 in group with restriction7245 with address within the range7246 behaves like returning response status7247 returns ok7248 with address outside the range7249 behaves like returning response status7250 returns not_found7251API::Ci::Runner7252 PUT /api/v4/jobs/:id7253 tracks CI minutes usage of running job7254 when CI minutes usage is exceeded7255 drops the job7256 when CI minutes usage is not exceeded7257 does not drop the job7258Group.contributions7259 # order random7260 when the license is available7261 when postgres is the data source7262 behaves like returns correct data7263 returns data7264 with events from different users7265 does not create N+1 queries7266 when the license is not available7267 returns no data7268Projects::ServiceDeskController7269 PUT service desk properties7270 sets file_template_project_id7271Profiles::BillingsController7272 GET #index7273 renders index with 200 status code7274 fetch subscription plans data from customers.gitlab.com7275 when CustomersDot is unavailable7276 renders a different partial7277Emails::GroupMemberships7278 #memberships_export_email7279 is expected to have subject of "Exported group membership list"7280 is expected to be delivered to ["user1673@example.org"]7281 contains one attachment7282 properly renders email7283Update Environment Canary Ingress7284 when environment is protected and allowed to be deployed by only operator7285 fails to update7286Admin::ApplicationSettingsController7287 # order random7288 PUT update_microsoft_application7289 behaves like Microsoft application controller actions7290 raises an error when parameters are missing7291 redirects with error alert when missing required attributes7292 redirects with success notice7293Projects::IncidentsController7294 # order random7295 GET #show7296 exposes the escalation_policies licensed feature setting7297Groups::Settings::CiCdController7298 # order random7299 as an owner7300 GET #show7301 renders group protected environments7302 excludes the deployment tier from dropdown if a corresponding environment is protected7303Emails::ComplianceViolations7304 # order random7305 #compliance_violations_csv_email7306 renders an email with attachment7307UsersController7308 GET #available_project_templates7309 a user requests templates for themselves7310 responds successfully7311 a user requests templates for another user7312 responds with not found error7313 GET #available_group_templates7314 a user requests templates for themselves7315 responds successfully7316 a user requests templates for another user7317 responds with not found error7318Groups::VariablesController7319 PATCH #update7320 scoped variables are available7321 updates the environment scope7322 scoped variables are not available7323 does not update the environment scope7324Groups::Security::MergeCommitReportsController7325 GET index7326 when feature is enabled7327 when user has access to dashboard7328 tells the service to enqueue a job7329 when user does not have access to dashboard7330 behaves like returns not found7331 is expected to respond with numeric status code not_found7332 when feature is not enabled7333 behaves like returns not found7334 is expected to respond with numeric status code not_found7335CountryStatesController7336 GET #index7337 returns a list of states as json7338 returns "null" when the provided country is not found7339API::Ai::Experimentation::Anthropic7340 # order random7341 POST /ai/experimentation/anthropic/complete7342 behaves like delegates AI request to Workhorse7343 responds with Workhorse send-url headers7344 behaves like behind AI experimentation API feature flag7345 when ai_experimentation_api is disabled7346 responds as not found7347API::UsageData7348 POST /usage_data/increment_counter7349 with authentication7350 with correct params7351 prefix: "users", event: "clicking_license_testing_visiting_external_website"7352 returns status :ok7353 prefix: "users", event: "visiting_testing_license_compliance_full_report"7354 returns status :ok7355Profiles::UsageQuotasController7356 when signed in7357 GET index7358 renders usage quota page7359 GET index7360 does not render the usage quota page7361Emails::UserCap7362 #user_cap_reached7363 sends mail with expected contents7364Emails::Epics7365 adds email methods to Notify7366Knapsack report was generated. Preview:7367{7368 "ee/spec/requests/api/dependency_proxy/packages/maven_spec.rb": 150.80654156899982,7369 "ee/spec/controllers/groups/wikis_controller_spec.rb": 103.6906435789997,7370 "ee/spec/requests/api/project_approval_settings_spec.rb": 72.80404606299999,7371 "ee/spec/requests/api/project_approval_rules_spec.rb": 72.21155101499971,7372 "ee/spec/mailers/notify_spec.rb": 53.39258423999945,7373 "ee/spec/requests/api/releases_spec.rb": 49.645101815999624,7374 "ee/spec/requests/api/wikis_spec.rb": 43.28140310599974,7375 "ee/spec/requests/api/protected_environments_spec.rb": 43.035393221999584,7376 "ee/spec/requests/api/scim/instance_scim_spec.rb": 21.197175115999926,7377 "ee/spec/requests/api/project_aliases_spec.rb": 30.171342472000106,7378 "ee/spec/requests/api/users_spec.rb": 23.16991801200038,7379 "ee/spec/requests/api/graphql/project/sbom/dependencies_spec.rb": 30.646223066999482,7380 "ee/spec/requests/groups/group_members_controller_spec.rb": 30.862362248000863,7381 "ee/spec/requests/groups/settings/domain_verification_controller_spec.rb": 21.762208471000122,7382 "ee/spec/requests/api/vulnerability_issue_links_spec.rb": 20.532336157999453,7383 "ee/spec/requests/api/related_epic_links_spec.rb": 18.790424618000543,7384 "ee/spec/requests/projects/security/policies_controller_spec.rb": 15.56887904999985,7385 "ee/spec/requests/api/graphql/vulnerabilities/vulnerability_spec.rb": 14.941139730000032,7386 "ee/spec/requests/api/epic_links_spec.rb": 18.660199185999772,7387 "ee/spec/controllers/subscriptions_controller_spec.rb": 12.964954044000478,7388 "ee/spec/requests/api/vulnerability_exports_spec.rb": 15.619941887000095,7389 "ee/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb": 18.325091805999364,7390 "ee/spec/requests/groups/analytics/cycle_analytics/value_streams_controller_spec.rb": 13.032222039999397,7391 "ee/spec/requests/api/group_service_accounts_spec.rb": 16.136552304999896,7392 "ee/spec/controllers/projects/security/configuration_controller_spec.rb": 16.265483436000068,7393 "ee/spec/requests/api/merge_request_approval_settings_spec.rb": 12.337789053999586,7394 "ee/spec/requests/api/graphql/dora/dora_scores_spec.rb": 11.30767036799989,7395 "ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/update_spec.rb": 11.54451751400029,7396 "ee/spec/requests/api/graphql/iteration_spec.rb": 11.339994066000145,7397 "ee/spec/requests/ee/registrations_controller_spec.rb": 8.406243870999788,7398 "ee/spec/requests/smartcard_controller_spec.rb": 6.459482754000419,7399 "ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/create_spec.rb": 8.987332724000225,7400 "ee/spec/requests/groups/analytics/dashboards_controller_spec.rb": 8.49179921599989,7401 "ee/spec/requests/api/resource_label_events_spec.rb": 9.939139975000217,7402 "ee/spec/requests/projects/merge_requests_controller_spec.rb": 9.462518913999702,7403 "ee/spec/requests/api/graphql/mutations/vulnerabilities/bulk_dismiss_spec.rb": 8.832938624000235,7404 "ee/spec/requests/api/graphql/mutations/epics/update_spec.rb": 10.874199505999968,7405 "ee/spec/requests/api/graphql/mutations/boards/epic_boards/epic_move_list_spec.rb": 8.123658989000432,7406 "ee/spec/controllers/ee/dashboard/projects_controller_spec.rb": 6.519838879999952,7407 "ee/spec/requests/api/resource_iteration_events_spec.rb": 7.207810187000177,7408 "ee/spec/requests/api/graphql/group/epic/epic_children_spec.rb": 7.679155066999556,7409 "ee/spec/requests/api/graphql/projects/compliance_standards/adherence_spec.rb": 5.214142441999684,7410 "ee/spec/requests/api/graphql/mutations/dependency_proxy/packages/settings/update_spec.rb": 6.052795108000282,7411 "ee/spec/requests/api/graphql/mutations/dast/profiles/create_spec.rb": 5.773234858000251,7412 "ee/spec/requests/api/graphql/mutations/security/configuration/project_set_continuous_vulnerability_scanning_spec.rb": 6.390046688000439,7413 "ee/spec/controllers/projects/security/api_fuzzing_configuration_controller_spec.rb": 7.502280518000589,7414 "ee/spec/requests/api/graphql/ci/catalog/resource_spec.rb": 5.9235356469998806,7415 "ee/spec/controllers/projects/analytics/issues_analytics_controller_spec.rb": 4.83213677599997,7416 "ee/spec/requests/api/graphql/group/dast_profile_schedule_spec.rb": 5.06422731099974,7417 "ee/spec/controllers/projects/analytics/merge_request_analytics_controller_spec.rb": 4.936689969999861,7418 "ee/spec/controllers/admin/geo/settings_controller_spec.rb": 5.3101359749998664,7419 "ee/spec/requests/api/graphql/project/incident_management/oncall_schedules_spec.rb": 4.811241057999723,7420 "ee/spec/controllers/groups/groups_controller_spec.rb": 5.022741902999769,7421 "ee/spec/requests/api/analytics/code_review_analytics_spec.rb": 4.982206616999974,7422 "ee/spec/requests/rack_attack_spec.rb": 5.135355227000218,7423 "ee/spec/requests/api/graphql/mutations/boards/create_spec.rb": 5.07805671999995,7424 "ee/spec/requests/api/graphql/project/branch_protections/unprotect_access_levels_spec.rb": 4.758731801000067,7425 "ee/spec/requests/api/graphql/mutations/issues/bulk_update_spec.rb": 4.306583449000755,7426 "ee/spec/requests/api/graphql/mutations/forecasting/build_forecast_spec.rb": 4.35342192600001,7427 "ee/spec/requests/api/graphql/mutations/projects/set_compliance_framework_spec.rb": 4.049967425000432,7428 "ee/spec/controllers/groups/security/dashboard_controller_spec.rb": 3.7746539019999545,7429 "ee/spec/requests/api/graphql/iterations/iterations_spec.rb": 4.443744950000109,7430 "ee/spec/requests/api/graphql/mutations/remote_development/workspaces/create_spec.rb": 4.179292738000186,7431 "ee/spec/controllers/groups/roadmap_controller_spec.rb": 3.7675034819994835,7432 "ee/spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb": 4.131919548999576,7433 "ee/spec/requests/api/graphql/audit_events/streaming/headers/create_spec.rb": 3.512663058999351,7434 "ee/spec/requests/api/graphql/gitlab_subscriptions/add_on_purchase_spec.rb": 3.0492537680001988,7435 "ee/spec/requests/api/graphql/mutations/audit_events/instance_external_audit_event_destinations/update_spec.rb": 3.596618984000088,7436 "ee/spec/requests/api/resource_weight_events_spec.rb": 2.9362448050005696,7437 "ee/spec/requests/api/experiments_spec.rb": 2.864705199999662,7438 "ee/spec/requests/api/graphql/dora/dora_spec.rb": 3.0197685599996476,7439 "ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/destroy_spec.rb": 2.5767102979998526,7440 "ee/spec/requests/api/graphql/mutations/remote_development/workspaces/update_spec.rb": 3.2442258149994814,7441 "ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/create_spec.rb": 2.9478166449998753,7442 "ee/spec/controllers/ee/groups/usage_quotas_controller_spec.rb": 2.874011128999882,7443 "ee/spec/requests/projects/settings/analytics_controller_spec.rb": 3.7145452559998375,7444 "ee/spec/requests/api/graphql/mutations/issues/promote_to_epic_spec.rb": 3.6545965200002684,7445 "ee/spec/requests/api/graphql/issue/issue_spec.rb": 2.9371584250002343,7446 "ee/spec/requests/api/graphql/mutations/dast_site_validations/revoke_spec.rb": 2.1893512319993533,7447 "ee/spec/requests/api/graphql/audit_events/streaming/headers/destroy_spec.rb": 3.05738516800011,7448 "ee/spec/requests/lfs_locks_api_spec.rb": 2.090454327999396,7449 "ee/spec/requests/api/graphql/mutations/boards/lists/update_limit_metrics_spec.rb": 2.109610057000282,7450 "ee/spec/requests/api/graphql/remote_development/current_user_workspaces_spec.rb": 2.730014948000644,7451 "ee/spec/requests/api/graphql/mutations/iterations/delete_spec.rb": 2.9316518350005936,7452 "ee/spec/requests/api/v3/github_spec.rb": 2.2208120599998438,7453 "ee/spec/requests/api/graphql/boards/epic_boards_query_spec.rb": 3.7541144340002575,7454 "ee/spec/requests/api/graphql/mutations/dast_site_profiles/create_spec.rb": 2.4951874530006535,7455 "ee/spec/controllers/projects/incident_management/escalation_policies_controller_spec.rb": 2.6680311419995633,7456 "ee/spec/requests/api/graphql/mutations/boards/lists/create_spec.rb": 2.464709435000259,7457 "ee/spec/requests/subscriptions_controller_spec.rb": 1.1725702559997444,7458 "ee/spec/requests/api/graphql/merge_requests/approval_state_spec.rb": 2.457421324999814,7459 "ee/spec/controllers/projects/runners_controller_spec.rb": 2.493267392999769,7460 "ee/spec/requests/api/graphql/project/branch_rules_spec.rb": 2.096126747999733,7461 "ee/spec/requests/api/ai/experimentation/open_ai_spec.rb": 1.116409219000161,7462 "ee/spec/requests/api/graphql/mutations/iterations/cadences/destroy_spec.rb": 2.338539003000733,7463 "ee/spec/mailers/devise_mailer_spec.rb": 1.2620958210000026,7464 "ee/spec/requests/api/graphql/project/security_training_urls_spec.rb": 1.685992933000307,7465 "ee/spec/requests/projects/insights_controller_spec.rb": 1.6891489629997523,7466 "ee/spec/requests/api/generic_packages_spec.rb": 1.6039142790004917,7467 "ee/spec/requests/groups/settings/access_tokens_controller_spec.rb": 1.1815653860003295,7468 "ee/spec/requests/api/graphql/current_user/todos_query_spec.rb": 1.9133334289999766,7469 "ee/spec/requests/api/graphql/mutations/projects/generate_commit_message_spec.rb": 1.6473658069999146,7470 "ee/spec/requests/api/graphql/project/compliance_frameworks_spec.rb": 1.5143245750005008,7471 "ee/spec/requests/subscriptions/hand_raise_leads_spec.rb": 1.1040595599997687,7472 "ee/spec/controllers/profiles_controller_spec.rb": 1.058252072999494,7473 "ee/spec/requests/api/nuget_group_packages_spec.rb": 1.5776168510001298,7474 "ee/spec/requests/api/ci/runner/jobs_put_spec.rb": 1.396362292000049,7475 "ee/spec/requests/api/graphql/analytics/contribution_analytics/contributions_spec.rb": 1.4272623810002187,7476 "ee/spec/requests/ee/projects/service_desk_controller_spec.rb": 1.2663624199994956,7477 "ee/spec/controllers/profiles/billings_controller_spec.rb": 0.5051132779999534,7478 "ee/spec/mailers/emails/group_memberships_spec.rb": 0.7588218520004375,7479 "ee/spec/requests/api/graphql/mutations/environments/canary_ingress/update_spec.rb": 1.355498875000194,7480 "ee/spec/requests/admin/application_settings_controller_spec.rb": 0.9441093300001739,7481 "ee/spec/requests/projects/incidents_controller_spec.rb": 1.272585810000237,7482 "ee/spec/controllers/ee/groups/settings/ci_cd_controller_spec.rb": 1.0775866719995975,7483 "ee/spec/mailers/emails/compliance_violations_spec.rb": 0.8550564159995702,7484 "ee/spec/controllers/users_controller_spec.rb": 0.6393933599993034,7485 "ee/spec/controllers/ee/groups/variables_controller_spec.rb": 0.878468564999821,7486 "ee/spec/controllers/groups/security/merge_commit_reports_controller_spec.rb": 0.5708574840000438,7487 "ee/spec/controllers/country_states_controller_spec.rb": 0.23770528499971988,7488 "ee/spec/requests/api/ai/experimentation/anthropic_spec.rb": 0.3358764889999293,7489 "ee/spec/requests/api/usage_data_spec.rb": 0.46094316200014873,7490 "ee/spec/controllers/profiles/usage_quotas_controller_spec.rb": 0.3113763210003526,7491 "ee/spec/mailers/emails/user_cap_spec.rb": 0.32096976000048016,7492 "ee/spec/mailers/emails/epics_spec.rb": 0.1396806109996767493}7494Knapsack global time execution for tests: 21m 47s7495Pending: (Failures listed here are expected and do not affect your suite's status)7496 1) API::Wikis GET /groups/:id/wikis when wiki is available only for team members when user is guest returns 404 Group Not Found7497 # Temporarily skipped with xcontext7498 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1837499 2) API::Wikis GET /groups/:id/wikis when wiki is available only for team members when user is developer return the empty list of wiki pages7500 # Temporarily skipped with xcontext7501 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:387502 3) API::Wikis GET /groups/:id/wikis when wiki is available only for team members when user is developer when wiki has pages returns the list of wiki pages without content7503 # Temporarily skipped with xcontext7504 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:107505 4) API::Wikis GET /groups/:id/wikis when wiki is available only for team members when user is developer when wiki has pages returns the list of wiki pages with content7506 # Temporarily skipped with xcontext7507 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:237508 5) API::Wikis GET /groups/:id/wikis when wiki is available only for team members when user is maintainer return the empty list of wiki pages7509 # Temporarily skipped with xcontext7510 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:387511 6) API::Wikis GET /groups/:id/wikis when wiki is available only for team members when user is maintainer when wiki has pages returns the list of wiki pages without content7512 # Temporarily skipped with xcontext7513 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:107514 7) API::Wikis GET /groups/:id/wikis when wiki is available only for team members when user is maintainer when wiki has pages returns the list of wiki pages with content7515 # Temporarily skipped with xcontext7516 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:237517 8) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is guest returns 404 Group Not Found7518 # Temporarily skipped with xcontext7519 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1837520 9) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is developer behaves like returns wiki page 7521 # Temporarily skipped with xcontext7522 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:547523 10) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is developer when render param is false behaves like returns wiki page 7524 # Temporarily skipped with xcontext7525 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:547526 11) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is developer when render param is true behaves like returns wiki page 7527 # Temporarily skipped with xcontext7528 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:547529 12) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is developer when wiki page has versions when version param is not present retrieves the last version7530 # Temporarily skipped with xcontext7531 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:957532 13) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is developer when wiki page has versions when version param is set retrieves the specific page version7533 # Temporarily skipped with xcontext7534 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1037535 14) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is developer when wiki page has versions when version param is set when version param is not valid or inexistent behaves like wiki API 404 Wiki Page Not Found returns 404 Wiki Page Not Found7536 # Temporarily skipped with xcontext7537 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1757538 15) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is developer when page does not exist returns 404 Wiki Page Not Found7539 # Temporarily skipped with xcontext7540 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1757541 16) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is maintainer behaves like returns wiki page 7542 # Temporarily skipped with xcontext7543 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:547544 17) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is maintainer when render param is false behaves like returns wiki page 7545 # Temporarily skipped with xcontext7546 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:547547 18) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is maintainer when render param is true behaves like returns wiki page 7548 # Temporarily skipped with xcontext7549 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:547550 19) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is maintainer when wiki page has versions when version param is not present retrieves the last version7551 # Temporarily skipped with xcontext7552 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:957553 20) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is maintainer when wiki page has versions when version param is set retrieves the specific page version7554 # Temporarily skipped with xcontext7555 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1037556 21) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is maintainer when wiki page has versions when version param is set when version param is not valid or inexistent behaves like wiki API 404 Wiki Page Not Found returns 404 Wiki Page Not Found7557 # Temporarily skipped with xcontext7558 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1757559 22) API::Wikis GET /groups/:id/wikis/:slug when wiki is available only for team members when user is maintainer when page does not exist returns 404 Wiki Page Not Found7560 # Temporarily skipped with xcontext7561 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1757562 23) API::Wikis POST /groups/:id/wikis when wiki is available only for team members when user is guest returns 404 Group Not Found7563 # Temporarily skipped with xcontext7564 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1837565 24) API::Wikis POST /groups/:id/wikis when wiki is available only for team members when user is developer creates the wiki page7566 # Temporarily skipped with xcontext7567 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1177568 25) API::Wikis POST /groups/:id/wikis when wiki is available only for team members when user is developer responds with validation error on empty title7569 # Temporarily skipped with xcontext7570 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1317571 26) API::Wikis POST /groups/:id/wikis when wiki is available only for team members when user is developer responds with validation error on empty content7572 # Temporarily skipped with xcontext7573 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1317574 27) API::Wikis POST /groups/:id/wikis when wiki is available only for team members when user is maintainer creates the wiki page7575 # Temporarily skipped with xcontext7576 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1177577 28) API::Wikis POST /groups/:id/wikis when wiki is available only for team members when user is maintainer responds with validation error on empty title7578 # Temporarily skipped with xcontext7579 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1317580 29) API::Wikis POST /groups/:id/wikis when wiki is available only for team members when user is maintainer responds with validation error on empty content7581 # Temporarily skipped with xcontext7582 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1317583 30) API::Wikis PUT /group/:id/wikis/:slug when wiki is available only for team members when user is guest returns 404 Group Not Found7584 # Temporarily skipped with xcontext7585 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1837586 31) API::Wikis PUT /group/:id/wikis/:slug when wiki is available only for team members when user is developer updates the wiki page7587 # Temporarily skipped with xcontext7588 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1447589 32) API::Wikis PUT /group/:id/wikis/:slug when wiki is available only for team members when user is developer updates with wiki with missing title7590 # Temporarily skipped with xcontext7591 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1567592 33) API::Wikis PUT /group/:id/wikis/:slug when wiki is available only for team members when user is developer updates with wiki with missing content7593 # Temporarily skipped with xcontext7594 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1567595 34) API::Wikis PUT /group/:id/wikis/:slug when wiki is available only for team members when user is developer updates with wiki with missing format7596 # Temporarily skipped with xcontext7597 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1567598 35) API::Wikis PUT /group/:id/wikis/:slug when wiki is available only for team members when user is developer when page does not exist returns 404 Wiki Page Not Found7599 # Temporarily skipped with xcontext7600 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1757601 36) API::Wikis PUT /group/:id/wikis/:slug when wiki is available only for team members when user is maintainer updates the wiki page7602 # Temporarily skipped with xcontext7603 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1447604 37) API::Wikis PUT /group/:id/wikis/:slug when wiki is available only for team members when user is maintainer updates with wiki with missing title7605 # Temporarily skipped with xcontext7606 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1567607 38) API::Wikis PUT /group/:id/wikis/:slug when wiki is available only for team members when user is maintainer updates with wiki with missing content7608 # Temporarily skipped with xcontext7609 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1567610 39) API::Wikis PUT /group/:id/wikis/:slug when wiki is available only for team members when user is maintainer updates with wiki with missing format7611 # Temporarily skipped with xcontext7612 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1567613 40) API::Wikis PUT /group/:id/wikis/:slug when wiki is available only for team members when user is maintainer when page is not existing returns 404 Wiki Page Not Found7614 # Temporarily skipped with xcontext7615 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1757616 41) API::Wikis DELETE /groups/:id/wikis/:slug when wiki is available only for team members when user is guest returns 404 Group Not Found7617 # Temporarily skipped with xcontext7618 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1837619 42) API::Wikis DELETE /groups/:id/wikis/:slug when wiki is available only for team members when user is developer returns 403 Forbidden7620 # Temporarily skipped with xcontext7621 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1677622 43) API::Wikis DELETE /groups/:id/wikis/:slug when wiki is available only for team members when user is maintainer returns 204 No Content7623 # Temporarily skipped with xcontext7624 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1917625 44) API::Wikis POST /groups/:id/wikis/attachments when wiki is available only for team members when user is guest returns 404 Group Not Found7626 # Temporarily skipped with xcontext7627 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1837628 45) API::Wikis POST /groups/:id/wikis/attachments when wiki is available only for team members when user is developer pushes attachment to the wiki repository7629 # Temporarily skipped with xcontext7630 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1977631 46) API::Wikis POST /groups/:id/wikis/attachments when wiki is available only for team members when user is developer responds with validation error on empty file7632 # Temporarily skipped with xcontext7633 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:2067634 47) API::Wikis POST /groups/:id/wikis/attachments when wiki is available only for team members when user is developer responds with validation error on invalid temp file7635 # Temporarily skipped with xcontext7636 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:2167637 48) API::Wikis POST /groups/:id/wikis/attachments when wiki is available only for team members when user is developer is backward compatible with regular multipart uploads7638 # Temporarily skipped with xcontext7639 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:2267640 49) API::Wikis POST /groups/:id/wikis/attachments when wiki is available only for team members when user is maintainer pushes attachment to the wiki repository7641 # Temporarily skipped with xcontext7642 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:1977643 50) API::Wikis POST /groups/:id/wikis/attachments when wiki is available only for team members when user is maintainer responds with validation error on empty file7644 # Temporarily skipped with xcontext7645 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:2067646 51) API::Wikis POST /groups/:id/wikis/attachments when wiki is available only for team members when user is maintainer responds with validation error on invalid temp file7647 # Temporarily skipped with xcontext7648 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:2167649 52) API::Wikis POST /groups/:id/wikis/attachments when wiki is available only for team members when user is maintainer is backward compatible with regular multipart uploads7650 # Temporarily skipped with xcontext7651 # ./spec/support/shared_examples/lib/wikis_api_examples.rb:2267652 53) Projects::MergeRequestsController GET #index avoids N+17653 # Temporarily skipped with xit7654 # ./ee/spec/requests/projects/merge_requests_controller_spec.rb:547655Finished in 21 minutes 52 seconds (files took 1 minute 34.27 seconds to load)76562762 examples, 0 failures, 53 pending7657Randomized with seed 246937658[TEST PROF INFO] Time spent in factories: 06:28.770 (28.71% of total time)7659RSpec exited with 0.7660No examples to retry, congrats!7662Running after script...7663$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"7669$ tooling/bin/push_job_metrics || true7670[job-metrics] Pushing job metrics file for the CI/CD job.7671[job-metrics] Pushed 4 CI job metric entries to InfluxDB.7673Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy7675Uploading artifacts...7676WARNING: auto_explain/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7677coverage/: found 5 matching artifact files and directories 7678crystalball/: found 2 matching artifact files and directories 7679WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7680knapsack/: found 4 matching artifact files and directories 7681rspec/: found 16 matching artifact files and directories 7682WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7683log/*.log: found 19 matching artifact files and directories 7684WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5328358973/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7685WARNING: Retrying... context=artifacts-uploader error=request redirected7686Uploading artifacts as "archive" to coordinator... 201 Created id=5328358973 responseStatus=201 Created token=64_D4mug7687Uploading artifacts...7688rspec/rspec-*.xml: found 1 matching artifact files and directories 7689WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5328358973/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7690WARNING: Retrying... context=artifacts-uploader error=request redirected7691Uploading artifacts as "junit" to coordinator... 201 Created id=5328358973 responseStatus=201 Created token=64_D4mug7693Job succeeded