diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6853b100ed7..0c06df88b3f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -36,10 +36,21 @@ workflow: - if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^release-tools\/\d+\.\d+\.\d+-rc\d+$/ && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^[\d-]+-stable(-ee)?$/ && $CI_PROJECT_PATH == "gitlab-org/gitlab"' when: never # For merged result pipelines, set $QA_IMAGE, since $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is only available for merged result pipelines. - - if: '$CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "merge_train"' + # AND + # For merge requests running exclusively in Ruby 3.0 + - if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "merge_train") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3/' variables: QA_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_MERGE_REQUEST_SOURCE_BRANCH_SHA}" - # Also run (detached) merge request pipelines. + RUBY_VERSION: "3.0" + # For merged result pipelines, set $QA_IMAGE, since $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is only available for merged result pipelines. + - if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "merge_train")' + variables: + QA_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_MERGE_REQUEST_SOURCE_BRANCH_SHA}" + # For merge requests running exclusively in Ruby 3.0 + - if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3/' + variables: + RUBY_VERSION: "3.0" + # For (detached) merge request pipelines. - if: '$CI_MERGE_REQUEST_IID' # For the maintenance scheduled pipelines, we set specific variables. - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "maintenance"' diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index 0f3e2b1fcda..d55d5e0cf44 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -929,16 +929,18 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /app/workers/authorized_projects_worker.rb @gitlab-org/manage/authentication-and-authorization /app/workers/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization /config/feature_flags/development/application_settings_tokens_optional_encryption.yml @gitlab-org/manage/authentication-and-authorization +/config/feature_flags/development/async_only_project_authorizations_refresh.yml @gitlab-org/manage/authentication-and-authorization /config/feature_flags/development/enforce_auth_checks_on_uploads.yml @gitlab-org/manage/authentication-and-authorization /config/feature_flags/development/forti_authenticator.yml @gitlab-org/manage/authentication-and-authorization /config/feature_flags/development/forti_token_cloud.yml @gitlab-org/manage/authentication-and-authorization /config/feature_flags/development/groups_tokens_optional_encryption.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/omniauth_initializer_fullhost_proc.yml @gitlab-org/manage/authentication-and-authorization /config/feature_flags/development/omniauth_login_minimal_scopes.yml @gitlab-org/manage/authentication-and-authorization /config/feature_flags/development/personal_access_tokens_scoped_to_projects.yml @gitlab-org/manage/authentication-and-authorization /config/feature_flags/development/projects_tokens_optional_encryption.yml @gitlab-org/manage/authentication-and-authorization /config/feature_flags/development/refresh_authorizations_via_affected_projects_on_group_membership.yml @gitlab-org/manage/authentication-and-authorization +/config/feature_flags/development/skip_group_share_unlink_auth_refresh.yml @gitlab-org/manage/authentication-and-authorization /config/feature_flags/development/specialized_worker_for_group_lock_update_auth_recalculation.yml @gitlab-org/manage/authentication-and-authorization +/config/feature_flags/development/update_oauth_registration_flow.yml @gitlab-org/manage/authentication-and-authorization /config/feature_flags/development/webauthn.yml @gitlab-org/manage/authentication-and-authorization /config/feature_flags/ops/block_password_auth_for_saml_users.yml @gitlab-org/manage/authentication-and-authorization /config/initializers/01_secret_token.rb @gitlab-org/manage/authentication-and-authorization @@ -975,6 +977,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /ee/app/helpers/ee/access_tokens_helper.rb @gitlab-org/manage/authentication-and-authorization /ee/app/helpers/ee/auth_helper.rb @gitlab-org/manage/authentication-and-authorization /ee/app/helpers/ee/personal_access_tokens_helper.rb @gitlab-org/manage/authentication-and-authorization +/ee/app/models/concerns/password_complexity.rb @gitlab-org/manage/authentication-and-authorization /ee/app/models/ee/personal_access_token.rb @gitlab-org/manage/authentication-and-authorization /ee/app/models/ee/project_authorization.rb @gitlab-org/manage/authentication-and-authorization /ee/app/models/scim_oauth_access_token.rb @gitlab-org/manage/authentication-and-authorization @@ -984,6 +987,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /ee/app/services/ee/resource_access_tokens/ @gitlab-org/manage/authentication-and-authorization /ee/app/services/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization /ee/app/services/security/token_revocation_service.rb @gitlab-org/manage/authentication-and-authorization +/ee/app/validators/password/ @gitlab-org/manage/authentication-and-authorization /ee/app/views/admin/application_settings/_personal_access_token_expiration_policy.html.haml @gitlab-org/manage/authentication-and-authorization /ee/app/views/credentials_inventory_mailer/personal_access_token_revoked_email.html.haml @gitlab-org/manage/authentication-and-authorization /ee/app/views/credentials_inventory_mailer/personal_access_token_revoked_email.text.haml @gitlab-org/manage/authentication-and-authorization @@ -996,6 +1000,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /ee/app/views/shared/credentials_inventory/_project_access_tokens.html.haml @gitlab-org/manage/authentication-and-authorization /ee/app/views/shared/credentials_inventory/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization /ee/app/views/shared/credentials_inventory/project_access_tokens/ @gitlab-org/manage/authentication-and-authorization +/ee/app/workers/auth/ @gitlab-org/manage/authentication-and-authorization /ee/app/workers/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization /ee/config/routes/oauth.rb @gitlab-org/manage/authentication-and-authorization /ee/lib/ee/gitlab/auth/ @gitlab-org/manage/authentication-and-authorization @@ -1012,6 +1017,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /lib/api/entities/impersonation_token.rb @gitlab-org/manage/authentication-and-authorization /lib/api/entities/impersonation_token_with_token.rb @gitlab-org/manage/authentication-and-authorization /lib/api/entities/personal_access_token.rb @gitlab-org/manage/authentication-and-authorization +/lib/api/entities/personal_access_token_with_details.rb @gitlab-org/manage/authentication-and-authorization /lib/api/entities/personal_access_token_with_token.rb @gitlab-org/manage/authentication-and-authorization /lib/api/entities/resource_access_token.rb @gitlab-org/manage/authentication-and-authorization /lib/api/entities/resource_access_token_with_token.rb @gitlab-org/manage/authentication-and-authorization diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 6c3909c9e78..c9929f3c2e0 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -49,6 +49,9 @@ .if-merge-request-targeting-stable-branch: &if-merge-request-targeting-stable-branch if: '$CI_MERGE_REQUEST_IID && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^[\d-]+-stable(-ee)?$/' +.if-merge-request-labels-run-in-ruby3: &if-merge-request-labels-run-in-ruby3 + if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3/' + .if-merge-request-labels-as-if-foss: &if-merge-request-labels-as-if-foss if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-foss/' @@ -1789,6 +1792,10 @@ - <<: *if-default-refs changes: *code-backstage-patterns +.setup:rules:verify-ruby-2.7: + rules: + - <<: *if-merge-request-labels-run-in-ruby3 + .setup:rules:verify-tests-yml: rules: - <<: *if-not-ee diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml index 505caeec837..2da397aaab8 100644 --- a/.gitlab/ci/setup.gitlab-ci.yml +++ b/.gitlab/ci/setup.gitlab-ci.yml @@ -23,13 +23,19 @@ cache gems: - .default-retry needs: [] -dont-interrupt-me: - extends: .setup:rules:dont-interrupt-me - stage: sync +.absolutely-minimal-job: + extends: + - .minimal-job image: ${GITLAB_DEPENDENCY_PROXY}alpine:edge - interruptible: false variables: GIT_STRATEGY: none + +dont-interrupt-me: + extends: + - .absolutely-minimal-job + - .setup:rules:dont-interrupt-me + stage: sync + interruptible: false script: - echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible." @@ -57,6 +63,15 @@ no-jh-check: script: - scripts/no-dir-check jh +verify-ruby-2.7: + extends: + - .absolutely-minimal-job + - .setup:rules:verify-ruby-2.7 + stage: prepare + script: + - echo 'Please remove label ~"pipeline:run-in-ruby3" so we do test against Ruby 2.7 (default version) before merging the merge request' + - exit 1 + verify-tests-yml: extends: - .setup:rules:verify-tests-yml @@ -70,8 +85,8 @@ verify-tests-yml: verify-approvals: extends: + - .minimal-job - .setup:rules:jh-contribution - needs: [] script: - source scripts/utils.sh - install_gitlab_gem diff --git a/app/assets/javascripts/pages/shared/wikis/components/wiki_form.vue b/app/assets/javascripts/pages/shared/wikis/components/wiki_form.vue index 33e5c61f4fc..3c22844434d 100644 --- a/app/assets/javascripts/pages/shared/wikis/components/wiki_form.vue +++ b/app/assets/javascripts/pages/shared/wikis/components/wiki_form.vue @@ -1,5 +1,15 @@