diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb
index ee86553d75d455dd2e7dac45cee5554a68c938ec..78b722be7d758198dc1d7812aca90568af0abc9f 100644
--- a/app/helpers/commits_helper.rb
+++ b/app/helpers/commits_helper.rb
@@ -111,7 +111,7 @@ def link_to_browse_code(project, commit)
       tooltip = _("Browse Directory")
     end
 
-    link_to url, class: "btn gl-button btn-default btn-icon has-tooltip", title: tooltip, data: { container: "body" } do
+    render Pajamas::ButtonComponent.new(href: url, button_options: { title: tooltip, class: 'has-tooltip btn-icon', data: { container: 'body' } }) do
       sprite_icon('folder-open')
     end
   end
@@ -188,12 +188,11 @@ def diff_mode_swap_button(mode, file_hash)
     entity = mode == 'raw' ? 'rawButton' : 'renderedButton'
     title = "Display #{mode} diff"
 
-    link_to(
-      "##{mode}-diff-#{file_hash}",
-      class: "btn gl-button btn-default btn-file-option has-tooltip btn-show-#{mode}-diff",
-      title: title,
-      data: { file_hash: file_hash, diff_toggle_entity: entity }
-    ) do
+    render Pajamas::ButtonComponent.new(
+      href: "##{mode}-diff-#{file_hash}",
+      button_options: { title: title,
+                        class: "btn-file-option has-tooltip btn-show-#{mode}-diff",
+                        data: { file_hash: file_hash, diff_toggle_entity: entity } }) do
       sprite_icon(icon)
     end
   end
@@ -242,7 +241,7 @@ def view_file_button(commit_sha, diff_new_path, project, replaced: false)
     path = project_blob_path(project, tree_join(commit_sha, diff_new_path))
     title = replaced ? _('View replaced file @ ') : _('View file @ ')
 
-    link_to(path, class: 'btn gl-button btn-default gl-ml-3') do
+    render Pajamas::ButtonComponent.new(href: path, button_options: { class: 'gl-ml-3' }) do
       raw(title) + content_tag(:span, truncate_sha(commit_sha), class: 'commit-sha')
     end
   end
@@ -253,7 +252,7 @@ def view_on_environment_button(commit_sha, diff_new_path, environment)
     external_url = environment.external_url_for(diff_new_path, commit_sha)
     return unless external_url
 
-    link_to(external_url, class: 'btn gl-button btn-default btn-file-option has-tooltip', target: '_blank', rel: 'noopener noreferrer', title: "View on #{environment.formatted_external_url}", data: { container: 'body' }) do
+    render Pajamas::ButtonComponent.new(href: external_url, target: '_blank', button_options: { rel: 'noopener noreferrer', title: "View on #{environment.formatted_external_url}", data: { container: 'body' } }) do
       sprite_icon('external-link')
     end
   end
diff --git a/spec/helpers/commits_helper_spec.rb b/spec/helpers/commits_helper_spec.rb
index 2d06f42dee4583c148573f3ff3b5547b65204643..ff4a312f1b5d153506e0ba571e7bd90700cf03f6 100644
--- a/spec/helpers/commits_helper_spec.rb
+++ b/spec/helpers/commits_helper_spec.rb
@@ -91,22 +91,22 @@
     let(:node) { Nokogiri::HTML.parse(helper.diff_mode_swap_button(keyword, 'abc')).at_css('a') }
 
     context 'for rendered' do
-      it 'renders the correct select-rendered button' do
+      it 'renders the correct select-rendered button', :aggregate_failures do
         expect(node[:title]).to eq('Display rendered diff')
         expect(node['data-file-hash']).to eq('abc')
         expect(node['data-diff-toggle-entity']).to eq('renderedButton')
-        expect(node.xpath("//a/svg")[0]["data-testid"]).to eq('doc-text-icon')
+        expect(node.xpath("//a/span/svg")[0]["data-testid"]).to eq('doc-text-icon')
       end
     end
 
     context 'for raw' do
       let(:keyword) { 'raw' }
 
-      it 'renders the correct select-raw button' do
+      it 'renders the correct select-raw button', :aggregate_failures do
         expect(node[:title]).to eq('Display raw diff')
         expect(node['data-file-hash']).to eq('abc')
         expect(node['data-diff-toggle-entity']).to eq('rawButton')
-        expect(node.xpath("//a/svg")[0]["data-testid"]).to eq('doc-code-icon')
+        expect(node.xpath("//a/span/svg")[0]["data-testid"]).to eq('doc-code-icon')
       end
     end
   end