From 3b92dcccb03909ad7099ea61402fb4f60ac94cef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Caplette?= Date: Mon, 4 Jul 2022 15:08:15 -0400 Subject: [PATCH] Refactor ci variable settings with graphQL Instead of using VueX + REST for the variable settings in CI/CD, we migrate to use apollo + graphQL. --- .../components/ci_admin_variables.vue | 105 +++++ .../components/ci_environments_dropdown.vue | 47 ++- .../components/ci_group_variables.vue | 124 ++++++ .../components/ci_project_variables.vue | 122 ++++++ .../components/ci_variable_modal.vue | 203 +++++----- .../components/ci_variable_settings.vue | 88 ++++- .../components/ci_variable_table.vue | 75 +++- .../components/legacy_ci_variable_modal.vue | 6 +- .../javascripts/ci_variable_list/constants.js | 52 ++- .../fragments/ci_variable.fragment.graphql | 9 + .../admin_add_variable.mutation.graphql | 12 + .../admin_delete_variable.mutation.graphql | 12 + .../admin_update_variable.mutation.graphql | 12 + .../add_group_environment.mutation.graphql | 3 + .../add_project_environment.mutation.graphql | 3 + .../group_add_variable.mutation.graphql | 25 ++ .../group_delete_variable.mutation.graphql | 25 ++ .../group_update_variable.mutation.graphql | 25 ++ .../project_add_variable.mutation.graphql | 25 ++ .../project_delete_variable.mutation.graphql | 25 ++ .../project_update_variable.mutation.graphql | 25 ++ .../client/group_environments.query.graphql | 11 + .../queries/group_variables.query.graphql | 13 + .../project_environments.query.graphql | 11 + .../queries/project_variables.query.graphql | 13 + .../graphql/queries/variables.query.graphql | 9 + .../ci_variable_list/graphql/resolvers.js | 205 ++++++++++ .../javascripts/ci_variable_list/index.js | 32 +- .../mixins/variable_mutation.js | 27 ++ .../ci_variable_list/store/utils.js | 6 +- .../javascripts/ci_variable_list/utils.js | 45 +++ .../admin/application_settings_controller.rb | 4 + .../groups/settings/ci_cd_controller.rb | 3 + app/views/ci/variables/_index.html.haml | 7 +- spec/features/group_variables_spec.rb | 10 +- spec/features/project_variables_spec.rb | 30 +- .../components/ci_admin_variables_spec.js | 180 +++++++++ .../ci_environments_dropdown_spec.js | 124 ++++++ .../components/ci_group_variables_spec.js | 185 +++++++++ .../components/ci_project_variables_spec.js | 217 +++++++++++ .../components/ci_variable_modal_spec.js | 368 ++++++++++++++++++ .../components/ci_variable_settings_spec.js | 113 ++++++ .../components/ci_variable_table_spec.js | 101 +++++ spec/frontend/ci_variable_list/mocks.js | 116 ++++++ spec/frontend/ci_variable_list/utils_spec.js | 68 ++++ 45 files changed, 2772 insertions(+), 149 deletions(-) create mode 100644 app/assets/javascripts/ci_variable_list/components/ci_admin_variables.vue create mode 100644 app/assets/javascripts/ci_variable_list/components/ci_group_variables.vue create mode 100644 app/assets/javascripts/ci_variable_list/components/ci_project_variables.vue create mode 100644 app/assets/javascripts/ci_variable_list/graphql/fragments/ci_variable.fragment.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/admin_add_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/admin_delete_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/admin_update_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/client/add_group_environment.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/client/add_project_environment.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/group_add_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/group_delete_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/group_update_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/project_add_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/project_delete_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/project_update_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/queries/client/group_environments.query.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/queries/group_variables.query.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/queries/project_environments.query.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/queries/project_variables.query.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/queries/variables.query.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/resolvers.js create mode 100644 app/assets/javascripts/ci_variable_list/mixins/variable_mutation.js create mode 100644 app/assets/javascripts/ci_variable_list/utils.js create mode 100644 spec/frontend/ci_variable_list/components/ci_admin_variables_spec.js create mode 100644 spec/frontend/ci_variable_list/components/ci_environments_dropdown_spec.js create mode 100644 spec/frontend/ci_variable_list/components/ci_group_variables_spec.js create mode 100644 spec/frontend/ci_variable_list/components/ci_project_variables_spec.js create mode 100644 spec/frontend/ci_variable_list/components/ci_variable_modal_spec.js create mode 100644 spec/frontend/ci_variable_list/components/ci_variable_settings_spec.js create mode 100644 spec/frontend/ci_variable_list/components/ci_variable_table_spec.js create mode 100644 spec/frontend/ci_variable_list/mocks.js create mode 100644 spec/frontend/ci_variable_list/utils_spec.js diff --git a/app/assets/javascripts/ci_variable_list/components/ci_admin_variables.vue b/app/assets/javascripts/ci_variable_list/components/ci_admin_variables.vue new file mode 100644 index 00000000000000..1da7c8656ce8f2 --- /dev/null +++ b/app/assets/javascripts/ci_variable_list/components/ci_admin_variables.vue @@ -0,0 +1,105 @@ + + + diff --git a/app/assets/javascripts/ci_variable_list/components/ci_environments_dropdown.vue b/app/assets/javascripts/ci_variable_list/components/ci_environments_dropdown.vue index ecb39f214ec56f..69feceb63bac49 100644 --- a/app/assets/javascripts/ci_variable_list/components/ci_environments_dropdown.vue +++ b/app/assets/javascripts/ci_variable_list/components/ci_environments_dropdown.vue @@ -1,7 +1,7 @@ - + {{ __('Protect variable') }} @@ -322,7 +341,7 @@ export default { {{ __('Mask variable') }} @@ -403,7 +422,7 @@ export default {