From 8bd87d17f1776d7549f455c743d2acd707aaea42 Mon Sep 17 00:00:00 2001
From: Chad Lavimoniere <clavimoniere@gitlab.com>
Date: Wed, 29 May 2024 12:05:32 -0400
Subject: [PATCH] Replace "via" with "with" in email copy and event timeline

Change sentences like "Closed by Foo Bar via [MR id here]" to "Closed by Foo Bar
with [MR id here]"

Changelog: changed
---
 app/helpers/emails_helper.rb                 | 6 +++---
 app/models/state_note.rb                     | 2 +-
 locale/gitlab.pot                            | 4 ++--
 spec/features/issues/notes_on_issues_spec.rb | 4 ++--
 spec/helpers/emails_helper_spec.rb           | 8 ++++----
 spec/mailers/notify_spec.rb                  | 8 ++++----
 spec/models/state_note_spec.rb               | 6 +++---
 7 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/app/helpers/emails_helper.rb b/app/helpers/emails_helper.rb
index d0d66f32e0933..c69b984c85dc9 100644
--- a/app/helpers/emails_helper.rb
+++ b/app/helpers/emails_helper.rb
@@ -101,10 +101,10 @@ def closure_reason_text(closed_via, format:, name:)
       case format
       when :html
         merge_request_link = link_to(merge_request.to_reference, merge_request.web_url)
-        safe_format(_("Issue was closed by %{name} via merge request %{link}"), name: name, link: merge_request_link)
+        safe_format(_("Issue was closed by %{name} with merge request %{link}"), name: name, link: merge_request_link)
       else
         # If it's not HTML nor text then assume it's text to be safe
-        _("Issue was closed by %{name} via merge request %{link}") % { name: name, link: "#{merge_request.to_reference} (#{merge_request.web_url})" }
+        _("Issue was closed by %{name} with merge request %{link}") % { name: name, link: "#{merge_request.to_reference} (#{merge_request.web_url})" }
       end
     when String
       # Technically speaking this should be Commit but per
@@ -112,7 +112,7 @@ def closure_reason_text(closed_via, format:, name:)
       # we can't deserialize Commit without custom serializer for ActiveJob
       return "" unless Ability.allowed?(@recipient, :download_code, @project)
 
-      _("Issue was closed by %{name} via %{closed_via}") % { name: name, closed_via: closed_via }
+      _("Issue was closed by %{name} with %{closed_via}") % { name: name, closed_via: closed_via }
     else
       if name
         _("Issue was closed by %{name}") % { name: name }
diff --git a/app/models/state_note.rb b/app/models/state_note.rb
index b203f446b8230..c14a7212fed9a 100644
--- a/app/models/state_note.rb
+++ b/app/models/state_note.rb
@@ -31,7 +31,7 @@ def note_text(html: false)
     return "merged manually" if event.state == 'merged' && event_source.is_a?(Commit)
 
     body = event.state.dup
-    body << " via #{event_source.gfm_reference(project)}" if event_source
+    body << " with #{event_source.gfm_reference(project)}" if event_source
     body
   end
 
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 8adeaf222b9cb..627e464ffcce6 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -28497,10 +28497,10 @@ msgstr ""
 msgid "Issue was closed by %{name}"
 msgstr ""
 
-msgid "Issue was closed by %{name} via %{closed_via}"
+msgid "Issue was closed by %{name} with %{closed_via}"
 msgstr ""
 
-msgid "Issue was closed by %{name} via merge request %{link}"
+msgid "Issue was closed by %{name} with merge request %{link}"
 msgstr ""
 
 msgid "Issue weight"
diff --git a/spec/features/issues/notes_on_issues_spec.rb b/spec/features/issues/notes_on_issues_spec.rb
index 8d6262efa5337..00ad3c89c86c8 100644
--- a/spec/features/issues/notes_on_issues_spec.rb
+++ b/spec/features/issues/notes_on_issues_spec.rb
@@ -108,7 +108,7 @@ def submit_comment(text)
       it 'does not show the user the reference' do
         visit project_issue_path(project, issue)
 
-        expect(page).not_to have_content('closed via')
+        expect(page).not_to have_content('closed with')
       end
     end
 
@@ -121,7 +121,7 @@ def submit_comment(text)
         visit project_issue_path(project, issue)
 
         page.within('div#notes li.note .system-note-message') do
-          expect(page).to have_content('closed via')
+          expect(page).to have_content('closed with')
           expect(page.find('a')).to have_content(reference_content)
         end
       end
diff --git a/spec/helpers/emails_helper_spec.rb b/spec/helpers/emails_helper_spec.rb
index 28377aa5cbb2c..510620a85344d 100644
--- a/spec/helpers/emails_helper_spec.rb
+++ b/spec/helpers/emails_helper_spec.rb
@@ -21,19 +21,19 @@
 
         context "and format is text" do
           it "returns plain text" do
-            expect(helper.closure_reason_text(merge_request, format: :text, name: user.name)).to include("via merge request #{merge_request.to_reference} (#{merge_request_presenter.web_url})")
+            expect(helper.closure_reason_text(merge_request, format: :text, name: user.name)).to include("with merge request #{merge_request.to_reference} (#{merge_request_presenter.web_url})")
           end
         end
 
         context "and format is HTML" do
           it "returns HTML" do
-            expect(helper.closure_reason_text(merge_request, format: :html, name: user.name)).to include("via merge request #{link_to(merge_request.to_reference, merge_request_presenter.web_url)}")
+            expect(helper.closure_reason_text(merge_request, format: :html, name: user.name)).to include("with merge request #{link_to(merge_request.to_reference, merge_request_presenter.web_url)}")
           end
         end
 
         context "and format is unknown" do
           it "returns plain text" do
-            expect(helper.closure_reason_text(merge_request, format: 'unknown', name: user.name)).to include("via merge request #{merge_request.to_reference} (#{merge_request_presenter.web_url})")
+            expect(helper.closure_reason_text(merge_request, format: 'unknown', name: user.name)).to include("with merge request #{merge_request.to_reference} (#{merge_request_presenter.web_url})")
           end
         end
       end
@@ -58,7 +58,7 @@
         end
 
         it "returns plain text" do
-          expect(closure_reason_text(closed_via, format: nil, name: nil)).to include("via #{closed_via}")
+          expect(closure_reason_text(closed_via, format: nil, name: nil)).to include("with #{closed_via}")
         end
       end
 
diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb
index 0f87349618ad1..c948a3a1868e4 100644
--- a/spec/mailers/notify_spec.rb
+++ b/spec/mailers/notify_spec.rb
@@ -361,8 +361,8 @@
           it 'has the correct subject and body' do
             aggregate_failures do
               is_expected.to have_referable_subject(issue, reply: true)
-              is_expected.to have_body_text("Issue was closed by #{current_user_sanitized} via #{closing_commit.id}")
-              is_expected.to have_plain_text_content("Issue was closed by #{current_user_sanitized} via #{closing_commit.id}")
+              is_expected.to have_body_text("Issue was closed by #{current_user_sanitized} with #{closing_commit.id}")
+              is_expected.to have_plain_text_content("Issue was closed by #{current_user_sanitized} with #{closing_commit.id}")
             end
           end
         end
@@ -385,9 +385,9 @@
             aggregate_failures do
               url = project_merge_request_url(project, closing_merge_request)
               is_expected.to have_referable_subject(issue, reply: true)
-              is_expected.to have_body_text("Issue was closed by #{current_user_sanitized} via merge request " +
+              is_expected.to have_body_text("Issue was closed by #{current_user_sanitized} with merge request " +
                                             %(<a href="#{url}">#{closing_merge_request.to_reference}</a>))
-              is_expected.to have_plain_text_content("Issue was closed by #{current_user_sanitized} via merge request " \
+              is_expected.to have_plain_text_content("Issue was closed by #{current_user_sanitized} with merge request " \
                                                      "#{closing_merge_request.to_reference} (#{url})")
             end
           end
diff --git a/spec/models/state_note_spec.rb b/spec/models/state_note_spec.rb
index de07403bdc887..1c13ba4623640 100644
--- a/spec/models/state_note_spec.rb
+++ b/spec/models/state_note_spec.rb
@@ -38,7 +38,7 @@
           expect(subject.author).to eq(author)
           expect(subject.created_at).to eq(event.created_at)
           expect(subject.updated_at).to eq(event.created_at)
-          expect(subject.note).to eq("closed via commit #{commit.id}")
+          expect(subject.note).to eq("closed with commit #{commit.id}")
         end
       end
 
@@ -50,7 +50,7 @@
           expect(subject.author).to eq(author)
           expect(subject.created_at).to eq(event.created_at)
           expect(subject.updated_at).to eq(event.created_at)
-          expect(subject.note).to eq("closed via merge request !#{merge_request.iid}")
+          expect(subject.note).to eq("closed with merge request !#{merge_request.iid}")
         end
       end
 
@@ -77,7 +77,7 @@
             expect(subject.author).to eq(author)
             expect(subject.created_at).to eq(event.created_at)
             expect(subject.updated_at).to eq(event.created_at)
-            expect(subject.note).to eq("merged via merge request !#{merge_request.iid}")
+            expect(subject.note).to eq("merged with merge request !#{merge_request.iid}")
           end
         end
       end
-- 
GitLab