From ae9f43a2c4bda0ee7dae59ea9a7d412068f6f7ff Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 2 Feb 2023 12:07:33 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/ci/frontend.gitlab-ci.yml | 6 +- .../ci/package-and-test/main.gitlab-ci.yml | 4 +- .gitlab/ci/review-apps/qa.gitlab-ci.yml | 2 +- .gitlab/ci/rules.gitlab-ci.yml | 1 + .../performance/concurrent_monotonic_time.yml | 6 - GITALY_SERVER_VERSION | 2 +- .../admin_new_runner/admin_new_runner_app.vue | 48 ++++++ .../ci/runner/admin_new_runner/index.js | 32 ++++ .../components/table/cells/actions_cell.vue | 9 +- .../jobs/components/table/constants.js | 2 + .../components/details/version_row.vue | 13 +- .../components/list/package_list_row.vue | 4 - .../queries/get_package_details.query.graphql | 3 + .../pages/admin/runners/new/index.js | 3 + .../javascripts/pages/users/show/index.js | 16 ++ .../pipelines/components/graph/job_item.vue | 11 +- .../pipeline_mini_graph/job_item.vue | 15 +- .../profile/components/activity_tab.vue | 17 ++ .../components/contributed_projects_tab.vue | 17 ++ .../profile/components/followers_tab.vue | 17 ++ .../profile/components/following_tab.vue | 17 ++ .../profile/components/groups_tab.vue | 17 ++ .../profile/components/overview_tab.vue | 17 ++ .../components/personal_projects_tab.vue | 17 ++ .../profile/components/profile_tabs.vue | 72 ++++++++ .../profile/components/snippets_tab.vue | 17 ++ .../components/starred_projects_tab.vue | 17 ++ app/assets/javascripts/profile/index.js | 16 ++ app/controllers/users_controller.rb | 3 + app/graphql/types/ci/job_token_scope_type.rb | 2 +- app/models/ci/job_token/project_scope_link.rb | 7 +- app/models/ci/job_token/scope.rb | 56 ++++-- app/policies/project_policy.rb | 2 +- .../ci/parse_dotenv_artifact_service.rb | 5 + app/views/admin/runners/new.html.haml | 7 +- app/views/users/show.html.haml | 160 +++++++++--------- .../development/ci_multi_doc_yaml.yml | 8 + .../development/profile_tabs_vue.yml | 8 + danger/documentation/Dangerfile | 2 +- doc/administration/gitaly/praefect.md | 51 ------ doc/administration/gitaly/recovery.md | 51 ++++++ doc/administration/integration/mailgun.md | 2 +- .../ci_pipeline_components/index.md | 2 + doc/ci/services/index.md | 6 + .../styleguide/img/admin_access_level.png | Bin 9821 -> 8291 bytes .../documentation/styleguide/word_list.md | 2 +- doc/development/pipelines/index.md | 12 +- doc/security/img/unlock_user_v14_7.png | Bin 31666 -> 0 bytes doc/security/unlock_user.md | 4 +- doc/subscriptions/gitlab_dedicated/index.md | 4 +- .../packages/debian_package_endpoints.rb | 2 + lib/gitlab/ci/config.rb | 3 +- lib/gitlab/ci/config/yaml.rb | 11 +- lib/gitlab/config/loader/multi_doc_yaml.rb | 64 +++++++ lib/gitlab/database/connection_timer.rb | 2 +- lib/gitlab/encoding_helper.rb | 5 + locale/gitlab.pot | 12 ++ spec/features/calendar_spec.rb | 1 + .../dashboard/datetime_on_tooltips_spec.rb | 4 + .../profiles/user_visits_profile_spec.rb | 1 + spec/features/users/overview_spec.rb | 1 + spec/features/users/show_spec.rb | 59 ++++++- spec/features/users/snippets_spec.rb | 4 + ...user_browses_projects_on_user_page_spec.rb | 4 + .../build_artifacts/dotenv_utf16_le.txt | Bin 0 -> 62 bytes .../admin_new_runner_app_spec.js | 53 ++++++ spec/frontend/fixtures/jobs.rb | 1 + .../table/cells/actions_cell_spec.js | 19 ++- .../components/details/version_row_spec.js | 23 ++- .../components/list/package_list_row_spec.js | 33 ++-- .../package_registry/mock_data.js | 15 +- .../package_registry/pages/details_spec.js | 3 +- .../frontend/pipelines/graph/job_item_spec.js | 14 +- spec/frontend/pipelines/graph/mock_data.js | 22 +++ .../profile/components/activity_tab_spec.js | 19 +++ .../contributed_projects_tab_spec.js | 21 +++ .../profile/components/followers_tab_spec.js | 19 +++ .../profile/components/following_tab_spec.js | 19 +++ .../profile/components/groups_tab_spec.js | 19 +++ .../profile/components/overview_tab_spec.js | 19 +++ .../components/personal_projects_tab_spec.js | 21 +++ .../profile/components/profile_tabs_spec.js | 36 ++++ .../profile/components/snippets_tab_spec.js | 19 +++ .../components/starred_projects_tab_spec.js | 21 +++ .../ci/job_token_scope/add_project_spec.rb | 2 +- .../ci/job_token_scope_resolver_spec.rb | 8 +- spec/lib/gitlab/ci/config/yaml_spec.rb | 105 ++++++++++++ .../config/loader/multi_doc_yaml_spec.rb | 99 +++++++++++ spec/lib/gitlab/config/loader/yaml_spec.rb | 2 +- spec/lib/gitlab/encoding_helper_spec.rb | 8 + spec/models/ci/job_token/allowlist_spec.rb | 19 ++- .../ci/job_token/project_scope_link_spec.rb | 5 +- spec/models/ci/job_token/scope_spec.rb | 148 +++++++++++----- spec/policies/project_policy_spec.rb | 5 +- spec/requests/api/ci/job_artifacts_spec.rb | 14 +- .../api/debian_group_packages_spec.rb | 12 ++ .../api/debian_project_packages_spec.rb | 12 ++ .../ci/job_token_scope/add_project_spec.rb | 2 +- .../ci/job_token_scope/remove_project_spec.rb | 10 +- spec/requests/api/project_packages_spec.rb | 14 +- spec/requests/api/release/links_spec.rb | 12 +- spec/requests/git_http_spec.rb | 39 ++--- .../ci/parse_dotenv_artifact_service_spec.rb | 14 +- .../helpers/ci/job_token_scope_helpers.rb | 51 ++++++ .../models/ci/job_token_scope.rb | 34 ++-- .../api/conan_packages_shared_context.rb | 2 +- .../services/packages_shared_examples.rb | 2 +- tooling/lib/tooling/parallel_rspec_runner.rb | 70 ++++++-- workhorse/internal/badgateway/roundtripper.go | 10 +- .../internal/badgateway/roundtripper_test.go | 35 ++++ 110 files changed, 1746 insertions(+), 369 deletions(-) delete mode 100644 .rubocop_todo/performance/concurrent_monotonic_time.yml create mode 100644 app/assets/javascripts/ci/runner/admin_new_runner/admin_new_runner_app.vue create mode 100644 app/assets/javascripts/ci/runner/admin_new_runner/index.js create mode 100644 app/assets/javascripts/pages/admin/runners/new/index.js create mode 100644 app/assets/javascripts/pages/users/show/index.js create mode 100644 app/assets/javascripts/profile/components/activity_tab.vue create mode 100644 app/assets/javascripts/profile/components/contributed_projects_tab.vue create mode 100644 app/assets/javascripts/profile/components/followers_tab.vue create mode 100644 app/assets/javascripts/profile/components/following_tab.vue create mode 100644 app/assets/javascripts/profile/components/groups_tab.vue create mode 100644 app/assets/javascripts/profile/components/overview_tab.vue create mode 100644 app/assets/javascripts/profile/components/personal_projects_tab.vue create mode 100644 app/assets/javascripts/profile/components/profile_tabs.vue create mode 100644 app/assets/javascripts/profile/components/snippets_tab.vue create mode 100644 app/assets/javascripts/profile/components/starred_projects_tab.vue create mode 100644 app/assets/javascripts/profile/index.js create mode 100644 config/feature_flags/development/ci_multi_doc_yaml.yml create mode 100644 config/feature_flags/development/profile_tabs_vue.yml delete mode 100644 doc/security/img/unlock_user_v14_7.png create mode 100644 lib/gitlab/config/loader/multi_doc_yaml.rb create mode 100644 spec/fixtures/build_artifacts/dotenv_utf16_le.txt create mode 100644 spec/frontend/ci/runner/admin_new_runner_app/admin_new_runner_app_spec.js create mode 100644 spec/frontend/profile/components/activity_tab_spec.js create mode 100644 spec/frontend/profile/components/contributed_projects_tab_spec.js create mode 100644 spec/frontend/profile/components/followers_tab_spec.js create mode 100644 spec/frontend/profile/components/following_tab_spec.js create mode 100644 spec/frontend/profile/components/groups_tab_spec.js create mode 100644 spec/frontend/profile/components/overview_tab_spec.js create mode 100644 spec/frontend/profile/components/personal_projects_tab_spec.js create mode 100644 spec/frontend/profile/components/profile_tabs_spec.js create mode 100644 spec/frontend/profile/components/snippets_tab_spec.js create mode 100644 spec/frontend/profile/components/starred_projects_tab_spec.js create mode 100644 spec/lib/gitlab/ci/config/yaml_spec.rb create mode 100644 spec/lib/gitlab/config/loader/multi_doc_yaml_spec.rb create mode 100644 spec/support/helpers/ci/job_token_scope_helpers.rb diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index fb1b9dacb66..2e0d83187cf 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -129,7 +129,7 @@ rspec-all frontend_fixture: needs: - !reference [.frontend-fixtures-base, needs] - "compile-test-assets" - parallel: 5 + parallel: 7 # Builds FOSS fixtures in the EE project, with the `ee/` folder removed (due to `as-if-foss`). rspec-all frontend_fixture as-if-foss: @@ -200,7 +200,7 @@ jest: - tmp/tests/frontend/ reports: junit: junit_jest.xml - parallel: 5 + parallel: 7 jest predictive: extends: @@ -218,7 +218,7 @@ jest as-if-foss: - .frontend:rules:jest:as-if-foss - .as-if-foss needs: ["rspec-all frontend_fixture as-if-foss"] - parallel: 2 + parallel: 4 jest predictive as-if-foss: extends: diff --git a/.gitlab/ci/package-and-test/main.gitlab-ci.yml b/.gitlab/ci/package-and-test/main.gitlab-ci.yml index 44b28d28734..884c792ebb2 100644 --- a/.gitlab/ci/package-and-test/main.gitlab-ci.yml +++ b/.gitlab/ci/package-and-test/main.gitlab-ci.yml @@ -620,7 +620,7 @@ e2e-test-report: - .rules:report:allure-report stage: report variables: - GITLAB_AUTH_TOKEN: $GITLAB_QA_MR_ALLURE_REPORT_TOKEN + GITLAB_AUTH_TOKEN: $PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE ALLURE_PROJECT_PATH: $CI_PROJECT_PATH ALLURE_MERGE_REQUEST_IID: $CI_MERGE_REQUEST_IID ALLURE_JOB_NAME: e2e-package-and-test @@ -654,7 +654,7 @@ relate-test-failures: variables: QA_FAILURES_REPORTING_PROJECT: gitlab-org/gitlab QA_FAILURES_MAX_DIFF_RATIO: "0.15" - GITLAB_QA_ACCESS_TOKEN: $GITLAB_QA_PRODUCTION_ACCESS_TOKEN + GITLAB_QA_ACCESS_TOKEN: $QA_GITLAB_CI_TOKEN when: on_failure script: - | diff --git a/.gitlab/ci/review-apps/qa.gitlab-ci.yml b/.gitlab/ci/review-apps/qa.gitlab-ci.yml index 912df0ede29..b04c42d1b16 100644 --- a/.gitlab/ci/review-apps/qa.gitlab-ci.yml +++ b/.gitlab/ci/review-apps/qa.gitlab-ci.yml @@ -143,7 +143,7 @@ e2e-test-report: ALLURE_PROJECT_PATH: $CI_PROJECT_PATH ALLURE_RESULTS_GLOB: qa/tmp/allure-results ALLURE_MERGE_REQUEST_IID: $CI_MERGE_REQUEST_IID - GITLAB_AUTH_TOKEN: $GITLAB_QA_MR_ALLURE_REPORT_TOKEN + GITLAB_AUTH_TOKEN: $PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE GIT_STRATEGY: none allow_failure: true when: always diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index c26dd45ae93..ebc8cd49968 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -559,6 +559,7 @@ - "{,ee/,jh/}Gemfile.lock" # This should include gitlab-styles, rubocop itself, and any plugins we might be using - "lib/gitlab_edition.rb" # This is required in RuboCop::CodeReuseHelpers - ".gitlab/ci/static-analysis.gitlab-ci.yml" + - "config/feature_categories.yml" # Used by RSpec/InvalidFeatureCategory .danger-patterns: &danger-patterns - "Dangerfile" diff --git a/.rubocop_todo/performance/concurrent_monotonic_time.yml b/.rubocop_todo/performance/concurrent_monotonic_time.yml deleted file mode 100644 index 0e55eaf4a18..00000000000 --- a/.rubocop_todo/performance/concurrent_monotonic_time.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# Cop supports --autocorrect. -Performance/ConcurrentMonotonicTime: - Details: grace period - Exclude: - - 'lib/gitlab/database/connection_timer.rb' diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index cd471c37947..097cbd127df 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -ed85386e4a808bab0023c28b9b1d7e103b50050e +54a1400cccb31b1869a7a9b735bad1cfb047d3bb diff --git a/app/assets/javascripts/ci/runner/admin_new_runner/admin_new_runner_app.vue b/app/assets/javascripts/ci/runner/admin_new_runner/admin_new_runner_app.vue new file mode 100644 index 00000000000..293fbfcf7a7 --- /dev/null +++ b/app/assets/javascripts/ci/runner/admin_new_runner/admin_new_runner_app.vue @@ -0,0 +1,48 @@ + + + diff --git a/app/assets/javascripts/ci/runner/admin_new_runner/index.js b/app/assets/javascripts/ci/runner/admin_new_runner/index.js new file mode 100644 index 00000000000..502d9d33b4d --- /dev/null +++ b/app/assets/javascripts/ci/runner/admin_new_runner/index.js @@ -0,0 +1,32 @@ +import Vue from 'vue'; +import VueApollo from 'vue-apollo'; +import createDefaultClient from '~/lib/graphql'; +import AdminNewRunnerApp from './admin_new_runner_app.vue'; + +Vue.use(VueApollo); + +export const initAdminNewRunner = (selector = '#js-admin-new-runner') => { + const el = document.querySelector(selector); + + if (!el) { + return null; + } + + const { legacyRegistrationToken } = el.dataset; + + const apolloProvider = new VueApollo({ + defaultClient: createDefaultClient(), + }); + + return new Vue({ + el, + apolloProvider, + render(h) { + return h(AdminNewRunnerApp, { + props: { + legacyRegistrationToken, + }, + }); + }, + }); +}; diff --git a/app/assets/javascripts/jobs/components/table/cells/actions_cell.vue b/app/assets/javascripts/jobs/components/table/cells/actions_cell.vue index 6f351d91165..17766b4d162 100644 --- a/app/assets/javascripts/jobs/components/table/cells/actions_cell.vue +++ b/app/assets/javascripts/jobs/components/table/cells/actions_cell.vue @@ -8,9 +8,11 @@ import { ACTIONS_UNSCHEDULE, ACTIONS_PLAY, ACTIONS_RETRY, + ACTIONS_RUN_AGAIN, CANCEL, GENERIC_ERROR, JOB_SCHEDULED, + JOB_SUCCESS, PLAY_JOB_CONFIRMATION_MESSAGE, RUN_JOB_NOW_HEADER_TITLE, FILE_TYPE_ARCHIVE, @@ -107,6 +109,9 @@ export default { shouldDisplayArtifacts() { return this.canReadArtifacts && this.hasArtifacts; }, + retryButtonTitle() { + return this.job.status === JOB_SUCCESS ? ACTIONS_RUN_AGAIN : ACTIONS_RETRY; + }, }, methods: { async postJobAction(name, mutation, redirect = false) { @@ -223,8 +228,8 @@ export default {