diff --git a/app/controllers/errs_controller.rb b/app/controllers/errs_controller.rb
index d09074e..a5cae56 100644
--- a/app/controllers/errs_controller.rb
+++ b/app/controllers/errs_controller.rb
@@ -36,7 +36,8 @@ class ErrsController < ApplicationController
flash[:error] = "This up has no issue tracker setup."
end
redirect_to app_err_path(@app, @err)
- rescue ActiveResource::ConnectionError
+ rescue ActiveResource::ConnectionError => e
+ Rails.logger.error e.to_s
flash[:error] = "There was an error during issue creation. Check your tracker settings or try again later."
redirect_to app_err_path(@app, @err)
end
diff --git a/app/models/issue_tracker.rb b/app/models/issue_tracker.rb
index 44d3bfe..72c50ac 100644
--- a/app/models/issue_tracker.rb
+++ b/app/models/issue_tracker.rb
@@ -22,15 +22,16 @@ class IssueTracker
protected
def create_redmine_issue err
token = api_token
+ acc = account
RedmineClient::Base.configure do
self.token = token
+ self.site = acc
end
- RedmineClient::Issue.site = account + "/projects/:project_id"
issue = RedmineClient::Issue.new(:project_id => project_id)
issue.subject = issue_title err
issue.description = self.class.redmine_body_template.result(binding)
issue.save!
- err.update_attribute :issue_link, "#{RedmineClient::Issue.site.to_s.sub(/#{RedmineClient::Issue.site.path}$/, '')}#{RedmineClient::Issue.element_path(issue.id, :project_id => project_id)}".sub(/\.xml$/, '')
+ err.update_attribute :issue_link, "#{RedmineClient::Issue.site.to_s.sub(/#{RedmineClient::Issue.site.path}$/, '')}#{RedmineClient::Issue.element_path(issue.id, :project_id => project_id)}".sub(/\.xml\?project_id=#{project_id}$/, "\?project_id=#{project_id}")
end
def create_lighthouseapp_issue err
diff --git a/spec/controllers/errs_controller_spec.rb b/spec/controllers/errs_controller_spec.rb
index 145ba7a..86f8fb4 100644
--- a/spec/controllers/errs_controller_spec.rb
+++ b/spec/controllers/errs_controller_spec.rb
@@ -261,17 +261,18 @@ describe ErrsController do
before(:each) do
number = 5
- @issue_link = "#{tracker.account}/projects/#{tracker.project_id}/issues/#{number}.xml"
- body = "#{number}"
- stub_request(:post, "#{tracker.account}/projects/#{tracker.project_id}/issues.xml").to_return(:status => 201, :headers => {'Location' => @issue_link}, :body => body )
+ @issue_link = "#{tracker.account}/issues/#{number}.xml?project_id=#{tracker.project_id}"
+ body = "my subject#{number}"
+ stub_request(:post, "#{tracker.account}/issues.xml").to_return(:status => 201, :headers => {'Location' => @issue_link}, :body => body )
post :create_issue, :app_id => err.app.id, :id => err.id
err.reload
end
it "should make request to Redmine with err params" do
- requested = have_requested(:post, "#{tracker.account}/projects/#{tracker.project_id}/issues.xml")
+ requested = have_requested(:post, "#{tracker.account}/issues.xml")
WebMock.should requested.with(:headers => {'X-Redmine-API-Key' => tracker.api_token})
+ WebMock.should requested.with(:body => /#{tracker.project_id}<\/project-id>/)
WebMock.should requested.with(:body => /\[#{ err.environment }\]\[#{err.where}\] #{err.message.to_s.truncate(100)}<\/subject>/)
WebMock.should requested.with(:body => /.+<\/description>/m)
end
@@ -281,7 +282,7 @@ describe ErrsController do
end
it "should create issue link for err" do
- err.issue_link.should == @issue_link.sub(/\.xml$/, '')
+ err.issue_link.should == @issue_link.sub(/\.xml/, '')
end
end
end
--
libgit2 0.21.2