redmine_airbrake_backend 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: bb95238f93fbf76fa5768e6288859e3feadd74f3
4
- data.tar.gz: f8288fc3b75397041e98e0d55281f847d2e19336
2
+ SHA256:
3
+ metadata.gz: 2b609db8df7b543900de190e58b947f287767f8add9e3b67b2010f358367b139
4
+ data.tar.gz: 95e5a3453fd9736df2cc0ad566990fa04739eae0404a171825f2d661c7936af8
5
5
  SHA512:
6
- metadata.gz: 62f8724020e4a6d619c65d0f888ac61248805c175bc5067d39a622b7ba6fc245a507660a4b58a02e875687b14e1eb7cd879af42825c8ed5e637a64b4769b7c70
7
- data.tar.gz: 946f8a555d5eb230c4fd92e03debb793c63804725b76f711d83c7c875ddb5739dab0539575c29d1f8e507d67d7cd510910b035f9df7317e6bf832f5ea5b3b31a
6
+ metadata.gz: 9add4edc3af06753ea4f6de1876f65c5824b149e72e9cae14b73e714739e91216d667fd38515a24689b5677ad5fee521afa316f833e8e92d989390153b1306e8
7
+ data.tar.gz: c3fe3ba17ab5863424b017a8f94e69f20dfe5e9b62992d498aa9438f199ddd112a5a2c8f069d3e1e675006bb42c58475b3761c34b13a96c5c29ad353e77933d5
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.2.0 (2018-01-17)
4
+ ### Features
5
+ - Support airbrake token based authentication
6
+
3
7
  ## 1.1.2 (2017-12-12)
4
8
  ### Fixes
5
9
  - Prevent rendering of empty sections
@@ -7,8 +7,8 @@ class AirbrakeController < ::ApplicationController
7
7
 
8
8
  skip_before_action :verify_authenticity_token
9
9
 
10
- prepend_before_action :parse_key
11
10
  prepend_before_action :find_project
11
+ prepend_before_action :parse_key
12
12
 
13
13
  before_action :authorize
14
14
  before_action :find_tracker
@@ -24,13 +24,20 @@ class AirbrakeController < ::ApplicationController
24
24
  private
25
25
 
26
26
  def find_project
27
- @project = Project.find(params[:project_id])
27
+ @project = Project.find(@key[:project] || params[:project_id])
28
28
  end
29
29
 
30
30
  def parse_key
31
- @key = JSON.parse(params[:key]).with_indifferent_access rescue nil
31
+ @key = nil
32
+
33
+ if (request.headers['HTTP_AUTHORIZATION'] || '') =~ /^Bearer\s+(.*)\s*$/i
34
+ # New auth method
35
+ @key = JSON.parse(Regexp.last_match[1]).with_indifferent_access rescue nil
36
+ elsif params[:key].present?
37
+ # Old auth method
38
+ @key = JSON.parse(params[:key]).with_indifferent_access rescue nil
39
+ end
32
40
 
33
- # API key
34
41
  invalid_request!('No or invalid API key') if @key.blank? || @key[:key].blank?
35
42
  params[:key] = @key[:key]
36
43
  end
@@ -90,7 +97,7 @@ class AirbrakeController < ::ApplicationController
90
97
  end
91
98
 
92
99
  def global_setting(key)
93
- Setting.plugin_redmine_airbrake_backend[key]
100
+ Setting.plugin_redmine_airbrake_backend[key.to_s]
94
101
  end
95
102
 
96
103
  def project_setting(key)
@@ -1,9 +1,9 @@
1
1
  <p>
2
- <%=label_tag 'settings[hash_field]', l(:settings_airbrake_hash_field) %>
3
- <%=select('settings[hash_field]', nil, IssueCustomField.where(field_format: 'string').order(:name).collect{|cf| [cf.name, cf.id]}, selected: @settings[:hash_field]) %>
2
+ <%= label_tag('settings[hash_field]', l(:settings_airbrake_hash_field)) %>
3
+ <%= select('settings', 'hash_field', IssueCustomField.where(field_format: 'string').order(:name).map { |cf| [cf.name, cf.id] }, selected: @settings['hash_field']) %>
4
4
  </p>
5
5
 
6
6
  <p>
7
- <%=label_tag 'settings[occurrences_field]', l(:settings_airbrake_occurrences_field) %>
8
- <%=select('settings[occurrences_field]', nil, IssueCustomField.where(field_format: 'int').order(:name).collect{|cf| [cf.name, cf.id]}, selected: @settings[:occurrences_field], include_blank: true) %>
7
+ <%= label_tag('settings[occurrences_field]', l(:settings_airbrake_occurrences_field)) %>
8
+ <%= select('settings', 'occurrences_field', IssueCustomField.where(field_format: 'int').order(:name).map { |cf| [cf.name, cf.id] }, selected: @settings['occurrences_field'], include_blank: true) %>
9
9
  </p>
@@ -1,4 +1,4 @@
1
1
  module RedmineAirbrakeBackend
2
2
  # Version of this gem
3
- VERSION = '1.1.2'
3
+ VERSION = '1.2.0'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redmine_airbrake_backend
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Schwab
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-12 00:00:00.000000000 Z
11
+ date: 2018-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
117
  version: '0'
118
118
  requirements: []
119
119
  rubyforge_project:
120
- rubygems_version: 2.6.13
120
+ rubygems_version: 2.7.3
121
121
  signing_key:
122
122
  specification_version: 4
123
123
  summary: This plugin provides the necessary API to use Redmine as a Airbrake backend