diff --git a/app/assets/javascripts/pages/projects/settings/ci_cd/show/index.js b/app/assets/javascripts/pages/projects/settings/ci_cd/show/index.js index aeeef40fc6e957db0e080de38f72408e4bb0a637..e08d04072457bf9865aabed13f5879f08781e904 100644 --- a/app/assets/javascripts/pages/projects/settings/ci_cd/show/index.js +++ b/app/assets/javascripts/pages/projects/settings/ci_cd/show/index.js @@ -3,7 +3,6 @@ import SecretValues from '~/behaviors/secret_values'; import AjaxVariableList from '~/ci_variable_list/ajax_variable_list'; import registrySettingsApp from '~/registry/settings/registry_settings_bundle'; import initVariableList from '~/ci_variable_list'; -import initDeployKeys from '~/deploy_keys'; document.addEventListener('DOMContentLoaded', () => { // Initialize expandable settings panels @@ -41,5 +40,4 @@ document.addEventListener('DOMContentLoaded', () => { }); registrySettingsApp(); - initDeployKeys(); }); diff --git a/app/assets/javascripts/pages/projects/settings/repository/form.js b/app/assets/javascripts/pages/projects/settings/repository/form.js index fa6d17f072920530be293439efbc1b33cd3202fa..3e02893f24c9413a71ddc5df4672f19ad5ade08b 100644 --- a/app/assets/javascripts/pages/projects/settings/repository/form.js +++ b/app/assets/javascripts/pages/projects/settings/repository/form.js @@ -3,6 +3,7 @@ import ProtectedTagCreate from '~/protected_tags/protected_tag_create'; import ProtectedTagEditList from '~/protected_tags/protected_tag_edit_list'; import initSettingsPanels from '~/settings_panels'; +import initDeployKeys from '~/deploy_keys'; import ProtectedBranchCreate from '~/protected_branches/protected_branch_create'; import ProtectedBranchEditList from '~/protected_branches/protected_branch_edit_list'; import DueDateSelectors from '~/due_date_select'; @@ -11,6 +12,7 @@ import fileUpload from '~/lib/utils/file_upload'; export default () => { new ProtectedTagCreate(); new ProtectedTagEditList(); + initDeployKeys(); initSettingsPanels(); new ProtectedBranchCreate(); new ProtectedBranchEditList(); diff --git a/app/controllers/projects/deploy_keys_controller.rb b/app/controllers/projects/deploy_keys_controller.rb index f43e9f2bd1941085e973a0d3c1668dd980db2115..f13fb4d0b3dc2e972ba1009167717e615bd2e9c4 100644 --- a/app/controllers/projects/deploy_keys_controller.rb +++ b/app/controllers/projects/deploy_keys_controller.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true class Projects::DeployKeysController < Projects::ApplicationController + include RepositorySettingsRedirect respond_to :html # Authorize @@ -11,7 +12,7 @@ class Projects::DeployKeysController < Projects::ApplicationController def index respond_to do |format| - format.html { redirect_to_ci_cd_settings } + format.html { redirect_to_repository_settings(@project, anchor: 'js-deploy-keys-settings') } format.json do render json: Projects::Settings::DeployKeysPresenter.new(@project, current_user: current_user).as_json end @@ -19,7 +20,7 @@ def index end def new - redirect_to_ci_cd_settings + redirect_to_repository_settings(@project, anchor: 'js-deploy-keys-settings') end def create @@ -29,7 +30,7 @@ def create flash[:alert] = @key.errors.full_messages.join(', ').html_safe end - redirect_to_ci_cd_settings + redirect_to_repository_settings(@project, anchor: 'js-deploy-keys-settings') end def edit @@ -38,7 +39,7 @@ def edit def update if deploy_key.update(update_params) flash[:notice] = _('Deploy key was successfully updated.') - redirect_to_ci_cd_settings + redirect_to_repository_settings(@project, anchor: 'js-deploy-keys-settings') else render 'edit' end @@ -50,7 +51,7 @@ def enable return render_404 unless key respond_to do |format| - format.html { redirect_to_ci_cd_settings } + format.html { redirect_to_repository_settings(@project, anchor: 'js-deploy-keys-settings') } format.json { head :ok } end end @@ -61,7 +62,7 @@ def disable return render_404 unless deploy_key_project respond_to do |format| - format.html { redirect_to_ci_cd_settings } + format.html { redirect_to_repository_settings(@project, anchor: 'js-deploy-keys-settings') } format.json { head :ok } end end @@ -96,8 +97,4 @@ def authorize_update_deploy_key! access_denied! end end - - def redirect_to_ci_cd_settings - redirect_to project_settings_ci_cd_path(@project, anchor: 'js-deploy-keys-settings') - end end diff --git a/app/controllers/projects/settings/ci_cd_controller.rb b/app/controllers/projects/settings/ci_cd_controller.rb index c4d291e8634b7464525d270b8a376c4ca936f3bf..d0d100fd88cf1f88e3ee1f9c3a49aee8fc68ce6c 100644 --- a/app/controllers/projects/settings/ci_cd_controller.rb +++ b/app/controllers/projects/settings/ci_cd_controller.rb @@ -88,7 +88,6 @@ def define_variables define_triggers_variables define_badges_variables define_auto_devops_variables - define_deploy_keys end def define_runners_variables @@ -135,10 +134,6 @@ def define_badges_variables def define_auto_devops_variables @auto_devops = @project.auto_devops || ProjectAutoDevops.new end - - def define_deploy_keys - @deploy_keys = DeployKeysPresenter.new(@project, current_user: current_user) - end end end end diff --git a/app/controllers/projects/settings/repository_controller.rb b/app/controllers/projects/settings/repository_controller.rb index 68bab952217016671f2f6d1c7ea0d933ebf98e63..0aa55dcc5b9715c19a0b0ecd4302a27c0bd81e91 100644 --- a/app/controllers/projects/settings/repository_controller.rb +++ b/app/controllers/projects/settings/repository_controller.rb @@ -63,6 +63,8 @@ def render_show end def define_variables + @deploy_keys = DeployKeysPresenter.new(@project, current_user: current_user) + define_deploy_token_variables define_protected_refs remote_mirror diff --git a/app/views/projects/settings/ci_cd/show.html.haml b/app/views/projects/settings/ci_cd/show.html.haml index 4c9de58cc01537c6f59614efee2eafc509d3125c..1358077f2b24f7c7d075064e2107c06967b3a9e4 100644 --- a/app/views/projects/settings/ci_cd/show.html.haml +++ b/app/views/projects/settings/ci_cd/show.html.haml @@ -51,8 +51,6 @@ .settings-content = render 'ci/variables/index', save_endpoint: project_variables_path(@project) -= render @deploy_keys - %section.settings.no-animate#js-pipeline-triggers{ class: ('expanded' if expanded) } .settings-header %h4 diff --git a/app/views/projects/settings/repository/show.html.haml b/app/views/projects/settings/repository/show.html.haml index 77606bfea4202d461a3f4ef7f0c043fc296de340..193053c8c977113b214069cfac664297c4546962 100644 --- a/app/views/projects/settings/repository/show.html.haml +++ b/app/views/projects/settings/repository/show.html.haml @@ -13,6 +13,7 @@ -# reused in EE. = render "projects/settings/repository/protected_branches" = render "shared/deploy_tokens/index", group_or_project: @project, description: deploy_token_description += render @deploy_keys = render "projects/cleanup/show" = render_if_exists 'shared/promotions/promote_repository_features' diff --git a/doc/ci/pipelines/settings.md b/doc/ci/pipelines/settings.md index 7ac9ba6a7dd7546fb0b1f58c47f24d5a9809ce27..3221023f73a70f0442fa48d53b1a096bdae2cbf6 100644 --- a/doc/ci/pipelines/settings.md +++ b/doc/ci/pipelines/settings.md @@ -288,14 +288,6 @@ https://example.gitlab.com/<namespace>/<project>/badges/<branch>/coverage.svg?st [Environment variables](../variables/README.md#gitlab-cicd-environment-variables) can be set in an environment to be available to a runner. -## Deploy Keys - -With Deploy Keys, GitLab allows you to import SSH public keys. You can then have -read only or read/write access to your project from the machines the keys were generated from. - -SSH keys added to your project settings will be used for continuous integration, -staging, or production servers. - <!-- ## Troubleshooting Include any troubleshooting steps that you can foresee. If you know beforehand what issues diff --git a/doc/ssh/README.md b/doc/ssh/README.md index e6375f15157d88b13cf3334bd3a49d6196a09b30..06db8e5985050298b396167403534232455ea80d 100644 --- a/doc/ssh/README.md +++ b/doc/ssh/README.md @@ -384,9 +384,7 @@ If you don't have a key pair, you might want to use a Project maintainers and owners can add a deploy key for a repository. -1. Navigate to the project's **Settings** page, then: - - On GitLab 12.8 and earlier, click **Repository**. - - On GitLab 12.9 and later, click **CI / CD**. +1. Navigate to the project's **Settings > Repository** page. 1. Expand the **Deploy Keys** section. 1. Specify a title for the new deploy key and paste a public SSH key. @@ -432,9 +430,7 @@ your repository". Once a GitLab administrator adds the Global Deployment key, project maintainers and owners can add it by: -1. Navigating the settings page: - - On GitLab 12.8 and earlier, the project's **Settings > Repository** page. - - On GitLab 12.9 and later, the project's **Settings > CI / CD** page. +1. Navigate to the project's **Settings > Repository** page. 1. Expanding the **Deploy Keys** section. 1. Clicking **Enable** next to the appropriate key listed under **Public deploy keys available to any project**. diff --git a/ee/changelogs/unreleased/212775-revert-deploy-keys-move.yml b/ee/changelogs/unreleased/212775-revert-deploy-keys-move.yml new file mode 100644 index 0000000000000000000000000000000000000000..21b4f8cbd807152b86e3250aba49f997274d0ff5 --- /dev/null +++ b/ee/changelogs/unreleased/212775-revert-deploy-keys-move.yml @@ -0,0 +1,5 @@ +--- +title: Move deploy keys section back to repository settings +merge_request: 29184 +author: +type: removed diff --git a/ee/spec/controllers/projects/deploy_keys_controller_spec.rb b/ee/spec/controllers/projects/deploy_keys_controller_spec.rb index 7a08e2c72c484fa18437ece1f8ea14fbb48ac771..0ed7df43ed5e4a71e7159bc26301e4b324a55a9a 100644 --- a/ee/spec/controllers/projects/deploy_keys_controller_spec.rb +++ b/ee/spec/controllers/projects/deploy_keys_controller_spec.rb @@ -30,7 +30,7 @@ it 'records an audit event' do expect { post :create, params: params }.to change { AuditEvent.count }.by(1) - expect(response).to redirect_to(project_settings_ci_cd_path(project, anchor: 'js-deploy-keys-settings')) + expect(response).to redirect_to(project_settings_repository_path(project, anchor: 'js-deploy-keys-settings')) end end diff --git a/qa/qa/page/project/settings/ci_cd.rb b/qa/qa/page/project/settings/ci_cd.rb index c43974c10cbeee5f67f74131ddb082a30e1b02fc..46f93fad61edf27c6c0c3e6636008f9579cdeb55 100644 --- a/qa/qa/page/project/settings/ci_cd.rb +++ b/qa/qa/page/project/settings/ci_cd.rb @@ -13,16 +13,6 @@ class CICD < Page::Base element :variables_settings_content end - view 'app/views/projects/deploy_keys/_index.html.haml' do - element :deploy_keys_settings - end - - def expand_deploy_keys(&block) - expand_section(:deploy_keys_settings) do - Settings::DeployKeys.perform(&block) - end - end - def expand_runners_settings(&block) expand_section(:runners_settings_content) do Settings::Runners.perform(&block) diff --git a/qa/qa/page/project/settings/repository.rb b/qa/qa/page/project/settings/repository.rb index 97dfc6497a49ea93b6f70f37f1fddfced1736302..8810b971fda38a31511489c27c0ae61ef8fa50dc 100644 --- a/qa/qa/page/project/settings/repository.rb +++ b/qa/qa/page/project/settings/repository.rb @@ -19,12 +19,22 @@ class Repository < Page::Base element :deploy_tokens_settings end + view 'app/views/projects/deploy_keys/_index.html.haml' do + element :deploy_keys_settings + end + def expand_deploy_tokens(&block) expand_section(:deploy_tokens_settings) do Settings::DeployTokens.perform(&block) end end + def expand_deploy_keys(&block) + expand_section(:deploy_keys_settings) do + Settings::DeployKeys.perform(&block) + end + end + def expand_protected_branches(&block) expand_section(:protected_branches_settings) do ProtectedBranches.perform(&block) diff --git a/qa/qa/resource/deploy_key.rb b/qa/qa/resource/deploy_key.rb index 091d2936d095468fa390e16ff9225b9dc3dc011b..26355729dab665cb2626196dbafe5e7e2d8a66fd 100644 --- a/qa/qa/resource/deploy_key.rb +++ b/qa/qa/resource/deploy_key.rb @@ -6,7 +6,7 @@ class DeployKey < Base attr_accessor :title, :key attribute :md5_fingerprint do - Page::Project::Settings::CICD.perform do |setting| + Page::Project::Settings::Repository.perform do |setting| setting.expand_deploy_keys do |key| key.find_md5_fingerprint(title) end @@ -23,9 +23,9 @@ class DeployKey < Base def fabricate! project.visit! - Page::Project::Menu.perform(&:go_to_ci_cd_settings) + Page::Project::Menu.perform(&:go_to_repository_settings) - Page::Project::Settings::CICD.perform do |setting| + Page::Project::Settings::Repository.perform do |setting| setting.expand_deploy_keys do |page| page.fill_key_title(title) page.fill_key_value(key) diff --git a/qa/qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb b/qa/qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb index 1fc5e06963d060d5edf9d9a870512cabacebdefb..89aba112407f7d6182c8d5be4170aa633d622308 100644 --- a/qa/qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb +++ b/qa/qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb @@ -17,7 +17,7 @@ module QA expect(deploy_key.md5_fingerprint).to eq key.md5_fingerprint - Page::Project::Settings::CICD.perform do |setting| + Page::Project::Settings::Repository.perform do |setting| setting.expand_deploy_keys do |keys| expect(keys).to have_key(deploy_key_title, key.md5_fingerprint) end diff --git a/spec/controllers/projects/deploy_keys_controller_spec.rb b/spec/controllers/projects/deploy_keys_controller_spec.rb index a6bbe6bd012c2455138f404497a21daacfc26e49..1b2b326b6e9b366ddf947798cf8cb08e45f56718 100644 --- a/spec/controllers/projects/deploy_keys_controller_spec.rb +++ b/spec/controllers/projects/deploy_keys_controller_spec.rb @@ -19,10 +19,10 @@ end context 'when html requested' do - it 'redirects to project ci / cd settings with the correct anchor' do + it 'redirects to project settings with the correct anchor' do get :index, params: params - expect(response).to redirect_to(project_settings_ci_cd_path(project, anchor: 'js-deploy-keys-settings')) + expect(response).to redirect_to(project_settings_repository_path(project, anchor: 'js-deploy-keys-settings')) end end @@ -87,13 +87,13 @@ def create_params(title = 'my-key') it 'creates a new deploy key for the project' do expect { post :create, params: create_params }.to change(project.deploy_keys, :count).by(1) - expect(response).to redirect_to(project_settings_ci_cd_path(project, anchor: 'js-deploy-keys-settings')) + expect(response).to redirect_to(project_settings_repository_path(project, anchor: 'js-deploy-keys-settings')) end it 'redirects to project settings with the correct anchor' do post :create, params: create_params - expect(response).to redirect_to(project_settings_ci_cd_path(project, anchor: 'js-deploy-keys-settings')) + expect(response).to redirect_to(project_settings_repository_path(project, anchor: 'js-deploy-keys-settings')) end context 'when the deploy key is invalid' do @@ -153,7 +153,7 @@ def create_params(title = 'my-key') expect(DeployKeysProject.where(project_id: project.id, deploy_key_id: deploy_key.id).count).to eq(1) expect(response).to have_gitlab_http_status(:found) - expect(response).to redirect_to(namespace_project_settings_ci_cd_path(anchor: 'js-deploy-keys-settings')) + expect(response).to redirect_to(namespace_project_settings_repository_path(anchor: 'js-deploy-keys-settings')) end it 'returns 404' do @@ -175,7 +175,7 @@ def create_params(title = 'my-key') expect(DeployKeysProject.where(project_id: project.id, deploy_key_id: deploy_key.id).count).to eq(1) expect(response).to have_gitlab_http_status(:found) - expect(response).to redirect_to(namespace_project_settings_ci_cd_path(anchor: 'js-deploy-keys-settings')) + expect(response).to redirect_to(namespace_project_settings_repository_path(anchor: 'js-deploy-keys-settings')) end end end @@ -216,7 +216,7 @@ def create_params(title = 'my-key') put :disable, params: { id: deploy_key.id, namespace_id: project.namespace, project_id: project } expect(response).to have_gitlab_http_status(:found) - expect(response).to redirect_to(namespace_project_settings_ci_cd_path(anchor: 'js-deploy-keys-settings')) + expect(response).to redirect_to(namespace_project_settings_repository_path(anchor: 'js-deploy-keys-settings')) expect { DeployKey.find(deploy_key.id) }.to raise_error(ActiveRecord::RecordNotFound) end @@ -239,7 +239,7 @@ def create_params(title = 'my-key') end.to change { DeployKey.count }.by(-1) expect(response).to have_gitlab_http_status(:found) - expect(response).to redirect_to(namespace_project_settings_ci_cd_path(anchor: 'js-deploy-keys-settings')) + expect(response).to redirect_to(namespace_project_settings_repository_path(anchor: 'js-deploy-keys-settings')) expect { DeployKey.find(deploy_key.id) }.to raise_error(ActiveRecord::RecordNotFound) end diff --git a/spec/features/projects/deploy_keys_spec.rb b/spec/features/projects/deploy_keys_spec.rb index 03b7c54faf6d19f528d9c1c0151ceac73851b340..687b6461f056486187e115606b861aaa2ffcbd71 100644 --- a/spec/features/projects/deploy_keys_spec.rb +++ b/spec/features/projects/deploy_keys_spec.rb @@ -17,7 +17,7 @@ end it 'removes association between project and deploy key' do - visit project_settings_ci_cd_path(project) + visit project_settings_repository_path(project) page.within(find('.qa-deploy-keys-settings')) do expect(page).to have_selector('.deploy-key', count: 1) diff --git a/spec/features/projects/settings/ci_cd_settings_spec.rb b/spec/features/projects/settings/ci_cd_settings_spec.rb deleted file mode 100644 index ed65dcd85abc7a927a0eb56b33dbd38225387b53..0000000000000000000000000000000000000000 --- a/spec/features/projects/settings/ci_cd_settings_spec.rb +++ /dev/null @@ -1,97 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -describe 'Projects > Settings > CI / CD settings' do - let_it_be(:project) { create(:project_empty_repo) } - let_it_be(:user) { create(:user) } - let_it_be(:role) { :maintainer } - - context 'Deploy Keys', :js do - let_it_be(:private_deploy_key) { create(:deploy_key, title: 'private_deploy_key', public: false) } - let_it_be(:public_deploy_key) { create(:another_deploy_key, title: 'public_deploy_key', public: true) } - let(:new_ssh_key) { attributes_for(:key)[:key] } - - before do - project.add_role(user, role) - sign_in(user) - end - - it 'get list of keys' do - project.deploy_keys << private_deploy_key - project.deploy_keys << public_deploy_key - - visit project_settings_ci_cd_path(project) - - expect(page).to have_content('private_deploy_key') - expect(page).to have_content('public_deploy_key') - end - - it 'add a new deploy key' do - visit project_settings_ci_cd_path(project) - - fill_in 'deploy_key_title', with: 'new_deploy_key' - fill_in 'deploy_key_key', with: new_ssh_key - check 'deploy_key_deploy_keys_projects_attributes_0_can_push' - click_button 'Add key' - - expect(page).to have_content('new_deploy_key') - expect(page).to have_content('Write access allowed') - end - - it 'edit an existing deploy key' do - project.deploy_keys << private_deploy_key - visit project_settings_ci_cd_path(project) - - find('.deploy-key', text: private_deploy_key.title).find('.ic-pencil').click - - fill_in 'deploy_key_title', with: 'updated_deploy_key' - check 'deploy_key_deploy_keys_projects_attributes_0_can_push' - click_button 'Save changes' - - expect(page).to have_content('updated_deploy_key') - expect(page).to have_content('Write access allowed') - end - - it 'edit an existing public deploy key to be writable' do - project.deploy_keys << public_deploy_key - visit project_settings_ci_cd_path(project) - - find('.deploy-key', text: public_deploy_key.title).find('.ic-pencil').click - - check 'deploy_key_deploy_keys_projects_attributes_0_can_push' - click_button 'Save changes' - - expect(page).to have_content('public_deploy_key') - expect(page).to have_content('Write access allowed') - end - - it 'edit a deploy key from projects user has access to' do - project2 = create(:project_empty_repo) - project2.add_role(user, role) - project2.deploy_keys << private_deploy_key - - visit project_settings_ci_cd_path(project) - - find('.js-deployKeys-tab-available_project_keys').click - - find('.deploy-key', text: private_deploy_key.title).find('.ic-pencil').click - - fill_in 'deploy_key_title', with: 'updated_deploy_key' - click_button 'Save changes' - - find('.js-deployKeys-tab-available_project_keys').click - - expect(page).to have_content('updated_deploy_key') - end - - it 'remove an existing deploy key' do - project.deploy_keys << private_deploy_key - visit project_settings_ci_cd_path(project) - - accept_confirm { find('.deploy-key', text: private_deploy_key.title).find('.ic-remove').click } - - expect(page).not_to have_content(private_deploy_key.title) - end - end -end diff --git a/spec/features/projects/settings/repository_settings_spec.rb b/spec/features/projects/settings/repository_settings_spec.rb index 0fd153f051854ec51db8bb69e014e03804f1db0b..2fb6c71384fec8ff457d6353912099497eb4ad7c 100644 --- a/spec/features/projects/settings/repository_settings_spec.rb +++ b/spec/features/projects/settings/repository_settings_spec.rb @@ -39,6 +39,89 @@ end end + context 'Deploy Keys', :js do + let_it_be(:private_deploy_key) { create(:deploy_key, title: 'private_deploy_key', public: false) } + let_it_be(:public_deploy_key) { create(:another_deploy_key, title: 'public_deploy_key', public: true) } + let(:new_ssh_key) { attributes_for(:key)[:key] } + + it 'get list of keys' do + project.deploy_keys << private_deploy_key + project.deploy_keys << public_deploy_key + + visit project_settings_repository_path(project) + + expect(page).to have_content('private_deploy_key') + expect(page).to have_content('public_deploy_key') + end + + it 'add a new deploy key' do + visit project_settings_repository_path(project) + + fill_in 'deploy_key_title', with: 'new_deploy_key' + fill_in 'deploy_key_key', with: new_ssh_key + check 'deploy_key_deploy_keys_projects_attributes_0_can_push' + click_button 'Add key' + + expect(page).to have_content('new_deploy_key') + expect(page).to have_content('Write access allowed') + end + + it 'edit an existing deploy key' do + project.deploy_keys << private_deploy_key + visit project_settings_repository_path(project) + + find('.deploy-key', text: private_deploy_key.title).find('.ic-pencil').click + + fill_in 'deploy_key_title', with: 'updated_deploy_key' + check 'deploy_key_deploy_keys_projects_attributes_0_can_push' + click_button 'Save changes' + + expect(page).to have_content('updated_deploy_key') + expect(page).to have_content('Write access allowed') + end + + it 'edit an existing public deploy key to be writable' do + project.deploy_keys << public_deploy_key + visit project_settings_repository_path(project) + + find('.deploy-key', text: public_deploy_key.title).find('.ic-pencil').click + + check 'deploy_key_deploy_keys_projects_attributes_0_can_push' + click_button 'Save changes' + + expect(page).to have_content('public_deploy_key') + expect(page).to have_content('Write access allowed') + end + + it 'edit a deploy key from projects user has access to' do + project2 = create(:project_empty_repo) + project2.add_role(user, role) + project2.deploy_keys << private_deploy_key + + visit project_settings_repository_path(project) + + find('.js-deployKeys-tab-available_project_keys').click + + find('.deploy-key', text: private_deploy_key.title).find('.ic-pencil').click + + fill_in 'deploy_key_title', with: 'updated_deploy_key' + click_button 'Save changes' + + find('.js-deployKeys-tab-available_project_keys').click + + expect(page).to have_content('updated_deploy_key') + end + + it 'remove an existing deploy key' do + project.deploy_keys << private_deploy_key + visit project_settings_repository_path(project) + + accept_confirm { find('.deploy-key', text: private_deploy_key.title).find('.ic-remove').click } + + expect(page).not_to have_content(private_deploy_key.title) + end + end + context 'remote mirror settings' do before do visit project_settings_repository_path(project) diff --git a/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb index ac7788ba1fae21e0b13705095211a018193d1dc0..cd9299150b2a2174a540cff7f8de52d70855a56d 100644 --- a/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb +++ b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb @@ -20,7 +20,7 @@ click_button("Enable") expect(page).not_to have_selector(".fa-spinner") - expect(current_path).to eq(project_settings_ci_cd_path(project)) + expect(current_path).to eq(project_settings_repository_path(project)) find(".js-deployKeys-tab-enabled_keys").click @@ -96,7 +96,7 @@ click_button("Add key") - expect(current_path).to eq(project_settings_ci_cd_path(project)) + expect(current_path).to eq(project_settings_repository_path(project)) page.within(".deploy-keys") do expect(page).to have_content(DEPLOY_KEY_TITLE)