diff --git a/qa/qa/git/repository.rb b/qa/qa/git/repository.rb
index 09052a5e33f153e8d965852edbbb95db849af2a7..f56fab63198a8ee55dd73d5fe62e96660f15e0f5 100644
--- a/qa/qa/git/repository.rb
+++ b/qa/qa/git/repository.rb
@@ -76,7 +76,7 @@ def shallow_clone
       end
 
       def configure_identity(name, email)
-        run(%Q{git config user.name #{name}})
+        run(%Q{git config user.name "#{name}"})
         run(%Q{git config user.email #{email}})
       end
 
diff --git a/qa/qa/resource/repository/commit.rb b/qa/qa/resource/repository/commit.rb
index 8ce5a137486db928cf203c0c6d1b9d59a374e72c..4b5e8535ade7cb44372a451a1d7ba9ff07f82c79 100644
--- a/qa/qa/resource/repository/commit.rb
+++ b/qa/qa/resource/repository/commit.rb
@@ -59,9 +59,9 @@ def api_post_body
 
         def actions
           pending_actions = []
-          @add_files.map { |file| pending_actions << file.merge({ action: "create" }) } if @add_files
-          @update_files.map { |file| pending_actions << file.merge({ action: "update" }) } if @update_files
-          pending_actions
+          pending_actions << @add_files.map { |file| file.merge({ action: "create" }) } if @add_files
+          pending_actions << @update_files.map { |file| file.merge({ action: "update" }) } if @update_files
+          pending_actions.flatten
         end
 
         private
diff --git a/qa/qa/resource/user.rb b/qa/qa/resource/user.rb
index c166a4d4b59cd1fb1288f48964157c8117282aa2..dcf145c9882fb74a7c497ead3cd3f48c9e3f0db1 100644
--- a/qa/qa/resource/user.rb
+++ b/qa/qa/resource/user.rb
@@ -26,7 +26,7 @@ def password
       end
 
       def name
-        @name ||= api_resource&.dig(:name) || username
+        @name ||= api_resource&.dig(:name) || "QA User #{unique_id}"
       end
 
       def email
@@ -91,9 +91,8 @@ def api_post_body
 
       def self.fabricate_or_use(username = nil, password = nil)
         if Runtime::Env.signup_disabled?
-          self.new.tap do |user|
+          self.fabricate_via_api! do |user|
             user.username = username
-            user.password = password
           end
         else
           self.fabricate!
diff --git a/qa/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb b/qa/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb
index ac5db53ad40b07de9f49e111029d881c1c4cdf42..5ba434a77813c24a249090b4e0f9c501eab23f78 100644
--- a/qa/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb
+++ b/qa/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb
@@ -46,7 +46,7 @@ def create_project(user, api_client, project_name)
           project.standalone = true
           project.add_name_uuid = false
           project.name = project_name
-          project.path_with_namespace = "#{user.name}/#{project_name}"
+          project.path_with_namespace = "#{user.username}/#{project_name}"
           project.user = user
           project.api_client = api_client
         end
diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb
index 5b4ffadf0ffdb789d58267ddfefa5df6056f96f6..e42d538fdf8273c1ffd7099c41a7f8ecb7f59faf 100644
--- a/qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb
+++ b/qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb
@@ -6,8 +6,10 @@ module QA
       include Runtime::Fixtures
 
       def login
-        Runtime::Browser.visit(:gitlab, Page::Main::Login)
-        Page::Main::Login.perform(&:sign_in_using_credentials)
+        unless Page::Main::Menu.perform(&:signed_in?)
+          Runtime::Browser.visit(:gitlab, Page::Main::Login)
+          Page::Main::Login.perform(&:sign_in_using_credentials)
+        end
       end
 
       before(:all) do
diff --git a/qa/spec/resource/user_spec.rb b/qa/spec/resource/user_spec.rb
index d612dfc530e60ec3a8bd0473e1caaf9ff26e2cec..5845f7996a30a86d2096f8d0ab1f0666b5f0b0c0 100644
--- a/qa/spec/resource/user_spec.rb
+++ b/qa/spec/resource/user_spec.rb
@@ -35,8 +35,8 @@
   end
 
   describe '#name' do
-    it 'defaults to the username' do
-      expect(subject.name).to eq(subject.username)
+    it 'defaults to a name based on the username' do
+      expect(subject.name).to match(/#{subject.username.tr('-', ' ')}/i)
     end
 
     it 'retrieves the name from the api_resource if present' do