summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/project.rb5
-rw-r--r--spec/models/project_spec.rb16
2 files changed, 21 insertions, 0 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 0d2e612436a..822d6489112 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -528,6 +528,11 @@ class Project < ActiveRecord::Base
web_url.split('://')[1]
end
+ def new_issue_address(author)
+ Gitlab::IncomingEmail.reply_address(
+ "#{path_with_namespace}+#{author.authentication_token}")
+ end
+
def build_commit_note(commit)
notes.new(commit_id: commit.id, noteable_type: 'Commit')
end
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 30aa2b70c8d..407efc9f966 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -129,6 +129,22 @@ describe Project, models: true do
end
end
+ describe "#new_issue_address" do
+ before do
+ stub_incoming_email_setting(address: "p+%{key}@gl.ab")
+ end
+
+ let(:project) { create(:empty_project, path: "somewhere") }
+ let(:user) { create(:user) }
+
+ it 'returns the address to create a new issue' do
+ token = user.authentication_token
+ address = "p+#{project.namespace.path}/#{project.path}+#{token}@gl.ab"
+
+ expect(project.new_issue_address(user)).to eq(address)
+ end
+ end
+
describe 'last_activity methods' do
let(:project) { create(:project) }
let(:last_event) { double(created_at: Time.now) }