diff --git a/CHANGELOG-EE b/CHANGELOG-EE index e5be3f49b4c80af80c5d0fad0809b307085711a9..3d65ddfbc7e052b5c56e62b77349fc3938ee5212 100644 --- a/CHANGELOG-EE +++ b/CHANGELOG-EE @@ -10,6 +10,7 @@ v 8.9.0 (unreleased) - Distribute RepositoryUpdateMirror jobs in time and add exclusive lease on them by project_id - [Elastic] Move ES settings to application settings - Disable mirror flag for projects without import_url + - UpdateMirror service return an error status when no mirror - Show flash notice when Git Hooks are updated successfully - [Elastic] Project members with guest role can't access confidential issues - Ability to lock file or folder in the repository diff --git a/app/services/projects/update_mirror_service.rb b/app/services/projects/update_mirror_service.rb index 361ec62e08df9506d4d8396c1d828aba29e943c5..aa750d5a799602d72718df48ad41d97a0877efb2 100644 --- a/app/services/projects/update_mirror_service.rb +++ b/app/services/projects/update_mirror_service.rb @@ -4,7 +4,9 @@ module Projects class UpdateError < Error; end def execute - return false unless project.mirror? + unless project.mirror? + return error("The project has no mirror to update") + end unless can?(current_user, :push_code_to_protected_branches, project) return error("The mirror user is not allowed to push code to all branches on this project.") diff --git a/spec/services/projects/update_mirror_service_spec.rb b/spec/services/projects/update_mirror_service_spec.rb index 2629fa77f4c209cb91b77b845922a9803c4bfd86..c19108f009080c2c6b00341ece838e7aa5e6f2ff 100644 --- a/spec/services/projects/update_mirror_service_spec.rb +++ b/spec/services/projects/update_mirror_service_spec.rb @@ -73,6 +73,18 @@ describe Projects::UpdateMirrorService do expect(result[:status]).to eq(:error) end end + + describe "when is no mirror" do + let(:project) { build_stubbed(:project) } + + it "fails" do + expect(project.mirror?).to eq(false) + + result = described_class.new(project, build_stubbed(:user)).execute + + expect(result[:status]).to eq(:error) + end + end end def stub_fetch_mirror(project, repository: project.repository)