diff --git a/.eslintrc.yml b/.eslintrc.yml index f8bc2a3ae9..827604ced9 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -27,7 +27,6 @@ rules: - ignore: # https://gitlab.com/gitlab-org/gitlab/issues/38226 - '^ee_component/' - import/order: off # Disabled for now, to make the airbnb-base 12.1.0 -> 13.1.0 update smoother no-else-return: - error diff --git a/.gitignore b/.gitignore index 151c75d474..38beab164c 100644 --- a/.gitignore +++ b/.gitignore @@ -77,7 +77,6 @@ eslint-report.html /locale/**/LC_MESSAGES /locale/**/*.time_stamp /.rspec -/.gitlab_pages_secret /.gitlab_smime_key /.gitlab_smime_cert package-lock.json @@ -95,3 +94,512 @@ webpack-dev-server.json apollo.config.js /tmp/matching_foss_tests.txt ee/changelogs/unreleased-ee + +# Likely anything 2017 was removed in bac4d96dcfc, 381b706559b, or cfae6ec2647 +db/schema_migrations/2014* +db/schema_migrations/2015* +db/schema_migrations/2016* +db/schema_migrations/2017* + +# Removed in 02ea9bc792b9236ea8854154ea5caef1a03b07b4 +db/schema_migrations/20171230123729 +db/schema_migrations/20180101160629 +db/schema_migrations/20180101160630 +db/schema_migrations/20180102220145 +db/schema_migrations/20180103123548 +db/schema_migrations/20180104131052 +db/schema_migrations/20180105212544 +db/schema_migrations/20180109183319 +db/schema_migrations/20180113220114 +db/schema_migrations/20180115094742 +db/schema_migrations/20180115113902 +db/schema_migrations/20180115201419 +db/schema_migrations/20180116193854 +db/schema_migrations/20180119121225 +db/schema_migrations/20180119135717 +db/schema_migrations/20180119160751 +db/schema_migrations/20180122154930 +db/schema_migrations/20180122162010 +db/schema_migrations/20180125214301 +db/schema_migrations/20180129193323 +db/schema_migrations/20180201102129 +db/schema_migrations/20180201110056 +db/schema_migrations/20180201145907 +db/schema_migrations/20180204200836 +db/schema_migrations/20180206200543 +db/schema_migrations/20180208183958 +db/schema_migrations/20180209115333 +db/schema_migrations/20180209165249 +db/schema_migrations/20180212030105 +db/schema_migrations/20180212101828 +db/schema_migrations/20180212101928 +db/schema_migrations/20180212102028 +db/schema_migrations/20180213131630 +db/schema_migrations/20180214093516 +db/schema_migrations/20180214155405 +db/schema_migrations/20180215181245 +db/schema_migrations/20180216120000 +db/schema_migrations/20180216120010 +db/schema_migrations/20180216120020 +db/schema_migrations/20180216120030 +db/schema_migrations/20180216120040 +db/schema_migrations/20180216120050 +db/schema_migrations/20180216121020 +db/schema_migrations/20180216121030 +db/schema_migrations/20180219153455 +db/schema_migrations/20180220150310 +db/schema_migrations/20180221151752 +db/schema_migrations/20180222043024 +db/schema_migrations/20180223120443 +db/schema_migrations/20180223124427 +db/schema_migrations/20180223144945 +db/schema_migrations/20180226050030 +db/schema_migrations/20180227182112 +db/schema_migrations/20180228172924 +db/schema_migrations/20180301010859 +db/schema_migrations/20180301084653 +db/schema_migrations/20180302152117 +db/schema_migrations/20180305095250 +db/schema_migrations/20180305100050 +db/schema_migrations/20180305144721 +db/schema_migrations/20180306074045 +db/schema_migrations/20180306134842 +db/schema_migrations/20180306164012 +db/schema_migrations/20180307012445 +db/schema_migrations/20180308052825 +db/schema_migrations/20180308125206 +db/schema_migrations/20180309121820 +db/schema_migrations/20180309160427 +db/schema_migrations/20180314100728 +db/schema_migrations/20180314145917 +db/schema_migrations/20180315160435 +db/schema_migrations/20180319190020 +db/schema_migrations/20180320182229 +db/schema_migrations/20180323150945 +db/schema_migrations/20180326202229 +db/schema_migrations/20180327101207 +db/schema_migrations/20180330121048 +db/schema_migrations/20180403035759 +db/schema_migrations/20180405101928 +db/schema_migrations/20180405142733 +db/schema_migrations/20180408143354 +db/schema_migrations/20180408143355 +db/schema_migrations/20180409170809 +db/schema_migrations/20180413022611 +db/schema_migrations/20180416155103 +db/schema_migrations/20180417090132 +db/schema_migrations/20180417101040 +db/schema_migrations/20180417101940 +db/schema_migrations/20180418053107 +db/schema_migrations/20180420010016 +db/schema_migrations/20180420010616 +db/schema_migrations/20180420080616 +db/schema_migrations/20180423204600 +db/schema_migrations/20180424090541 +db/schema_migrations/20180424134533 +db/schema_migrations/20180424151928 +db/schema_migrations/20180424160449 +db/schema_migrations/20180425075446 +db/schema_migrations/20180425131009 +db/schema_migrations/20180425205249 +db/schema_migrations/20180426102016 +db/schema_migrations/20180430101916 +db/schema_migrations/20180430143705 +db/schema_migrations/20180502122856 +db/schema_migrations/20180503131624 +db/schema_migrations/20180503141722 +db/schema_migrations/20180503150427 +db/schema_migrations/20180503175053 +db/schema_migrations/20180503175054 +db/schema_migrations/20180503193542 +db/schema_migrations/20180503193953 +db/schema_migrations/20180503200320 +db/schema_migrations/20180504195842 +db/schema_migrations/20180507083701 +db/schema_migrations/20180508055821 +db/schema_migrations/20180508100222 +db/schema_migrations/20180508102840 +db/schema_migrations/20180508135515 +db/schema_migrations/20180511090724 +db/schema_migrations/20180511131058 +db/schema_migrations/20180511174224 +db/schema_migrations/20180512061621 +db/schema_migrations/20180514161336 +db/schema_migrations/20180515005612 +db/schema_migrations/20180515121227 +db/schema_migrations/20180517082340 +db/schema_migrations/20180523042841 +db/schema_migrations/20180523125103 +db/schema_migrations/20180524132016 +db/schema_migrations/20180529093006 +db/schema_migrations/20180529152628 +db/schema_migrations/20180530135500 +db/schema_migrations/20180531185349 +db/schema_migrations/20180531220618 +db/schema_migrations/20180601213245 +db/schema_migrations/20180603190921 +db/schema_migrations/20180604123514 +db/schema_migrations/20180607071808 +db/schema_migrations/20180608091413 +db/schema_migrations/20180608110058 +db/schema_migrations/20180608201435 +db/schema_migrations/20180612103626 +db/schema_migrations/20180613081317 +db/schema_migrations/20180625113853 +db/schema_migrations/20180626125654 +db/schema_migrations/20180628124813 +db/schema_migrations/20180629153018 +db/schema_migrations/20180629191052 +db/schema_migrations/20180702120647 +db/schema_migrations/20180702124358 +db/schema_migrations/20180702134423 +db/schema_migrations/20180704145007 +db/schema_migrations/20180704204006 +db/schema_migrations/20180705160945 +db/schema_migrations/20180706223200 +db/schema_migrations/20180710162338 +db/schema_migrations/20180711103851 +db/schema_migrations/20180711103922 +db/schema_migrations/20180713092803 +db/schema_migrations/20180717125853 +db/schema_migrations/20180718005113 +db/schema_migrations/20180720023512 +db/schema_migrations/20180722103201 +db/schema_migrations/20180723135214 +db/schema_migrations/20180726172057 +db/schema_migrations/20180807153545 +db/schema_migrations/20180808162000 +db/schema_migrations/20180809195358 +db/schema_migrations/20180813101999 +db/schema_migrations/20180813102000 +db/schema_migrations/20180814153625 +db/schema_migrations/20180815040323 +db/schema_migrations/20180815160409 +db/schema_migrations/20180815170510 +db/schema_migrations/20180815175440 +db/schema_migrations/20180816161409 +db/schema_migrations/20180816193530 +db/schema_migrations/20180824202952 +db/schema_migrations/20180826111825 +db/schema_migrations/20180831164905 +db/schema_migrations/20180831164907 +db/schema_migrations/20180831164908 +db/schema_migrations/20180831164909 +db/schema_migrations/20180831164910 +db/schema_migrations/20180901171833 +db/schema_migrations/20180901200537 +db/schema_migrations/20180902070406 +db/schema_migrations/20180906101639 +db/schema_migrations/20180907015926 +db/schema_migrations/20180910115836 +db/schema_migrations/20180910153412 +db/schema_migrations/20180910153413 +db/schema_migrations/20180912111628 +db/schema_migrations/20180913142237 +db/schema_migrations/20180914162043 +db/schema_migrations/20180914201132 +db/schema_migrations/20180916011959 +db/schema_migrations/20180917172041 +db/schema_migrations/20180924141949 +db/schema_migrations/20180924190739 +db/schema_migrations/20180924201039 +db/schema_migrations/20180925200829 +db/schema_migrations/20180927073410 +db/schema_migrations/20181002172433 +db/schema_migrations/20181005110927 +db/schema_migrations/20181005125926 +db/schema_migrations/20181006004100 +db/schema_migrations/20181008145341 +db/schema_migrations/20181008145359 +db/schema_migrations/20181008200441 +db/schema_migrations/20181009190428 +db/schema_migrations/20181010133639 +db/schema_migrations/20181010235606 +db/schema_migrations/20181013005024 +db/schema_migrations/20181014203236 +db/schema_migrations/20181015155839 +db/schema_migrations/20181016141739 +db/schema_migrations/20181016152238 +db/schema_migrations/20181017001059 +db/schema_migrations/20181019032400 +db/schema_migrations/20181019032408 +db/schema_migrations/20181019105553 +db/schema_migrations/20181022135539 +db/schema_migrations/20181022173835 +db/schema_migrations/20181023104858 +db/schema_migrations/20181023144439 +db/schema_migrations/20181025115728 +db/schema_migrations/20181026091631 +db/schema_migrations/20181026143227 +db/schema_migrations/20181027114222 +db/schema_migrations/20181028120717 +db/schema_migrations/20181030135124 +db/schema_migrations/20181030154446 +db/schema_migrations/20181031145139 +db/schema_migrations/20181031190558 +db/schema_migrations/20181031190559 +db/schema_migrations/20181101091005 +db/schema_migrations/20181101091124 +db/schema_migrations/20181101144347 +db/schema_migrations/20181101191341 +db/schema_migrations/20181105201455 +db/schema_migrations/20181106135939 +db/schema_migrations/20181107054254 +db/schema_migrations/20181108091549 +db/schema_migrations/20181112103239 +db/schema_migrations/20181115140140 +db/schema_migrations/20181116050532 +db/schema_migrations/20181116141415 +db/schema_migrations/20181116141504 +db/schema_migrations/20181119081539 +db/schema_migrations/20181119132520 +db/schema_migrations/20181120082911 +db/schema_migrations/20181120091639 +db/schema_migrations/20181120151656 +db/schema_migrations/20181121101842 +db/schema_migrations/20181121101843 +db/schema_migrations/20181121111200 +db/schema_migrations/20181122160027 +db/schema_migrations/20181123042307 +db/schema_migrations/20181123135036 +db/schema_migrations/20181123144235 +db/schema_migrations/20181126150622 +db/schema_migrations/20181126153547 +db/schema_migrations/20181128123704 +db/schema_migrations/20181129104854 +db/schema_migrations/20181129104944 +db/schema_migrations/20181130102132 +db/schema_migrations/20181203002526 +db/schema_migrations/20181205171941 +db/schema_migrations/20181211092510 +db/schema_migrations/20181211092514 +db/schema_migrations/20181212104941 +db/schema_migrations/20181212171634 +db/schema_migrations/20181219130552 +db/schema_migrations/20181219145520 +db/schema_migrations/20181219145521 +# Removed in 71a3b0e470c64fccbb902390b1f856ee1547a978 +db/schema_migrations/20190225160300 +# Removed in 44f9d16edca328e5bb234b853f0d670ee0b30a26 +db/schema_migrations/20200615101135 +# Removed in cfae6ec2647 +db/schema_migrations/20180502134117 +db/schema_migrations/20180521162137 +db/schema_migrations/20180619121030 +db/schema_migrations/20180723130817 +db/schema_migrations/20180906051323 +db/schema_migrations/20180913051323 +db/schema_migrations/20180916014356 +db/schema_migrations/20181014121030 +db/schema_migrations/20181204154019 +db/schema_migrations/20180103234731 +db/schema_migrations/20180104001824 +db/schema_migrations/20180105233807 +db/schema_migrations/20180109150457 +db/schema_migrations/20180115013218 +db/schema_migrations/20180126165535 +db/schema_migrations/20180131104538 +db/schema_migrations/20180201101405 +db/schema_migrations/20180201192230 +db/schema_migrations/20180206184810 +db/schema_migrations/20180215143644 +db/schema_migrations/20180225180932 +db/schema_migrations/20180302230551 +db/schema_migrations/20180307164427 +db/schema_migrations/20180308234102 +db/schema_migrations/20180314174825 +db/schema_migrations/20180317020334 +db/schema_migrations/20180320142552 +db/schema_migrations/20180325034910 +db/schema_migrations/20180329230151 +db/schema_migrations/20180401213713 +db/schema_migrations/20180416112831 +db/schema_migrations/20180416205949 +db/schema_migrations/20180419031622 +db/schema_migrations/20180419171038 +db/schema_migrations/20180423165301 +db/schema_migrations/20180502124117 +db/schema_migrations/20180502125859 +db/schema_migrations/20180503154922 +db/schema_migrations/20180520211048 +db/schema_migrations/20180524115107 +db/schema_migrations/20180531031410 +db/schema_migrations/20180531221734 +db/schema_migrations/20180607154422 +db/schema_migrations/20180607154516 +db/schema_migrations/20180607154645 +db/schema_migrations/20180612175636 +db/schema_migrations/20180615152524 +db/schema_migrations/20180621100024 +db/schema_migrations/20180621100025 +db/schema_migrations/20180623053658 +db/schema_migrations/20180626171125 +db/schema_migrations/20180702114215 +db/schema_migrations/20180702181530 +db/schema_migrations/20180709153607 +db/schema_migrations/20180709183353 +db/schema_migrations/20180709184533 +db/schema_migrations/20180711014025 +db/schema_migrations/20180711014026 +db/schema_migrations/20180718100455 +db/schema_migrations/20180719161844 +db/schema_migrations/20180720082636 +db/schema_migrations/20180720120716 +db/schema_migrations/20180720120726 +db/schema_migrations/20180720121404 +db/schema_migrations/20180723023517 +db/schema_migrations/20180723081631 +db/schema_migrations/20180723134433 +db/schema_migrations/20180724161450 +db/schema_migrations/20180803001726 +db/schema_migrations/20180803041220 +db/schema_migrations/20180806145747 +db/schema_migrations/20180823132905 +db/schema_migrations/20180831134049 +db/schema_migrations/20180831152625 +db/schema_migrations/20180910104020 +db/schema_migrations/20180910105100 +db/schema_migrations/20180912113336 +db/schema_migrations/20180917145556 +db/schema_migrations/20180917171038 +db/schema_migrations/20180917171533 +db/schema_migrations/20180917171534 +db/schema_migrations/20180917171535 +db/schema_migrations/20180917213751 +db/schema_migrations/20180917214204 +db/schema_migrations/20180920043317 +db/schema_migrations/20180924070647 +db/schema_migrations/20180926101838 +db/schema_migrations/20180926140319 +db/schema_migrations/20180930171532 +db/schema_migrations/20181001172126 +db/schema_migrations/20181001172651 +db/schema_migrations/20181004131020 +db/schema_migrations/20181004131025 +db/schema_migrations/20181012151642 +db/schema_migrations/20181017131623 +db/schema_migrations/20181022131445 +db/schema_migrations/20181025000427 +db/schema_migrations/20181025030732 +db/schema_migrations/20181026085436 +db/schema_migrations/20181028092114 +db/schema_migrations/20181028092115 +db/schema_migrations/20181105122803 +db/schema_migrations/20181114163403 +db/schema_migrations/20181121174028 +db/schema_migrations/20181121175359 +db/schema_migrations/20181123090058 +db/schema_migrations/20181123100058 +db/schema_migrations/20181126125616 +db/schema_migrations/20181127130125 +db/schema_migrations/20181127133629 +db/schema_migrations/20181127203117 +db/schema_migrations/20181201151856 +db/schema_migrations/20181203154104 +db/schema_migrations/20181204031328 +db/schema_migrations/20181204031329 +db/schema_migrations/20181204031330 +db/schema_migrations/20181204031331 +db/schema_migrations/20181204135519 +db/schema_migrations/20181204135932 +db/schema_migrations/20181205093951 +db/schema_migrations/20181206121338 +db/schema_migrations/20181220163029 +db/schema_migrations/20181221135205 +db/schema_migrations/20181228140935 +db/schema_migrations/20190110200434 +db/schema_migrations/20190111183834 +db/schema_migrations/20190114040404 +db/schema_migrations/20190114040405 +db/schema_migrations/20190121140418 +db/schema_migrations/20190121140658 +db/schema_migrations/20190122101816 +db/schema_migrations/20190123211816 +db/schema_migrations/20190128104236 +db/schema_migrations/20190128172533 +db/schema_migrations/20190129013538 +db/schema_migrations/20190130164903 +db/schema_migrations/20190218031401 +db/schema_migrations/20190218144405 +db/schema_migrations/20190219134239 +db/schema_migrations/20190219210244 +db/schema_migrations/20190220112238 +db/schema_migrations/20190222105948 +db/schema_migrations/20190222110418 +db/schema_migrations/20190225173106 +db/schema_migrations/20190226154144 +db/schema_migrations/20190228134845 +db/schema_migrations/20190301095211 +db/schema_migrations/20190301182031 +db/schema_migrations/20190302144241 +db/schema_migrations/20190304020812 +db/schema_migrations/20190304223216 +db/schema_migrations/20190304223220 +db/schema_migrations/20190305162221 +db/schema_migrations/20190318020549 +db/schema_migrations/20190318021429 +db/schema_migrations/20190318120957 +db/schema_migrations/20190320162221 +db/schema_migrations/20190321103531 +db/schema_migrations/20190322145954 +db/schema_migrations/20190327085945 +db/schema_migrations/20190328210840 +db/schema_migrations/20190401150745 +db/schema_migrations/20190401150746 +db/schema_migrations/20190402112450 +db/schema_migrations/20180309215236 +db/schema_migrations/20180314172513 +db/schema_migrations/20180417102933 +db/schema_migrations/20180502130136 +db/schema_migrations/20180509091305 +db/schema_migrations/20180605213516 +db/schema_migrations/20180608150653 +db/schema_migrations/20180618193715 +db/schema_migrations/20180713171825 +db/schema_migrations/20180815043102 +db/schema_migrations/20180914195058 +db/schema_migrations/20181014131030 +db/schema_migrations/20181115140251 +db/schema_migrations/20181116100917 +db/schema_migrations/20181204040404 +db/schema_migrations/20181206121340 +db/schema_migrations/20181215161939 +db/schema_migrations/20181220165848 +db/schema_migrations/20190111231855 +# Removed in ef1efa0f650 +db/schema_migrations/20180406204716 +db/schema_migrations/20180521171529 +db/schema_migrations/20180831164904 +# Removed in 28ac2d30498 +db/schema_migrations/20180202111106 +# Removed in b87dcc238a8 +db/schema_migrations/20181218192239 + +# Removed in various revert commits +db/schema_migrations/20180115094742 +db/schema_migrations/20180115113902 +db/schema_migrations/20190107151029 +db/schema_migrations/20190114184258 +db/schema_migrations/20190228092516 +db/schema_migrations/20190311132500 +db/schema_migrations/20190311132527 +db/schema_migrations/20190703001116 +db/schema_migrations/20190703001120 +db/schema_migrations/20190724091326 +db/schema_migrations/20190801072937 +db/schema_migrations/20191004134055 +db/schema_migrations/20191029060358 +db/schema_migrations/20191029061556 +db/schema_migrations/20191220102807 +db/schema_migrations/20200123092602 +db/schema_migrations/20200123101859 +db/schema_migrations/20200127111953 +db/schema_migrations/20200127131953 +db/schema_migrations/20200127141953 +db/schema_migrations/20200127151953 +db/schema_migrations/20200206111847 +db/schema_migrations/20200214173000 +db/schema_migrations/20200214174519 +db/schema_migrations/20200214174607 +db/schema_migrations/20200309105539 +db/schema_migrations/20200615203153 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a5b80c7ca5..0662ce2197 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,12 +10,13 @@ stages: - qa - post-qa - pages + - notify # always use `gitlab-org` runners, however # in cases where jobs require Docker-in-Docker, the job # definition must be extended with `.use-docker-in-docker` default: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.27-lfs-2.9-chrome-83-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34" + image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34" tags: - gitlab-org # All jobs are interruptible by default @@ -62,6 +63,27 @@ variables: ELASTIC_URL: "http://elastic:changeme@elasticsearch:9200" DOCKER_VERSION: "19.03.0" + # Preparing custom clone path to reduce space used by all random forks + # on GitLab.com's Shared Runners. Our main forks - especially the security + # ones - will have this variable overwritten in the project settings, so that + # a security-related code or code using our protected variables will be never + # stored on the same path as the community forks. + # Part of the solution for the `no space left on device` problem described at + # https://gitlab.com/gitlab-org/gitlab/issues/197876. + # + # For this purpose the https://gitlab.com/gitlab-org-forks group was created + # to host a placeholder for the `/builds/gitlab-org-forks` path and ensure + # that no legitimate project will ever use it and - by mistake - execute its + # job on a shared working directory. It also requires proper configuration of + # the Runner that executes the job (which was prepared for our shared runners + # by https://ops.gitlab.net/gitlab-cookbooks/chef-repo/-/merge_requests/3977). + # + # Because of all of that PLEASE DO NOT CHANGE THE PATH. + # + # For more details and reasoning that brought this change please check + # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/24887 + GIT_CLONE_PATH: "/builds/gitlab-org-forks/${CI_PROJECT_NAME}" + include: - local: .gitlab/ci/build-images.gitlab-ci.yml - local: .gitlab/ci/cache-repo.gitlab-ci.yml @@ -81,3 +103,4 @@ include: - local: .gitlab/ci/test-metadata.gitlab-ci.yml - local: .gitlab/ci/yaml.gitlab-ci.yml - local: .gitlab/ci/releases.gitlab-ci.yml + - local: .gitlab/ci/notify.gitlab-ci.yml diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index 4e2c4aa5c7..7a5516338e 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -2,13 +2,12 @@ # project here: https://gitlab.com/gitlab-org/gitlab/-/project_members # As described in https://docs.gitlab.com/ee/user/project/code_owners.html -# Backend Maintainers are the default for all ruby files +[Backend] *.rb @gitlab-org/maintainers/rails-backend *.rake @gitlab-org/maintainers/rails-backend -# Technical writing team are the default reviewers for all markdown docs +[Documentation] /doc/ @gl-docsteam -# Doc subpaths /doc/administration/monitoring/ @aqualls /doc/development/ @marcia @mjang1 /doc/development/documentation/ @mikelewis @@ -19,7 +18,127 @@ /doc/user/project/clusters @aqualls /doc/.vale/ @marcel.amirault @eread @aqualls @mikelewis -# Frontend maintainers should see everything in `app/assets/` +[Docs Create] +/doc/user/project/merge_requests/allow_collaboration.md @marcia +/doc/user/project/merge_requests/authorization_for_merge_requests.md @marcia +/doc/user/project/merge_requests/cherry_pick_changes.md @marcia +/doc/user/project/merge_requests/creating_merge_requests.md @marcia +/doc/user/project/merge_requests/fast_forward_merge.md @marcia +/doc/user/project/merge_requests/getting_started.md @marcia +/doc/user/project/merge_requests/index.md @marcia +/doc/user/project/merge_requests/merge_request_approvals.md @marcia +/doc/user/project/merge_requests/merge_request_dependencies.md @marcia +/doc/user/project/merge_requests/resolve_conflicts.md @marcia +/doc/user/project/merge_requests/revert_changes.md @marcia +/doc/user/project/merge_requests/reviewing_and_managing_merge_requests.md @marcia +/doc/user/project/merge_requests/squash_and_merge.md @marcia +/doc/user/project/merge_requests/work_in_progress_merge_requests.md @marcia +/doc/user/project/repository/file_finder.md @marcia +/doc/user/project/repository/forking_workflow.md @marcia +/doc/user/project/repository/git_blame.md @marcia +/doc/user/project/repository/git_history.md @marcia +/doc/user/project/repository/index.md @marcia +/doc/user/project/repository/repository_mirroring.md @marcia +/doc/user/project/repository/web_editor.md @marcia +/doc/user/project/autocomplete_characters.md @marcia +/doc/user/project/badges.md @marcia +/doc/user/project/code_intelligence.md @marcia +/doc/user/project/code_owners.md @marcia +/doc/user/project/file_lock.md @marcia +/doc/user/project/git_attributes.md @marcia +/doc/user/project/highlighting.md @marcia +/doc/user/project/index.md @marcia +/doc/user/project/protected_branches.md @marcia +/doc/user/project/protected_tags.md @marcia +/doc/user/project/push_options.md @marcia +/doc/user/project/repository/branches/index.md @marcia +/doc/user/project/repository/gpg_signed_commits/index.md @marcia +/doc/user/project/repository/jupyter_notebooks/index.md @marcia +/doc/user/project/repository/x509_signed_commits/index.md @marcia +/doc/user/project/settings/import_export.md @marcia +/doc/user/project/settings/index.md @marcia +/doc/user/project/settings/project_access_tokens.md @marcia +/doc/user/project/static_site_editor/index.md @marcia +/doc/user/project/web_ide/index.md @marcia +/doc/user/project/wiki/index.md @marcia +/doc/gitlab-basics/README.md @marcia +/doc/gitlab-basics/add-file.md @marcia +/doc/gitlab-basics/command-line-commands.md @marcia +/doc/gitlab-basics/create-branch.md @marcia +/doc/gitlab-basics/create-project.md @marcia +/doc/gitlab-basics/create-your-ssh-keys.md @marcia +/doc/gitlab-basics/feature_branch_workflow.md @marcia +/doc/gitlab-basics/fork-project.md @marcia +/doc/gitlab-basics/start-using-git.md @marcia +/doc/integration/sourcegraph.md @marcia +/doc/intro/README.md @marcia +/doc/push_rules/push_rules.md @marcia +/doc/ssh/README.md @marcia +/doc/topics/git/feature_branch_development.md @marcia +/doc/topics/git/how_to_install_git/index.md @marcia +/doc/topics/git/index.md @marcia +/doc/topics/git/lfs/index.md @marcia +/doc/topics/git/lfs/migrate_from_git_annex_to_git_lfs.md @marcia +/doc/topics/git/numerous_undo_possibilities_in_git/index.md @marcia +/doc/topics/git/partial_clone.md @marcia +/doc/topics/git/troubleshooting_git.md @marcia +/doc/topics/git/useful_git_commands.md @marcia +/doc/topics/gitlab_flow.md @marcia +/doc/user/index.md @marcia +/doc/user/snippets.md @marcia +/doc/administration/issue_closing_pattern.md @marcia +/doc/user/asciidoc.md @marcia +/doc/user/markdown.md @marcia +/doc/user/search/advanced_global_search.md @marcia +/doc/user/search/advanced_search_syntax.md @marcia +/doc/user/search/index.md @marcia +/doc/administration/file_hooks.md @marcia +/doc/administration/git_annex.md @marcia +/doc/administration/git_protocol.md @marcia +/doc/administration/integration/plantuml.md @marcia +/doc/administration/invalidate_markdown_cache.md @marcia +/doc/administration/issue_closing_pattern.md @marcia +/doc/administration/lfs/index.md @marcia +/doc/administration/merge_request_diffs.md @marcia +/doc/administration/repository_checks.md @marcia +/doc/administration/snippets/index.md @marcia +/doc/administration/static_objects_external_storage.md @marcia +/doc/api/access_requests.md @marcia +/doc/api/branches.md @marcia +/doc/api/commits.md @marcia +/doc/api/discussions.md @marcia +/doc/api/group_wikis.md @marcia +/doc/api/keys.md @marcia +/doc/api/markdown.md @marcia +/doc/api/merge_request_approvals.md @marcia +/doc/api/merge_request_context_commits.md @marcia +/doc/api/merge_requests.md @marcia +/doc/api/project_aliases.md @marcia +/doc/api/project_badges.md @marcia +/doc/api/project_import_export.md @marcia +/doc/api/project_level_variables.md @marcia +/doc/api/project_snippets.md @marcia +/doc/api/project_statistics.md @marcia +/doc/api/project_templates.md @marcia +/doc/api/project_vulnerabilities.md @marcia +/doc/api/protected_branches.md @marcia +/doc/api/protected_tags.md @marcia +/doc/api/remote_mirrors.md @marcia +/doc/api/repositories.md @marcia +/doc/api/repository_files.md @marcia +/doc/api/repository_submodules.md @marcia +/doc/api/search.md @marcia +/doc/api/snippets.md @marcia +/doc/api/suggestions.md @marcia +/doc/api/tags.md @marcia +/doc/api/visual_review_discussions.md @marcia +/doc/api/wikis.md @marcia +/doc/user/admin_area/settings/account_and_limit_settings.md @marcia +/doc/user/admin_area/settings/instance_template_repository.md @marcia +/doc/user/admin_area/settings/push_event_activities_limit.md @marcia +/doc/user/admin_area/settings/visibility_and_access_controls.md @marcia + +[Frontend] *.scss @annabeldunstone @gitlab-org/maintainers/frontend *.js @gitlab-org/maintainers/frontend /app/assets/ @gitlab-org/maintainers/frontend @@ -29,7 +148,7 @@ /spec/frontend/ @gitlab-org/maintainers/frontend /ee/spec/frontend/ @gitlab-org/maintainers/frontend -# Database maintainers should review changes in `db/` +[Database] /db/ @gitlab-org/maintainers/database /ee/db/ @gitlab-org/maintainers/database /lib/gitlab/background_migration/ @gitlab-org/maintainers/database @@ -41,19 +160,7 @@ /app/finders/ @gitlab-org/maintainers/database /ee/app/finders/ @gitlab-org/maintainers/database -# Feature specific owners -/ee/lib/ee/gitlab/auth/ldap/ @dblessing @mkozono -/lib/gitlab/auth/ldap/ @dblessing @mkozono -/lib/gitlab/ci/templates/ @nolith @dosuken123 -/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml @DylanGriffith @mayra-cabrera @tkuah -/lib/gitlab/ci/templates/Security/ @plafoucriere @gonzoyumo @twoodham @sethgitlab -/ee/app/models/project_alias.rb @patrickbajao -/ee/lib/api/project_aliases.rb @patrickbajao - -# Quality owned files -/qa/ @gl-quality - -# Engineering Productivity owned files +[Engineering Productivity] /.gitlab-ci.yml @gl-quality/eng-prod /.gitlab/ci/ @gl-quality/eng-prod /.gitlab/ci/docs.gitlab-ci.yml @gl-quality/eng-prod @gl-docsteam @@ -66,16 +173,45 @@ Dangerfile @gl-quality/eng-prod /scripts/frontend/ @gl-quality/eng-prod @gitlab-org/maintainers/frontend .editorconfig @gl-quality/eng-prod -# Telemetry owner files -/ee/lib/gitlab/usage_data_counters/ @gitlab-org/growth/telemetry -/ee/lib/ee/gitlab/usage_data.rb @gitlab-org/growth/telemetry -/lib/gitlab/grafana_embed_usage_data.rb @gitlab-org/growth/telemetry -/lib/gitlab/usage_data.rb @gitlab-org/growth/telemetry -/lib/gitlab/cycle_analytics/usage_data.rb @gitlab-org/growth/telemetry -/lib/gitlab/usage_data_counters/ @gitlab-org/growth/telemetry +[End-to-end] +/qa/ @gl-quality + +[LDAP] +/ee/lib/ee/gitlab/auth/ldap/ @dblessing @mkozono +/lib/gitlab/auth/ldap/ @dblessing @mkozono + +[Templates] +/lib/gitlab/ci/templates/ @nolith @dosuken123 +/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml @DylanGriffith @mayra-cabrera @tkuah +/lib/gitlab/ci/templates/Security/ @plafoucriere @gonzoyumo @twoodham @sethgitlab + +[Project Alias] +/ee/app/models/project_alias.rb @patrickbajao +/ee/lib/api/project_aliases.rb @patrickbajao + +# Secure & Threat Management ownership delineation +# https://about.gitlab.com/handbook/engineering/development/threat-management/delineate-secure-threat-management.html#technical-boundaries +[Secure] +/ee/app/models/vulnerability.rb @gitlab-org/secure/threat-insights-backend-team +/ee/app/models/security/ @gitlab-org/secure/threat-insights-backend-team +/ee/app/models/vulnerabilities/ @gitlab-org/secure/threat-insights-backend-team +/ee/lib/gitlab/ci/parsers/license_compliance/ @gitlab-org/secure/composition-analysis-be +/ee/lib/gitlab/ci/parsers/security/ @gitlab-org/secure/composition-analysis-be @gitlab-org/secure/dynamic-analysis-be @gitlab-org/secure/static-analysis-be @gitlab-org/secure/fuzzing-be +/ee/lib/gitlab/ci/reports/coverage_fuzzing/ @gitlab-org/secure/fuzzing-be +/ee/lib/gitlab/ci/reports/dependency_list/ @gitlab-org/secure/composition-analysis-be +/ee/lib/gitlab/ci/reports/license_scanning/ @gitlab-org/secure/composition-analysis-be +/ee/lib/gitlab/ci/reports/security/ @gitlab-org/secure/composition-analysis-be @gitlab-org/secure/dynamic-analysis-be @gitlab-org/secure/static-analysis-be @gitlab-org/secure/fuzzing-be [Code Owners] /ee/lib/gitlab/code_owners.rb @reprazent @kerrizor @garyh /ee/lib/gitlab/code_owners/ @reprazent @kerrizor @garyh /ee/spec/lib/gitlab/code_owners/ @reprazent @kerrizor @garyh /doc/user/project/code_owners.md @reprazent @kerrizor @garyh + +[Telemetry] +/ee/lib/gitlab/usage_data_counters/ @gitlab-org/growth/telemetry/engineers +/ee/lib/ee/gitlab/usage_data.rb @gitlab-org/growth/telemetry/engineers +/lib/gitlab/grafana_embed_usage_data.rb @gitlab-org/growth/telemetry/engineers +/lib/gitlab/usage_data.rb @gitlab-org/growth/telemetry/engineers +/lib/gitlab/cycle_analytics/usage_data.rb @gitlab-org/growth/telemetry/engineers +/lib/gitlab/usage_data_counters/ @gitlab-org/growth/telemetry/engineers diff --git a/.gitlab/ci/docs.gitlab-ci.yml b/.gitlab/ci/docs.gitlab-ci.yml index 8745e7d8e9..62546e5936 100644 --- a/.gitlab/ci/docs.gitlab-ci.yml +++ b/.gitlab/ci/docs.gitlab-ci.yml @@ -27,7 +27,7 @@ review-docs-deploy: extends: .review-docs script: - - ./scripts/trigger-build-docs deploy + - ./scripts/trigger-build docs deploy # Cleanup remote environment of gitlab-docs review-docs-cleanup: @@ -36,7 +36,7 @@ review-docs-cleanup: name: review-docs/$DOCS_GITLAB_REPO_SUFFIX-$CI_MERGE_REQUEST_IID action: stop script: - - ./scripts/trigger-build-docs cleanup + - ./scripts/trigger-build docs cleanup docs lint: extends: diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index 084a48a7fc..27f56cd866 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -11,7 +11,7 @@ extends: - .frontend-base - .assets-compile-cache - image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-git-2.27-lfs-2.9-node-12.x-yarn-1.21-graphicsmagick-1.3.34 + image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-git-2.28-lfs-2.9-node-12.x-yarn-1.21-graphicsmagick-1.3.34 variables: WEBPACK_VENDOR_DLL: "true" stage: prepare diff --git a/.gitlab/ci/global.gitlab-ci.yml b/.gitlab/ci/global.gitlab-ci.yml index 3101a42c05..238059bf97 100644 --- a/.gitlab/ci/global.gitlab-ci.yml +++ b/.gitlab/ci/global.gitlab-ci.yml @@ -64,39 +64,39 @@ policy: pull .use-pg11: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.27-lfs-2.9-chrome-83-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34" + image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34" services: - name: postgres:11.6 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] - - name: redis:alpine + - name: redis:4.0-alpine variables: POSTGRES_HOST_AUTH_METHOD: trust .use-pg12: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.27-lfs-2.9-chrome-83-node-12.x-yarn-1.21-postgresql-12-graphicsmagick-1.3.34" + image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-12-graphicsmagick-1.3.34" services: - name: postgres:12 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] - - name: redis:alpine + - name: redis:4.0-alpine variables: POSTGRES_HOST_AUTH_METHOD: trust .use-pg11-ee: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.27-lfs-2.9-chrome-83-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34" + image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34" services: - name: postgres:11.6 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] - - name: redis:alpine + - name: redis:4.0-alpine - name: elasticsearch:6.4.2 variables: POSTGRES_HOST_AUTH_METHOD: trust .use-pg12-ee: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.27-lfs-2.9-chrome-83-node-12.x-yarn-1.21-postgresql-12-graphicsmagick-1.3.34" + image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-12-graphicsmagick-1.3.34" services: - name: postgres:12 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] - - name: redis:alpine + - name: redis:4.0-alpine - name: elasticsearch:6.4.2 variables: POSTGRES_HOST_AUTH_METHOD: trust diff --git a/.gitlab/ci/notify.gitlab-ci.yml b/.gitlab/ci/notify.gitlab-ci.yml new file mode 100644 index 0000000000..fcdd5ee97d --- /dev/null +++ b/.gitlab/ci/notify.gitlab-ci.yml @@ -0,0 +1,23 @@ +.notify-slack: + image: alpine + stage: notify + dependencies: [] + cache: {} + before_script: + - apk update && apk add git curl bash + +notify-update-gitaly: + extends: + - .notify-slack + rules: + - if: '$CI_MERGE_REQUEST_IID && $CI_COMMIT_BRANCH == $GITALY_UPDATE_BRANCH' + when: on_failure + allow_failure: true + variables: + NOTIFY_CHANNEL: g_create_gitaly + GITALY_UPDATE_BRANCH: release-tools/update-gitaly + MERGE_REQUEST_URL: ${CI_MERGE_REQUEST_PROJECT_URL}/-/merge_requests/${CI_MERGE_REQUEST_IID} + script: + - echo "NOTIFY_CHANNEL is ${NOTIFY_CHANNEL}" + - echo "CI_PIPELINE_URL is ${CI_PIPELINE_URL}" + - scripts/slack ${NOTIFY_CHANNEL} "☠️ \`${GITALY_UPDATE_BRANCH}\` failed! ☠️ See ${CI_PIPELINE_URL} (triggered from ${MERGE_REQUEST_URL})" ci_failing diff --git a/.gitlab/ci/qa.gitlab-ci.yml b/.gitlab/ci/qa.gitlab-ci.yml index 9a81ea513b..96a8f093fe 100644 --- a/.gitlab/ci/qa.gitlab-ci.yml +++ b/.gitlab/ci/qa.gitlab-ci.yml @@ -59,6 +59,10 @@ package-and-qa: extends: - .package-and-qa-base - .qa:rules:package-and-qa + # This job often times out, so temporarily use private runners and a long timeout: https://gitlab.com/gitlab-org/gitlab/-/issues/238563 + tags: + - prm + timeout: 4h needs: - job: build-qa-image artifacts: false diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml index 4cef4ee26f..0b54626f69 100644 --- a/.gitlab/ci/rails.gitlab-ci.yml +++ b/.gitlab/ci/rails.gitlab-ci.yml @@ -70,7 +70,6 @@ - run_timed_command "scripts/gitaly-test-build" - run_timed_command "scripts/gitaly-test-spawn" - source scripts/rspec_helpers.sh - - scripts/prepare_postgres_fdw.sh - rspec_paralellized_job "--tag ~quarantine --tag geo" .rspec-ee-base-geo-pg11: diff --git a/.gitlab/ci/reports.gitlab-ci.yml b/.gitlab/ci/reports.gitlab-ci.yml index 228747ae8d..b9f81f2eb0 100644 --- a/.gitlab/ci/reports.gitlab-ci.yml +++ b/.gitlab/ci/reports.gitlab-ci.yml @@ -15,7 +15,7 @@ code_quality: stage: test needs: [] variables: - CODE_QUALITY_IMAGE: "registry.gitlab.com/gitlab-org/ci-cd/codequality:0.85.10" + CODE_QUALITY_IMAGE: "registry.gitlab.com/gitlab-org/ci-cd/codequality:0.85.10-gitlab.1" script: - | if ! docker info &>/dev/null; then @@ -58,7 +58,7 @@ code_quality: SAST_ANALYZER_IMAGE_PREFIX: "registry.gitlab.com/gitlab-org/security-products/analyzers" SAST_ANALYZER_IMAGE_TAG: 2 SAST_BRAKEMAN_LEVEL: 2 # GitLab-specific - SAST_EXCLUDED_PATHS: qa,spec,doc,ee/spec # GitLab-specific + SAST_EXCLUDED_PATHS: qa,spec,doc,ee/spec,config/gitlab.yml.example # GitLab-specific SAST_DISABLE_BABEL: "true" script: - /analyzer run @@ -150,35 +150,35 @@ dependency_scanning: ## We need to duplicate this job's definition because it seems it's impossible to ## override an included `only.refs`. ## See https://gitlab.com/gitlab-org/gitlab/issues/31371. -#dast: -# extends: -# - .default-retry -# - .reports:rules:dast -# # This is needed so that manual jobs with needs don't block the pipeline. -# # See https://gitlab.com/gitlab-org/gitlab/-/issues/199979. -# dependencies: ["review-deploy"] -# stage: qa # GitLab-specific -# image: -# name: "registry.gitlab.com/gitlab-org/security-products/dast:$DAST_VERSION" -# variables: -# # To be done in a later iteration -# # DAST_USERNAME: "root" -# # DAST_USERNAME_FIELD: "user[login]" -# # DAST_PASSWORD_FIELD: "user[passowrd]" -# DAST_VERSION: 1 -# script: -# - 'export DAST_WEBSITE="${DAST_WEBSITE:-$(cat environment_url.txt)}"' -# # To be done in a later iteration -# # - 'export DAST_AUTH_URL="${DAST_WEBSITE}/users/sign_in"' -# # - 'export DAST_PASSWORD="${REVIEW_APPS_ROOT_PASSWORD}"' -# - /analyze -t $DAST_WEBSITE -# timeout: 4h -# artifacts: -# paths: -# - gl-dast-report.json # GitLab-specific -# reports: -# dast: gl-dast-report.json -# expire_in: 1 week # GitLab-specific +# dast: +# extends: +# - .default-retry +# - .reports:rules:dast +# # This is needed so that manual jobs with needs don't block the pipeline. +# # See https://gitlab.com/gitlab-org/gitlab/-/issues/199979. +# dependencies: ["review-deploy"] +# stage: qa # GitLab-specific +# image: +# name: "registry.gitlab.com/gitlab-org/security-products/dast:$DAST_VERSION" +# variables: +# # To be done in a later iteration +# # DAST_USERNAME: "root" +# # DAST_USERNAME_FIELD: "user[login]" +# # DAST_PASSWORD_FIELD: "user[passowrd]" +# DAST_VERSION: 1 +# script: +# - 'export DAST_WEBSITE="${DAST_WEBSITE:-$(cat environment_url.txt)}"' +# # To be done in a later iteration +# # - 'export DAST_AUTH_URL="${DAST_WEBSITE}/users/sign_in"' +# # - 'export DAST_PASSWORD="${REVIEW_APPS_ROOT_PASSWORD}"' +# - /analyze -t $DAST_WEBSITE +# timeout: 4h +# artifacts: +# paths: +# - gl-dast-report.json # GitLab-specific +# reports: +# dast: gl-dast-report.json +# expire_in: 1 week # GitLab-specific # To be done in a later iteration: https://gitlab.com/gitlab-org/gitlab/issues/31160#note_278188255 # schedule:dast: diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index f508bfa146..839a06862b 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -125,6 +125,7 @@ .db-patterns: &db-patterns - "{,ee/}{,spec/}{db,migrations}/**/*" - "{,ee/}{,spec/}lib/{,ee/}gitlab/background_migration/**/*" + - "config/prometheus/common_metrics.yml" # Used by Gitlab::DatabaseImporters::CommonMetrics::Importer .backstage-patterns: &backstage-patterns - "Dangerfile" diff --git a/.gitlab/issue_templates/Doc Review.md b/.gitlab/issue_templates/Doc Review.md index 5b470ed7c7..bd3843ac5c 100644 --- a/.gitlab/issue_templates/Doc Review.md +++ b/.gitlab/issue_templates/Doc Review.md @@ -3,7 +3,7 @@ + [listed for that stage](https://about.gitlab.com/handbook/product/product-categories/#devops-stages). --> ## References diff --git a/.gitlab/issue_templates/Documentation.md b/.gitlab/issue_templates/Documentation.md index 43ee7cd448..f05d7049b7 100644 --- a/.gitlab/issue_templates/Documentation.md +++ b/.gitlab/issue_templates/Documentation.md @@ -24,7 +24,7 @@ * Any concepts, procedures, reference info we could add to make it easier to successfully use GitLab? * Include use cases, benefits, and/or goals for this work. * If adding content: What audience is it intended for? (What roles and scenarios?) - For ideas, see personas at https://design.gitlab.com/research/personas or the persona labels at + For ideas, see personas at https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/ or the persona labels at https://gitlab.com/groups/gitlab-org/-/labels?utf8=%E2%9C%93&subscribed=&search=persona%3A --> diff --git a/.gitlab/issue_templates/Feature Flag Roll Out.md b/.gitlab/issue_templates/Feature Flag Roll Out.md index 7cb8871f5b..69053b396a 100644 --- a/.gitlab/issue_templates/Feature Flag Roll Out.md +++ b/.gitlab/issue_templates/Feature Flag Roll Out.md @@ -12,7 +12,7 @@ Remove the `:feature_name` feature flag ... ## Expectations -### What are we expecting to happen? +### What are we expecting to happen? ### What might happen if this goes wrong? diff --git a/.gitlab/issue_templates/Feature proposal.md b/.gitlab/issue_templates/Feature proposal.md index 589310b4ce..4e894b8ce8 100644 --- a/.gitlab/issue_templates/Feature proposal.md +++ b/.gitlab/issue_templates/Feature proposal.md @@ -1,8 +1,8 @@ - + ### Problem to solve - + ### Intended users @@ -78,7 +78,7 @@ See the test engineering planning process and reach out to your counterpart Soft ### What is the type of buyer? - ### Is this a cross-stage feature? @@ -87,4 +87,7 @@ In which enterprise tier should this feature go? See https://about.gitlab.com/ha ### Links / references + +/label ~devops:: ~group: ~Category: + /label ~feature diff --git a/.gitlab/issue_templates/QA Failure.md b/.gitlab/issue_templates/QA Failure.md index 2a8b1b2d2f..772f363ae3 100644 --- a/.gitlab/issue_templates/QA Failure.md +++ b/.gitlab/issue_templates/QA Failure.md @@ -68,10 +68,10 @@ a nightly pipeline, select ~"found:nightly". -/label ~P +/label ~P:: - + /milestone % diff --git a/.gitlab/issue_templates/Refactoring.md b/.gitlab/issue_templates/Refactoring.md index cd0ce8486f..d9466185ff 100644 --- a/.gitlab/issue_templates/Refactoring.md +++ b/.gitlab/issue_templates/Refactoring.md @@ -38,4 +38,12 @@ If you are aware of tests that need to be written or adjusted apart from unit te please list them here. --> -/label ~backstage + + +/label ~"feature::maintenance" diff --git a/.gitlab/issue_templates/Security Release.md b/.gitlab/issue_templates/Security Release Tracking Issue.md similarity index 68% rename from .gitlab/issue_templates/Security Release.md rename to .gitlab/issue_templates/Security Release Tracking Issue.md index b06f31f0e9..d2de7462ec 100644 --- a/.gitlab/issue_templates/Security Release.md +++ b/.gitlab/issue_templates/Security Release Tracking Issue.md @@ -8,12 +8,6 @@ Set the title to: `Security Release: 12.2.X, 12.1.X, and 12.0.X` ------- -## Releases tasks - -- https://gitlab.com/gitlab-org/release/docs/blob/master/general/security/release-manager.md -- https://gitlab.com/gitlab-org/release/docs/blob/master/general/security/developer.md -- https://gitlab.com/gitlab-org/release/docs/blob/master/general/security/security-engineer.md - ## Version issues: 12.2.X, 12.1.X, 12.0.X: {release task link} @@ -25,11 +19,15 @@ your security issues as related to this release tracking issue. You can do this in the "Linked issues" section below this issue description. :warning: If your security issues are not marked as related to this release -tracking issue, their merge requests may not be included in the security +tracking issue, their merge requests will not be included in the security release. -## QA -{QA issue link} +### Branches to target in GitLab Security + +Your Security Implementation Issue should have `4` merge requests associated: + +- [master and 3 backports](https://gitlab.com/gitlab-org/release/docs/-/blob/master/general/security/developer.md#backports) +- Backports should target the stable branches for the versions mentioned included in this Security Release ## Blog post diff --git a/.gitlab/issue_templates/Security developer workflow.md b/.gitlab/issue_templates/Security developer workflow.md index 7de137bd2e..d21da6a161 100644 --- a/.gitlab/issue_templates/Security developer workflow.md +++ b/.gitlab/issue_templates/Security developer workflow.md @@ -28,8 +28,8 @@ After your merge request has been approved according to our [approval guidelines * You can use the script `bin/secpick` instead of the following steps, to help you cherry-picking. See the [secpick documentation] - [ ] Create each MR targeting the stable branch `X-Y-stable`, using the [Security Release merge request template]. * Every merge request will have its own set of TODOs, so make sure to complete those. -- [ ] On the "Related merge requests" section, ensure all MRs are linked to this issue. - * This section should only list the merge requests created for this issue: One targeting `master` and the 3 backports. +- [ ] On the "Related merge requests" section, ensure that `4` merge requests are associated: The one targeting `master` and the `3` backports. +- [ ] If this issue requires less than `4` merge requests, post a message on the Security Release Tracking Issue and ping the Release Managers. ## Documentation and final details @@ -53,7 +53,7 @@ After your merge request has been approved according to our [approval guidelines | Description | Details | Further details| | -------- | -------- | -------- | | Versions affected | X.Y | | -| GitLab EE only | Yes/No | | +| GitLab EE only | Yes/No | | | Upgrade notes | | | | GitLab Settings updated | Yes/No| | | Migration required | Yes/No | | @@ -62,7 +62,6 @@ After your merge request has been approved according to our [approval guidelines [security process for developers]: https://gitlab.com/gitlab-org/release/docs/blob/master/general/security/developer.md [secpick documentation]: https://gitlab.com/gitlab-org/release/docs/-/blob/master/general/security/utilities/secpick_script.md [security Release merge request template]: https://gitlab.com/gitlab-org/security/gitlab/blob/master/.gitlab/merge_request_templates/Security%20Release.md -[code review process]: https://docs.gitlab.com/ee/development/code_review.html [approval guidelines]: https://docs.gitlab.com/ee/development/code_review.html#approval-guidelines [issue as related]: https://docs.gitlab.com/ee/user/project/issues/related_issues.html#adding-a-related-issue diff --git a/.gitlab/issue_templates/actionable_insight.md b/.gitlab/issue_templates/actionable_insight.md new file mode 100644 index 0000000000..08fbb30001 --- /dev/null +++ b/.gitlab/issue_templates/actionable_insight.md @@ -0,0 +1,31 @@ +## Actionable Insights +Actionable insights always have a follow-up action that needs to take place as a result of the research observation or data, and a clear recommendation or action associated with it. An actionable insight both defines the insight and clearly calls out the next step. These insights are tracked over time. + +#### Link + +- [ ] Provide the link to the Dovetail actionable insight you created earlier (this should contain all the essential details) +- [ ] If applicable, link this actionable insight issue back to the original Research Issue in the GitLab UX Research project + +#### Assign + +- [ ] Assign this issue to the appropriate Product Manager, Product Designer, or UX Researcher + +#### Description + +- [ ] Provide some brief detials on the actionable insight and the action to take + +------------------------------------------------------------------------------- + +| | PLEASE COMPLETE THE BELOW | +| ------ | ------ | +| Dovetail link: | (URL goes here) | +| Details: | (details go here) | +| Action to take: | (action goes here) | + + + + + + + + ~"Actionable Insight" diff --git a/.haml-lint_todo.yml b/.haml-lint_todo.yml index df515607d3..dabf7cd9a9 100644 --- a/.haml-lint_todo.yml +++ b/.haml-lint_todo.yml @@ -113,7 +113,6 @@ linters: - "app/views/help/instance_configuration.html.haml" - "app/views/help/instance_configuration/_gitlab_ci.html.haml" - "app/views/help/instance_configuration/_gitlab_pages.html.haml" - - "app/views/help/ui.html.haml" - "app/views/import/bitbucket/status.html.haml" - "app/views/import/bitbucket_server/status.html.haml" - "app/views/invites/show.html.haml" diff --git a/.markdownlint.json b/.markdownlint.json index 253b7bd0c9..1c276dc42b 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -7,6 +7,7 @@ "ul-style": { "style": "dash" }, + "no-trailing-spaces": false, "line-length": false, "no-duplicate-header": { "allow_different_nesting": true diff --git a/.overcommit.yml.example b/.overcommit.yml.example index 2cca4c0b48..e0f55dd4a1 100644 --- a/.overcommit.yml.example +++ b/.overcommit.yml.example @@ -44,6 +44,22 @@ PreCommit: # on_warn: fail # Treat all warnings as failures ScssLint: enabled: true + MarkdownLint: + enabled: true + description: 'Lint documentation for Markdown errors' + required_executable: 'node_modules/.bin/markdownlint' + flags: ['--config', '.markdownlint.json', 'doc/**/*.md'] + install_command: 'yarn install' + include: + - 'doc/**/*.md' + Vale: + enabled: true + description: 'Lint documentation for grammatical and formatting errors' + required_executable: 'vale' + flags: ['--config', '.vale.ini', '--minAlertLevel', 'error', 'doc'] + install_command: 'brew install vale # (or use another package manager)' + include: + - 'doc/**/*.md' CommitMsg: TextWidth: diff --git a/.rubocop.yml b/.rubocop.yml index bff2b7a32b..f3a264d1f2 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -9,6 +9,7 @@ require: inherit_from: - .rubocop_todo.yml - ./rubocop/rubocop-migrations.yml + - ./rubocop/rubocop-usage-data.yml inherit_mode: merge: @@ -335,6 +336,15 @@ Graphql/AuthorizeTypes: - 'spec/**/*.rb' - 'ee/spec/**/*.rb' +Graphql/JSONType: + Enabled: true + Include: + - 'app/graphql/**/*' + - 'ee/app/graphql/**/*' + Exclude: + - 'spec/**/*.rb' + - 'ee/spec/**/*.rb' + RSpec/EnvAssignment: Enable: true Include: @@ -433,6 +443,11 @@ RSpec/HaveGitlabHttpStatus: Style/MultilineWhenThen: Enabled: false +# We use EnforcedStyle of comparison here due to it being better +# performing code as seen in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/36221#note_375659681 +Style/NumericPredicate: + EnforcedStyle: comparison + Style/FloatDivision: Enabled: false @@ -455,8 +470,10 @@ Rails/TimeZone: Include: - 'app/controllers/**/*' - 'app/services/**/*' + - 'lib/**/*' - 'spec/controllers/**/*' - 'spec/services/**/*' + - 'spec/lib/**/*' - 'ee/app/controllers/**/*' - 'ee/app/services/**/*' - 'ee/spec/controllers/**/*' @@ -469,7 +486,8 @@ Rails/TimeZone: - 'spec/workers/**/*' - 'ee/app/workers/**/*' - 'ee/spec/workers/**/*' - + - 'ee/lib/**/*' + - 'ee/spec/lib/**/*' # WIP: See https://gitlab.com/gitlab-org/gitlab/-/issues/220040 Rails/SaveBang: @@ -481,3 +499,13 @@ Rails/SaveBang: - 'ee/spec/**/*.rb' - 'qa/spec/**/*.rb' - 'qa/qa/specs/**/*.rb' + +Cop/PutProjectRoutesUnderScope: + Include: + - 'config/routes/project.rb' + - 'ee/config/routes/project.rb' + +Cop/PutGroupRoutesUnderScope: + Include: + - 'config/routes/group.rb' + - 'ee/config/routes/group.rb' diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index e54d970c67..f020e0af58 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,6 +1,6 @@ # This configuration was generated by -# `rubocop --auto-gen-config` -# on 2020-05-20 16:32:14 -0400 using RuboCop version 0.82.0. +# `rubocop --auto-gen-config --exclude-limit 10000` +# on 2020-08-17 21:05:54 +1200 using RuboCop version 0.82.0. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new @@ -25,7 +25,6 @@ Layout/ClosingHeredocIndentation: - 'app/graphql/mutations/merge_requests/set_wip.rb' - 'ee/db/geo/migrate/20180322062741_migrate_ci_job_artifacts_to_separate_registry.rb' - 'ee/lib/gitlab/geo/health_check.rb' - - 'lib/gitlab/background_migration/populate_untracked_uploads.rb' - 'spec/features/merge_request/user_sees_diff_spec.rb' - 'spec/lib/gitlab/asciidoc_spec.rb' - 'spec/lib/gitlab/checks/project_moved_spec.rb' @@ -154,23 +153,6 @@ Layout/SpaceInsideBlockBraces: Layout/SpaceInsideParens: Enabled: false -# Offense count: 19 -Lint/DuplicateMethods: - Exclude: - - 'app/models/commit.rb' - - 'app/models/note.rb' - - 'lib/bitbucket/representation/repo.rb' - - 'lib/declarative_policy/base.rb' - - 'lib/gitlab/auth/ldap/person.rb' - - 'lib/gitlab/auth/o_auth/user.rb' - - 'lib/gitlab/ci/build/artifacts/metadata/entry.rb' - - 'lib/gitlab/cycle_analytics/base_event_fetcher.rb' - - 'lib/gitlab/diff/formatters/base_formatter.rb' - - 'lib/gitlab/git/blob.rb' - - 'lib/gitlab/git/repository.rb' - - 'lib/gitlab/git/tree.rb' - - 'lib/gitlab/git/wiki_page.rb' - # Offense count: 157 # Configuration parameters: MaximumRangeSize. Lint/MissingCopEnableDirective: @@ -275,7 +257,6 @@ Performance/Count: Exclude: - 'app/helpers/groups_helper.rb' - 'app/services/merge_requests/add_context_service.rb' - - 'ee/lib/gitlab/geo/fdw.rb' - 'ee/lib/gitlab/graphql/aggregations/epics/epic_node.rb' - 'ee/spec/controllers/projects/feature_flags_controller_spec.rb' - 'ee/spec/requests/api/feature_flags_spec.rb' @@ -303,11 +284,6 @@ Performance/Detect: RSpec/ContextWording: Enabled: false -# Offense count: 626 -# Cop supports --auto-correct. -RSpec/EmptyLineAfterLetBlock: - Enabled: false - # Offense count: 1121 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle. @@ -472,6 +448,166 @@ Rails/RakeEnvironment: Rails/SkipsModelValidations: Enabled: false +# Offense count: 308 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle. +# SupportedStyles: strict, flexible +Rails/TimeZone: + Enabled: true + Exclude: + - 'lib/gitlab/popen.rb' + - 'ee/lib/delay.rb' + - 'ee/lib/gitlab/elastic/helper.rb' + - 'ee/lib/gitlab/elastic/indexer.rb' + - 'ee/lib/gitlab/geo/base_request.rb' + - 'ee/lib/gitlab/geo/event_gap_tracking.rb' + - 'ee/lib/gitlab/geo/log_cursor/events/design_repository_updated_event.rb' + - 'ee/lib/gitlab/geo/log_cursor/events/repository_updated_event.rb' + - 'ee/lib/gitlab/geo/log_cursor/logger.rb' + - 'ee/lib/gitlab/geo/oauth/login_state.rb' + - 'ee/lib/gitlab/prometheus/queries/cluster_query.rb' + - 'ee/lib/gitlab/prometheus/queries/packet_flow_query.rb' + - 'ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb' + - 'ee/spec/lib/ee/gitlab/ci/pipeline/quota/job_activity_spec.rb' + - 'ee/spec/lib/gitlab/analytics/cycle_analytics/data_collector_spec.rb' + - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_summary_spec.rb' + - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_time_summary_spec.rb' + - 'ee/spec/lib/gitlab/auth/ldap/access_spec.rb' + - 'ee/spec/lib/gitlab/auth/smartcard/san_extension_spec.rb' + - 'ee/spec/lib/gitlab/auth/smartcard/session_spec.rb' + - 'ee/spec/lib/gitlab/background_migration/fix_orphan_promoted_issues_spec.rb' + - 'ee/spec/lib/gitlab/ci/pipeline/chain/limit/job_activity_spec.rb' + - 'ee/spec/lib/gitlab/elastic/client_spec.rb' + - 'ee/spec/lib/gitlab/geo/base_request_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/cache_invalidation_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/container_repository_updated_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/design_repository_updated_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/hashed_storage_attachments_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/hashed_storage_migrated_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/job_artifact_deleted_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/lfs_object_deleted_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/repositories_changed_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_created_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_deleted_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_renamed_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_updated_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/reset_checksum_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/events/upload_deleted_event_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/logger_spec.rb' + - 'ee/spec/lib/gitlab/git_access_spec.rb' + - 'ee/spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb' + - 'ee/spec/lib/gitlab/prometheus/queries/cluster_query_spec.rb' + - 'ee/spec/lib/gitlab/prometheus/queries/packet_flow_query_spec.rb' + - 'lib/api/helpers.rb' + - 'lib/api/sidekiq_metrics.rb' + - 'lib/backup/manager.rb' + - 'lib/bitbucket_server/representation/base.rb' + - 'lib/gitlab/auth/current_user_mode.rb' + - 'lib/gitlab/auth/ldap/access.rb' + - 'lib/gitlab/chaos.rb' + - 'lib/gitlab/checks/timed_logger.rb' + - 'lib/gitlab/ci/ansi2json/line.rb' + - 'lib/gitlab/ci/pipeline/chain/sequence.rb' + - 'lib/gitlab/ci/pipeline/duration.rb' + - 'lib/gitlab/cycle_analytics/summary/deployment_frequency.rb' + - 'lib/gitlab/database.rb' + - 'lib/gitlab/external_authorization/access.rb' + - 'lib/gitlab/external_authorization/cache.rb' + - 'lib/gitlab/gitaly_client.rb' + - 'lib/gitlab/gitaly_client/ref_service.rb' + - 'lib/gitlab/github_import/representation.rb' + - 'lib/gitlab/grape_logging/loggers/queue_duration_logger.rb' + - 'lib/gitlab/health_checks/base_abstract_check.rb' + - 'lib/gitlab/import_export.rb' + - 'lib/gitlab/instrumentation/elasticsearch_transport.rb' + - 'lib/gitlab/instrumentation/redis_interceptor.rb' + - 'lib/gitlab/instrumentation_helper.rb' + - 'lib/gitlab/kubernetes/helm/certificate.rb' + - 'lib/gitlab/lfs_token.rb' + - 'lib/gitlab/loop_helpers.rb' + - 'lib/gitlab/phabricator_import/representation/task.rb' + - 'lib/gitlab/prometheus/queries/additional_metrics_environment_query.rb' + - 'lib/gitlab/prometheus/queries/matched_metric_query.rb' + - 'lib/gitlab/prometheus_client.rb' + - 'lib/gitlab/sherlock/transaction.rb' + - 'lib/gitlab/task_helpers.rb' + - 'lib/gitlab/x509/tag.rb' + - 'lib/grafana/time_window.rb' + - 'lib/json_web_token/token.rb' + - 'lib/object_storage/direct_upload.rb' + - 'lib/quality/seeders/issues.rb' + - 'lib/rspec_flaky/flaky_example.rb' + - 'lib/rspec_flaky/report.rb' + - 'lib/tasks/gitlab/assets.rake' + - 'lib/tasks/gitlab/backup.rake' + - 'lib/tasks/gitlab/cleanup.rake' + - 'lib/tasks/gitlab/list_repos.rake' + - 'spec/lib/api/helpers_spec.rb' + - 'spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb' + - 'spec/lib/gitlab/app_json_logger_spec.rb' + - 'spec/lib/gitlab/app_text_logger_spec.rb' + - 'spec/lib/gitlab/auth/current_user_mode_spec.rb' + - 'spec/lib/gitlab/background_migration/recalculate_project_authorizations_spec.rb' + - 'spec/lib/gitlab/background_migration/wrongfully_confirmed_email_unconfirmer_spec.rb' + - 'spec/lib/gitlab/bitbucket_import/importer_spec.rb' + - 'spec/lib/gitlab/bitbucket_server_import/importer_spec.rb' + - 'spec/lib/gitlab/checks/timed_logger_spec.rb' + - 'spec/lib/gitlab/ci/cron_parser_spec.rb' + - 'spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb' + - 'spec/lib/gitlab/cycle_analytics/usage_data_spec.rb' + - 'spec/lib/gitlab/data_builder/note_spec.rb' + - 'spec/lib/gitlab/database/background_migration_job_spec.rb' + - 'spec/lib/gitlab/database_spec.rb' + - 'spec/lib/gitlab/discussions_diff/file_collection_spec.rb' + - 'spec/lib/gitlab/external_authorization/access_spec.rb' + - 'spec/lib/gitlab/external_authorization/cache_spec.rb' + - 'spec/lib/gitlab/external_authorization/logger_spec.rb' + - 'spec/lib/gitlab/fogbugz_import/importer_spec.rb' + - 'spec/lib/gitlab/git/branch_spec.rb' + - 'spec/lib/gitlab/git/commit_spec.rb' + - 'spec/lib/gitlab/git/repository_spec.rb' + - 'spec/lib/gitlab/git_access_spec.rb' + - 'spec/lib/gitlab/github_import/importer/diff_note_importer_spec.rb' + - 'spec/lib/gitlab/github_import/importer/issue_importer_spec.rb' + - 'spec/lib/gitlab/github_import/importer/issues_importer_spec.rb' + - 'spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb' + - 'spec/lib/gitlab/github_import/importer/note_importer_spec.rb' + - 'spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb' + - 'spec/lib/gitlab/github_import/importer/releases_importer_spec.rb' + - 'spec/lib/gitlab/github_import/representation/diff_note_spec.rb' + - 'spec/lib/gitlab/github_import/representation/issue_spec.rb' + - 'spec/lib/gitlab/github_import/representation/note_spec.rb' + - 'spec/lib/gitlab/github_import/representation/pull_request_spec.rb' + - 'spec/lib/gitlab/grape_logging/formatters/lograge_with_timestamp_spec.rb' + - 'spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb' + - 'spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb' + - 'spec/lib/gitlab/graphql_logger_spec.rb' + - 'spec/lib/gitlab/graphs/commits_spec.rb' + - 'spec/lib/gitlab/import_export/project/relation_factory_spec.rb' + - 'spec/lib/gitlab/instrumentation_helper_spec.rb' + - 'spec/lib/gitlab/json_logger_spec.rb' + - 'spec/lib/gitlab/lfs_token_spec.rb' + - 'spec/lib/gitlab/log_timestamp_formatter_spec.rb' + - 'spec/lib/gitlab/middleware/rails_queue_duration_spec.rb' + - 'spec/lib/gitlab/omniauth_logging/json_formatter_spec.rb' + - 'spec/lib/gitlab/phabricator_import/issues/task_importer_spec.rb' + - 'spec/lib/gitlab/phabricator_import/representation/task_spec.rb' + - 'spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb' + - 'spec/lib/gitlab/prometheus/queries/deployment_query_spec.rb' + - 'spec/lib/gitlab/prometheus/queries/validate_query_spec.rb' + - 'spec/lib/gitlab/sherlock/transaction_spec.rb' + - 'spec/lib/gitlab/sidekiq_logging/json_formatter_spec.rb' + - 'spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executing_spec.rb' + - 'spec/lib/gitlab/updated_notes_paginator_spec.rb' + - 'spec/lib/gitlab/utils/json_size_estimator_spec.rb' + - 'spec/lib/gitlab/x509/signature_spec.rb' + - 'spec/lib/grafana/time_window_spec.rb' + - 'spec/lib/json_web_token/hmac_token_spec.rb' + - 'spec/lib/rspec_flaky/flaky_example_spec.rb' + - 'spec/lib/rspec_flaky/listener_spec.rb' + - 'spec/lib/rspec_flaky/report_spec.rb' + # Offense count: 8 # Cop supports --auto-correct. Security/YAMLLoad: @@ -620,123 +756,6 @@ Style/Next: Style/NumericLiteralPrefix: Enabled: false -# Offense count: 130 -# Cop supports --auto-correct. -# Configuration parameters: AutoCorrect, EnforcedStyle, IgnoredMethods. -# SupportedStyles: predicate, comparison -# We use EnforcedStyle of comparison here due to it being better -# performing code as seen https://gitlab.com/gitlab-org/gitlab/-/merge_requests/36221#note_375659681 -Style/NumericPredicate: - EnforcedStyle: comparison - Exclude: - - 'spec/**/*' - - 'app/views/**/*' - - 'ee/app/views/**/*' - - 'app/controllers/concerns/issuable_collections.rb' - - 'app/controllers/concerns/paginated_collection.rb' - - 'app/helpers/graph_helper.rb' - - 'app/helpers/timeboxes_helper.rb' - - 'app/models/ci/pipeline.rb' - - 'app/models/ci/stage.rb' - - 'app/models/concerns/update_project_statistics.rb' - - 'app/models/merge_request_diff.rb' - - 'app/models/milestone.rb' - - 'app/models/network/graph.rb' - - 'app/models/postgresql/replication_slot.rb' - - 'app/models/project.rb' - - 'app/models/suggestion.rb' - - 'app/models/user.rb' - - 'app/serializers/merge_request_widget_entity.rb' - - 'app/services/boards/issues/move_service.rb' - - 'app/services/cohorts_service.rb' - - 'app/services/discussions/resolve_service.rb' - - 'app/services/issues/reorder_service.rb' - - 'app/services/notes/create_service.rb' - - 'app/services/packages/nuget/metadata_extraction_service.rb' - - 'app/services/packages/nuget/search_service.rb' - - 'app/services/projects/auto_devops/disable_service.rb' - - 'app/services/projects/update_pages_service.rb' - - 'app/services/search_service.rb' - - 'app/workers/admin_email_worker.rb' - - 'app/workers/gitlab/import/advance_stage.rb' - - 'config/initializers/validate_puma.rb' - - 'ee/app/controllers/security/projects_controller.rb' - - 'ee/app/graphql/mutations/instance_security_dashboard/remove_project.rb' - - 'ee/app/helpers/ee/timeboxes_helper.rb' - - 'ee/app/models/ci/minutes/quota.rb' - - 'ee/app/models/ee/ci/runner.rb' - - 'ee/app/models/geo_node_status.rb' - - 'ee/app/models/license.rb' - - 'ee/app/models/namespace_statistics.rb' - - 'ee/app/services/ee/issues/base_service.rb' - - 'ee/app/services/ee/merge_requests/approval_service.rb' - - 'ee/app/services/ee/quick_actions/target_service.rb' - - 'ee/app/services/elastic/indexing_control_service.rb' - - 'ee/app/services/geo/hashed_storage_migration_service.rb' - - 'ee/app/services/geo/prune_event_log_service.rb' - - 'ee/app/services/security/waf_anomaly_summary_service.rb' - - 'ee/app/services/update_build_minutes_service.rb' - - 'ee/app/workers/geo/container_repository_sync_dispatch_worker.rb' - - 'ee/app/workers/geo/file_download_dispatch_worker.rb' - - 'ee/app/workers/geo/registry_sync_worker.rb' - - 'ee/app/workers/geo/repository_shard_sync_worker.rb' - - 'ee/app/workers/geo/repository_verification/primary/shard_worker.rb' - - 'ee/lib/api/helpers/packages/conan/api_helpers.rb' - - 'ee/lib/ee/gitlab/auth/ldap/person.rb' - - 'ee/lib/ee/gitlab/background_migration/prune_orphaned_geo_events.rb' - - 'ee/lib/ee/gitlab/checks/push_rules/file_size_check.rb' - - 'ee/lib/ee/gitlab/geo_git_access.rb' - - 'ee/lib/gitlab/geo/fdw.rb' - - 'ee/lib/gitlab/geo/log_cursor/lease.rb' - - 'ee/lib/tasks/gitlab/elastic.rake' - - 'lib/api/entities/feature.rb' - - 'lib/api/helpers/pagination_strategies.rb' - - 'lib/backup/files.rb' - - 'lib/banzai/filter/gollum_tags_filter.rb' - - 'lib/bitbucket_server/paginator.rb' - - 'lib/declarative_policy/runner.rb' - - 'lib/gitlab/auth/ldap/adapter.rb' - - 'lib/gitlab/bare_repository_import/importer.rb' - - 'lib/gitlab/ci/config/external/context.rb' - - 'lib/gitlab/ci/reports/accessibility_reports_comparer.rb' - - 'lib/gitlab/cycle_analytics/summary/value.rb' - - 'lib/gitlab/cycle_analytics/summary_helper.rb' - - 'lib/gitlab/danger/teammate.rb' - - 'lib/gitlab/database.rb' - - 'lib/gitlab/database/connection_timer.rb' - - 'lib/gitlab/database/migration_helpers.rb' - - 'lib/gitlab/exclusive_lease.rb' - - 'lib/gitlab/exclusive_lease_helpers/sleeping_lock.rb' - - 'lib/gitlab/experimentation.rb' - - 'lib/gitlab/file_hook.rb' - - 'lib/gitlab/git/commit.rb' - - 'lib/gitlab/git/repository.rb' - - 'lib/gitlab/git/rugged_impl/blob.rb' - - 'lib/gitlab/gitaly_client.rb' - - 'lib/gitlab/github_import/user_finder.rb' - - 'lib/gitlab/hashed_storage/migrator.rb' - - 'lib/gitlab/import_export/command_line_util.rb' - - 'lib/gitlab/multi_collection_paginator.rb' - - 'lib/gitlab/polling_interval.rb' - - 'lib/gitlab/project_search_results.rb' - - 'lib/gitlab/seeder.rb' - - 'lib/gitlab/sidekiq_cluster.rb' - - 'lib/gitlab/sidekiq_daemon/memory_killer.rb' - - 'lib/gitlab/sidekiq_middleware/memory_killer.rb' - - 'lib/gitlab/sidekiq_status.rb' - - 'lib/gitlab/slash_commands/presenters/issue_show.rb' - - 'lib/gitlab/task_helpers.rb' - - 'lib/gitlab/untrusted_regexp.rb' - - 'lib/gitlab/utils.rb' - - 'lib/system_check/sidekiq_check.rb' - - 'lib/tasks/gitlab/gitaly.rake' - - 'lib/tasks/gitlab/snippets.rake' - - 'lib/tasks/gitlab/workhorse.rake' - - 'qa/qa/git/repository.rb' - - 'qa/qa/support/wait_for_requests.rb' - - 'ee/app/models/ee/project.rb' - - 'lib/gitlab/usage_data/topology.rb' - # Offense count: 117 # Cop supports --auto-correct. Style/ParallelAssignment: @@ -855,35 +874,8 @@ Rails/SaveBang: Exclude: - 'ee/spec/controllers/projects/merge_requests_controller_spec.rb' - 'ee/spec/controllers/subscriptions_controller_spec.rb' - - 'ee/spec/factories/ci/job_artifacts.rb' - - 'ee/spec/factories/epics.rb' - - 'ee/spec/factories/licenses.rb' - - 'ee/spec/factories/merge_requests.rb' - - 'ee/spec/features/admin/admin_users_spec.rb' - - 'ee/spec/features/admin/geo/admin_geo_nodes_spec.rb' - - 'ee/spec/features/admin/licenses/admin_views_license_spec.rb' - - 'ee/spec/features/boards/scoped_issue_board_spec.rb' - - 'ee/spec/features/ci_shared_runner_warnings_spec.rb' - - 'ee/spec/features/dashboards/operations_spec.rb' - - 'ee/spec/features/issues/gfm_autocomplete_ee_spec.rb' - - 'ee/spec/features/merge_request/user_approves_spec.rb' - - 'ee/spec/features/merge_requests/user_views_all_merge_requests_spec.rb' - - 'ee/spec/features/projects/members/invite_group_and_members_spec.rb' - - 'ee/spec/features/projects/merge_requests/user_approves_merge_request_spec.rb' - - 'ee/spec/features/projects/mirror_spec.rb' - - 'ee/spec/features/projects/new_project_spec.rb' - - 'ee/spec/features/projects/settings/user_manages_approval_settings_spec.rb' - - 'ee/spec/features/projects/settings/user_manages_members_spec.rb' - - 'ee/spec/features/search/elastic/global_search_spec.rb' - - 'ee/spec/features/security/project/internal_access_spec.rb' - - 'ee/spec/features/security/project/public_access_spec.rb' - - 'ee/spec/finders/epics_finder_spec.rb' - - 'ee/spec/finders/security/vulnerabilities_finder_spec.rb' - 'ee/spec/frontend/fixtures/analytics.rb' - 'ee/spec/graphql/resolvers/vulnerabilities_resolver_spec.rb' - - 'ee/spec/helpers/application_helper_spec.rb' - - 'ee/spec/helpers/ee/dashboard_helper_spec.rb' - - 'ee/spec/helpers/ee/issues_helper_spec.rb' - 'ee/spec/initializers/fog_google_https_private_urls_spec.rb' - 'ee/spec/lib/analytics/merge_request_metrics_calculator_spec.rb' - 'ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb' @@ -962,11 +954,6 @@ Rails/SaveBang: - 'ee/spec/models/visible_approvable_spec.rb' - 'ee/spec/models/vulnerabilities/feedback_spec.rb' - 'ee/spec/models/vulnerabilities/issue_link_spec.rb' - - 'ee/spec/policies/group_policy_spec.rb' - - 'ee/spec/policies/note_policy_spec.rb' - - 'ee/spec/policies/project_policy_spec.rb' - - 'ee/spec/policies/protected_branch_policy_spec.rb' - - 'ee/spec/policies/vulnerabilities/feedback_policy_spec.rb' - 'ee/spec/presenters/audit_event_presenter_spec.rb' - 'ee/spec/presenters/epic_presenter_spec.rb' - 'ee/spec/requests/api/boards_spec.rb' @@ -1035,7 +1022,6 @@ Rails/SaveBang: - 'ee/spec/services/todo_service_spec.rb' - 'ee/spec/services/update_build_minutes_service_spec.rb' - 'ee/spec/services/vulnerability_feedback/create_service_spec.rb' - - 'ee/spec/support/helpers/ee/geo_helpers.rb' - 'ee/spec/support/protected_tags/access_control_shared_examples.rb' - 'ee/spec/support/shared_examples/features/protected_branches_access_control_shared_examples.rb' - 'ee/spec/support/shared_examples/finders/geo/framework_registry_finder_shared_examples.rb' @@ -1051,7 +1037,6 @@ Rails/SaveBang: - 'ee/spec/support/shared_examples/requests/api/project_approval_rules_api_shared_examples.rb' - 'ee/spec/support/shared_examples/services/build_execute_shared_examples.rb' - 'ee/spec/support/shared_examples/services/issue_epic_shared_examples.rb' - - 'ee/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb' - 'ee/spec/workers/adjourned_project_deletion_worker_spec.rb' - 'ee/spec/workers/clear_shared_runners_minutes_worker_spec.rb' - 'ee/spec/workers/create_github_webhook_worker_spec.rb' @@ -1100,19 +1085,6 @@ Rails/SaveBang: - 'spec/controllers/sent_notifications_controller_spec.rb' - 'spec/controllers/sessions_controller_spec.rb' - 'spec/controllers/users_controller_spec.rb' - - 'spec/factories/alert_management/alerts.rb' - - 'spec/factories/boards.rb' - - 'spec/factories/ci/pipelines.rb' - - 'spec/factories/design_management/designs.rb' - - 'spec/factories/design_management/versions.rb' - - 'spec/factories/emails.rb' - - 'spec/factories/issues.rb' - - 'spec/factories/labels.rb' - - 'spec/factories/merge_requests.rb' - - 'spec/factories/plans.rb' - - 'spec/factories/projects.rb' - - 'spec/factories/services.rb' - - 'spec/factories/wiki_pages.rb' - 'spec/factories_spec.rb' - 'spec/features/admin/admin_appearance_spec.rb' - 'spec/features/admin/admin_labels_spec.rb' @@ -1142,14 +1114,6 @@ Rails/SaveBang: - 'spec/features/issues/user_filters_issues_spec.rb' - 'spec/features/issues/user_sees_live_update_spec.rb' - 'spec/features/issues/user_sorts_issues_spec.rb' - - 'spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb' - - 'spec/features/merge_request/user_posts_diff_notes_spec.rb' - - 'spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb' - - 'spec/features/merge_request/user_sees_cherry_pick_modal_spec.rb' - - 'spec/features/merge_request/user_sees_discussions_spec.rb' - - 'spec/features/merge_request/user_sees_merge_widget_spec.rb' - - 'spec/features/merge_request/user_sees_versions_spec.rb' - - 'spec/features/merge_requests/user_mass_updates_spec.rb' - 'spec/features/profiles/emails_spec.rb' - 'spec/features/profiles/password_spec.rb' - 'spec/features/profiles/personal_access_tokens_spec.rb' @@ -1176,32 +1140,11 @@ Rails/SaveBang: - 'spec/features/security/project/public_access_spec.rb' - 'spec/features/users/login_spec.rb' - 'spec/features/users/show_spec.rb' - - 'spec/finders/admin/projects_finder_spec.rb' - - 'spec/finders/autocomplete/move_to_project_finder_spec.rb' - - 'spec/finders/ci/pipelines_for_merge_request_finder_spec.rb' - - 'spec/finders/group_descendants_finder_spec.rb' - - 'spec/finders/group_projects_finder_spec.rb' - - 'spec/finders/issues_finder_spec.rb' - - 'spec/finders/joined_groups_finder_spec.rb' - - 'spec/finders/merge_requests_finder_spec.rb' - - 'spec/finders/personal_projects_finder_spec.rb' - - 'spec/finders/projects_finder_spec.rb' - - 'spec/finders/uploader_finder_spec.rb' - 'spec/frontend/fixtures/issues.rb' - 'spec/frontend/fixtures/merge_requests.rb' - 'spec/graphql/mutations/merge_requests/set_locked_spec.rb' - 'spec/graphql/mutations/merge_requests/set_wip_spec.rb' - 'spec/graphql/resolvers/boards_resolver_spec.rb' - - 'spec/helpers/appearances_helper_spec.rb' - - 'spec/helpers/auto_devops_helper_spec.rb' - - 'spec/helpers/issuables_helper_spec.rb' - - 'spec/helpers/issues_helper_spec.rb' - - 'spec/helpers/members_helper_spec.rb' - - 'spec/helpers/notes_helper_spec.rb' - - 'spec/helpers/profiles_helper_spec.rb' - - 'spec/helpers/projects/alert_management_helper_spec.rb' - - 'spec/helpers/projects_helper_spec.rb' - - 'spec/helpers/visibility_level_helper_spec.rb' - 'spec/initializers/active_record_locking_spec.rb' - 'spec/initializers/fog_google_https_private_urls_spec.rb' - 'spec/lib/after_commit_queue_spec.rb' @@ -1412,13 +1355,6 @@ Rails/SaveBang: - 'spec/models/user_status_spec.rb' - 'spec/models/wiki_page/meta_spec.rb' - 'spec/models/wiki_page_spec.rb' - - 'spec/policies/ci/build_policy_spec.rb' - - 'spec/policies/ci/pipeline_policy_spec.rb' - - 'spec/policies/ci/pipeline_schedule_policy_spec.rb' - - 'spec/policies/group_policy_spec.rb' - - 'spec/policies/issue_policy_spec.rb' - - 'spec/policies/merge_request_policy_spec.rb' - - 'spec/policies/project_policy_spec.rb' - 'spec/presenters/ci/build_runner_presenter_spec.rb' - 'spec/presenters/ci/trigger_presenter_spec.rb' - 'spec/presenters/packages/conan/package_presenter_spec.rb' @@ -1528,15 +1464,8 @@ Rails/SaveBang: - 'spec/services/users/repair_ldap_blocked_service_spec.rb' - 'spec/services/verify_pages_domain_service_spec.rb' - 'spec/sidekiq/cron/job_gem_dependency_spec.rb' - - 'spec/support/helpers/cycle_analytics_helpers.rb' - - 'spec/support/helpers/design_management_test_helpers.rb' - - 'spec/support/helpers/jira_service_helper.rb' - - 'spec/support/helpers/login_helpers.rb' - - 'spec/support/helpers/notification_helpers.rb' - - 'spec/support/helpers/stub_object_storage.rb' - 'spec/support/migrations_helpers/cluster_helpers.rb' - 'spec/support/migrations_helpers/namespaces_helper.rb' - - 'spec/support/migrations_helpers/track_untracked_uploads_helpers.rb' - 'spec/support/shared_contexts/email_shared_context.rb' - 'spec/support/shared_contexts/finders/group_projects_finder_shared_contexts.rb' - 'spec/support/shared_contexts/mailers/notify_shared_context.rb' @@ -1554,7 +1483,6 @@ Rails/SaveBang: - 'spec/support/shared_examples/models/members_notifications_shared_example.rb' - 'spec/support/shared_examples/models/mentionable_shared_examples.rb' - 'spec/support/shared_examples/models/project_latest_successful_build_for_shared_examples.rb' - - 'spec/support/shared_examples/models/relative_positioning_shared_examples.rb' - 'spec/support/shared_examples/models/slack_mattermost_notifications_shared_examples.rb' - 'spec/support/shared_examples/models/update_project_statistics_shared_examples.rb' - 'spec/support/shared_examples/models/with_uploads_shared_examples.rb' @@ -1573,24 +1501,3 @@ Rails/SaveBang: - 'spec/tasks/gitlab/web_hook_rake_spec.rb' - 'spec/uploaders/file_uploader_spec.rb' - 'spec/uploaders/object_storage_spec.rb' - - 'spec/views/notify/changed_milestone_email.html.haml_spec.rb' - - 'spec/views/projects/imports/new.html.haml_spec.rb' - - 'spec/views/projects/merge_requests/show.html.haml_spec.rb' - - 'spec/views/shared/_label_row.html.haml_spec.rb' - - 'spec/workers/concerns/project_export_options_spec.rb' - - 'spec/workers/gitlab/import/stuck_project_import_jobs_worker_spec.rb' - - 'spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb' - - 'spec/workers/migrate_external_diffs_worker_spec.rb' - - 'spec/workers/namespaceless_project_destroy_worker_spec.rb' - - 'spec/workers/namespaces/root_statistics_worker_spec.rb' - - 'spec/workers/pages_domain_verification_worker_spec.rb' - - 'spec/workers/process_commit_worker_spec.rb' - - 'spec/workers/propagate_integration_worker_spec.rb' - - 'spec/workers/propagate_service_template_worker_spec.rb' - - 'spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb' - - 'spec/workers/repository_check/single_repository_worker_spec.rb' - - 'spec/workers/repository_cleanup_worker_spec.rb' - - 'spec/workers/repository_import_worker_spec.rb' - - 'spec/workers/repository_update_remote_mirror_worker_spec.rb' - - 'spec/workers/stuck_ci_jobs_worker_spec.rb' - - 'spec/workers/update_head_pipeline_for_merge_request_worker_spec.rb' diff --git a/.scss-lint.yml b/.scss-lint.yml index 2a1fa27fdb..9b3fc38875 100644 --- a/.scss-lint.yml +++ b/.scss-lint.yml @@ -7,6 +7,7 @@ scss_files: exclude: - 'app/assets/stylesheets/pages/emojis.scss' + - 'app/assets/stylesheets/startup/startup-general.scss' linters: # Reports when you use improper spacing around ! (the "bang") in !default, diff --git a/CHANGELOG.md b/CHANGELOG.md index e7a4857642..fe68016cbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,23 @@ documentation](doc/development/changelog.md) for instructions on adding your own entry. -## 13.2.10 (2020-10-01) +## 13.3.8 (2020-10-21) + +### Fixed (2 changes) + +- Make SSH keys publicly accessible. !42288 +- Revert required encryption on CI runner tokens. !42623 + +### Added (1 change) + +- Add missing fontawesome file icon classes. !43091 + +### Other (1 change) + +- GitLab-managed apps: Use GitLab's repo as replacement for the Helm stable repo. !44875 + + +## 13.3.7 (2020-10-01) ### Security (14 changes) @@ -22,22 +38,34 @@ entry. - Update GitLab Runner Helm Chart to 0.19.4. -## 13.2.9 (2020-09-04) +## 13.3.6 (2020-09-14) ### Fixed (2 changes) +- Fixes Auto DevOps deploy script for multiple additional hosts separated by comma and space. !41404 +- Use 'read' method to get request body in Conan to fix uploads when using Unicorn. !41801 + + +## 13.3.5 (2020-09-04) + +### Fixed (6 changes) + +- Coerce string object storage options to booleans. !39901 +- Fix Jira importer user mapping limit. !40310 +- Fix auto-deploy-image external chart dependencies. !40730 - Fix ActiveRecord::IrreversibleOrderError during restore from backup. !40789 +- Fix wrong caching logic in ProcessRefChangesService. !40821 - Update the 2FA user update check to account for rounding errors. !41327 -## 13.2.8 (2020-09-02) +## 13.3.4 (2020-09-02) ### Security (1 change) - Protect OAuth endpoints from brute force/password stuffing. -## 13.2.7 (2020-09-02) +## 13.3.3 (2020-09-02) ### Security (23 changes, 1 of them is from the community) @@ -63,7 +91,558 @@ entry. - Prevent project maintainers from editing group badges. - Upgrade jquery to v3.5. - Update websocket-extensions gem to 0.1.5. (Vitor Meireles De Sousa) -- Update GitLab Runner Helm Chart to 0.18.3. +- Update GitLab Runner Helm Chart to 0.19.3. + + +## 13.3.2 (2020-08-28) + +### Removed (1 change) + +- Display upcoming database deprecation warning only if current database version minimum is not met. !38225 + +### Fixed (5 changes) + +- Fix race condition in concurrent backups. !39894 +- Prevent accidental group deletion if path rename fails. !40353 +- Fix snippet save button disabled with empty file path. !40412 +- Fix exception handling when a concurrent backup fails. !40451 +- Scope incident issue counts by given project or group. !40700 + + +## 13.3.1 (2020-08-25) + +### Fixed (2 changes) + +- Fix bug when promoting an Issue with attachments to an Epic. !39654 +- Avoid creating diff position when line-code is nil. !40089 + + +## 13.3.0 (2020-08-22) + +### Security (2 changes) + +- Improve path traversal validation checks. !33114 +- Update GitLab Runner Helm Chart to 0.19.2. + +### Removed (3 changes) + +- Remove Internet Explorer 11 from babel transpilation. !36840 +- Remove namespace storage limit setting. !38108 +- Geo: Drop tables related to vulnerability export replication. !38299 + +### Fixed (116 changes, 14 of them are from the community) + +- Fix filter by releases at group issues and merge requests search bar. !26740 (Gilang Gumilar) +- Disable commenting on lines in files that were or are symlinks or replace or are replaced by symlinks. !35371 +- Fix icon alignment on board cards. !35710 (carolcarvalhosa) +- Make Add metrics button visible on self monitoring dashboard. !36169 +- Keep large spinner while MR file tree is loading. !36446 +- Bug Fix: Child pipelines are not found by API endpoints. !36494 +- Show relevant error messages when failing to match a CI job entry. !36536 +- Don’t show close icon on flash warning. !36581 +- Updates to file table in package details UI. !36723 (Adam Alvis (@adamalvis)) +- Add graceful timeout handling for analytics. !36811 +- Resolve Pasting an image into a comment also uploads design. !37171 +- Fix release evidence sometimes not being collected. !37184 +- Fix editing note throws js error. !37216 +- Fix merge request approvals for EE without a license. !37246 +- Fixed ops settings titles. !37259 +- Refactor all factories to fix SaveBang Cop. !37268 (Rajendra Kadam) +- Resolve Anchor tags to Designs is not working. !37307 +- Fix content validation for existing wiki pages. !37310 +- Alert management list spacing. !37320 +- Fix issue with blank keyset pagination parameters. !37351 +- Remove dashed border on designs hover. !37375 +- Fix CSV downloads for multiple series in the same chart. !37377 +- Fix Pypi and Nuget Storage Statistics. !37386 +- Display files in tab counter same as diff stats. !37390 +- Fix vertical alignment of design management toolbar buttons. !37398 +- Allow LFS to be enabled in project settings even when Repository is disabled. !37401 +- Update closed MRs on push. !37414 +- Remove old export file when requesting new project export using API. !37427 +- Refactor spec/helpers and ee/spec/helpers to fix SaveBang Cop. !37446 (Rajendra Kadam) +- Fix ambiguous query error when filtering for Any milestone in Value Stream Analytics. !37451 +- Ensure User's preferred_language always has a value. !37464 +- Wiki controller should not crash with non-html format. !37466 +- Fix local Tiller not being default-enabled on the frontend. !37494 +- Fix sizing of pins for new design comments. !37541 +- Remove status dropdown in merged tab. !37544 +- Resolve UX Polish: Fix icon styles. !37546 +- UX Polish: Remove the header Designs on empty state. !37548 +- Fix creating release asset links when using the API. !37557 +- UX Polish: Update top right Upload button from Green to Grey. !37558 +- Fix bio container width on profile page. !37572 +- Fix bug in group runners filtered search. !37626 (Arthur de Lapertosa Lisboa) +- Move partitioning backfill migration to post-deployment. !37633 +- Fix missing path for avatars of bots. !37671 +- Fix merge ref head comments for removed lines. !37755 +- Query Jira projects by key or name and return all Jira projects in one query. !37799 +- Make file icons extension detection be case-insensitive. !37817 +- Allow anonymous users to view embedded Grafana metrics in public project. !37844 +- Fix dependency proxy not working with object storage. !37878 +- Fix review app links are not shown in MR widgets in public projects. !37923 +- Fix dark mode container registry text. !37940 +- Refactor spec/policies and ee/spec/policies to fix SaveBang Cop. !37956 (Rajendra Kadam) +- Static Site Editor: Fix ordered list formatting bug and rendering bug in strong and emphasis nodes with softbreaks. !37964 +- Fix overflow issues with monaco file editor. !37984 +- Fix error when blob has no auxiliary viewer. !38018 +- Fix HTML not rendering in last commit widget. !38047 +- Fix 500 error when unconfirmed OAuth2 user with 2FA logs in. !38104 +- Fix console errors due to monaco-yaml's outdated use of monaco.Promise. !38135 +- Refactor spec/finders and ee/spec/finders to fix SaveBang Cop. !38173 (Rajendra Kadam) +- Align activity dropdown height with other dropdowns. !38208 +- Fix 500 for pipeline charts page. !38226 +- Resolve Pasting an image into a comment still uploades a design. !38280 +- Refactor ee/spec/features/* to fix SaveBang Cop. !38289 (Rajendra Kadam) +- Add workaround for Chrome 84 SVG bug. !38304 +- Fix a Gradle bug where a package without a version would be created and thus not displayed on the UI. !38338 +- Fixes the history button link URL being encoded incorrectly. !38392 +- Refactor spec/workers/* to fix SaveBang Cop. !38399 (Rajendra Kadam) +- Use Gitaly protobuf version as DiffStats cache key. !38414 +- Fix highlight commented rows. !38420 +- Fix vertical alignment of some svg icons. !38550 +- Fix Incident and Alert mobile CSS and alignment. !38577 +- Refactor spec/features/merge_requests/* to fix Rails/SaveBang Cop. !38591 (Rajendra Kadam) +- Add transparent background to remove button in tree item list. !38597 +- Update password change sign-in banner text. !38606 +- Display authored message correctly on public snippets viewed by unauthenticated users. !38614 +- Fix vertical alignment of svg icons on Jobs page. !38656 +- Fix URLs of issues in VSA dashboard. !38703 +- Remove duplicate authorized_projects entries during refresh. !38715 +- Fix multiline comment rendering. !38721 +- Improve rendering of very large files in the Repo File Browser. !38733 +- Optimize click area in design version dropdown. !38747 +- Fix notification setting for group with dot in name. !38773 +- Fix bug where filtering would sometimes display only open issues on different pages listing issues. !38906 +- Refactor spec/views/* and ee/spec/views/* to fix Rails/SaveBang Cop. !38981 (Rajendra Kadam) +- Refactor spec/support/helpers/* and ee/spec/support/helpers/* to fix Rails/SaveBang Cop. !38995 (Rajendra Kadam) +- Fix parallel jobs dropdown from cutting off in small pipeline graphs. !39108 +- Add expire_at to PipelineArtifact. !39114 +- Add not null constraint for file to ci_pipeline_artifacts. !39118 +- Fix gitlab-rake gitlab:license:info crashing when no license exists. !39143 +- Fix cancel button on New Release page. !39144 +- Fix submit button tooltips for forms with quick submit behavior. !39225 +- Fix scroll stuck on editor in snippets. !39251 +- Fix: New File page file name field unclickable in mobile view. !39310 +- Fix CI job artifacts metadata not extracting on some S3 providers. !39345 +- Add default value for file_store to ci_pipeline_artifacts. !39349 +- Handle user mapping for Jira server instances. !39362 +- Ignore the sources node from the cobertura XML. !39385 +- Fix Composer installation code snippet to include package name and version. !39400 +- Fix failing bitbucket server import when project slug differs from name. !39433 +- Right-aligned Clone dropdown for snippets. !39446 +- Fix missing scoped label borders for todos. !39459 +- Move gitlab-managed alerts embeds to core as documented. !39509 +- Allow crawler access to api. !39520 +- Fix panel "more actions" button layout. !39534 +- Use history icon on recent search filter tab only on mobile. !39557 (Takuya Noguchi) +- Conan packages allow for conan_sources.tgz and conan_export.tgz files. !39559 +- Fix horizontal scrolling on blocked/private profile pages. !39568 +- Fixed discussion not expanding when replying to a collapsed discussion. !39571 +- Fix pagination for bitbucket server importer. !39598 +- Fix missing resolve button when replying to notes in MRs. !39614 +- Fix Conan recipe display in the package details page. !39643 +- Fix bug when promoting an Issue with attachments to an Epic. !39654 +- Fix broken date time picker hide button. !39755 +- Fix time zone config not respected in multi-threaded servers. !39778 +- Use correct order when repositioning existing designs. !39826 +- Center align pipeline graph icons. !39848 +- Coerce string object storage options to booleans. !39901 + +### Deprecated (4 changes) + +- Deprecation of ECS template. !36143 +- Remove Jump to next unresolved thread button in merge request threads. !38375 +- Deprecate blob field on GraphQL SnippetType. !39088 +- Deprecate additions and deletions attributes in Repositories API. !39653 + +### Changed (144 changes, 12 of them are from the community) + +- Show full commit message by default in merge request diff. !27981 (Gilang Gumilar) +- Use fingerprint column on events to ensure event uniqueness. !31021 +- Disable application_settings_tokens_optional_encryption feature flag. !31798 (Gilang Gumilar) +- Disable ci_runners_tokens_optional_encryption feature flag. !31800 (Gilang Gumilar) +- Update Buildkite Service for supported events, fields, and always verify SSL. !33697 (Juanito Fatas) +- Allow OAuth to auto link LDAP users via email address. !33767 (Niko Wenselowski) +- Pre-fill the email input on sign-in / sign up pages. !33851 +- Store user mentions from merge request title or description in the DB. !34378 +- Allow multiline Prometheus queries in metrics dashboards yaml. !34508 +- Increase contrast between UTC label and input. !34998 +- Increase CI instance variable value limit. !35063 +- Rewrite integration form in Vue. !35453 +- Improved fork page design. !35592 +- Add sign_in_count to /users/:id API for admins. !35726 (Luc Didry) +- Updates GitLab managed app Ingress version to 1.40.2. !35924 +- Make scoped snippet routing a default one. !36091 +- Show clone button for activity on project page. !36147 +- Replace fa-angle-up icons with GitLab SVG. !36429 +- Migrate '.fa-spinner' to `gl-loading-icon` within shared boards haml. !36436 +- Package feature moved to core. !36667 +- Replace fa-history icons with GitLab SVG history icon. !36691 +- Add serverless empty state illustration. !36762 +- Allow an issue or MR to be locked and unlocked without page refresh. !36773 +- Exclude todos from general analytics accumulator ping. !36813 +- Migrate license_management artifacts to license_scanning type. !36817 +- When generating markdown for ordered lists, the list marker should not increment. !36851 +- Rename snippet GraphQL files field to blob_actions. !36852 +- Track milestone and state changes in issues / MRs using resource events. !36936 +- Update project remove modal to add additional warnings. !36962 +- Replace fa-plus icons with GitLab SVG plus icon. !36972 +- Limit database deprecation notice window. !37009 +- Changes limit for terraform artifacts to 5MB. !37018 +- Replace fa-ban icons with "cancel" from GitLab SVG. !37067 +- Move service desk usage data to core. !37080 +- Add concurrency support for Git repository backups. !37158 +- Replace some FA icons on groups listing page with GitLab SVG icons. !37162 +- Remove extraneous `
` tags from the source file when using the Static Site Editor. !37223 +- Remove flag and document max artifact size plan limits. !37226 +- Replacing View Full Report button with GitLab UI. !37236 +- Show meaningful message when applying inapplicable suggestion. !37267 +- Return SSH key details in /internal/allowed response. !37289 +- Change PagerDuty webhook URL. !37321 +- Shorten 'enable LFS' manage for design management. !37385 +- Show all snippet files when embedding. !37412 +- Add target_details column to AuditEvent table. !37430 +- Improve the IA and styling of the Success screen in the Static Site Editor. !37475 +- Add Cilium APIs as part of kube_client. !37526 +- Introduce `ci_needs_size_limit` to fine control needs. !37568 +- Migrate service desk setting button to gl-button. !37612 +- External auth adheres to local request setting. !37622 +- Remove feature flag managed_apps_local_tiller. !37641 +- Bring SAST to Core - bandit, Flawfinder, Gitleaks, Gosec, Kubesec, NodeJsScan, phpcs-security-audit, PMD, Security Code Scan, Sobelow, SpotBugs. !37648 +- Replace fa-bell icons with GitLab SVG notifications icon. !37676 +- Update gitlab-shell to v13.4.0. !37677 +- Move clone button out of blob header. !37696 +- Use normal font weight for Design Management dropzone text. !37787 +- Replace fa-sign-out icons with GitLab SVG leave icon. !37794 +- Add relative positioning on designs. !37835 +- Backfill relative positions on designs. !37837 +- Add search bar for incidents. !37885 +- Add composer tab and package type to package list. !37928 +- Add closed issue icon to incidents list for closed incidents. !37949 +- Update size limits for SCA artifacts. !37975 +- Update label select vue gl button. !37986 +- Update suggest gitlab ci popover to gl-button. !37987 +- Add pagination to the incident list. !37993 +- Rejects duplicated pypi files. !38006 +- Use new badge style for 'archived' project badge. !38013 +- Remove Duplicate Dashboard item from dashboards dropdown. !38053 +- Replace fa-git icons with link svg. !38078 +- Enforce namespace storage limit via app setting. !38094 +- Replace fa-certificate icon with first-contribution svg. !38154 +- Use the uploaded file set by middleware in Repositories::LfsStorageController. !38167 +- Migrate new project item select FA icons. !38177 +- Add sorting by date for incident list. !38178 +- Consistent labels for new/edit group URL. !38180 +- Change date time picker units. !38232 +- Switch manifest importer to new UI. !38268 +- Add incident count badge to the incident list. !38278 +- In metrics view, change default dashboard name to Overview. !38292 +- Hide languages with few translations. !38312 +- Reorganize group member management into tabs. !38344 +- Changed wording for optional approvals. !38393 +- Upgrade to Gitaly v13.3.0-rc3. !38405 +- Re-name "Delete" button to "Archive" in Design Management. !38446 (Getulio Valentin Sánchez @gvso) +- Allow users with developer access level for given project to view kubernetes pod logs. !38467 +- Set minimum Redis version to 4 and recommended version to 5 in Redis check task. !38475 +- Re-name project remove as project delete. !38489 +- Replace fa-info-circle icons with GitLab SVG information icon. !38505 +- Take DAG view out of beta. !38517 +- Specify Ruby image in FailFast template. !38523 +- Update color and vertical alignment of project feature toggle. !38537 +- Remove repositories from previous storage when storage move succeeds. !38547 +- Add database migrations to prepare for future Geo replication. !38549 +- Added minimum value of 1KB to wiki_page_max_content_bytes. !38554 (Uday Aggarwal (uday.agg97)) +- Stop using priority and weight keys in metrics dashboards. !38572 +- Add copy for Jira issues integration to GitLab issues empty state. !38586 +- Add Mark as done capability to Alert To Do's. !38595 +- Button migration vulnerability charts. !38610 +- Change the job stuck page to use UI library components. !38618 +- Order projects within the project dropdown by relevance in analytics features. !38675 +- Enable New Package details UI, remove feature flag and remove all old code. !38680 +- Update the project deletion confirmation modal to be more specific, the confirmation phrase now includes the project full path. !38700 +- Replace v-popover directive with GlPopover in ./app/assets/javascripts/pipelines/components/pipelines_list/pipeline_url.vue.vue. !38769 (Gilang Gumilar) +- Add installation instructions for Composer. !38779 +- Track wiki page views in usage data. !38784 +- Update incident_issues usage ping to use issue type column. !38864 +- Migrate custom metric form buttons. !38896 (George Tsiolis) +- Migrate enable review app button in environments. !38897 (George Tsiolis) +- Add migration helper index for Vulnerabilities::Finding table. !38898 +- Migrate maintenance mode settings button. !38901 +- Replace with in app/assets/javascripts/pipelines/components/graph/action_component.vue. !38923 +- Add a cache column for the number of changed files in a merge request diff. !38936 +- Change UI and add new actions to monitor dashboard actions menu. !38946 +- Support unitless single stat chart in metrics dashboards. !39067 +- Update preferences for homepage/dashboard wording. !39092 +- Update design mgmt navigation to use gl-button. !39104 +- Enable design management reference filter by default. !39113 +- Deprecated btn migration. !39154 +- Update auto-build-image to v0.4.0 for an updated version of the pack CLI (v0.12.0) for Cloud Native Buildpack builds. !39159 +- Change "gauge-chart" to "gauge" in YML panel configuration for gauge charts. !39184 +- Enable FF ci_variables_api_filter_environment_scope by default. !39209 +- Code navigation displays references when browsing repository. !39214 +- Replace fa-book icon with GitLab SVG book icon. !39247 +- Replace fa-close icons with GitLab SVG close icon. !39267 +- Update auto-deploy-image to v1.0.0, including a locally vendored auto-deploy-app chart instead of charts.gitlab.io. !39272 +- Improve environment dropdowns in operations metrics dashboard and highlight selected environment. !39303 +- Replace Go Back with Collapse button for expanded Metric charts. !39307 +- Replace issues icon with Gitlab SVG. !39313 +- Replace fa-power-off icon with GitLab SVG power icon. !39330 +- Remove transition animation from the Container Registry UI. !39337 +- Replace mis-used CSS class in operations settings. !39338 +- Enable Multiline Comments by default. !39370 +- Enable delete button on Package group level view list. !39430 +- Enabled monaco_blobs FF by default. !39441 +- Import the new queries in common_metrics.yml into database. !39475 +- Make View full report button open link in new tab. !39501 +- Bump CodeQuality templates to version 0.85.10-gitlab.1. !39502 +- Allow query/query_range keys in metrics dashboard to contain numbers. !39530 +- Enable reorder_designs feature by default. !39555 +- Return snippet binary blob content in GraphQL. !39583 +- Add anchors to profile preferences. !39589 +- Expose ID in Event object returned from the public API. !39669 (Killian Brackey @kbrackey) +- Rename create issue button to create incidents in ALert details. !39684 + +### Performance (25 changes) + +- Add mechanism that efficiently increments ActiveRecord counters using Redis. !35878 +- Add limit for wiki page content size. !36729 +- Reduce 'cached' query calls for Banzai. !36735 +- Fix N+1 issue in Explore Projects controller. !36874 +- Avoid N+1 of issue associations in Search. !36941 +- Replace FontAwesome fa-clock icon with SVG icon. !37123 +- Inverse pipeline for its build associations. !37478 +- Fix N+1 for project/:id/issues API endpoint. !37508 +- Preload build report results for pipeline builds. !37582 +- Always use expanded env name to load persisted environment. !37585 +- Improve performance of test report with summary and test suite endpoints. !37629 +- Preload number of pipeline warnings for commits. !37669 +- Add PipelineArtifact data model. !37969 +- Replace index for service usage data. !38147 +- Serialize fewer pipeline fields for MR widget. !38215 +- Improve performance of Banzai reference filters. !38290 +- Skip subsequent topology Prometheus queries if timeout occur. !38293 +- Remove some unnecessary Redis calls on commit lists. !38343 +- Speed up commit lists and file blob pages on repositories with huge amounts of branches or tags. !38484 +- Add index for compliance merged MRs to events. !38885 +- Swap RepositoryHashCache to UNLINK. !39105 +- Increase sidebar performance by not rendering k8s highlight when not needed. !39228 +- Use more-efficient indexing for the MergeRequestDiff storage migration. !39470 +- Add secure index for coverage fuzzing. !39569 +- Performance and robustness improvements for relative positioning. !39807 + +### Added (138 changes, 6 of them are from the community) + +- Add Rust Dockerfile to GitLab templates. !28167 +- Add mutation to create a label or default backlog list for an issue board. !31233 +- Allow labels argument for merge request create mutation. !32637 +- Add btree_gist PGSQL extension and add DB constraints for Iteration date ranges. !33340 +- Add cilium to Kubernetes apps list. !33703 +- Define matrix builds for more complex pipelines. !33705 +- Support getting a todo for an alert in GraphQL API. !34789 +- Resolve Set a deploy freeze in the UI. !35163 +- Display notes on merge ref head diff. !35422 +- Add note_id to timelogs. !35916 (Lee Tickett) +- Prompt to resolve unresolved threads on an MR is a button that jumps to the first such thread. !36164 +- Expose board list issues via GraphQL. !36259 +- Add internal api for getting personal access tokens from gitlab-shell. !36302 (Taylan Develioglu @tdevelioglu) +- Add auto_link_user OmniAuth setting. !36664 +- Add Draft to WIP for work in progress merge requests. !36666 +- Add gauge chart type to the monitoring dashboards. !36674 +- Add Prevent forking outside group feature. !36848 +- Show Security Warning Modal for fork pipelines. !36951 +- Add usage ping for coverage_fuzzing. !36960 +- Use _ character for emphasis and * for strong in Static Site Editor markdown syntax. !36965 +- Add migration for deployment_type of Jira server in jira_tracker_data table. !36992 +- Add system note to alert when corresponding issue is closed. !37039 +- Add locked as an argument to updateIssue. !37105 +- Add PagerDuty incident integration. !37193 +- Add container registry observations to usage ping. !37203 +- Support dry-run cherry-picks and reverts via API. !37240 +- Show full time range in metrics dashboard charts. !37243 +- Geo: Add file store indexes. !37265 +- Add ability to turn off "project moved" notifications. !37269 +- Add basic incidents list. !37314 +- Allow to create merge request pipelines in target project when user has permission. !37322 +- Add external column to custom emoji table. !37346 (Rajendra Kadam) +- Add issue_type column to issues table. !37402 +- Added webPath and descriptionHtml types to the repository GraphQL entities. !37416 +- Add monthly usage ping data for analytics. !37417 +- Added section names to code owner approvals in merge request form. !37425 +- Add a new K8s Pod health metrics dashboard. !37482 +- Update versions tab to other versions. !37513 +- Add metrics dashboard templates for the standard file blob selector. !37519 +- Add custom metrics dashboard templates supports. !37523 +- Allow optional keyset pagination for branch list API. !37524 +- Add default_membership_role column to saml_providers table. !37552 +- Add NuGet lock files support to Dependency Scanning CI template. !37553 +- Migrate vulnerability statistics historical data to vulnerability historical statistics. !37554 +- Surface timeafo for created date in Incidents List. !37567 +- Add parenthesis support for if: conditions. !37574 +- Show mapped user in Jira import form dropdown. !37575 +- Add GraphQL mutation to re-order designs. !37603 +- Display assignees in Incident List. !37608 +- Add ENV vars that expose source and target repository for CI Pipelines that run on an External Pull Requests. !37616 (Rafael Dohms @rdohms) +- Add DB table and model to track changes of the iterations on issues. !37617 +- Migrate all 'incident' labelled issues to have issue type 'incident'. !37668 +- Resolve Allow the ability to re-order designs. !37686 +- Add target_project_id to merge_request_metrics table. !37713 +- Allow user to update issue labels via GraphQL. !37728 +- Sets issue type for incident issues to incident. !37781 +- Create incident from the incidents list page. !37802 +- Add personal_access_tokens list to REST API. !37806 +- Allow user to simulate pipeline creation via CI Lint and go beyond syntax checks. !37828 +- Adds clarifying documentation on EKS IAM roles. !37870 +- Add API support for issue and merge request templates. !37890 (Jan Beckmann) +- Add confidential attribute to graphQL for notes update. !37920 +- Add confidential attribute to public API for notes update. !37932 +- Filter Issues in GraphQL by type of Issue. !38017 +- Allows setting of issue subscribe status in GraphQL API. !38051 +- Add deployment_events flag to web_hooks table. !38080 +- Allow assign/unassign users to issues in GraphQL API. !38081 +- Email notification for expired personal access token. !38086 +- Upgrade CI to Git v2.28.0. !38152 +- Add project milestones to GraphQL API. !38153 +- Make the deploy freeze table responsive. !38213 +- Add option to query a single board list with GraphQL API. !38216 +- Add symlink label text to blob viewer. !38220 +- Add support for runbook url to PrometheusAlert table. !38234 +- Add dashboard_path to PrometheusMetric. !38237 +- Add support for specifying AWS S3 Server Side Encryption (AWS-KMS). !38240 +- Add issue status counts to Projects in GraphQL. !38263 +- Auto expand collapsed diffs when viewing diffs file-by-file. !38296 +- Add hide_backlog_list and hide_closed_list attributes to boards table. !38303 +- GraphQL mutation to move issue within board lists. !38309 +- Redirect to new metrics dashboard page. !38364 +- Add experiments and experiment_users tables for tracking which users are enrolled for which experiments. !38397 +- Save usage data in database. !38457 +- Move old integrations to Settings > General and introduce instance-level integrations. !38488 +- Expose runbook field in alert_management_alert GraphQL API. !38510 +- Add CoverageReportsController#index CSV response. !38520 +- Add support for never keyword in expire_in job artifacts. !38578 (Fabio Huser) +- Add attributes to filter project merge requests by merged at date in GraphQL. !38584 +- Add `resolved_on_default_branch` column into `vulnerabilities` table. !38638 +- Add alert url into incident issue markdown. !38649 +- Return gitaly info in kubernetes internal API. !38654 +- Add GraphQL query for a single milestone. !38682 +- Add milestone_id param to issue update graphQL mutation. !38684 +- Added pre-processing step to the Static Site Editor so code templates (ERB) are interpreted as code not content. !38694 +- Backfill null values to prepare for Geo replication feature. !38719 +- Update gitlab-shell to v13.5.0. !38720 +- UI warning messages for pipeline configurations. !38734 +- Enable state tracking for managed applications installed via the management project. !38759 +- Set Incident issue type when creating issue. !38760 +- Add pre-processing step so inline ERB and HTML syntax are wrapped in codeblocks for code vs. content editing in the static site editor's WYSIWYG mode. !38791 +- Add protected branches count to usage ping. !38797 +- Add include_parent_milestones param to project and group milestones API endpoints. !38800 +- Clean up orphaned LFS file references during GC. !38813 +- Add database migrations to ensure Geo replicates all package files when sync object storage is disabled. !38822 +- Add pre-processing step so preexisting codeblocks are preserved prior to flagging content as code in the static site editor's WYSIWYG mode. !38834 +- Add model for CiliumNetworkPolicy. !38848 +- Expose alert information for environments. !38881 +- Add Azure Blob Storage support. !38882 +- Add webhooks for deployments. !38902 +- Add "New Release" page to allow creation of releases through the interface. !38913 +- Add GraphQL mutation for updating board list position and collapsed/expanded state. !38942 +- Add due_date filter param to Issues REST API. !38973 +- Support adding of API requests to the performance bar. !39057 +- Expose counts (pipeline, commits) and approvers for a merge request in GraphQL. !39086 +- Add total_weight and issues_count fields to the board list graphQL endpoint. !39110 +- Make available new UI for adding a panel to a metrics dashboard. !39124 +- Improve submission behavior of the New/Edit Release page. !39145 +- Allows NuGet to authenticate with Job Token. !39147 +- Upgrade Pages to 1.22.0. !39172 +- Upgrade Workhorse to v8.38.0. !39223 +- JUnit test report on pipeline detail page. !39260 +- Allow GraphQL pipeline to resolve non-CI pipelines and expose configSource field. !39275 +- GraphQL: Issues - Added 'include_subgroup' parameter. !39279 +- Enable `:resource_access_token` feature flag by default. !39287 +- Add runbook to metric chart dropdown. !39288 +- Add runbooks to metric alerts. !39315 +- Preserve active tab on alert details page reload. !39369 +- GraphQL: Add user to pipeline + status and email to user + StatusType. !39402 +- Add external link icon to list of repositories in importer. !39442 +- Add target_type to audit_events. !39461 +- Enable read SPDX catalogue from local copy. !39463 +- Show runbook for alert in detail view. !39477 +- Link to logs from GitLab-managed alert metrics. !39487 +- Add SECRET_DETECTION_EXCLUDED_PATHS env var. !39523 +- Add pipeline_artifacts_size to project_statistics. !39607 +- Setup basic level telemetry for navigation. !39638 +- Update gitlab-shell to v13.6.0. !39675 +- Empty State for the Incident list. !39718 + +### Other (69 changes, 9 of them are from the community) + +- Remove globe icon from explore projects dropdown. !21659 +- Remove mr_tabs_position feature flag. !29340 (Lee Tickett) +- Improve Elasticsearch Reindexing documentation. !29788 +- Remove createIssues logic from list model. !32236 (nuwe1) +- Unify Prometheus metric initialization by always using inline transaction metrics. !32980 +- Adds models and tables for cluster agent and cluster agent tokens. !33228 +- Remove updated_at column on audit_events table. !35690 +- Replace fa-pencil-square-o icons with GitLab SVG icons. !36059 +- Replace fa-rss with GitLab SVG icon. !36553 +- Limit project moved e-mails to maintainers/owners. !36665 +- Backfill personal snippets statistics. !36801 +- Set default bullet char character as - when generating markdown in Static Site Editor. !36820 +- Replace with in app/assets/javascripts/pipelines/components/graph/linked_pipeline.vue. !36968 +- Replace fa-link icons with GitLab SVG link icon. !36973 +- Consolidate issuable_header_warning for both MR and issue. !37043 +- Remove index from chat_names and service_id. !37054 +- Making component diagram click-friendly. !37147 (Arjun Pravin @Sgt.Arjun) +- Replace fa-pause with pause svg. !37149 +- Replace fa-replace icon with svg. !37228 +- Replace fa-key icon with svg. !37251 +- Remove app_server_type from top level usage ping. !37279 +- Update GitLab Runner Helm Chart to 0.19.0. !37292 +- Use ES6 methods instead of `for` loops. !37324 (allenlai18) +- Remove legacy pipeline processing service and FF ci_atomic_processing. !37339 +- Cleanup migration to drop temporary table untracked_files_for_uploads if exists. !37352 +- Fix the MR number in CHANGELOG. !37399 +- Immediately update project statistics when running housekeeping or repository cleanup. !37579 +- Update GitLab Runner Helm Chart to 0.19.1. !37583 +- Add index to resource_milestone_events for add actions. !37636 +- Capitalize CloudFlare in documentation. !37704 (Takuya Noguchi) +- Use Cloudflare in comments. !37764 (Takuya Noguchi) +- Update $gray-400 hex and replace instances of $gray-400 with $gray-200. !37813 +- Add link to issue details page from Incident list page. !37814 +- Remove link to Cloudflare cert for Pages. !37876 (Takuya Noguchi) +- Add incident state columns. !37889 +- Move file store updates and mount_uploader into a concern. !37907 +- Set appropriate timeouts for PrometheusClient. !37924 +- Remove GitlabIssueTrackerService database records. !37931 +- Remove title and description columns from services table. !37936 +- Fix misalignment of download icon on jobs page. !37966 +- Automatically calculate the database connection pool size. !38049 +- Remove per-web-transaction redis metrics. !38101 +- ee Updating $gray-500 hex value and replacing instances with $gray-300. !38229 +- Removes the old UI page. !38277 +- Log raw pre-receive message in fast-forward merge. !38354 +- Replace times-circle with GitLab SVG clear icon. !38409 +- Add telemetry for instance-level and template integrations. !38459 +- Add group_id column to the services table. !38499 +- Replace fa-play/pause icons with svg. !38535 +- Add telemetry for projects inheriting instance settings. !38561 +- Move button in Settings > Webhooks to the right. !38650 +- Replace deprecated button on vulnerability details page. !38679 +- Collect node CPU and memory utilization in usage ping. !38681 +- Improve unfurling support for /search. !38699 +- Add can_push column to group_deploy_keys_groups table. !38714 +- Log raw pre receive error for create branch service. !38749 +- Change to glbutton component in CI variables list. !38757 +- Replace deprecated buttons in dashboard header. !38830 +- Remove :gzip_diff_cache feature flag. !38838 +- Replace some fa-trash icons with GitLab SVG remove icon. !38964 +- Productivity Analytics: Improve error message when query takes too long to calculate. !39074 +- Adds an environment variable override to disable unstructured logs. !39109 +- Remove not-null constraint on type column in audit_events. !39192 +- Set longer Prometheus timeouts in PrometheusService. !39318 +- Use active version of Redis for an example. !39404 (Takuya Noguchi) +- Remove FF ci_composite_status and related codes. !39498 +- Remove a card-small class from HAML files. !39550 (Takuya Noguchi) +- Provide versioning support to Sidekiq workers. !39562 +- Replace fa-pencil icon with GitLab SVG. !39648 ## 13.2.6 (2020-08-18) @@ -120,21 +699,6 @@ entry. - Skip mass unconfirming users when send_user_confirmation_email setting is off. !38024 -## 13.2.1 (2020-07-23) - -### Fixed (4 changes) - -- Resolve Pasting an image into a comment also uploads design. !37171 -- Fix merge request approvals for EE without a license. !37246 -- Fix local Tiller not being default-enabled on the frontend. !37494 -- Fix missing path for avatars of bots. !37671 - -### Changed (2 changes) - -- Limit database deprecation notice window. !37009 -- Shorten 'enable LFS' manage for design management. !37385 - - ## 13.2.0 (2020-07-22) ### Security (3 changes) @@ -1149,6 +1713,39 @@ entry. - Remove removeIssue logic from list model. (nuwe1) +## 13.1.8 (2020-08-18) + +- No changes. + +## 13.1.7 (2020-08-17) + +### Security (2 changes) + +- Stop deploy token being mis-used as user in ProjectPolicy and GroupPolicy. +- Project access is checked during deploy token authentication. + + +## 13.1.6 (2020-08-05) + +### Security (11 changes) + +- Add decompressed archive size validation on Project/Group Import. !562 +- Enforce 2FA on Doorkeeper controllers. +- Refresh project authorizations when transferring groups. +- Stop excess logs from failure to send invite email when group no longer exists. +- Verify confirmed email for OAuth Authorize POST endpoint. +- Revoke OAuth grants when a user revokes an application. +- Fix XSS in Markdown reference tooltips. +- Fix XSS in milestone tooltips. +- Fix xss vulnerability on jobs view. +- Block 40-character hexadecimal branches. +- Update GitLab Runner Helm Chart to 0.17.2. + + +## 13.1.5 (2020-07-23) + +- No changes. + ## 13.1.3 (2020-07-06) - No changes. @@ -1191,6 +1788,526 @@ entry. - Periodically recompute project authorizations. !34071 +## 13.1.0 (2020-06-22) + +### Removed (4 changes, 2 of them are from the community) + +- Remove deprecated dashboard & group milestone pages. !13237 +- Removed UltraAuth integration for OmniAuth. !29330 (Kartikey Tanna) +- Remove all search autocomplete for groups/projects/other. !31187 +- Remove temporary datepicker position fix as it is no longer required. !31836 (Arun Kumar Mohan) + +### Fixed (154 changes, 57 of them are from the community) + +- Fix 'Active' checkbox text in Pipeline Schedule form to be a label. !27054 (Jonston Chan) +- Fix back button when switching MR tabs. !29862 (Lee Tickett) +- Remove ability to scroll Issue while in Design View. !29881 +- Fix merge request note label URLs. !30428 (Lee Tickett) +- Fix default path when creating project from group template. !30597 (Lee Tickett) +- Group authorization refresh to consider shared groups. !31204 +- Fix group transfer service to deny moving group to its subgroup. !31495 (Abhisek Datta) +- Fix issuable listings with any label filter. !31729 +- Move prepend to last in ee-app-services. !31838 (Rajendra Kadam) +- Fallback to lowest visibility level in snippet visibility radio. !31847 (Jacopo Beschi @jacopo-beschi) +- Add class stubs and fix leaky constant alert in query limit helper spec. !31949 (Rajendra Kadam) +- Remove usage of spam constants in spec. !31959 (Rajendra Kadam) +- Fix leaky constant issue in uninstall progress service check. !32036 (Rajendra Kadam) +- Fix leaky constant issue in commit entity spec. !32039 (Rajendra Kadam) +- Fix leaky constant issue in task completion status spec. !32043 (Rajendra Kadam) +- Fix leaky constant issue in admin mode migration spec. !32074 (Rajendra Kadam) +- Fix leaky constant issue in sidekiq middleware server metric spec. !32104 (Rajendra Kadam) +- Fix leaky constant issue in sidekiq middleware client metric spec. !32108 (Rajendra Kadam) +- Fix leaky constant issue in path regex spec. !32115 (Rajendra Kadam) +- Fix leaky constant issue importer and cache headers spec. !32122 (Rajendra Kadam) +- Fix leaky constant issue in relation factory spec. !32129 (Rajendra Kadam) +- Fix leaky constant issue in test coverage spec. !32134 (Rajendra Kadam) +- Prevent emails to user on expiry of impersonation token. !32140 +- Fix leaky constant issue in diff collection spec. !32163 (Rajendra Kadam) +- Fix leaky constant issue in migration helpers, with lock retries and ignored cols spec. !32170 (Rajendra Kadam) +- Fix leaky constant issue in factory spec. !32174 (Rajendra Kadam) +- Fix leaky constant issue in creds factory spec. !32176 (Rajendra Kadam) +- Use applogger in project import state file. !32182 (Rajendra Kadam) +- Use applogger in project.rb. !32183 (Rajendra Kadam) +- Use applogger in chat_team.rb. !32184 (Rajendra Kadam) +- Use applogger in repository model. !32185 (Rajendra Kadam) +- Use applogger in build and ssh host key. !32187 (Rajendra Kadam) +- Use applogger in cache attrs and highest role ruby files. !32189 (Rajendra Kadam) +- Use applogger in legacy project and namespace. !32190 (Rajendra Kadam) +- Use applogger in base.rb. !32191 (Rajendra Kadam) +- Use applogger in usage ping and webhook service. !32192 (Rajendra Kadam) +- Use applogger in exclusive_lease_guard. !32194 (Rajendra Kadam) +- Use applogger in groups destroy service and label create service. !32195 (Rajendra Kadam) +- Use applogger in merge_service.rb. !32196 (Rajendra Kadam) +- Use applogger in project create service and after import service. !32198 (Rajendra Kadam) +- Use applogger in update stats service. !32200 (Rajendra Kadam) +- Use applogger in base attachment service. !32201 (Rajendra Kadam) +- Use applogger in export service. !32203 (Rajendra Kadam) +- Use applogger in akismet service. !32205 (Rajendra Kadam) +- Use applogger in file mover file. !32206 (Rajendra Kadam) +- Use applogger in commit signature worker. !32207 (Rajendra Kadam) +- Use applogger in delete user worker. !32209 (Rajendra Kadam) +- Use applogger in email receiver worker. !32211 (Rajendra Kadam) +- Use applogger in artifact worker. !32212 (Rajendra Kadam) +- Use applogger in new note worker. !32213 (Rajendra Kadam) +- Fix duplicate filename displayed in design todos. !32274 (Arun Kumar Mohan) +- Add value length validations for instance level variable. !32303 +- Resolve image overflow at releases list panel. !32307 +- Clean up shared/tmp folder after Import/Export. !32326 +- Fix creating release evidence if release is created via UI. !32441 +- GraphQL hasNextPage and hasPreviousPage return correct values. !32476 +- Fix loading and empty state styling for alerts list. !32531 +- Resolve incorrect x-axis padding on the Environments Dashboard. !32533 +- Fix time_tracking help link. !32552 +- Don't display confidential note icon on confidential issue public notes. !32571 +- Update container expiration policy database defaults. !32600 +- Fix rendering of emojis in status tooltips. !32604 +- Hid copy contents button when blob has rendering error. !32632 +- Avoid refresh to show endedAt after mutation. !32636 +- Fix for metrics creation when saving MR. !32668 +- Skip the individual JIRA issues if failed to import vs failing the whole batch. !32673 +- Hide "Import from Jira" option from non-entitled users. !32685 +- Fix broken help link on operations settings page. !32722 +- Allow different in bulk editing issues. !32734 +- Fix whitespace changes overgrowing the diff container. !32774 +- Improve spacing and wrapping of group actions buttons and stats in group list view. !32786 +- Fix "Broadcast Messages" table overflow and button alignment. !32801 +- Fix 404 when downloading a non-archive artifact. !32811 +- Make commits author button confirm to Pajamas specs. !32821 +- Fix filename duplication in design notes in activity feeds. !32823 (Arun Kumar Mohan) +- Prevent multiple Auto DevOps deployment jobs running concurrently when using manual rollout. !32824 +- Implement displaying downstream pipeline error details. !32844 +- Fix Runner heartbeats that results in considering them offline. !32851 +- Conan package registry support for the conan_export.tgz file. !32866 +- Fix plural message in account deletion section. !32868 +- Fix atomic processing bumping a lock_version. !32914 +- AsciiDoc: Add support for built-in alignment roles. !32928 (mnrvwl) +- Fix a bug where some Vue apps would be unable to load when DAG tab is disabled. !32966 +- Fix undefined error in Gitlab::Git::Diff. !32967 +- Fix spelling error on Ci::RunnersFinder. !32985 (Arthur de Lapertosa Lisboa) +- Fix polling for resource events. !33025 +- Fix broken CSS classes inside alert management list. !33038 +- Fix bug in snippet create mutation with non ActiveRecord errors. !33085 +- Fix overflow issue in MR and Issue comments. !33100 +- Fix alignment of button text on the Edit Release page. !33104 +- Deduplicate URL parameters when requesting merge request diffs which causes diffs load to fail. !33117 +- Fix tabbing through form fields in projects/new flow. !33209 +- Fix incorrect commit search results returned when searching with ref. !33216 +- Fix NoMethodError by using the correct method to report exceptions to Sentry. !33260 +- Fix KaTeX font paths. !33338 +- Resolve Fix Incomplete Kubernetes Cluster Status List. !33344 +- Fix auto-merge not running after discussions resolved. !33371 +- Fix bug in snippets updating only file_name or content. !33375 +- Fix invisible emoji modal on Set Status form when clicked the second time. !33398 +- vertically center action icon in the CI pipeline. !33427 (Nathanael Weber) +- Wrap auto merge parameters update in database transaction. !33471 +- Return 404 response when redirecting request with invalid url. !33492 +- Fix ambiguous string concatenation on CleanupProjectsWithMissingNamespace. !33497 +- Fix snippet repository import edge cases. !33506 +- Rust CI template: Replace --all with --workspace on cargo test. !33517 (Markus Becker) +- Make markdown textarea links tab-accessible. !33518 +- Pass hard delete option to snippets bulk destroy. !33520 +- Fix CI rules for ECS related jobs. !33527 +- Update GitLab Workhorse to v8.34.0. !33543 +- Fix snippet repository import fail with older export files. !33584 +- Web IDE: Create template files in the folder from which new file request was made. !33585 (Ashesh Vidyut) +- Improve header acccessibility. !33603 +- Remove non migrated snippets from failed imports. !33621 +- Prevent duplicate issues when importing from CSV. !33626 +- Fix sidebar spacing for alert details. !33630 +- Fix linking alerts to created issues for the Generic alerts intergration. !33647 +- Resolve spacing ux debt on Release assets form field. !33684 +- Fix pagination link header. !33714 (Max Wittig) +- Fix Value Stream Analytics summary when using non-english locale. !33717 +- Fix bug with variable substitution in alerts. !33772 +- Allow wiki pages with +<> characters in their title to be saved. !33803 +- Fix force_remove_source_branch not working in API. !33804 +- Fix prometheus alerts not being automatically created. !33806 +- Fix pagination for resource label events. !33821 +- Fix relative URL root in wiki_base_path. !33841 +- Return code navigation path for nil diff_refs. !33850 +- Record audit event when an admin creates a new SSH Key for a user via the API. !33859 (Rajendra Kadam) +- Do not create duplicate issues for exising Alert Management alerts. !33860 +- Add link text to collapsed left sidebar links for screen readers. !33866 +- Update text in error tracking list error message. !33872 +- Adjust wrong column reference for ResetMergeStatus (background job). !33899 +- Fixed dashboard YAML file validaiton for files which do not contain object as root element. !33935 +- Fix design note scrolling. !33939 +- Update validates_hostname gem with support for more TLDs. !34010 +- Update wording of addMultipleToDiscussionWarning. !34088 +- Show all storages in settings. !34093 +- Set author as nullable in snippet GraphQL Type. !34135 +- Fix rendering of very long paths in merge request file tree. !34153 +- Remove not null constraint from events tables. !34190 +- Ensure we always generate a valid wiki event URL. !34191 +- Send information about attached files to the GraphQL mutation. !34221 +- Update issue limits template to use minutes. !34254 +- Add route for the lost-and-found group and update the route of orphaned projects. !34285 +- GraphQL - properly handle pagination of millisecond-precision timestamps. !34352 +- Fix 500 error in BlobController#delete. !34367 +- Updated Auto DevOps with a fix to delete PostgreSQL PVC on environment cleanup, a fix for multiline K8S_SECRET variables, updated Helm to 2.16.7 and glibc to 2.31. !34399 (verenion) +- Fix issues with scroll on iOS / iPad OS. !34486 +- Fix order of integrations to be sorted alphabetically. !34501 +- Fix undefined method error. !34522 +- Use Keys::DestroyService for deleting an SSH key when an admin deletes a key via the API. !34535 (Rajendra Kadam) +- Removed default artifact name for Terraform template. !34557 +- Footer system message fix. +- Set experiementation cookie for GitLab domain only. +- Add DS detection of build.gradle.kts. + +### Changed (76 changes, 5 of them are from the community) + +- Add a GraphQL endpoint to fetch Jira projects through its REST API. !28190 +- Change legends in monitor dashboards to tabular layout. !30131 +- Move pipelines routing under /-/ scope. !30730 +- Set markdown toolbar to use hyphens for lists. !31426 +- Use sprites for comment icons on Commits. !31696 +- Rate limit project export by user. !31719 +- Reorder diffs compare versions dropdowns. !31770 (Gilang Gumilar) +- Enable the `in this group` action in the Search dropdown. !31939 +- Externalize i18n strings from ./app/views/shared/_promo.html.haml. !32109 (Gilang Gumilar) +- Add Usage Ping count for all searches. !32111 +- Add tags_count to container registry api and controller. !32141 +- Externalize i18n strings from ./app/views/shared/milestones/_sidebar.html.haml. !32150 (Gilang Gumilar) +- Externalize i18n strings from ./app/views/shared/milestones/_form_dates.html.haml. !32162 (Gilang Gumilar) +- Improve Container Registry UI header. !32424 +- Added node size to cluster index. !32435 +- Update operations metrics settings title and description to make them general. !32494 +- Track merge_requests_users usage data. !32562 +- Adds cluster CPU and Memory to cluster index. !32601 +- Allow the snippet create service to accept an array of files. !32649 +- Move review related controllers/workers outside EE. !32663 +- Move the Members section from settings to the side nav for projects. !32667 +- Show more context in unresolved jump button. !32737 +- Exclude extra.server fields from exceptions_json.log. !32770 +- Improve new/unknown sign-in email styling. !32808 +- Allow the snippet update service to accept an array of files. !32832 +- Add new issue link to email notification header. !32833 +- Bump cluster-applications to 0.17.0, which updates Runner to 0.17.0 and Cilium to 1.7.4. !32931 +- Update artifacts section to show when an artifact is locked. !32992 +- Include tag count in the image repository list. !33027 +- Clean up gitlab-shell install-from-source path. !33057 +- Increase LFS token default time to 2 hours. !33140 +- Add explicit mention of Merge request in Slack message. !33152 +- Expose `release_links.type` via API. !33154 +- Add link_type column to release_links table. !33156 +- Move broadcast notification dismiss button to the top. !33174 +- Remove null constraint for JID in GroupImportState. !33181 +- Added provider type icon to cluster list. !33196 +- Remove search icon from Project find file button. !33198 +- Refine SAST language detection by frameworks. !33226 +- Render Merge request reference as link. !33248 +- Upgrade to Gitaly v13.1.0-rc1. !33302 +- Show disabled suggestion button with tooltip message. !33357 +- Add update validations to SnippetInputAction. !33379 +- Add snippet DB visibility check in spec. !33388 (Jacopo Beschi @jacopo-beschi) +- Add Hugo logo to project templates. !33402 +- Add GitBook logo to project templates. !33403 +- Add GoMicro logo to project templates. !33404 +- Add Jekyll logo to project templates. !33405 +- Add Hexo logo to project templates. !33406 +- Rename Add Designs button. !33491 +- Add CPU, memory usage charts to self monitoring default dashboard. !33532 +- Add database migrations to design_management_designs.filename to enforce a 255 character limit, and modify any filenames that exceed that limit. !33565 +- Track Sentry error status updates with dedicated actions. !33623 +- Alert Managament: Change sorting order to have newest alerts first. !33642 +- Add blobs field to SnippetType in GraphQL. !33657 +- Format metrics column chart x axis dates. !33681 +- Style ToastUI contextual menus. !33719 +- Update Auto deploy image to v0.16.1, introducing support for AUTO_DEVOPS_DEPLOY_DEBUG. !33799 +- Add whether instance has Auto DevOps enabled to usage ping. !33811 +- Update local IP address and domain name allow list input label. !33812 +- Add date time format to the monitor stacked-column chart. !33814 +- Allow Tf Plan to genrate multiple reports. !33867 +- Remove async_merge_request_check_mergeability feature flag. !33917 +- Filter potentially-sensitive Sidekiq arguments from logs and Sentry. !33967 +- Update Static Site Editor toolbar to group inline-code and code-block buttons together. !34006 +- Set default values for SAST_EXCLUDED_PATHS and DS_EXCLUDED_PATHS. !34076 +- Add ability to filter self monitoring resource usage charts by instance name. !34084 +- Pick repository storage based on weight. !34095 +- Display error for YAML files that are too large. !34199 +- Change copy of webhooks / integration help text. !34301 +- Update board header icons. !34366 +- Show Redis instance in performance bar. !34377 +- Add secret detection template to Auto DevOps. !34467 +- Add allowed actions to snippet input action. !34499 +- Change from vendor specific to Gitlab. !34576 +- Assign alerts sidebar base. + +### Performance (19 changes, 1 of them is from the community) + +- Improve performance of commit search by limiting the number of results requested. !32260 +- Add GraphQL lookahead support. !32373 +- Update index_ci_builds_on_commit_id_and_artifacts_expireatandidpartial index for secret_detection. !32584 +- Add index on id and type for Snippets. !32885 +- Use build_stubbed to avoid interacting with the DB in todos helper specs. !32906 (Arun Kumar Mohan) +- Optimize SQL queries on Milestone index page. !32953 +- Add build report results data model. !32991 +- Adjust condition for partial indexes on services table. !33044 +- Add index to issues and epics on last_edited_by_id. !33075 +- Fix preconnect typo in rel link. !33255 +- Add project_id, user_id, status, ref index to ci_pipelines. !33290 +- Move migration related to ci_builds to post_deployment. !33416 +- Reduce redundant queries for Search API users scope. !33795 +- Speed up boot time in production. !33929 +- Harden CI pipelines usage data queries with an index. !34045 +- Add partial index on locked merge requets. !34127 +- Lazy load commit_date and authored_date on Commit. !34181 +- Optimize container repository for groups query. !34364 +- Enable CI Atomic Processing by default. + +### Added (149 changes, 14 of them are from the community) + +- Add rake task to verify encrypted data through secrets. !21851 +- User can apply multiple suggestions at the same time. !22439 (Jesse Hall) +- Resolve Add a button to assign users who have commented on an issue. !23883 +- Resolve Graph code coverage changes over time for a project. !26174 +- Add doc for custom validators in api styleguide. !26734 (Rajendra Kadam) +- Add Scheduled Job for Monitoring Monitor Group Demo Environments. !27360 +- Add setting to allow merge on skipped pipeline. !27490 (Mathieu Parent) +- Add dark theme (alpha). !28252 +- Show estimate on issues list. !28271 (Lee Tickett) +- Make Fixed Email Notification Generally Available. !28338 (jacopo-beschi) +- Add a link to the `renamed` viewer to fully expand the renamed file (if it's text). !28448 +- Focus and toggle metrics dashboard panels via keyboard. !28603 +- Remove `scoped_approval_rules` feature flag. !28864 (Lee Tickett) +- Create Group import UI for creating new Groups. !29271 +- Add finder for group-level runners. !29283 (Arthur de Lapertosa Lisboa) +- Allow customization of badge key_text and key_width. !29381 (Fabian Schneider @fabsrc) +- Support Workhorse directly uploading files to S3. !29389 +- Add frontend support for multiline comments. !29516 +- Support first_name and last_name attributes in LDAP user sync. !29542 +- Add link to status page detail view for status page published issues. !30249 +- Add metrics dashboard name to document title. !30392 +- Backfill StatusPage::Published incidents and enable a publish quick action for EE. !30906 +- Add missing Merge Request fields. !30935 +- Show build status on branch list. !30948 (Lee Tickett) +- Add mutation to create commits in GraphQL. !31102 +- Add GraphQL support for authored and assigned Merge Requests. !31227 +- Add usage data metrics for terraform states. !31280 +- Add usage data metrics for terraform reports. !31281 +- Add API endpoint for listing bridge jobs. !31370 (Abhijith Sivarajan) +- SpamVerdictService can call external spam check endpoint. !31449 +- Move Admin note feature to GitLab Core. !31457 (Rajendra) +- Add DAG serializer for pipelines controller. !31583 +- Save repository storages in application settings with weights. !31645 +- Add API endpoint for resource milestone events. !31720 +- Show import in progress screen for group imports. !31731 +- Add Verify/FailFast CI template. !31812 +- Improve Add/Remove Issue Labels API. !31864 (Lee Tickett) +- Add mutation to create a merge request in GraphQL. !31867 +- Add warning popup for Elastic Stack update. !31972 +- Add API support for sharing groups with groups. !32008 +- Add the container expiration policy attribute to the project GraphQL type. !32100 +- Add GraphQL support for project and group labels. !32113 +- Add number of database calls to Prometheus metrics and logs for sidekiq and request. !32131 +- Filter pipelines by status. !32151 +- Filter pipelines based on url query params. !32230 +- Add metrics for Redis usage during Sidekiq job execution. !32265 +- Add filters to merge request fields. !32328 +- Support reading .editorconfig files inside of the Web IDE. !32378 +- [Frontend] Resolvable design discussions. !32399 +- Table index added to `metrics_dashboard_annotations` for future pruning of stale metrics Annotations for metrics dashboards are now checked for valid start and end dates. !32433 +- Enable GitLab-Flavored Markdown processing for design links. !32446 +- Filter Pipelines by Tag Name. !32470 +- Adds sorting by column to alert management list. !32478 +- Add project specific repository storage API. !32493 +- Adapt Limitable for system-wide features. !32574 +- Add application limits to instance level CI/CD variables. !32575 +- Add model for project level security auto-fix settings. !32577 +- Expose Jira imported issues count in GraphQL. !32580 +- Organize alerts by status tabs. !32582 +- Add note to ECS CI template. !32597 +- Add metrics for Redis usage during web requests. !32605 +- Add database and GraphQL support for alert assignees. !32609 +- Set fingerprints and increment events count for Alert Management alerts. !32613 +- Process stuck jira import jobs. !32643 +- Allow user to add custom links to their metrics dashboard panels. !32646 +- Add tags to experimental queue selector attributes. !32651 +- Allow generic endpoint to receive alerts from external Prometheus. !32676 +- Customize the Cloud Native Buildpack builder used with Auto Build. !32691 +- Add timezone display to alert based issue start time. !32702 +- Display dates on metrics dashboards in UTC time zone. !32746 +- Store Todo resolution method. !32753 +- Add experience_level to user_preferences. !32784 +- Remove metrics dashboard annotations attached to time periods older than two weeks. !32838 +- Monitor:Health metrics instrumenation. !32846 +- Adds PostHog as a CI/CD Managed Application. !32856 +- Groups API has top_level_only option to exclude subgroups. !32870 +- Create operations_feature_flags_issues table. !32876 +- Add api.js methods to update issues and merge requests. !32893 +- Render user-defined links in dashboard yml file on metrics dashboard. !32895 +- Add accessibility report MR widget. !32902 +- Add a GraphQL mutation for toggling the resolved state of a Discussion. !32934 +- Add container expiration policy objects to the GraphQL API. !32944 +- Don't hide Commit tab in Web IDE when there are no changes yet. !32979 +- Add column for alert slack notifications. !33017 +- Add ability to insert an image via SSE. !33029 +- Add user root query to GraphQL API. !33041 +- Adds groupMembership and projectMembership to GraphQL API. !33049 +- Alerts list pagination. !33073 +- Add ApplicationSetting ui changes for repository_storages_weighted. !33096 +- Display confirmation modal when user exits SSE and there are unsaved changes. !33103 +- Add column dashboard_timezone to project_metrics_setting. !33120 +- Allow the assignment of alerts to users from the alert detail view. !33122 +- Add solarized dark for Web IDE. !33148 +- Add support for artifacts/exclude configuration. !33170 +- Add root users query to GraphQL API. !33195 +- Added validation for YAML files with metrics dashboard definitions. !33202 +- Create issue from alert. !33213 +- Add max import file size option. !33215 (Roger Meier) +- Add system note when assigning user to alert. !33217 +- Add count of alerts from all sources to usage ping. !33220 +- Add button to create an issue from an alert management alert. !33221 +- Add more detail to alert integration settings description. !33244 +- Add Evidence to Releases GraphQL endpoint. !33254 +- Add support for pasting images in the Web IDE. !33256 +- Add ProjectAccessToken table. !33272 +- Automatically resolve alert when associated issue closes. !33278 +- Add `link_type` to `ReleaseLink` GraphQL type. !33386 +- Add members to project graphQL endpoint. !33418 +- Update Static Site Editor WYSIWYG mode to hide front matter. !33441 +- Added delete action for Dashboard Annotations in GraphQL. !33468 +- Create graphQL endpoint for Jira users import. !33501 +- Support IAP protected prometheus installations. !33508 +- New instance-level variables UI. !33510 +- Provide `__range` variable for Prometheus queries. !33521 +- Add support for `git filter-repo` to repository cleanup. !33576 +- Close open reply input fields in the design view sidebar when leaving a new comment. !33587 +- Add dashboard schema validation warnings as metrics dashboard GraphQL field. !33592 +- Add time range to user-defined links in metrics dashboard. !33663 +- Increase events count for Prometheus alerts. !33706 +- Track pod logs refresh action. !33802 +- Add secret detection template. !33869 +- Add DAG visualization MVC. !33958 +- Introduce a feature flag for Vue-based UI for all import providers. !33980 +- Add sticky title on Issue pages. !33983 +- Allow Release asset links to be associated with a type. !33998 +- Support user-defined Grafana links in metrics dashboard. !34003 +- Adds AWS guidance to CI/CD > Add Variable modal. !34009 +- Show custom attributes within Admin Pages. !34017 (Roger Meier) +- Enable Slack notifications for alerts. !34038 +- Container expiration policy regular expressions are now validated. !34063 +- Add todo when alert is assigned to a user. !34104 +- Track merge requests submitted by Static Site Editor. !34105 +- Turn off alert issue creation by default. !34107 +- Add detailed logs of each Redis instance usage during job execution and web requests. !34110 +- Add API to schedule project repository storage moves. !34119 +- Add validation step on backend for metrics dashboard links. !34204 +- Track when Static Site Editor is initialized. !34215 +- Bring SAST to Core - brakeman. !34217 +- Mask key comments when exposing SSH/Deploy Keys via the API. !34255 +- Convert `:release` yaml to `release-cli` commands. !34261 +- Validate regex before sending them to CleanupContainerRepositoryWorker. !34282 +- Add secret_detection to DOWNLOADABLE_TYPES. !34313 +- Enable ability to assign alerts to users with corresponding system notes and todos. !34360 +- Enable CI Inheriting Env Variables feature. !34495 +- Show tooltip on error detail page when hovering over dates. !34506 +- Add native code intelligence. !34542 +- Bump cluster-applications version to v0.20.0. !34569 +- Add search argument for AlertStatusCountsResolver. !34596 +- Allow CI_JOB_TOKEN for authenticating to the Terraform state API. !34618 + +### Other (65 changes, 36 of them are from the community) + +- Improve fast-forward merge is not possible message. !22834 (Ben Bodenmiller) +- Remove unused WAF indexes from CI variables. !30021 +- Update the visual design of badges in some areas. !31646 +- Extract featurable concern from ProjectFeature. !31700 (Alexander Randa) +- Remove update function logic from list model. !31900 (nuwe1) +- Remove nextpage function logic from list model. !31904 (nuwe1) +- Squash database migrations prior to 2019 into one. !31936 +- Update deprecated slot syntax in app/assets/javascripts/reports/components/grouped_test_reports_app.vue. !31975 (Gilang Gumilar) +- Replace slot syntax for Vue 3 migration. !31987 (gaslan) +- Update deprecated slot syntax in ./app/assets/javascripts/pages/admin/projects/index/components/delete_project_modal.vue. !31994 (Gilang Gumilar) +- Update deprecated slot syntax in ./app/assets/javascripts/pages/projects/labels/components/promote_label_modal.vue. !31995 (Gilang Gumilar) +- Update deprecated slot syntax in ./app/assets/javascripts/clusters/components/remove_cluster_confirmation.vue. !32010 (Gilang Gumilar) +- Update deprecated slot syntax in ./app/assets/javascripts/environments/components/environments_app.vue. !32011 (Gilang Gumilar) +- Remove setLoadingState logic from issue model. !32226 (nuwe1) +- Remove addAssignee logic from issue model. !32231 (nuwe1) +- Remove addLabel Logic from issue models. !32233 (nuwe1) +- Remove addMilestone logic from issue model. !32235 (nuwe1) +- Remove destroy function logic from list model. !32237 (nuwe1) +- Remove findAssignee logic from issue model. !32238 (nuwe1) +- Remove findLabel logic from issue model. !32239 (nuwe1) +- Remove findIssue logic from list model. !32241 (nuwe1) +- Remove moveIssue logic from list model. !32242 (nuwe1) +- Remove newIssue logic from list model. !32244 (nuwe1) +- Remove removeAllAssignees logic from issue model. !32247 (nuwe1) +- Remove removeAssignee logic from issue model. !32248 (nuwe1) +- Clarify verbiage for stuck job messages. !32250 +- Remove removeLabel logic from issue model. !32251 (nuwe1) +- Remove removeLabels logic from issue model. !32252 (nuwe1) +- Remove removeMilestone logic from issue model. !32253 (nuwe1) +- Remove removeMultipleIssues logic from list model. !32254 (nuwe1) +- Remove setFetchingState logic from issue model. !32255 (nuwe1) +- Remove updateData logic from issue model. !32256 (nuwe1) +- Update U2F docs for Firefox 67+. !32289 (Takuya Noguchi) +- Update alert management mobile table alignment. !32295 +- Include available instance memory in usage ping. !32315 +- Moves merge request reviews into Core. !32558 +- Update GitLab Runner Helm Chart to 0.17.0. !32634 +- Add snowplow tracking for logs page. !32704 +- Extend "Remember me" token after each login. !32730 +- Assign alerts sidebar container fix. !32743 +- Add anchor for creating a branch. !32745 +- Tidy. !32759 (Lee Tickett) +- Less verbose JiraService error logs. !32847 +- Reduced padding and increased emphasis of titles within the epic tree. !32873 +- Remove obsolete users.ghost column. !32957 +- Move NoPrimary table def to last context in spec. !33015 (Rajendra Kadam) +- Document github rate limit behavior. !33090 +- Added build_id column to requirements_management_test_reports table. !33184 +- Add version history information on U2F support. !33229 (Takuya Noguchi) +- Convert IP spoofing errors into client errors. !33280 +- Update docs to reflect move web IDE Terminal and file sync to Core. !33419 +- Add hovering icon for sorting columns on alert management list. !33429 +- Avoid javascript for omniauth logins. !33459 (Diego Louzán) +- Add opacity transition to active design discussion pins. !33493 +- Update GitLab Runner Helm Chart to 0.17.1. !33504 +- Make project selector in various dashboard more translatable. !33771 +- Update Workhorse to v8.35.0. !33817 +- Remove FF hide_token_from_runners_api. !33947 +- Bump omniauth_openid_connect to 0.3.5. !34030 (Roger Meier) +- Specify tiers for SAML SSO at self-hosted plans. !34040 (Takuya Noguchi) +- Backfill failed imported snippet repositories. !34052 +- Use GitLab SVG icon for file attacher action. !34196 +- Add GraphQL snippet FileInputType. !34442 +- Update red hex values to match GitLab UI. !34544 +- Remove removeIssue logic from list model. (nuwe1) + + +## 13.0.14 (2020-08-18) + +- No changes. + +## 13.0.13 (2020-08-17) + +### Security (2 changes) + +- Stop deploy token being mis-used as user in ProjectPolicy and GroupPolicy. +- Project access is checked during deploy token authentication. + + +## 13.0.12 (2020-08-05) + +### Security (10 changes) + +- Add decompressed archive size validation on Project/Group Import. !562 +- Enforce 2FA on Doorkeeper controllers. +- Refresh project authorizations when transferring groups. +- Stop excess logs from failure to send invite email when group no longer exists. +- Verify confirmed email for OAuth Authorize POST endpoint. +- Revoke OAuth grants when a user revokes an application. +- Fix XSS in Markdown reference tooltips. +- Fix XSS in milestone tooltips. +- Fix xss vulnerability on jobs view. +- Block 40-character hexadecimal branches. + + +## 13.0.11 (2020-08-05) + +This version has been skipped due to packaging problems. + ## 13.0.10 (2020-07-09) ### Fixed (1 change) @@ -2844,7 +3961,7 @@ entry. - Replaced ACE with Monaco editor for Snippets. !25465 - Add support for user Job Title. !25483 - Add name_regex_keep param to container registry bulk delete API endpoint. !25484 -- Add Project template for Gatsby. !25486 +- Add Project template for Gatsby. !24192 - Add filepath to ReleaseLink. !25512 - Added Drop older active deployments project setting. !25520 - Add filepath to release links API. !25533 diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index b9b445425c..176df6ffec 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -13.2.10 +13.3.8 \ No newline at end of file diff --git a/GITLAB_ELASTICSEARCH_INDEXER_VERSION b/GITLAB_ELASTICSEARCH_INDEXER_VERSION index 197c4d5c2d..e70b4523ae 100644 --- a/GITLAB_ELASTICSEARCH_INDEXER_VERSION +++ b/GITLAB_ELASTICSEARCH_INDEXER_VERSION @@ -1 +1 @@ -2.4.0 +2.6.0 diff --git a/GITLAB_PAGES_VERSION b/GITLAB_PAGES_VERSION index 3500250a4b..57807d6d0d 100644 --- a/GITLAB_PAGES_VERSION +++ b/GITLAB_PAGES_VERSION @@ -1 +1 @@ -1.21.0 +1.22.0 diff --git a/GITLAB_SHELL_VERSION b/GITLAB_SHELL_VERSION index ac565bc1ca..649e128e1b 100644 --- a/GITLAB_SHELL_VERSION +++ b/GITLAB_SHELL_VERSION @@ -1 +1 @@ -13.3.0 +13.6.0 \ No newline at end of file diff --git a/GITLAB_WORKHORSE_VERSION b/GITLAB_WORKHORSE_VERSION index 2554e8ae98..aaccb7fe68 100644 --- a/GITLAB_WORKHORSE_VERSION +++ b/GITLAB_WORKHORSE_VERSION @@ -1 +1 @@ -8.37.0 +8.39.0 diff --git a/Gemfile b/Gemfile index 83e66ef838..3910118845 100644 --- a/Gemfile +++ b/Gemfile @@ -41,7 +41,7 @@ gem 'omniauth-oauth2-generic', '~> 0.2.2' gem 'omniauth-saml', '~> 1.10' gem 'omniauth-shibboleth', '~> 1.3.0' gem 'omniauth-twitter', '~> 1.4' -gem 'omniauth_crowd', '~> 2.2.0' +gem 'omniauth_crowd', '~> 2.4.0' gem 'omniauth-authentiq', '~> 0.3.3' gem 'omniauth_openid_connect', '~> 0.3.5' gem 'omniauth-salesforce', '~> 1.0.5' @@ -69,7 +69,7 @@ gem 'rubyzip', '~> 2.0.0', require: 'zip' gem 'acme-client', '~> 2.0', '>= 2.0.6' # Browser detection -gem 'browser', '~> 2.5' +gem 'browser', '~> 4.2' # GPG gem 'gpgme', '~> 2.0.19' @@ -119,6 +119,7 @@ gem 'fog-local', '~> 0.6' gem 'fog-openstack', '~> 1.0' gem 'fog-rackspace', '~> 0.1.1' gem 'fog-aliyun', '~> 0.3' +gem 'gitlab-fog-azure-rm', '~> 0.7', require: false # for Google storage gem 'google-api-client', '~> 0.33' @@ -133,8 +134,10 @@ gem 'seed-fu', '~> 2.3.7' gem 'elasticsearch-model', '~> 6.1' gem 'elasticsearch-rails', '~> 6.1', require: 'elasticsearch/rails/instrumentation' gem 'elasticsearch-api', '~> 6.8' -gem 'aws-sdk' -gem 'faraday_middleware-aws-signers-v4' +gem 'aws-sdk-core', '~> 3' +gem 'aws-sdk-cloudformation', '~> 1' +gem 'aws-sdk-s3', '~> 1' +gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # Markdown and HTML processing gem 'html-pipeline', '~> 2.12' @@ -188,7 +191,7 @@ gem 'acts-as-taggable-on', '~> 6.0' # Background jobs gem 'sidekiq', '~> 5.2.7' gem 'sidekiq-cron', '~> 1.0' -gem 'redis-namespace', '~> 1.6.0' +gem 'redis-namespace', '~> 1.7.0' gem 'gitlab-sidekiq-fetcher', '0.5.2', require: 'sidekiq-reliable-fetch' # Cron Parser @@ -214,7 +217,7 @@ gem 're2', '~> 1.2.0' gem 'version_sorter', '~> 2.2.4' # Export Ruby Regex to Javascript -gem 'js_regex', '~> 3.1' +gem 'js_regex', '~> 3.4' # User agent parsing gem 'device_detector' @@ -328,7 +331,7 @@ group :metrics do gem 'method_source', '~> 0.8', require: false # Prometheus - gem 'prometheus-client-mmap', '~> 0.10.0' + gem 'prometheus-client-mmap', '~> 0.11.0' gem 'raindrops', '~> 0.18' end @@ -404,7 +407,7 @@ group :test do gem 'rspec_profiling', '~> 0.0.5' gem 'rspec-parameterized', require: false - gem 'capybara', '~> 3.22.0' + gem 'capybara', '~> 3.33.0' gem 'capybara-screenshot', '~> 1.0.22' gem 'selenium-webdriver', '~> 3.142' @@ -413,7 +416,7 @@ group :test do gem 'webmock', '~> 3.5.1' gem 'rails-controller-testing' gem 'concurrent-ruby', '~> 1.1' - gem 'test-prof', '~> 0.10.0' + gem 'test-prof', '~> 0.12.0' gem 'rspec_junit_formatter' gem 'guard-rspec' @@ -440,7 +443,7 @@ gem 'activerecord-explain-analyze', '~> 0.1', require: false gem 'oauth2', '~> 1.4' # Health check -gem 'health_check', '~> 2.6.0' +gem 'health_check', '~> 3.0' # System information gem 'vmstat', '~> 2.3.0' @@ -460,11 +463,11 @@ group :ed25519 do end # Gitaly GRPC protocol definitions -gem 'gitaly', '~> 13.2.0.pre.rc2' +gem 'gitaly', '~> 13.3.0-rc1' -gem 'grpc', '~> 1.24.0' +gem 'grpc', '~> 1.30.2' -gem 'google-protobuf', '~> 3.8.0' +gem 'google-protobuf', '~> 3.12' gem 'toml-rb', '~> 1.0.0' @@ -505,5 +508,7 @@ gem 'valid_email', '~> 0.1' # JSON gem 'json', '~> 2.3.0' gem 'json-schema', '~> 2.8.0' +gem 'json_schemer', '~> 0.2.12' gem 'oj', '~> 3.10.6' gem 'multi_json', '~> 1.14.1' +gem 'yajl-ruby', '~> 1.4.1', require: 'yajl' diff --git a/Gemfile.lock b/Gemfile.lock index c6771bc4aa..640ac2558c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -93,16 +93,34 @@ GEM encryptor (~> 3.0.0) attr_required (1.0.1) awesome_print (1.8.0) - aws-eventstream (1.0.3) - aws-sdk (2.11.374) - aws-sdk-resources (= 2.11.374) - aws-sdk-core (2.11.374) - aws-sigv4 (~> 1.0) + aws-eventstream (1.1.0) + aws-partitions (1.345.0) + aws-sdk-cloudformation (1.41.0) + aws-sdk-core (~> 3, >= 3.99.0) + aws-sigv4 (~> 1.1) + aws-sdk-core (3.104.3) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.239.0) + aws-sigv4 (~> 1.1) jmespath (~> 1.0) - aws-sdk-resources (2.11.374) - aws-sdk-core (= 2.11.374) - aws-sigv4 (1.1.0) - aws-eventstream (~> 1.0, >= 1.0.2) + aws-sdk-kms (1.36.0) + aws-sdk-core (~> 3, >= 3.99.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.75.0) + aws-sdk-core (~> 3, >= 3.104.1) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.1) + aws-sigv4 (1.2.1) + aws-eventstream (~> 1, >= 1.0.2) + azure-core (0.1.15) + faraday (~> 0.9) + faraday_middleware (~> 0.10) + nokogiri (~> 1.6) + azure-storage (0.15.0.preview) + azure-core (~> 0.1) + faraday (~> 0.9) + faraday_middleware (~> 0.10) + nokogiri (~> 1.6, >= 1.6.8) babosa (1.0.2) base32 (0.3.2) batch-loader (1.4.0) @@ -125,7 +143,7 @@ GEM actionpack (>= 5.0) activemodel (>= 5.0) brakeman (4.2.1) - browser (2.5.3) + browser (4.2.0) builder (3.2.4) bullet (6.0.2) activesupport (>= 3.0.0) @@ -134,7 +152,7 @@ GEM bundler (>= 1.2.0, < 3) thor (~> 0.18) byebug (9.1.0) - capybara (3.22.0) + capybara (3.33.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) @@ -149,7 +167,7 @@ GEM activemodel (>= 4.0.0) activesupport (>= 4.0.0) mime-types (>= 1.16) - character_set (1.1.2) + character_set (1.4.0) charlock_holmes (0.7.6) childprocess (3.0.0) chunky_png (1.3.5) @@ -263,6 +281,8 @@ GEM dry-equalizer (~> 0.3) dry-inflector (~> 0.1, >= 0.1.2) dry-logic (~> 1.0, >= 1.0.2) + ecma-re-validator (0.2.1) + regexp_parser (~> 1.2) ed25519 (1.2.4) elasticsearch (6.8.0) elasticsearch-api (= 6.8.0) @@ -302,13 +322,16 @@ GEM railties (>= 4.2.0) faraday (0.17.3) multipart-post (>= 1.2, < 3) + faraday-cookie_jar (0.0.6) + faraday (>= 0.7.4) + http-cookie (~> 1.0.0) faraday-http-cache (2.0.0) faraday (~> 0.8) faraday_middleware (0.14.0) faraday (>= 0.7.4, < 1.0) - faraday_middleware-aws-signers-v4 (0.1.7) - aws-sdk-resources (~> 2) - faraday (~> 0.9) + faraday_middleware-aws-sigv4 (0.3.0) + aws-sigv4 (~> 1.0) + faraday (>= 0.15) faraday_middleware-multi_json (0.0.6) faraday_middleware multi_json @@ -391,11 +414,17 @@ GEM po_to_json (>= 1.0.0) rails (>= 3.2.0) git (1.5.0) - gitaly (13.2.0.pre.rc2) + gitaly (13.3.0.pre.rc2) grpc (~> 1.0) github-markup (1.7.0) gitlab-chronic (0.10.5) numerizer (~> 0.2) + gitlab-fog-azure-rm (0.7.0) + azure-storage (~> 0.15.0.preview) + fog-core (= 2.1.0) + fog-json (~> 1.2.0) + mime-types + ms_rest_azure (~> 0.12.0) gitlab-labkit (0.12.1) actionpack (>= 5.0.0, < 6.1.0) activesupport (>= 5.0.0, < 6.1.0) @@ -441,9 +470,9 @@ GEM representable (~> 3.0) retriable (>= 2.0, < 4.0) signet (~> 0.12) - google-protobuf (3.8.0) - googleapis-common-protos-types (1.0.4) - google-protobuf (~> 3.0) + google-protobuf (3.12.4) + googleapis-common-protos-types (1.0.5) + google-protobuf (~> 3.11) googleauth (0.12.0) faraday (>= 0.17.3, < 2.0) jwt (>= 1.4, < 3.0) @@ -482,8 +511,8 @@ GEM graphql (~> 1.6) html-pipeline (~> 2.8) sass (~> 3.4) - grpc (1.24.0) - google-protobuf (~> 3.8) + grpc (1.30.2) + google-protobuf (~> 3.12) googleapis-common-protos-types (~> 1.0) gssapi (1.2.0) ffi (>= 1.0.1) @@ -513,13 +542,14 @@ GEM temple (>= 0.8.2) thor tilt + hana (1.3.6) hangouts-chat (0.0.5) hashdiff (0.3.8) hashie (3.6.0) hashie-forbidden_attributes (0.1.1) hashie (>= 3.0) - health_check (2.6.0) - rails (>= 4.0) + health_check (3.0.0) + railties (>= 5.0) heapy (0.1.4) hipchat (1.5.2) httparty @@ -562,9 +592,9 @@ GEM multipart-post oauth (~> 0.5, >= 0.5.0) jmespath (1.4.0) - js_regex (3.1.1) - character_set (~> 1.1) - regexp_parser (~> 1.1) + js_regex (3.4.0) + character_set (~> 1.4) + regexp_parser (~> 1.5) regexp_property_values (~> 0.3) json (2.3.0) json-jwt (1.11.0) @@ -573,6 +603,11 @@ GEM bindata json-schema (2.8.0) addressable (>= 2.4) + json_schemer (0.2.12) + ecma-re-validator (~> 0.2) + hana (~> 1.3) + regexp_parser (~> 1.5) + uri_template (~> 0.7) jwt (2.1.0) kaminari (1.2.1) activesupport (>= 4.1.0) @@ -642,15 +677,24 @@ GEM thread_safe (~> 0.3, >= 0.3.1) memory_profiler (0.9.14) method_source (0.9.2) - mime-types (3.2.2) + mime-types (3.3.1) mime-types-data (~> 3.2015) - mime-types-data (3.2019.0331) + mime-types-data (3.2020.0512) mimemagic (0.3.5) mini_histogram (0.1.3) mini_magick (4.9.5) mini_mime (1.0.2) mini_portile2 (2.4.0) minitest (5.11.3) + ms_rest (0.7.6) + concurrent-ruby (~> 1.0) + faraday (>= 0.9, < 2.0.0) + timeliness (~> 0.3.10) + ms_rest_azure (0.12.0) + concurrent-ruby (~> 1.0) + faraday (>= 0.9, < 2.0.0) + faraday-cookie_jar (~> 0.0.6) + ms_rest (~> 0.7.6) msgpack (1.3.1) multi_json (1.14.1) multi_xml (0.6.0) @@ -740,7 +784,7 @@ GEM omniauth-twitter (1.4.0) omniauth-oauth (~> 1.1) rack - omniauth_crowd (2.2.3) + omniauth_crowd (2.4.0) activesupport nokogiri (>= 1.4.4) omniauth (~> 1.0) @@ -787,7 +831,7 @@ GEM parser unparser procto (0.0.3) - prometheus-client-mmap (0.10.0) + prometheus-client-mmap (0.11.0) pry (0.11.3) coderay (~> 1.1.0) method_source (~> 0.9.0) @@ -877,7 +921,7 @@ GEM redis-activesupport (5.2.0) activesupport (>= 3, < 7) redis-store (>= 1.3, < 2) - redis-namespace (1.6.0) + redis-namespace (1.7.0) redis (>= 3.0.4) redis-rack (2.1.2) rack (>= 2.0.8, < 3) @@ -889,7 +933,7 @@ GEM redis-store (1.8.1) redis (>= 4, < 5) regexp_parser (1.5.1) - regexp_property_values (0.3.4) + regexp_property_values (0.3.5) representable (3.0.4) declarative (< 0.1.0) declarative-option (< 0.2.0) @@ -1076,7 +1120,7 @@ GEM temple (0.8.2) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) - test-prof (0.10.0) + test-prof (0.12.0) text (1.3.1) thin (1.7.2) daemons (~> 1.0, >= 1.0.9) @@ -1087,6 +1131,7 @@ GEM thrift (0.11.0.0) tilt (2.0.10) timecop (0.9.1) + timeliness (0.3.10) timfel-krb5-auth (0.8.3) toml (0.2.0) parslet (~> 1.8.0) @@ -1126,6 +1171,7 @@ GEM equalizer (~> 0.0.9) parser (>= 2.6.5) procto (~> 0.0.2) + uri_template (0.7.0) valid_email (0.1.3) activemodel mail (>= 2.6.1) @@ -1162,6 +1208,7 @@ GEM xml-simple (1.1.5) xpath (3.2.0) nokogiri (~> 1.8) + yajl-ruby (1.4.1) zeitwerk (2.3.0) PLATFORMS @@ -1183,7 +1230,9 @@ DEPENDENCIES atlassian-jwt (~> 0.2.0) attr_encrypted (~> 3.1.0) awesome_print - aws-sdk + aws-sdk-cloudformation (~> 1) + aws-sdk-core (~> 3) + aws-sdk-s3 (~> 1) babosa (~> 1.0.2) base32 (~> 0.3.0) batch-loader (~> 1.4.0) @@ -1195,10 +1244,10 @@ DEPENDENCIES bootsnap (~> 1.4.6) bootstrap_form (~> 4.2.0) brakeman (~> 4.2) - browser (~> 2.5) + browser (~> 4.2) bullet (~> 6.0.2) bundler-audit (~> 0.6.1) - capybara (~> 3.22.0) + capybara (~> 3.33.0) capybara-screenshot (~> 1.0.22) carrierwave (~> 1.3) charlock_holmes (~> 0.7.5) @@ -1230,7 +1279,7 @@ DEPENDENCIES escape_utils (~> 1.1) factory_bot_rails (~> 5.1.0) faraday (~> 0.12) - faraday_middleware-aws-signers-v4 + faraday_middleware-aws-sigv4 (~> 0.3.0) fast_blank ffaker (~> 2.10) flipper (~> 0.17.1) @@ -1251,9 +1300,10 @@ DEPENDENCIES gettext (~> 3.2.2) gettext_i18n_rails (~> 1.8.0) gettext_i18n_rails_js (~> 1.3) - gitaly (~> 13.2.0.pre.rc2) + gitaly (~> 13.3.0.pre.rc1) github-markup (~> 1.7.0) gitlab-chronic (~> 0.10.5) + gitlab-fog-azure-rm (~> 0.7) gitlab-labkit (= 0.12.1) gitlab-license (~> 1.0) gitlab-mail_room (~> 0.0.6) @@ -1267,7 +1317,7 @@ DEPENDENCIES gitlab_omniauth-ldap (~> 2.1.1) gon (~> 6.2) google-api-client (~> 0.33) - google-protobuf (~> 3.8.0) + google-protobuf (~> 3.12) gpgme (~> 2.0.19) grape (= 1.4.0) grape-entity (~> 0.7.1) @@ -1276,14 +1326,14 @@ DEPENDENCIES graphiql-rails (~> 1.4.10) graphql (~> 1.10.5) graphql-docs (~> 1.6.0) - grpc (~> 1.24.0) + grpc (~> 1.30.2) gssapi guard-rspec haml_lint (~> 0.34.0) hamlit (~> 2.11.0) hangouts-chat (~> 0.0.5) hashie-forbidden_attributes - health_check (~> 2.6.0) + health_check (~> 3.0) hipchat (~> 1.5.0) html-pipeline (~> 2.12) html2text @@ -1291,9 +1341,10 @@ DEPENDENCIES icalendar invisible_captcha (~> 0.12.1) jira-ruby (~> 2.0.0) - js_regex (~> 3.1) + js_regex (~> 3.4) json (~> 2.3.0) json-schema (~> 2.8.0) + json_schemer (~> 0.2.12) jwt (~> 2.1.0) kaminari (~> 1.0) knapsack (~> 1.17) @@ -1337,7 +1388,7 @@ DEPENDENCIES omniauth-saml (~> 1.10) omniauth-shibboleth (~> 1.3.0) omniauth-twitter (~> 1.4) - omniauth_crowd (~> 2.2.0) + omniauth_crowd (~> 2.4.0) omniauth_openid_connect (~> 0.3.5) org-ruby (~> 0.9.12) parallel (~> 1.19) @@ -1345,7 +1396,7 @@ DEPENDENCIES pg (~> 1.1) png_quantizator (~> 0.2.1) premailer-rails (~> 1.10.3) - prometheus-client-mmap (~> 0.10.0) + prometheus-client-mmap (~> 0.11.0) pry-byebug (~> 3.5.1) pry-rails (~> 0.3.9) rack (~> 2.0.9) @@ -1365,7 +1416,7 @@ DEPENDENCIES re2 (~> 1.2.0) recaptcha (~> 4.11) redis (~> 4.0) - redis-namespace (~> 1.6.0) + redis-namespace (~> 1.7.0) redis-rails (~> 5.0.2) request_store (~> 1.5) responders (~> 3.0) @@ -1408,7 +1459,7 @@ DEPENDENCIES stackprof (~> 0.2.15) state_machines-activerecord (~> 0.6.0) sys-filesystem (~> 1.1.6) - test-prof (~> 0.10.0) + test-prof (~> 0.12.0) thin (~> 1.7.0) timecop (~> 0.9.1) toml-rb (~> 1.0.0) @@ -1426,6 +1477,7 @@ DEPENDENCIES webmock (~> 3.5.1) webpack-rails (~> 0.9.10) wikicloth (= 0.8.1) + yajl-ruby (~> 1.4.1) BUNDLED WITH 1.17.3 diff --git a/VERSION b/VERSION index b9b445425c..176df6ffec 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -13.2.10 +13.3.8 \ No newline at end of file diff --git a/app/assets/images/mailers/approval/icon-merge-request-gray.gif b/app/assets/images/mailers/approval/icon-merge-request-gray.gif new file mode 100644 index 0000000000..6eef39d3b1 Binary files /dev/null and b/app/assets/images/mailers/approval/icon-merge-request-gray.gif differ diff --git a/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_trigger.vue b/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_trigger.vue new file mode 100644 index 0000000000..78a575ffe9 --- /dev/null +++ b/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_trigger.vue @@ -0,0 +1,49 @@ + + + diff --git a/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_wrapper.vue b/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_wrapper.vue new file mode 100644 index 0000000000..cb9aa50fa6 --- /dev/null +++ b/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_wrapper.vue @@ -0,0 +1,279 @@ + + + diff --git a/app/assets/javascripts/add_context_commits_modal/components/review_tab_container.vue b/app/assets/javascripts/add_context_commits_modal/components/review_tab_container.vue new file mode 100644 index 0000000000..36e3449ff2 --- /dev/null +++ b/app/assets/javascripts/add_context_commits_modal/components/review_tab_container.vue @@ -0,0 +1,57 @@ + + diff --git a/app/assets/javascripts/import_projects/event_hub.js b/app/assets/javascripts/add_context_commits_modal/event_hub.js similarity index 100% rename from app/assets/javascripts/import_projects/event_hub.js rename to app/assets/javascripts/add_context_commits_modal/event_hub.js diff --git a/app/assets/javascripts/add_context_commits_modal/index.js b/app/assets/javascripts/add_context_commits_modal/index.js new file mode 100644 index 0000000000..b5cd111fab --- /dev/null +++ b/app/assets/javascripts/add_context_commits_modal/index.js @@ -0,0 +1,64 @@ +import Vue from 'vue'; +import { parseBoolean } from '~/lib/utils/common_utils'; +import createStore from './store'; +import AddContextCommitsModalTrigger from './components/add_context_commits_modal_trigger.vue'; +import AddContextCommitsModalWrapper from './components/add_context_commits_modal_wrapper.vue'; + +export default function initAddContextCommitsTriggers() { + const addContextCommitsModalTriggerEl = document.querySelector('.add-review-item-modal-trigger'); + const addContextCommitsModalWrapperEl = document.querySelector('.add-review-item-modal-wrapper'); + + if (addContextCommitsModalTriggerEl || addContextCommitsModalWrapperEl) { + // eslint-disable-next-line no-new + new Vue({ + el: addContextCommitsModalTriggerEl, + data() { + const { commitsEmpty, contextCommitsEmpty } = this.$options.el.dataset; + return { + commitsEmpty: parseBoolean(commitsEmpty), + contextCommitsEmpty: parseBoolean(contextCommitsEmpty), + }; + }, + render(createElement) { + return createElement(AddContextCommitsModalTrigger, { + props: { + commitsEmpty: this.commitsEmpty, + contextCommitsEmpty: this.contextCommitsEmpty, + }, + }); + }, + }); + + const store = createStore(); + + // eslint-disable-next-line no-new + new Vue({ + el: addContextCommitsModalWrapperEl, + store, + data() { + const { + contextCommitsPath, + targetBranch, + mergeRequestIid, + projectId, + } = this.$options.el.dataset; + return { + contextCommitsPath, + targetBranch, + mergeRequestIid: Number(mergeRequestIid), + projectId: Number(projectId), + }; + }, + render(createElement) { + return createElement(AddContextCommitsModalWrapper, { + props: { + contextCommitsPath: this.contextCommitsPath, + targetBranch: this.targetBranch, + mergeRequestIid: this.mergeRequestIid, + projectId: this.projectId, + }, + }); + }, + }); + } +} diff --git a/app/assets/javascripts/add_context_commits_modal/store/actions.js b/app/assets/javascripts/add_context_commits_modal/store/actions.js new file mode 100644 index 0000000000..d23955182b --- /dev/null +++ b/app/assets/javascripts/add_context_commits_modal/store/actions.js @@ -0,0 +1,134 @@ +import _ from 'lodash'; +import axios from '~/lib/utils/axios_utils'; +import { deprecatedCreateFlash as createFlash } from '~/flash'; +import { s__ } from '~/locale'; +import Api from '~/api'; +import * as types from './mutation_types'; + +export const setBaseConfig = ({ commit }, options) => { + commit(types.SET_BASE_CONFIG, options); +}; + +export const setTabIndex = ({ commit }, tabIndex) => commit(types.SET_TABINDEX, tabIndex); + +export const searchCommits = ({ dispatch, commit, state }, searchText) => { + commit(types.FETCH_COMMITS); + + let params = {}; + if (searchText) { + params = { + params: { + search: searchText, + per_page: 40, + }, + }; + } + + return axios + .get(state.contextCommitsPath, params) + .then(({ data }) => { + let commits = data.map(o => ({ ...o, isSelected: false })); + commits = commits.map(c => { + const isPresent = state.selectedCommits.find( + selectedCommit => selectedCommit.short_id === c.short_id && selectedCommit.isSelected, + ); + if (isPresent) { + return { ...c, isSelected: true }; + } + return c; + }); + if (!searchText) { + dispatch('setCommits', { commits: [...commits, ...state.contextCommits] }); + } else { + dispatch('setCommits', { commits }); + } + }) + .catch(() => { + commit(types.FETCH_COMMITS_ERROR); + }); +}; + +export const setCommits = ({ commit }, { commits: data, silentAddition = false }) => { + let commits = _.uniqBy(data, 'short_id'); + commits = _.orderBy(data, c => new Date(c.committed_date), ['desc']); + if (silentAddition) { + commit(types.SET_COMMITS_SILENT, commits); + } else { + commit(types.SET_COMMITS, commits); + } +}; + +export const createContextCommits = ({ state }, { commits, forceReload = false }) => + Api.createContextCommits(state.projectId, state.mergeRequestIid, { + commits: commits.map(commit => commit.short_id), + }) + .then(() => { + if (forceReload) { + window.location.reload(); + } + + return true; + }) + .catch(() => { + if (forceReload) { + createFlash(s__('ContextCommits|Failed to create context commits. Please try again.')); + } + + return false; + }); + +export const fetchContextCommits = ({ dispatch, commit, state }) => { + commit(types.FETCH_CONTEXT_COMMITS); + return Api.allContextCommits(state.projectId, state.mergeRequestIid) + .then(({ data }) => { + const contextCommits = data.map(o => ({ ...o, isSelected: true })); + dispatch('setContextCommits', contextCommits); + dispatch('setCommits', { + commits: [...state.commits, ...contextCommits], + silentAddition: true, + }); + dispatch('setSelectedCommits', contextCommits); + }) + .catch(() => { + commit(types.FETCH_CONTEXT_COMMITS_ERROR); + }); +}; + +export const setContextCommits = ({ commit }, data) => { + commit(types.SET_CONTEXT_COMMITS, data); +}; + +export const removeContextCommits = ({ state }, forceReload = false) => + Api.removeContextCommits(state.projectId, state.mergeRequestIid, { + commits: state.toRemoveCommits, + }) + .then(() => { + if (forceReload) { + window.location.reload(); + } + + return true; + }) + .catch(() => { + if (forceReload) { + createFlash(s__('ContextCommits|Failed to delete context commits. Please try again.')); + } + + return false; + }); + +export const setSelectedCommits = ({ commit }, selected) => { + let selectedCommits = _.uniqBy(selected, 'short_id'); + selectedCommits = _.orderBy( + selectedCommits, + selectedCommit => new Date(selectedCommit.committed_date), + ['desc'], + ); + commit(types.SET_SELECTED_COMMITS, selectedCommits); +}; + +export const setSearchText = ({ commit }, searchText) => commit(types.SET_SEARCH_TEXT, searchText); + +export const setToRemoveCommits = ({ commit }, data) => commit(types.SET_TO_REMOVE_COMMITS, data); + +export const resetModalState = ({ commit }) => commit(types.RESET_MODAL_STATE); diff --git a/app/assets/javascripts/add_context_commits_modal/store/index.js b/app/assets/javascripts/add_context_commits_modal/store/index.js new file mode 100644 index 0000000000..0bf3441379 --- /dev/null +++ b/app/assets/javascripts/add_context_commits_modal/store/index.js @@ -0,0 +1,15 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; +import * as actions from './actions'; +import mutations from './mutations'; +import state from './state'; + +Vue.use(Vuex); + +export default () => + new Vuex.Store({ + namespaced: true, + state: state(), + actions, + mutations, + }); diff --git a/app/assets/javascripts/add_context_commits_modal/store/mutation_types.js b/app/assets/javascripts/add_context_commits_modal/store/mutation_types.js new file mode 100644 index 0000000000..eda82f3984 --- /dev/null +++ b/app/assets/javascripts/add_context_commits_modal/store/mutation_types.js @@ -0,0 +1,20 @@ +export const SET_BASE_CONFIG = 'SET_BASE_CONFIG'; + +export const SET_TABINDEX = 'SET_TABINDEX'; + +export const FETCH_COMMITS = 'FETCH_COMMITS'; +export const SET_COMMITS = 'SET_COMMITS'; +export const SET_COMMITS_SILENT = 'SET_COMMITS_SILENT'; +export const FETCH_COMMITS_ERROR = 'FETCH_COMMITS_ERROR'; + +export const FETCH_CONTEXT_COMMITS = 'FETCH_CONTEXT_COMMITS'; +export const SET_CONTEXT_COMMITS = 'SET_CONTEXT_COMMITS'; +export const FETCH_CONTEXT_COMMITS_ERROR = 'FETCH_CONTEXT_COMMITS_ERROR'; + +export const SET_SELECTED_COMMITS = 'SET_SELECTED_COMMITS'; + +export const SET_SEARCH_TEXT = 'SET_SEARCH_TEXT'; + +export const SET_TO_REMOVE_COMMITS = 'SET_TO_REMOVE_COMMITS'; + +export const RESET_MODAL_STATE = 'RESET_MODAL_STATE'; diff --git a/app/assets/javascripts/add_context_commits_modal/store/mutations.js b/app/assets/javascripts/add_context_commits_modal/store/mutations.js new file mode 100644 index 0000000000..8a3da0ca24 --- /dev/null +++ b/app/assets/javascripts/add_context_commits_modal/store/mutations.js @@ -0,0 +1,56 @@ +import * as types from './mutation_types'; + +export default { + [types.SET_BASE_CONFIG](state, options) { + Object.assign(state, { ...options }); + }, + [types.SET_TABINDEX](state, tabIndex) { + state.tabIndex = tabIndex; + }, + [types.FETCH_COMMITS](state) { + state.isLoadingCommits = true; + state.commitsLoadingError = false; + }, + [types.SET_COMMITS](state, commits) { + state.commits = commits; + state.isLoadingCommits = false; + state.commitsLoadingError = false; + }, + [types.SET_COMMITS_SILENT](state, commits) { + state.commits = commits; + }, + [types.FETCH_COMMITS_ERROR](state) { + state.commitsLoadingError = true; + state.isLoadingCommits = false; + }, + [types.FETCH_CONTEXT_COMMITS](state) { + state.isLoadingContextCommits = true; + state.contextCommitsLoadingError = false; + }, + [types.SET_CONTEXT_COMMITS](state, contextCommits) { + state.contextCommits = contextCommits; + state.isLoadingContextCommits = false; + state.contextCommitsLoadingError = false; + }, + [types.FETCH_CONTEXT_COMMITS_ERROR](state) { + state.contextCommitsLoadingError = true; + state.isLoadingContextCommits = false; + }, + [types.SET_SELECTED_COMMITS](state, commits) { + state.selectedCommits = commits; + }, + [types.SET_SEARCH_TEXT](state, searchText) { + state.searchText = searchText; + }, + [types.SET_TO_REMOVE_COMMITS](state, commits) { + state.toRemoveCommits = commits; + }, + [types.RESET_MODAL_STATE](state) { + state.tabIndex = 0; + state.commits = []; + state.contextCommits = []; + state.selectedCommits = []; + state.toRemoveCommits = []; + state.searchText = ''; + }, +}; diff --git a/app/assets/javascripts/add_context_commits_modal/store/state.js b/app/assets/javascripts/add_context_commits_modal/store/state.js new file mode 100644 index 0000000000..37239adccb --- /dev/null +++ b/app/assets/javascripts/add_context_commits_modal/store/state.js @@ -0,0 +1,13 @@ +export default () => ({ + contextCommitsPath: '', + tabIndex: 0, + isLoadingCommits: false, + commits: [], + commitsLoadingError: false, + selectedCommits: [], + isLoadingContextCommits: false, + contextCommits: [], + contextCommitsLoadingError: false, + searchText: '', + toRemoveCommits: [], +}); diff --git a/app/assets/javascripts/add_context_commits_modal/utils.js b/app/assets/javascripts/add_context_commits_modal/utils.js new file mode 100644 index 0000000000..3495ee17cd --- /dev/null +++ b/app/assets/javascripts/add_context_commits_modal/utils.js @@ -0,0 +1,32 @@ +export const findCommitIndex = (commits, commitShortId) => { + return commits.findIndex(commit => commit.short_id === commitShortId); +}; + +export const setCommitStatus = (commits, commitIndex, selected) => { + const tempCommits = [...commits]; + tempCommits[commitIndex] = { + ...tempCommits[commitIndex], + isSelected: selected, + }; + return tempCommits; +}; + +export const removeIfReadyToBeRemoved = (toRemoveCommits, commitShortId) => { + const tempToRemoveCommits = [...toRemoveCommits]; + const isPresentInToRemove = tempToRemoveCommits.indexOf(commitShortId); + if (isPresentInToRemove !== -1) { + tempToRemoveCommits.splice(isPresentInToRemove, 1); + } + + return tempToRemoveCommits; +}; + +export const removeIfPresent = (selectedCommits, commitShortId) => { + const tempSelectedCommits = [...selectedCommits]; + const selectedCommitsIndex = findCommitIndex(tempSelectedCommits, commitShortId); + if (selectedCommitsIndex !== -1) { + tempSelectedCommits.splice(selectedCommitsIndex, 1); + } + + return tempSelectedCommits; +}; diff --git a/app/assets/javascripts/admin/statistics_panel/store/actions.js b/app/assets/javascripts/admin/statistics_panel/store/actions.js index 537025f524..dd04e49238 100644 --- a/app/assets/javascripts/admin/statistics_panel/store/actions.js +++ b/app/assets/javascripts/admin/statistics_panel/store/actions.js @@ -1,6 +1,6 @@ import Api from '~/api'; import { s__ } from '~/locale'; -import createFlash from '~/flash'; +import { deprecatedCreateFlash as createFlash } from '~/flash'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; import * as types from './mutation_types'; @@ -23,6 +23,3 @@ export const receiveStatisticsError = ({ commit }, error) => { commit(types.RECEIVE_STATISTICS_ERROR, error); createFlash(s__('AdminDashboard|Error loading the statistics. Please try again')); }; - -// prevent babel-plugin-rewire from generating an invalid default during karma tests -export default () => {}; diff --git a/app/assets/javascripts/admin/statistics_panel/store/getters.js b/app/assets/javascripts/admin/statistics_panel/store/getters.js index 24437bc76b..2aa34b8f38 100644 --- a/app/assets/javascripts/admin/statistics_panel/store/getters.js +++ b/app/assets/javascripts/admin/statistics_panel/store/getters.js @@ -3,6 +3,7 @@ * and returns an array of the following form: * [{ key: "forks", label: "Forks", value: 50 }] */ +// eslint-disable-next-line import/prefer-default-export export const getStatistics = state => labels => Object.keys(labels).map(key => { const result = { @@ -12,6 +13,3 @@ export const getStatistics = state => labels => }; return result; }); - -// prevent babel-plugin-rewire from generating an invalid default during karma tests -export default () => {}; diff --git a/app/assets/javascripts/alert_management/components/alert_details.vue b/app/assets/javascripts/alert_management/components/alert_details.vue index 0731349630..5d260fcc20 100644 --- a/app/assets/javascripts/alert_management/components/alert_details.vue +++ b/app/assets/javascripts/alert_management/components/alert_details.vue @@ -35,13 +35,24 @@ export default { errorMsg: s__( 'AlertManagement|There was an error displaying the alert. Please refresh the page to try again.', ), - fullAlertDetailsTitle: s__('AlertManagement|Alert details'), - overviewTitle: s__('AlertManagement|Overview'), - metricsTitle: s__('AlertManagement|Metrics'), reportedAt: s__('AlertManagement|Reported %{when}'), reportedAtWithTool: s__('AlertManagement|Reported %{when} by %{tool}'), }, severityLabels: ALERTS_SEVERITY_LABELS, + tabsConfig: [ + { + id: 'overview', + title: s__('AlertManagement|Overview'), + }, + { + id: 'fullDetails', + title: s__('AlertManagement|Alert details'), + }, + { + id: 'metrics', + title: s__('AlertManagement|Metrics'), + }, + ], components: { GlBadge, GlAlert, @@ -102,8 +113,8 @@ export default { errored: false, sidebarStatus: false, isErrorDismissed: false, - createIssueError: '', - issueCreationInProgress: false, + createIncidentError: '', + incidentCreationInProgress: false, sidebarErrorMessage: '', }; }, @@ -119,6 +130,18 @@ export default { showErrorMsg() { return this.errored && !this.isErrorDismissed; }, + activeTab() { + return this.$route.params.tabId || this.$options.tabsConfig[0].id; + }, + currentTabIndex: { + get() { + return this.$options.tabsConfig.findIndex(tab => tab.id === this.activeTab); + }, + set(tabIdx) { + const tabId = this.$options.tabsConfig[tabIdx].id; + this.$router.replace({ name: 'tab', params: { tabId } }); + }, + }, }, mounted() { this.trackPageViews(); @@ -149,8 +172,8 @@ export default { this.errored = true; this.sidebarErrorMessage = errorMessage; }, - createIssue() { - this.issueCreationInProgress = true; + createIncident() { + this.incidentCreationInProgress = true; this.$apollo .mutate({ @@ -162,18 +185,18 @@ export default { }) .then(({ data: { createAlertIssue: { errors, issue } } }) => { if (errors?.length) { - [this.createIssueError] = errors; - this.issueCreationInProgress = false; + [this.createIncidentError] = errors; + this.incidentCreationInProgress = false; } else if (issue) { - visitUrl(this.issuePath(issue.iid)); + visitUrl(this.incidentPath(issue.iid)); } }) .catch(error => { - this.createIssueError = error; - this.issueCreationInProgress = false; + this.createIncidentError = error; + this.incidentCreationInProgress = false; }); }, - issuePath(issueId) { + incidentPath(issueId) { return joinPaths(this.projectIssuesPath, issueId); }, trackPageViews() { @@ -190,12 +213,12 @@ export default {

- {{ createIssueError }} + {{ createIncidentError }}
-
-
- - {{ s__('AlertManagement|Alert') }} - -
+
+ + {{ s__('AlertManagement|Alert') }} + -
+
diff --git a/app/assets/javascripts/blob/components/blob_header_default_actions.vue b/app/assets/javascripts/blob/components/blob_header_default_actions.vue index 62fef108b4..daade61165 100644 --- a/app/assets/javascripts/blob/components/blob_header_default_actions.vue +++ b/app/assets/javascripts/blob/components/blob_header_default_actions.vue @@ -1,5 +1,5 @@ diff --git a/app/assets/javascripts/blob/components/blob_header_viewer_switcher.vue b/app/assets/javascripts/blob/components/blob_header_viewer_switcher.vue index 5b15fe2d7c..902dd0b8ee 100644 --- a/app/assets/javascripts/blob/components/blob_header_viewer_switcher.vue +++ b/app/assets/javascripts/blob/components/blob_header_viewer_switcher.vue @@ -1,5 +1,5 @@ + + diff --git a/app/assets/javascripts/boards/components/board_sidebar.js b/app/assets/javascripts/boards/components/board_sidebar.js index 056a7b4821..3790c49408 100644 --- a/app/assets/javascripts/boards/components/board_sidebar.js +++ b/app/assets/javascripts/boards/components/board_sidebar.js @@ -3,7 +3,7 @@ import $ from 'jquery'; import Vue from 'vue'; import { GlLabel } from '@gitlab/ui'; -import Flash from '~/flash'; +import { deprecatedCreateFlash as Flash } from '~/flash'; import { sprintf, __ } from '~/locale'; import Sidebar from '~/right_sidebar'; import eventHub from '~/sidebar/event_hub'; diff --git a/app/assets/javascripts/boards/components/boards_selector.vue b/app/assets/javascripts/boards/components/boards_selector.vue index dbe3e0790f..48f6ba6cfc 100644 --- a/app/assets/javascripts/boards/components/boards_selector.vue +++ b/app/assets/javascripts/boards/components/boards_selector.vue @@ -3,10 +3,10 @@ import { throttle } from 'lodash'; import { GlLoadingIcon, GlSearchBoxByType, - GlDropdown, - GlDropdownDivider, - GlDropdownHeader, - GlDropdownItem, + GlDeprecatedDropdown, + GlDeprecatedDropdownDivider, + GlDeprecatedDropdownHeader, + GlDeprecatedDropdownItem, } from '@gitlab/ui'; import httpStatusCodes from '~/lib/utils/http_status'; @@ -26,10 +26,10 @@ export default { BoardForm, GlLoadingIcon, GlSearchBoxByType, - GlDropdown, - GlDropdownDivider, - GlDropdownHeader, - GlDropdownItem, + GlDeprecatedDropdown, + GlDeprecatedDropdownDivider, + GlDeprecatedDropdownHeader, + GlDeprecatedDropdownItem, }, props: { currentBoard: { @@ -235,7 +235,7 @@ export default {