redmine_airbrake_backend 1.1.2 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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