diff --git a/app/views/projects/_home_panel.html.haml b/app/views/projects/_home_panel.html.haml
index 1b9d87e9969fd402b84c0debc0e58f9f83ded230..79a0dc1b9591d30bc18349739c29f299e871cec4 100644
--- a/app/views/projects/_home_panel.html.haml
+++ b/app/views/projects/_home_panel.html.haml
@@ -28,9 +28,11 @@
           .project-clone-holder
             = render "shared/clone_panel"
 
-        - if current_user && can?(current_user, :download_code, @project)
-          = render 'projects/buttons/download', project: @project, ref: @ref
-          = render 'projects/buttons/dropdown'
+        - if current_user
+          - if can?(current_user, :download_code, @project)
+            = render 'projects/buttons/download', project: @project, ref: @ref
+            = render 'projects/buttons/dropdown'
+            = render 'projects/buttons/koding'
+
           = render 'shared/notifications/button', notification_setting: @notification_setting
-          = render 'projects/buttons/koding'
           = render 'shared/members/access_request_buttons', source: @project
diff --git a/changelogs/unreleased/fix-gb-notification-settings-when-no-repository.yml b/changelogs/unreleased/fix-gb-notification-settings-when-no-repository.yml
new file mode 100644
index 0000000000000000000000000000000000000000..17fd1336b8e4dbf30ca174285da6724ce0b842df
--- /dev/null
+++ b/changelogs/unreleased/fix-gb-notification-settings-when-no-repository.yml
@@ -0,0 +1,4 @@
+---
+title: Show notifications settings dropdown even if repository feature is disabled
+merge_request: 9180
+author:
diff --git a/spec/views/projects/_home_panel.html.haml_spec.rb b/spec/views/projects/_home_panel.html.haml_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..5af57cdf3b75784a177afb5cd40b1d4ffb8ead63
--- /dev/null
+++ b/spec/views/projects/_home_panel.html.haml_spec.rb
@@ -0,0 +1,38 @@
+require 'spec_helper'
+
+describe 'projects/_home_panel', :view do
+  let(:project) { create(:empty_project, :public) }
+
+  let(:notification_settings) do
+    user.notification_settings_for(project) if user
+  end
+
+  before do
+    assign(:project, project)
+    assign(:notification_setting, notification_settings)
+
+    allow(view).to receive(:current_user).and_return(user)
+    allow(view).to receive(:can?).and_return(false)
+  end
+
+  context 'when user is signed in' do
+    let(:user) { create(:user) }
+
+    it 'makes it possible to set notification level' do
+      render
+
+      expect(view).to render_template('shared/notifications/_button')
+      expect(rendered).to have_selector('.notification-dropdown')
+    end
+  end
+
+  context 'when user is signed out' do
+    let(:user) { nil }
+
+    it 'is not possible to set notification level' do
+      render
+
+      expect(rendered).not_to have_selector('.notification_dropdown')
+    end
+  end
+end