diff --git a/lib/gitlab/git_access.rb b/lib/gitlab/git_access.rb
index 819e0657bdd7a251ecece22a6e86efa564646493..78f562821ea01fb29df484d9241c122fae768e3d 100644
--- a/lib/gitlab/git_access.rb
+++ b/lib/gitlab/git_access.rb
@@ -46,7 +46,7 @@ module Gitlab
     def download_access_check
       if user
         user_download_access_check
-      elsif !Guest.can?(:download_code, project)
+      elsif deploy_key.nil? && !Guest.can?(:download_code, project)
         raise UnauthorizedError, ERROR_MESSAGES[:download]
       end
     end
@@ -91,7 +91,7 @@ module Gitlab
     def deploy_key_push_access_check(changes)
       if deploy_key.can_push?
         check_repository_existence!
-        check_change_access!(changes)
+        check_change_access!(changes) if user
       else
         raise UnauthorizedError, ERROR_MESSAGES[:deploy_key]
       end